mbox series

[0/5] Introduce AST27x0 multi-SoC machine

Message ID 20241225020311.3718080-1-steven_lee@aspeedtech.com (mailing list archive)
Headers show
Series Introduce AST27x0 multi-SoC machine | expand

Message

Steven Lee Dec. 25, 2024, 2:03 a.m. UTC
This patch series introduces full cores support for the AST27x0 SoC,
along with necessary updates to the ASPEED AST27x0 SOC.

The AST27x0 SoC is a new family of ASPEED SoCs featuring 4 Cortex-A35
cores and 2 Cortex-M4 cores. This patch set adds the following updates:

1. Public API updates:
   Modifies the sdhci_attach_drive and write_boot_rom functions to make them
   accessible for broader usage.

2. SoC memory updates:
   Maps unimplemented devices in the AST27x0 memory space.

3. AST27x0 CM4 SoC integration:
   Adds basic support for the AST27x0 CM4 SoC.

4. AST2700-FC machine:
   Introduces a new AST2700-FC machine which supports emulating 4
   cortex-a35 cores and 2 coretex-m4 cores.

5. Documentation:
   Updates the ASPEED documentation to include usage of the new
   ast2700-fc machine.

This series has been tested using ASPEED SDK image by the following
  IMGDIR=./
  UBOOT_SIZE=$(stat --format=%s -L ${IMGDIR}/u-boot-nodtb.bin)

  $ UBOOT_SIZE=$(stat --format=%s -L ${IMGDIR}/u-boot-nodtb.bin)
  $ wget https://github.com/stevenlee7189/zephyr/releases/download/1.0.0/ast2700-ssp.elf
  $ wget https://github.com/stevenlee7189/zephyr/releases/download/1.0.0/ast2700-tsp.elf
  $ wget https://github.com/stevenlee7189/zephyr/releases/download/1.0.0/bl31.bin
  $ wget https://github.com/stevenlee7189/zephyr/releases/download/1.0.0/tee-raw.bin
  $ wget https://github.com/stevenlee7189/zephyr/releases/download/1.0.0/u-boot-nodtb.bin
  $ wget https://github.com/stevenlee7189/zephyr/releases/download/1.0.0/u-boot.dtb
  $ wget https://github.com/stevenlee7189/zephyr/releases/download/1.0.0/image-bmc.tar.zst
  $ tar --zstd -xvf image-bmc.tar.zst

  $ 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,file=${IMGDIR}/ast2700-ssp.elf,cpu-num=4 \
       -device loader,file=${IMGDIR}/ast2700-tsp.elf,cpu-num=5 \
       -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 \
       -m 1G \
       -drive file=image-bmc,if=mtd,format=raw \
       -serial pty -serial pty -serial pty \
       -S -nographic

    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)

  $ tio /dev/pts/51
  $ tio /dev/pts/52
  $ tio /dev/pts/53
  $ (qemu) c

Steven Lee (5):
  aspeed: Make sdhci_attach_drive and write_boot_rom public
  aspeed: ast27x0: Map unimplemented devices in SoC memory
  aspeed: Introduce AST27x0 SoC with Cortex-M4 support
  aspeed: Introduce ast2700-fc machine
  docs: aspeed: Add ast2700-fc machine section

 docs/system/arm/aspeed.rst  |  50 ++++-
 hw/arm/aspeed.c             |   4 +-
 hw/arm/aspeed_ast27x0-cm4.c | 397 ++++++++++++++++++++++++++++++++++++
 hw/arm/aspeed_ast27x0-fc.c  | 211 +++++++++++++++++++
 hw/arm/aspeed_ast27x0.c     |  45 +++-
 hw/arm/meson.build          |   5 +-
 include/hw/arm/aspeed.h     |   6 +
 include/hw/arm/aspeed_soc.h |  41 ++++
 8 files changed, 747 insertions(+), 12 deletions(-)
 create mode 100644 hw/arm/aspeed_ast27x0-cm4.c
 create mode 100644 hw/arm/aspeed_ast27x0-fc.c

--
2.34.1