qemu/hw/arm
Steven Lee a74faf35ef hw/arm: Introduce ASPEED AST2700 A1 full core machine
- Added new machine type `ast2700fc` with full core support.
- Defined `Ast2700FCState` structure for the new machine type.
- Implemented initialization functions for CA35, SSP, and TSP components.
- Updated `ast2700fc_types` to include the new machine type.
- Set machine class properties for `ast2700fc`.

Test Step:
- Download ast2700-default-obmc.tar.gz from AspeedTech-BMC OpenBmc
  release page.
- Run the following QEMU command:

  ```
  IMGDIR=~/path/to/image
  UBOOT_SIZE=$(stat --format=%s -L ${IMGDIR}/u-boot-nodtb.bin)

  ./qemu-system-aarch64 -machine ast2700fc \
  -device loader,force-raw=on,addr=0x400000000,file=${IMGDIR}/u-boot-nodtb.bin \
  -device loader,force-raw=on,addr=$((0x400000000 + ${UBOOT_SIZE})),file=${IMGDIR}/u-boot.dtb \
  -device loader,force-raw=on,addr=0x430000000,file=${IMGDIR}/bl31.bin \
  -device loader,force-raw=on,addr=0x430080000,file=${IMGDIR}/tee-raw.bin \
  -device loader,cpu-num=0,addr=0x430000000 \
  -device loader,cpu-num=1,addr=0x430000000 \
  -device loader,cpu-num=2,addr=0x430000000 \
  -device loader,cpu-num=3,addr=0x430000000 \
  -device loader,file=${IMGDIR}/ast2700-ssp.elf,cpu-num=4 \
  -device loader,file=${IMGDIR}/ast2700-tsp.elf,cpu-num=5 \
  -drive file=${IMGDIR}/image-bmc,if=mtd,format=raw \
  -serial pty -serial pty -serial pty \
  -snapshot \
  -S -nographic
  ```

- After starting QEMU, serial devices will be redirected:

  char device redirected to /dev/pts/51 (label serial0)
  char device redirected to /dev/pts/52 (label serial1)
  char device redirected to /dev/pts/53 (label serial2)

- serial0 is the console for the four Cortex-A35 primary processors,
  serial1 and serial2 are the consoles for the two Cortex-M4 coprocessors.

- Connect to the consoles using a terminal emulator.

Signed-off-by: Steven Lee <steven_lee@aspeedtech.com>
Change-Id: I32447b9372a78eb53a07135afef59c2a19202328
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250502103449.3091642-8-steven_lee@aspeedtech.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
2025-05-05 09:38:55 +02:00
..
allwinner-a10.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-h3.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-r40.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
armsse.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
armv7m.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed.c hw/arm/aspeed: Add support for loading vbootrom image via "-bios" 2025-05-05 09:38:55 +02:00
aspeed_ast10x0.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_ast27x0-fc.c hw/arm: Introduce ASPEED AST2700 A1 full core machine 2025-05-05 09:38:55 +02:00
aspeed_ast27x0-ssp.c hw/arm/aspeed_ast27x0-ssp: Introduce AST27x0 A1 SSP SoC 2025-05-05 09:38:55 +02:00
aspeed_ast27x0-tsp.c hw/arm/aspeed_ast27x0-tsp: Introduce AST27x0 A1 TSP SoC 2025-05-05 09:38:55 +02:00
aspeed_ast27x0.c aspeed: ast27x0: Correct hex notation for device addresses 2025-05-05 09:38:55 +02:00
aspeed_ast2400.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_ast2600.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_eeprom.c aspeed: Clean up includes 2024-01-30 21:20:20 +03:00
aspeed_eeprom.h aspeed: Clean up includes 2024-01-30 21:20:20 +03:00
aspeed_soc_common.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
b-l475e-iot01a.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bananapi_m2u.c include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00
bcm2835_peripherals.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2836.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2838.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2838_peripherals.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
boot.c hw/arm/boot: make compilation unit hw common 2025-04-23 15:07:32 -07:00
collie.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
cubieboard.c hw/boards: Rename no_sdcard -> auto_create_sdcard 2025-02-16 14:25:08 +01:00
digic.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
digic_boards.c hw/arm/digic_boards: prepare compilation unit to be common 2025-04-23 15:07:32 -07:00
exynos4_boards.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
exynos4210.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
fby35.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
fsl-imx6.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
fsl-imx6ul.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
fsl-imx7.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
fsl-imx8mp.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
fsl-imx25.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
fsl-imx31.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
highbank.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx8mp-evk.c include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00
imx25_pdk.c hw/boards: Rename no_sdcard -> auto_create_sdcard 2025-02-16 14:25:08 +01:00
integratorcp.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
Kconfig rust: Kconfig: Factor out whether PL011 is Rust or C 2025-03-20 09:23:18 +01:00
kzm.c include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00
mcimx6ul-evk.c hw/boards: Rename no_sdcard -> auto_create_sdcard 2025-02-16 14:25:08 +01:00
mcimx7d-sabre.c hw/boards: Rename no_sdcard -> auto_create_sdcard 2025-02-16 14:25:08 +01:00
meson.build hw/arm: Introduce ASPEED AST2700 A1 full core machine 2025-05-05 09:38:55 +02:00
microbit.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mps2-tz.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
mps2.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mps3r.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
msf2-soc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
msf2-som.c include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00
musca.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
musicpal.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
netduino2.c hw/arm: Remove all invalid uses of auto_create_sdcard=true 2025-02-16 14:25:08 +01:00
netduinoplus2.c hw/arm: Remove all invalid uses of auto_create_sdcard=true 2025-02-16 14:25:08 +01:00
npcm7xx.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm7xx_boards.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm8xx.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm8xx_boards.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
nrf51_soc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
olimex-stm32-h405.c hw/arm: Remove all invalid uses of auto_create_sdcard=true 2025-02-16 14:25:08 +01:00
omap1.c include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00
omap_sx1.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
orangepi.c include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00
raspi.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
raspi4b.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
realview.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sabrelite.c hw/boards: Rename no_sdcard -> auto_create_sdcard 2025-02-16 14:25:08 +01:00
sbsa-ref.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
smmu-common.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
smmu-internal.h hw/arm/smmu: Introduce smmu_configs_inv_sid_range() helper 2025-03-07 10:59:25 +00:00
smmuv3-internal.h hw/arm/smmuv3: Assert input to oas2bits() is valid 2024-07-29 13:34:18 +01:00
smmuv3.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stellaris.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32f100_soc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32f205_soc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32f405_soc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32l4x5_soc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32vldiscovery.c hw/arm: Remove all invalid uses of auto_create_sdcard=true 2025-02-16 14:25:08 +01:00
strongarm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
strongarm.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
trace-events hw/arm/smmu: Introduce smmu_configs_inv_sid_range() helper 2025-03-07 10:59:25 +00:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
versatilepb.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
vexpress.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
virt-acpi-build.c acpi/ghes: simplify the per-arch caller to build HEST table 2025-01-15 13:06:49 -05:00
virt.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
xen-pvh.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xen-stubs.c cleanup: Drop pointless return at end of function 2025-04-24 09:33:42 +02:00
xilinx_zynq.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-versal-virt.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-versal.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-zcu102.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-zynqmp.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00