Hello,
On 8/7/26 11:20, Jamin Lin wrote:
Signed-off-by: Jamin Lin <[email protected]>
---
docs/system/arm/aspeed.rst | 42 +++++++++++++++++++++++++++++++-------
1 file changed, 35 insertions(+), 7 deletions(-)
diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst
index 2d51ceeb84..b6dd757f6e 100644
--- a/docs/system/arm/aspeed.rst
+++ b/docs/system/arm/aspeed.rst
@@ -386,18 +386,25 @@ Booting the ast2700fc machine
AST2700 features four Cortex-A35 primary processors and two Cortex-M4
coprocessors.
**ast2700-evb** machine focuses on emulating the four Cortex-A35 primary
processors,
**ast2700fc** machine extends **ast2700-evb** by adding support for the two
Cortex-M4 coprocessors.
+There are two methods to boot the ast2700fc machine.
+
+Manual boot using ``-device loader``:
+
+In this approach, users manually load firmware and assign entry points via
QEMU loader devices.
+By default, the PSP begins execution at address ``0x430000000``, the load
address of the bl31
+firmware. The SSP and TSP start in the powered-off state and must be
explicitly enabled by the
+PSP through writes to SCU registers.
Steps to boot the AST2700fc machine:
-1. Ensure you have the following AST2700A1 binaries available in a directory
+1. Ensure you have the following AST2700 binaries available in a directory
- * u-boot-nodtb.bin
- * u-boot.dtb
+ * u-boot.bin
* bl31.bin
* optee/tee-raw.bin
* image-bmc
- * zephyr-aspeed-ssp.elf (for SSP firmware, CPU 5)
- * zephyr-aspeed-tsp.elf (for TSP firmware, CPU 6)
+ * zephyr-aspeed-ssp.bin (for SSP firmware, CPU 5)
+ * zephyr-aspeed-tsp.bin (for TSP firmware, CPU 6)
2. Execute the following command to start ``ast2700fc`` machine:
@@ -407,6 +414,8 @@ Steps to boot the AST2700fc machine:
$ qemu-system-aarch64 -M ast2700fc \
-device loader,force-raw=on,addr=0x400000000,file=${IMGDIR}/u-boot.bin
\
+ -device
loader,force-raw=on,addr=0x42C000000,file=${IMGDIR}/zephyr-aspeed-ssp.bin \
+ -device
loader,force-raw=on,addr=0x42E000000,file=${IMGDIR}/zephyr-aspeed-tsp.bin \
-device loader,force-raw=on,addr=0x430000000,file=${IMGDIR}/bl31.bin \
-device
loader,force-raw=on,addr=0x430080000,file=${IMGDIR}/optee/tee-raw.bin \
-device loader,cpu-num=0,addr=0x430000000 \
Orthogonal to your work, I found this setup interesting to stress
my work-in-progress 'split-accel' branch, running QEMU with HVF
when possible, otherwise TCG.
I manually started the SSP & TSP first:
=> mw 12c02204 40000000
mw 12c02204 40000000
=> mw 12c02120 1
mw 12c02120 1
=> mw 12c02224 00000200
mw 12c02224 00000200
=> mw 12c02160 1
mw 12c02160 1
Surprisingly I could boot up to the guest login prompt spending
most of the time using HVF
(qemu) info accel
36 transitions, 10943 SW and 86815 HW executions
Accelerator settings:
one-insn-per-tb: off
Translation buffer state:
gen code size 9098100/1072906240
TB count 16086
TB avg target size 14 max=468 bytes
TB avg host size 230 bytes (expansion ratio: 15.8)
cross page TB count 12 (0%)
direct jump count 8371 (52%) (2 jumps=5949 36%)
TB hash buckets 4813/8192 (58.75% head buckets used)
TB hash occupancy 21.05% avg chain occ. Histogram: [0,10)%|█▁▇▁
▃▁▁▁▁|[90,100]%
TB hash avg chain 1.059 buckets. Histogram: 1|█▁|2
Statistics:
TB flush count 0
TB invalidate count 8796
TLB full flushes 0
TLB partial flushes 268
TLB elided flushes 53158
CPU#0: cortex-a35
HVF cumulative execution time: 7.020s
CPU#1: cortex-a35
HVF cumulative execution time: 6.000s
CPU#2: cortex-a35
HVF cumulative execution time: 6.805s
CPU#3: cortex-a35
HVF cumulative execution time: 7.656s
CPU#4: cortex-m4
HVF cumulative execution time: 0.000s
CPU#5: cortex-m4
HVF cumulative execution time: 0.000s
(qemu)
Over 10700 "SW executions" are the M-profiles running,
only 162 correspond to A-profiles :)
Thanks for this motivating setup!
Phil.