qemu/hw
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
..
9pfs qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
acpi qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
adc qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
alpha qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
arm hw/arm: Introduce ASPEED AST2700 A1 full core machine 2025-05-05 09:38:55 +02:00
audio qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
avr qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
block qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
char qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
core Various patches loosely related to single binary work: 2025-04-27 12:47:16 -04:00
cpu qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
cxl qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
display exec: Rename target_words_bigendian() -> target_big_endian() 2025-04-25 17:00:42 +02:00
dma qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
fsi qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
gpio qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
hppa qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
hyperv qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
i2c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
i386 qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ide qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
input qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
intc hw/intc/aspeed: Add support for AST2700 TSP INTC 2025-05-05 09:38:55 +02:00
ipack qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ipmi qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
isa qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
loongarch qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
m68k qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
mem qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
microblaze hw/microblaze: Evaluate TARGET_BIG_ENDIAN at compile time 2025-04-25 17:09:58 +02:00
mips hw/mips: Evaluate TARGET_BIG_ENDIAN at compile time 2025-04-25 17:09:58 +02:00
misc qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
net hw/net/can: Fix type conflict of GLib function pointers 2025-04-25 17:09:53 +02:00
nubus qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
nvme qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
nvram qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
openrisc qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
pci qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
pci-bridge qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
pci-host qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ppc Various patches loosely related to single binary work: 2025-04-27 12:47:16 -04:00
remote qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
riscv qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
rtc qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
rx qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
s390x Various patches loosely related to single binary work: 2025-04-27 12:47:16 -04:00
scsi qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
sd qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
sensor qom: Constify TypeInfo::class_data 2025-04-25 17:00:41 +02:00
sh4 codebase: prepare to remove cpu.h from exec/exec-all.h 2025-04-23 13:52:25 -07:00
smbios ipmi: add fwinfo to pci ipmi devices 2025-04-11 10:50:42 -05:00
sparc qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sparc64 qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ssi hw/ssi/aspeed_smc: Allow 64-bit wide flash accesses 2025-05-05 09:38:55 +02:00
timer qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
tpm qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
tricore qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
uefi qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
ufs qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
usb hw/usb/hcd-xhci: Unmap canceled packet 2025-04-25 17:00:42 +02:00
vfio Various patches loosely related to single binary work: 2025-04-27 12:47:16 -04:00
virtio exec: Rename target_words_bigendian() -> target_big_endian() 2025-04-25 17:00:42 +02:00
vmapple qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
watchdog qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
xen qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
xenpv hw/boards: Do not create unusable default if=sd drives 2025-02-16 14:25:08 +01:00
xtensa qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
Kconfig Misc HW patches 2025-03-05 21:54:58 +08:00
meson.build Misc HW patches 2025-03-05 21:54:58 +08:00