xref: /openbmc/qemu/docs/system/arm/aspeed.rst (revision b662fac6)
17a1e049aSCédric Le GoaterAspeed family boards (``*-bmc``, ``ast2500-evb``, ``ast2600-evb``)
27a1e049aSCédric Le Goater==================================================================
37a1e049aSCédric Le Goater
47a1e049aSCédric Le GoaterThe QEMU Aspeed machines model BMCs of various OpenPOWER systems and
57a1e049aSCédric Le GoaterAspeed evaluation boards. They are based on different releases of the
67a1e049aSCédric Le GoaterAspeed SoC : the AST2400 integrating an ARM926EJ-S CPU (400MHz), the
77a1e049aSCédric Le GoaterAST2500 with an ARM1176JZS CPU (800MHz) and more recently the AST2600
8f548f201SPeter Maydellwith dual cores ARM Cortex-A7 CPUs (1.2GHz).
97a1e049aSCédric Le Goater
107a1e049aSCédric Le GoaterThe SoC comes with RAM, Gigabit ethernet, USB, SD/MMC, USB, SPI, I2C,
117a1e049aSCédric Le Goateretc.
127a1e049aSCédric Le Goater
137a1e049aSCédric Le GoaterAST2400 SoC based machines :
147a1e049aSCédric Le Goater
157a1e049aSCédric Le Goater- ``palmetto-bmc``         OpenPOWER Palmetto POWER8 BMC
1671f5027fSPatrick Venture- ``quanta-q71l-bmc``      OpenBMC Quanta BMC
170b052414SJoel Stanley- ``supermicrox11-bmc``    Supermicro X11 BMC
187a1e049aSCédric Le Goater
197a1e049aSCédric Le GoaterAST2500 SoC based machines :
207a1e049aSCédric Le Goater
217a1e049aSCédric Le Goater- ``ast2500-evb``          Aspeed AST2500 Evaluation board
227a1e049aSCédric Le Goater- ``romulus-bmc``          OpenPOWER Romulus POWER9 BMC
237a1e049aSCédric Le Goater- ``witherspoon-bmc``      OpenPOWER Witherspoon POWER9 BMC
247a1e049aSCédric Le Goater- ``sonorapass-bmc``       OCP SonoraPass BMC
250b052414SJoel Stanley- ``swift-bmc``            OpenPOWER Swift BMC POWER9 (to be removed in v7.0)
260b052414SJoel Stanley- ``fp5280g2-bmc``         Inspur FP5280G2 BMC
270b052414SJoel Stanley- ``g220a-bmc``            Bytedance G220A BMC
287a1e049aSCédric Le Goater
297a1e049aSCédric Le GoaterAST2600 SoC based machines :
307a1e049aSCédric Le Goater
31f548f201SPeter Maydell- ``ast2600-evb``          Aspeed AST2600 Evaluation board (Cortex-A7)
327a1e049aSCédric Le Goater- ``tacoma-bmc``           OpenPOWER Witherspoon POWER9 AST2600 BMC
330b052414SJoel Stanley- ``rainier-bmc``          IBM Rainier POWER10 BMC
340b052414SJoel Stanley- ``fuji-bmc``             Facebook Fuji BMC
357a1e049aSCédric Le Goater
367a1e049aSCédric Le GoaterSupported devices
377a1e049aSCédric Le Goater-----------------
387a1e049aSCédric Le Goater
397a1e049aSCédric Le Goater * SMP (for the AST2600 Cortex-A7)
407a1e049aSCédric Le Goater * Interrupt Controller (VIC)
417a1e049aSCédric Le Goater * Timer Controller
427a1e049aSCédric Le Goater * RTC Controller
437a1e049aSCédric Le Goater * I2C Controller
447a1e049aSCédric Le Goater * System Control Unit (SCU)
457a1e049aSCédric Le Goater * SRAM mapping
467a1e049aSCédric Le Goater * X-DMA Controller (basic interface)
477a1e049aSCédric Le Goater * Static Memory Controller (SMC or FMC) - Only SPI Flash support
487a1e049aSCédric Le Goater * SPI Memory Controller
497a1e049aSCédric Le Goater * USB 2.0 Controller
507a1e049aSCédric Le Goater * SD/MMC storage controllers
517a1e049aSCédric Le Goater * SDRAM controller (dummy interface for basic settings and training)
527a1e049aSCédric Le Goater * Watchdog Controller
537a1e049aSCédric Le Goater * GPIO Controller (Master only)
547a1e049aSCédric Le Goater * UART
557a1e049aSCédric Le Goater * Ethernet controllers
5612bff81bSPhilippe Mathieu-Daudé * Front LEDs (PCA9552 on I2C bus)
572ecf1726SCédric Le Goater * LPC Peripheral Controller (a subset of subdevices are supported)
58c5475b3fSJoel Stanley * Hash/Crypto Engine (HACE) - Hash support only. TODO: HMAC and RSA
59*b662fac6SJoel Stanley * ADC
607a1e049aSCédric Le Goater
617a1e049aSCédric Le Goater
627a1e049aSCédric Le GoaterMissing devices
637a1e049aSCédric Le Goater---------------
647a1e049aSCédric Le Goater
657a1e049aSCédric Le Goater * Coprocessor support
667a1e049aSCédric Le Goater * PWM and Fan Controller
677a1e049aSCédric Le Goater * Slave GPIO Controller
687a1e049aSCédric Le Goater * Super I/O Controller
697a1e049aSCédric Le Goater * PCI-Express 1 Controller
707a1e049aSCédric Le Goater * Graphic Display Controller
717a1e049aSCédric Le Goater * PECI Controller
727a1e049aSCédric Le Goater * MCTP Controller
737a1e049aSCédric Le Goater * Mailbox Controller
747a1e049aSCédric Le Goater * Virtual UART
757a1e049aSCédric Le Goater * eSPI Controller
767a1e049aSCédric Le Goater * I3C Controller
777a1e049aSCédric Le Goater
787a1e049aSCédric Le GoaterBoot options
797a1e049aSCédric Le Goater------------
807a1e049aSCédric Le Goater
819d5dcb85SJoel StanleyThe Aspeed machines can be started using the ``-kernel`` and ``-dtb`` options
829d5dcb85SJoel Stanleyto load a Linux kernel or from a firmware. Images can be downloaded from the
839d5dcb85SJoel StanleyOpenBMC jenkins :
847a1e049aSCédric Le Goater
8538b1ed6cSJoel Stanley   https://jenkins.openbmc.org/job/ci-openbmc/lastSuccessfulBuild/
86d029c729SCédric Le Goater
87d029c729SCédric Le Goateror directly from the OpenBMC GitHub release repository :
88d029c729SCédric Le Goater
89d029c729SCédric Le Goater   https://github.com/openbmc/openbmc/releases
907a1e049aSCédric Le Goater
919d5dcb85SJoel StanleyTo boot a kernel directly from a Linux build tree:
929d5dcb85SJoel Stanley
939d5dcb85SJoel Stanley.. code-block:: bash
949d5dcb85SJoel Stanley
959d5dcb85SJoel Stanley  $ qemu-system-arm -M ast2600-evb -nographic \
969d5dcb85SJoel Stanley        -kernel arch/arm/boot/zImage \
979d5dcb85SJoel Stanley        -dtb arch/arm/boot/dts/aspeed-ast2600-evb.dtb \
989d5dcb85SJoel Stanley        -initrd rootfs.cpio
999d5dcb85SJoel Stanley
1007a1e049aSCédric Le GoaterThe image should be attached as an MTD drive. Run :
1017a1e049aSCédric Le Goater
1027a1e049aSCédric Le Goater.. code-block:: bash
1037a1e049aSCédric Le Goater
1047a1e049aSCédric Le Goater  $ qemu-system-arm -M romulus-bmc -nic user \
105d029c729SCédric Le Goater	-drive file=obmc-phosphor-image-romulus.static.mtd,format=raw,if=mtd -nographic
1069820e52fSCédric Le Goater
1079820e52fSCédric Le GoaterOptions specific to Aspeed machines are :
1089820e52fSCédric Le Goater
1099820e52fSCédric Le Goater * ``execute-in-place`` which emulates the boot from the CE0 flash
1109820e52fSCédric Le Goater   device by using the FMC controller to load the instructions, and
1119820e52fSCédric Le Goater   not simply from RAM. This takes a little longer.
1129820e52fSCédric Le Goater
1139820e52fSCédric Le Goater * ``fmc-model`` to change the FMC Flash model. FW needs support for
1149820e52fSCédric Le Goater   the chip model to boot.
1159820e52fSCédric Le Goater
1169820e52fSCédric Le Goater * ``spi-model`` to change the SPI Flash model.
1179820e52fSCédric Le Goater
1189820e52fSCédric Le GoaterFor instance, to start the ``ast2500-evb`` machine with a different
1199820e52fSCédric Le GoaterFMC chip and a bigger (64M) SPI chip, use :
1209820e52fSCédric Le Goater
1219820e52fSCédric Le Goater.. code-block:: bash
1229820e52fSCédric Le Goater
1239820e52fSCédric Le Goater  -M ast2500-evb,fmc-model=mx25l25635e,spi-model=mx66u51235f
124