* [Buildroot] [PATCH] board/andes/ae350: bump to AndeSight v5.4.x and add OP-TEE
@ 2026-01-11 16:49 Che-Wei Chuang via buildroot
2026-01-30 9:25 ` Leo Liang via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Che-Wei Chuang via buildroot @ 2026-01-11 16:49 UTC (permalink / raw)
To: buildroot; +Cc: Leo Yu-Chi Liang, Che-Wei Chuang
Update the Andes AE350 board support to align with the AndeSight v5.4.x
software stack. This update includes the following changes:
- Bump Linux kernel to v6.6.49, and update U-Boot and OpenSBI to the
corresponding AndeSight v5.4.x custom tarballs for the QEMU Andes
AE350 machine.
- Add optional support for OP-TEE (Open Portable Trusted Execution
Environment) via config fragments.
- Update genimage_sdcard.cfg to align the final SD card image size to a
power of 2, which is required for correct QEMU emulation.
- Modify post-build.sh to install all generated DTBs rather than a single
hardcoded DTB.
- Add a patch for optee-test to disable fragmentation calculation, fixing
a build failure caused by struct mismatch between optee-test 4.6.0
and the older optee-os 4.3.0.
Signed-off-by: Che-Wei Chuang <cnoize@andestech.com>
---
board/andes/ae350/genimage_sdcard.cfg | 8 +-
board/andes/ae350/linux.config.fragment | 1 +
board/andes/ae350/patches/linux/linux.hash | 3 +-
.../andes/ae350/patches/opensbi/opensbi.hash | 3 +-
.../patches/optee-client/optee-client.hash | 2 +
.../optee-examples/optee-examples.hash | 2 +
.../ae350/patches/optee-os/optee-os.hash | 2 +
...ble-fragmentation-calculation-for-ol.patch | 44 ++++++
.../ae350/patches/optee-test/optee-test.hash | 2 +
board/andes/ae350/patches/uboot/uboot.hash | 3 +-
board/andes/ae350/post-build.sh | 12 +-
board/andes/ae350/readme.txt | 126 +++++++++++++++++-
.../boot/extlinux/extlinux.conf | 1 -
board/andes/ae350/uboot-optee.config.fragment | 5 +
board/andes/ae350/uboot.config.fragment | 5 +
configs/andes_ae350_45_defconfig | 17 ++-
16 files changed, 215 insertions(+), 21 deletions(-)
create mode 100644 board/andes/ae350/linux.config.fragment
create mode 100644 board/andes/ae350/patches/optee-client/optee-client.hash
create mode 100644 board/andes/ae350/patches/optee-examples/optee-examples.hash
create mode 100644 board/andes/ae350/patches/optee-os/optee-os.hash
create mode 100644 board/andes/ae350/patches/optee-test/4.6.0/0001-xtest-stats-Disable-fragmentation-calculation-for-ol.patch
create mode 100644 board/andes/ae350/patches/optee-test/optee-test.hash
create mode 100644 board/andes/ae350/uboot-optee.config.fragment
diff --git a/board/andes/ae350/genimage_sdcard.cfg b/board/andes/ae350/genimage_sdcard.cfg
index 58c6f8f156..2b5b1ae0b7 100644
--- a/board/andes/ae350/genimage_sdcard.cfg
+++ b/board/andes/ae350/genimage_sdcard.cfg
@@ -3,10 +3,10 @@ image boot.vfat {
files = {
"u-boot-spl.bin",
"u-boot.itb",
- "ae350_ax45mp.dtb",
+ "dtb",
}
}
- size = 2M
+ size = 2040K
}
image sdcard.img {
@@ -16,11 +16,15 @@ image sdcard.img {
partition boot {
partition-type = 0xC
image = "boot.vfat"
+ offset = 8K
+ size = 2040K # 2MB - 8KB
}
partition rootfs {
partition-type = 0x83
bootable = true
image = "rootfs.ext4"
+ offset = 2M
+ size = 30M
}
}
diff --git a/board/andes/ae350/linux.config.fragment b/board/andes/ae350/linux.config.fragment
new file mode 100644
index 0000000000..becad4d7ed
--- /dev/null
+++ b/board/andes/ae350/linux.config.fragment
@@ -0,0 +1 @@
+CONFIG_INITRAMFS_SOURCE=""
diff --git a/board/andes/ae350/patches/linux/linux.hash b/board/andes/ae350/patches/linux/linux.hash
index 1a6a136b71..16fc60fe1b 100644
--- a/board/andes/ae350/patches/linux/linux.hash
+++ b/board/andes/ae350/patches/linux/linux.hash
@@ -1,2 +1,3 @@
# Locally calculated
-sha256 c71af3d2c86c0a0deca4f54b51d1c35217082b030052cc3513dc42e852652733 linux-v6.0.y-andes.tar.gz
+sha256 92564d3bb7643873232b19c605d77d0ab888f6a9142d1436a25d01239bceeed0 linux-ast-v5_4_1-release.tar.gz
+sha256 2a1dc278902473fed28fc40d4eecdbe0692b23c1282649db8281efcb8306e679 linux-optee_ast540_v4.3.tar.gz
diff --git a/board/andes/ae350/patches/opensbi/opensbi.hash b/board/andes/ae350/patches/opensbi/opensbi.hash
index d7893a1dee..67d9b2c562 100644
--- a/board/andes/ae350/patches/opensbi/opensbi.hash
+++ b/board/andes/ae350/patches/opensbi/opensbi.hash
@@ -1,2 +1,3 @@
# Locally calculated
-sha256 d11702103f177a2914e94eec57ce5ed820296d874f6b6525c4482e55d71a3667 opensbi-1.6.tar.gz
+sha256 f53ee069cfee739d0dc22dc65006c9dde6b18f41044aac3b3eda236266bc7152 opensbi-ast-v5_4_1-release.tar.gz
+sha256 70a38b6d3c8c9c4eaeb6076480e567c7c5155f321e8989492ccc95ad87304185 opensbi-optee_ast540_v4.3.tar.gz
diff --git a/board/andes/ae350/patches/optee-client/optee-client.hash b/board/andes/ae350/patches/optee-client/optee-client.hash
new file mode 100644
index 0000000000..0154c2b2e9
--- /dev/null
+++ b/board/andes/ae350/patches/optee-client/optee-client.hash
@@ -0,0 +1,2 @@
+# From https://github.com/OP-TEE/optee_client/releases/tag/4.3.0
+sha256 a9a91bdb433df795c87a6d15198effbd648e3671ae611f2a3f8b41229d61cce0 optee_client-4.3.0.tar.gz
diff --git a/board/andes/ae350/patches/optee-examples/optee-examples.hash b/board/andes/ae350/patches/optee-examples/optee-examples.hash
new file mode 100644
index 0000000000..bf831bbf9c
--- /dev/null
+++ b/board/andes/ae350/patches/optee-examples/optee-examples.hash
@@ -0,0 +1,2 @@
+# From https://github.com/linaro-swg/optee_examples/releases/tag/4.3.0
+sha256 ee1576617365b5fe9d20d72c16cf6b39159eb79b1401189bd37a91ef03371820 optee_examples-4.3.0.tar.gz
diff --git a/board/andes/ae350/patches/optee-os/optee-os.hash b/board/andes/ae350/patches/optee-os/optee-os.hash
new file mode 100644
index 0000000000..0e1dacd925
--- /dev/null
+++ b/board/andes/ae350/patches/optee-os/optee-os.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 f56fa9636afe671f67b87b1bfcd546d124003a4817ad1b47d1a8c91d80a4043a optee_os-optee_ast540_v4.3.tar.gz
diff --git a/board/andes/ae350/patches/optee-test/4.6.0/0001-xtest-stats-Disable-fragmentation-calculation-for-ol.patch b/board/andes/ae350/patches/optee-test/4.6.0/0001-xtest-stats-Disable-fragmentation-calculation-for-ol.patch
new file mode 100644
index 0000000000..1121e7865a
--- /dev/null
+++ b/board/andes/ae350/patches/optee-test/4.6.0/0001-xtest-stats-Disable-fragmentation-calculation-for-ol.patch
@@ -0,0 +1,44 @@
+From cc87f97d5b4b29cf13df14e475f31b4806e4eae7 Mon Sep 17 00:00:00 2001
+From: Che-Wei Chuang <cnoize@andestech.com>
+Date: Tue, 6 Jan 2026 11:19:31 +0800
+Subject: [PATCH] xtest: stats: Disable fragmentation calculation for older
+ OP-TEE OS
+
+optee-os versions prior to 4.6.0 do not provide the free2_sum field in
+struct pta_stats_alloc. xtest 4.6.0 unconditionally accesses this field,
+which breaks the build when used together with older OP-TEE OS releases
+such as 4.3.0.
+
+Disable the fragmentation calculation based on free2_sum to restore
+compatibility with older OP-TEE OS versions while keeping the remaining
+statistics intact.
+
+Upstream: Not applicable (Andes AE350 board-specific workaround)
+Signed-off-by: Che-Wei Chuang <cnoize@andestech.com>
+---
+ host/xtest/stats.c | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/host/xtest/stats.c b/host/xtest/stats.c
+index dc05d7b..212e5a5 100644
+--- a/host/xtest/stats.c
++++ b/host/xtest/stats.c
+@@ -155,15 +155,6 @@ static int stat_alloc(int argc, char *argv[])
+ stats[n].desc);
+ printf("Bytes allocated: %"PRId32"\n",
+ stats[n].allocated);
+- if (stats[n].free2_sum && stats[n].size != stats[n].allocated) {
+- double free2_sum = stats[n].free2_sum;
+- double free_sum = stats[n].size - stats[n].allocated;
+- double free_quote = sqrt(free2_sum) / free_sum;
+- double fragmentation = 1.0 - free_quote * free_quote;
+-
+- printf("Fragmentation: %u %%\n",
+- (unsigned int)(fragmentation * 100.0));
+- }
+ printf("Max bytes allocated: %"PRId32"\n",
+ stats[n].max_allocated);
+ printf("Size of pool: %"PRId32"\n",
+--
+2.34.1
+
diff --git a/board/andes/ae350/patches/optee-test/optee-test.hash b/board/andes/ae350/patches/optee-test/optee-test.hash
new file mode 100644
index 0000000000..2b4fef8e2f
--- /dev/null
+++ b/board/andes/ae350/patches/optee-test/optee-test.hash
@@ -0,0 +1,2 @@
+# From https://github.com/OP-TEE/optee_test/releases/tag/4.3.0
+sha256 7bb181b74be88593df48321b816837acaad8e4d45e883f25a2e039978e5ec415 optee_test-4.3.0.tar.gz
diff --git a/board/andes/ae350/patches/uboot/uboot.hash b/board/andes/ae350/patches/uboot/uboot.hash
index 440526977b..5914d3cd78 100644
--- a/board/andes/ae350/patches/uboot/uboot.hash
+++ b/board/andes/ae350/patches/uboot/uboot.hash
@@ -1,2 +1,3 @@
# Locally calculated
-sha256 0f933f6c5a426895bf306e93e6ac53c60870e4b54cda56d95211bec99e63bec7 u-boot-2025.07.tar.bz2
+sha256 c7726a52c9e626253962f6643fa9706a789b47acdf7ffb7f315f46d5ecf46d4d uboot-ast-v5_4_1-release.tar.gz
+sha256 c6d9232e09ba1f318b6ff6c558c5847b8ac576eccfbeffb6d3c315dad3da4b49 uboot-optee_ast540_v4.3.tar.gz
diff --git a/board/andes/ae350/post-build.sh b/board/andes/ae350/post-build.sh
index e1669c2bcd..abfce537b4 100755
--- a/board/andes/ae350/post-build.sh
+++ b/board/andes/ae350/post-build.sh
@@ -1,3 +1,13 @@
#!/bin/sh
+set -e
+
+mkdir -p "${BINARIES_DIR}"/dtb
+cd "${BUILD_DIR}"/linux-custom/arch/riscv/boot/dts/andes/ || exit 1
+
+for f in *.dtb; do
+ [ -e "$f" ] || continue
+ cp -a "$f" "${BINARIES_DIR}"/dtb
+done
+
cp "$BINARIES_DIR"/Image "$TARGET_DIR"/boot
-cp "$BINARIES_DIR"/ae350_ax45mp.dtb "$TARGET_DIR"/boot
+cp -a "$BINARIES_DIR"/dtb "$TARGET_DIR"/boot
diff --git a/board/andes/ae350/readme.txt b/board/andes/ae350/readme.txt
index 36561fc777..9132869172 100644
--- a/board/andes/ae350/readme.txt
+++ b/board/andes/ae350/readme.txt
@@ -3,7 +3,7 @@ Intro
Andestech AE350 Platform
-The AE350 prototype demonstrates the AE350 platform on the FPGA.
+The AE350 prototype demonstrates the AE350 platform on the FPGA and QEMU.
How to build it
===============
@@ -30,7 +30,7 @@ Result of the build
After building, you should obtain the following files:
output/images/
- |-- ae350_ax45mp.dtb
+ |-- dtb/*.dtb
|-- boot.vfat
|-- fw_dynamic.bin
|-- fw_dynamic.elf
@@ -71,15 +71,16 @@ The Andes SPI_burn tool will be located in output/host/bin. Use
the following commands to update the bootloader and device tree:
$ SPI_burn --host $ICE_IP --port $ICE_BURNER_PORT --addr 0x0 -i u-boot-spl.bin
- $ SPI_burn --host $ICE_IP --port $ICE_BURNER_PORT --addr 0x10000 -i u-boot.itb
- $ SPI_burn --host $ICE_IP --port $ICE_BURNER_PORT --addr 0xf0000 -i ae350_ax45mp.dtb
+ $ SPI_burn --host $ICE_IP --port $ICE_BURNER_PORT --addr 0x20000 -i u-boot.itb
+ $ SPI_burn --host $ICE_IP --port $ICE_BURNER_PORT --addr 0x1e0000 \
+ -i dtb/ax45_c1_d_dsp_noncoherent_ae350_optee.dtb
Note that the --addr option specifies the offset starting from
the flash base address 0x80000000 and set by U-Boot configurations.
e.g.
-u-boot-spl.bin : CONFIG_SPL_TEXT_BASE=0x80000000
-u-boot.itb : CONFIG_SPL_LOAD_FIT_ADDRESS=0x80010000
-ae350_ax45mp.dtb: CONFIG_SYS_FDT_BASE=0x800f0000
+u-boot-spl.bin: CONFIG_SPL_TEXT_BASE=0x80000000
+u-boot.itb: CONFIG_SPL_LOAD_FIT_ADDRESS=0x80020000
+ax45_c1_d_dsp_noncoherent_ae350_optee.dtb: CONFIG_SYS_FDT_BASE=0x801E0000
How to write the SD card
========================
@@ -104,3 +105,114 @@ Your SD card partition should be:
/dev/sdb2 * 4097 126976 122880 60M 83 Linux
Insert SD card and reset the board, it should boot Linux from mmc.
+
+QEMU (AE350 simulation)
+=======================
+
+To run the andes_ae350 machine model, use the QEMU version:
+https://github.com/andestech/qemu
+
+Boot command example:
+ qemu-system-riscv64 \
+ -nographic \
+ -M andes_ae350 \
+ -cpu andes-ax45 \
+ -m 2G -smp 1 \
+ -bios none \
+ -device loader,file=u-boot-spl.bin,addr=0x80000000 \
+ -device loader,file=u-boot.itb,addr=0x80020000 \
+ -device loader,file=dtb/ax45_c1_d_dsp_noncoherent_ae350.dtb,addr=0x801E0000 \
+ -drive file=sdcard.img,format=raw,id=sd1 \
+ -device sd-card,drive=sd1 \
+ -net nic,model=atfmac100 \
+ -net user,net=192.168.96.0/24,dhcpstart=192.168.96.10,\
+domainname=andestech.com,hostfwd=tcp::9623-:23 \
+ -gdb tcp::9696
+
+OP-TEE OS (4.3.0)
+=================
+
+The file `tee.bin` is the OP-TEE OS secure world binary.
+It provides a Trusted Execution Environment (TEE) that runs alongside Linux in
+secure mode.
+
+The OP-TEE OS binary (`tee.bin`) is packaged inside the `u-boot.itb` image on
+the AE350 platform.
+
+OP-TEE provides the following core security services:
+
+- Secure execution of Trusted Applications (TAs)
+- Secure key storage and cryptographic operations
+- Hardware-backed isolation between Secure World and Normal World
+- Secure monitor call (SMC) interface for Linux communication
+
+Linux communicates with OP-TEE through the standard OP-TEE Linux driver using
+SMC calls. This allows normal world applications to access secure services
+without exposing sensitive data to the Linux kernel.
+
+For the single-core configuration, use ax45_c1_d_dsp_noncoherent_ae350_optee DTS.
+For the quad-core configuration, switch to ax45mp_c4_d_dsp_ae350_optee.
+
+To enable this feature, configure the following options in the Buildroot menuconfig:
+Bootloaders --->
+[*] optee_os --->
+OP-TEE OS version (Custom tarball) --->
+URL of custom OP-TEE OS tarball:
+ $(call github,andestech,optee_os,optee_ast540_v4.3)/optee_os-optee_ast540_v4.3.tar.gz
+[*] OP-TEE OS needs host-python-cryptography
+Target platform (mandatory):
+ ae350
+Additional build variables:
+ ARCH=riscv CFG_TEE_CORE_NB_CORE=1 CFG_NUM_THREADS=2 CFG_UNWIND=y
+ CFG_IN_TREE_EARLY_TAS=trusted_keys/f04a0fe7-1f5d-4b9b-abf7-619b85b4ce8c
+ mem_usage CFG_CORE_HEAP_SIZE=524288 CFG_TEE_RAM_VA_SIZE=0x00800000
+ CFG_TDDRAM_SIZE=0x04000000 CFG_PKCS11_TA_HEAP_SIZE=131072
+Binary boot images:
+ tee.bin
+
+[*] opensbi --->
+OpenSBI Version (Custom tarball) --->
+URL of custom OpenSBI tarball:
+ $(call github,andestech,opensbi,optee_ast540_v4.3)/opensbi-optee_ast540_v4.3.tar.gz
+
+[*] U-Boot --->
+U-Boot Version (Custom tarball) --->
+URL of custom U-Boot tarball:
+ $(call github,andestech,uboot,optee_ast540_v4.3)/uboot-optee_ast540_v4.3.tar.gz
+Additional configuration fragment files:
+ board/andes/ae350/uboot.config.fragment board/andes/ae350/uboot-optee.config.fragment
+[*] U-Boot needs OPTEE TEE
+U-Boot OPTEE TEE format (tee.bin)
+
+Kernel --->
+Kernel version (Custom tarball) --->
+URL of custom kernel tarball:
+ $(call github,andestech,linux,optee_ast540_v4.3)/linux-optee_ast540_v4.3.tar.gz
+In-tree Device Tree Source file names:
+ andes/ax45_c1_d_dsp_noncoherent_ae350_optee
+
+OP-TEE User-space Configuration (4.3.0)
+=======================================
+
+The OP-TEE user-space components are built from custom upstream
+tarballs and provide Linux support for OP-TEE OS.
+
+They can be enabled from Buildroot menuconfig:
+Target packages --->
+ Security --->
+
+-*- optee-client
+ optee-client version (Custom tarball) --->
+ URL of custom optee-client tarball:
+ $(call github,OP-TEE,optee_client,4.3.0)/optee_client-4.3.0.tar.gz
+
+[*] optee-examples
+ optee-examples version (Custom tarball) --->
+ URL of custom optee-examples tarball:
+ $(call github,linaro-swg,optee_examples,4.3.0)/optee_examples-4.3.0.tar.gz
+
+[*] optee-test
+ optee-test version (Custom tarball) --->
+ URL of custom optee-test tarball:
+ $(call github,OP-TEE,optee_test,4.3.0)/optee_test-4.3.0.tar.gz
+
diff --git a/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf b/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf
index be19e196a8..5506fab7c0 100644
--- a/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf
+++ b/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf
@@ -1,4 +1,3 @@
label linux
kernel /boot/Image
- fdt /boot/ae350_ax45mp.dtb
append earlycon=sbi root=/dev/mmcblk0p2 rootwait
diff --git a/board/andes/ae350/uboot-optee.config.fragment b/board/andes/ae350/uboot-optee.config.fragment
new file mode 100644
index 0000000000..b36776de17
--- /dev/null
+++ b/board/andes/ae350/uboot-optee.config.fragment
@@ -0,0 +1,5 @@
+CONFIG_CMD_OPTEE=y
+CONFIG_OPTEE=y
+CONFIG_OPTEE_LIB=y
+CONFIG_OPTEE_TA_RPC_TEST=y
+CONFIG_TEE=y
diff --git a/board/andes/ae350/uboot.config.fragment b/board/andes/ae350/uboot.config.fragment
index 4497ed4c74..058e9f12d4 100644
--- a/board/andes/ae350/uboot.config.fragment
+++ b/board/andes/ae350/uboot.config.fragment
@@ -1,6 +1,11 @@
CONFIG_SPL_FS_FAT=y
+CONFIG_SPL_LOAD_FIT_ADDRESS=0x80020000
CONFIG_SPL_MMC=y
CONFIG_SPL_OPENSBI_LOAD_ADDR=0x0
CONFIG_SPL_OPENSBI_SCRATCH_OPTIONS=0x0
+CONFIG_SPL_RAM_DEVICE=y
+CONFIG_SPL_TEXT_BASE=0x80000000
CONFIG_DISPLAY_CPUINFO=y
CONFIG_DISPLAY_BOARDINFO=y
+CONFIG_SYS_FDT_BASE=0x801E0000
+CONFIG_TEXT_BASE=0x01800000
diff --git a/configs/andes_ae350_45_defconfig b/configs/andes_ae350_45_defconfig
index 80b780b6e0..1845228ebb 100644
--- a/configs/andes_ae350_45_defconfig
+++ b/configs/andes_ae350_45_defconfig
@@ -11,22 +11,24 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/andes/ae350/genimage_sdcard.cfg"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
-BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,andestech,linux,v6.0.y-andes)/linux-v6.0.y-andes.tar.gz"
-BR2_LINUX_KERNEL_DEFCONFIG="ae350_ax45mp"
+BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,andestech,linux,ast-v5_4_1-release)/linux-ast-v5_4_1-release.tar.gz"
+BR2_LINUX_KERNEL_DEFCONFIG="ae350_rv64_smp"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/andes/ae350/linux.config.fragment"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
-BR2_LINUX_KERNEL_INTREE_DTS_NAME="andes/ae350_ax45mp"
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="andes/ax45_c1_d_dsp_noncoherent_ae350"
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="30M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_OPENSBI=y
-BR2_TARGET_OPENSBI_CUSTOM_VERSION=y
-BR2_TARGET_OPENSBI_CUSTOM_VERSION_VALUE="1.6"
+BR2_TARGET_OPENSBI_CUSTOM_TARBALL=y
+BR2_TARGET_OPENSBI_CUSTOM_TARBALL_LOCATION="$(call github,andestech,opensbi,ast-v5_4_1-release)/opensbi-ast-v5_4_1-release.tar.gz"
BR2_TARGET_OPENSBI_PLAT="generic"
# BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG is not set
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.07"
+BR2_TARGET_UBOOT_CUSTOM_TARBALL=y
+BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,andestech,uboot,ast-v5_4_1-release)/uboot-ast-v5_4_1-release.tar.gz"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="ae350_rv64_spl_xip"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/andes/ae350/uboot.config.fragment"
BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
@@ -37,6 +39,7 @@ BR2_TARGET_UBOOT_NEEDS_OPENSBI=y
BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb"
BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="SWDTB=1"
BR2_PACKAGE_HOST_ANDES_SPI_BURN=y
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Buildroot] [PATCH] board/andes/ae350: bump to AndeSight v5.4.x and add OP-TEE
2026-01-11 16:49 [Buildroot] [PATCH] board/andes/ae350: bump to AndeSight v5.4.x and add OP-TEE Che-Wei Chuang via buildroot
@ 2026-01-30 9:25 ` Leo Liang via buildroot
0 siblings, 0 replies; 2+ messages in thread
From: Leo Liang via buildroot @ 2026-01-30 9:25 UTC (permalink / raw)
To: Che-Wei Chuang; +Cc: buildroot
On Mon, Jan 12, 2026 at 12:49:21AM +0800, Che-Wei Chuang wrote:
> Update the Andes AE350 board support to align with the AndeSight v5.4.x
> software stack. This update includes the following changes:
>
> - Bump Linux kernel to v6.6.49, and update U-Boot and OpenSBI to the
> corresponding AndeSight v5.4.x custom tarballs for the QEMU Andes
> AE350 machine.
> - Add optional support for OP-TEE (Open Portable Trusted Execution
> Environment) via config fragments.
> - Update genimage_sdcard.cfg to align the final SD card image size to a
> power of 2, which is required for correct QEMU emulation.
> - Modify post-build.sh to install all generated DTBs rather than a single
> hardcoded DTB.
> - Add a patch for optee-test to disable fragmentation calculation, fixing
> a build failure caused by struct mismatch between optee-test 4.6.0
> and the older optee-os 4.3.0.
>
> Signed-off-by: Che-Wei Chuang <cnoize@andestech.com>
> ---
> board/andes/ae350/genimage_sdcard.cfg | 8 +-
> board/andes/ae350/linux.config.fragment | 1 +
> board/andes/ae350/patches/linux/linux.hash | 3 +-
> .../andes/ae350/patches/opensbi/opensbi.hash | 3 +-
> .../patches/optee-client/optee-client.hash | 2 +
> .../optee-examples/optee-examples.hash | 2 +
> .../ae350/patches/optee-os/optee-os.hash | 2 +
> ...ble-fragmentation-calculation-for-ol.patch | 44 ++++++
> .../ae350/patches/optee-test/optee-test.hash | 2 +
> board/andes/ae350/patches/uboot/uboot.hash | 3 +-
> board/andes/ae350/post-build.sh | 12 +-
> board/andes/ae350/readme.txt | 126 +++++++++++++++++-
> .../boot/extlinux/extlinux.conf | 1 -
> board/andes/ae350/uboot-optee.config.fragment | 5 +
> board/andes/ae350/uboot.config.fragment | 5 +
> configs/andes_ae350_45_defconfig | 17 ++-
> 16 files changed, 215 insertions(+), 21 deletions(-)
> create mode 100644 board/andes/ae350/linux.config.fragment
> create mode 100644 board/andes/ae350/patches/optee-client/optee-client.hash
> create mode 100644 board/andes/ae350/patches/optee-examples/optee-examples.hash
> create mode 100644 board/andes/ae350/patches/optee-os/optee-os.hash
> create mode 100644 board/andes/ae350/patches/optee-test/4.6.0/0001-xtest-stats-Disable-fragmentation-calculation-for-ol.patch
> create mode 100644 board/andes/ae350/patches/optee-test/optee-test.hash
> create mode 100644 board/andes/ae350/uboot-optee.config.fragment
LGTM.
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-01-30 9:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-11 16:49 [Buildroot] [PATCH] board/andes/ae350: bump to AndeSight v5.4.x and add OP-TEE Che-Wei Chuang via buildroot
2026-01-30 9:25 ` Leo Liang via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox