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.

Reply via email to