xref: /openbmc/qemu/docs/system/arm/nuvoton.rst (revision e23e7b12594ec0804c2d9f509f71841c82a62d1c)
182c703feSHavard SkinnemoenNuvoton iBMC boards (``npcm750-evb``, ``quanta-gsj``)
282c703feSHavard Skinnemoen=====================================================
382c703feSHavard Skinnemoen
482c703feSHavard SkinnemoenThe `Nuvoton iBMC`_ chips (NPCM7xx) are a family of ARM-based SoCs that are
582c703feSHavard Skinnemoendesigned to be used as Baseboard Management Controllers (BMCs) in various
682c703feSHavard Skinnemoenservers. They all feature one or two ARM Cortex A9 CPU cores, as well as an
782c703feSHavard Skinnemoenassortment of peripherals targeted for either Enterprise or Data Center /
882c703feSHavard SkinnemoenHyperscale applications. The former is a superset of the latter, so NPCM750 has
982c703feSHavard Skinnemoenall the peripherals of NPCM730 and more.
1082c703feSHavard Skinnemoen
1182c703feSHavard Skinnemoen.. _Nuvoton iBMC: https://www.nuvoton.com/products/cloud-computing/ibmc/
1282c703feSHavard Skinnemoen
1382c703feSHavard SkinnemoenThe NPCM750 SoC has two Cortex A9 cores and is targeted for the Enterprise
1482c703feSHavard Skinnemoensegment. The following machines are based on this chip :
1582c703feSHavard Skinnemoen
1682c703feSHavard Skinnemoen- ``npcm750-evb``       Nuvoton NPCM750 Evaluation board
1782c703feSHavard Skinnemoen
1882c703feSHavard SkinnemoenThe NPCM730 SoC has two Cortex A9 cores and is targeted for Data Center and
1982c703feSHavard SkinnemoenHyperscale applications. The following machines are based on this chip :
2082c703feSHavard Skinnemoen
2182c703feSHavard Skinnemoen- ``quanta-gsj``        Quanta GSJ server BMC
2282c703feSHavard Skinnemoen
2382c703feSHavard SkinnemoenThere are also two more SoCs, NPCM710 and NPCM705, which are single-core
2482c703feSHavard Skinnemoenvariants of NPCM750 and NPCM730, respectively. These are currently not
2582c703feSHavard Skinnemoensupported by QEMU.
2682c703feSHavard Skinnemoen
2782c703feSHavard SkinnemoenSupported devices
2882c703feSHavard Skinnemoen-----------------
2982c703feSHavard Skinnemoen
3082c703feSHavard Skinnemoen * SMP (Dual Core Cortex-A9)
3182c703feSHavard Skinnemoen * Cortex-A9MPCore built-in peripherals: SCU, GIC, Global Timer, Private Timer
3282c703feSHavard Skinnemoen   and Watchdog.
3382c703feSHavard Skinnemoen * SRAM, ROM and DRAM mappings
3482c703feSHavard Skinnemoen * System Global Control Registers (GCR)
3582c703feSHavard Skinnemoen * Clock and reset controller (CLK)
3682c703feSHavard Skinnemoen * Timer controller (TIM)
3782c703feSHavard Skinnemoen * Serial ports (16550-based)
3882c703feSHavard Skinnemoen * DDR4 memory controller (dummy interface indicating memory training is done)
3982c703feSHavard Skinnemoen * OTP controllers (no protection features)
4082c703feSHavard Skinnemoen * Flash Interface Unit (FIU; no protection features)
41326ccfe2SHavard Skinnemoen * Random Number Generator (RNG)
42*e23e7b12SHavard Skinnemoen * USB host (USBH)
4382c703feSHavard Skinnemoen
4482c703feSHavard SkinnemoenMissing devices
4582c703feSHavard Skinnemoen---------------
4682c703feSHavard Skinnemoen
4782c703feSHavard Skinnemoen * GPIO controller
4882c703feSHavard Skinnemoen * LPC/eSPI host-to-BMC interface, including
4982c703feSHavard Skinnemoen
5082c703feSHavard Skinnemoen   * Keyboard and mouse controller interface (KBCI)
5182c703feSHavard Skinnemoen   * Keyboard Controller Style (KCS) channels
5282c703feSHavard Skinnemoen   * BIOS POST code FIFO
5382c703feSHavard Skinnemoen   * System Wake-up Control (SWC)
5482c703feSHavard Skinnemoen   * Shared memory (SHM)
5582c703feSHavard Skinnemoen   * eSPI slave interface
5682c703feSHavard Skinnemoen
5782c703feSHavard Skinnemoen * Ethernet controllers (GMAC and EMC)
5882c703feSHavard Skinnemoen * USB device (USBD)
5982c703feSHavard Skinnemoen * SMBus controller (SMBF)
6082c703feSHavard Skinnemoen * Peripheral SPI controller (PSPI)
6182c703feSHavard Skinnemoen * Analog to Digital Converter (ADC)
6282c703feSHavard Skinnemoen * SD/MMC host
6382c703feSHavard Skinnemoen * PECI interface
6482c703feSHavard Skinnemoen * Pulse Width Modulation (PWM)
6582c703feSHavard Skinnemoen * Tachometer
6682c703feSHavard Skinnemoen * PCI and PCIe root complex and bridges
6782c703feSHavard Skinnemoen * VDM and MCTP support
6882c703feSHavard Skinnemoen * Serial I/O expansion
6982c703feSHavard Skinnemoen * LPC/eSPI host
7082c703feSHavard Skinnemoen * Coprocessor
7182c703feSHavard Skinnemoen * Graphics
7282c703feSHavard Skinnemoen * Video capture
7382c703feSHavard Skinnemoen * Encoding compression engine
7482c703feSHavard Skinnemoen * Security features
7582c703feSHavard Skinnemoen
7682c703feSHavard SkinnemoenBoot options
7782c703feSHavard Skinnemoen------------
7882c703feSHavard Skinnemoen
7982c703feSHavard SkinnemoenThe Nuvoton machines can boot from an OpenBMC firmware image, or directly into
8082c703feSHavard Skinnemoena kernel using the ``-kernel`` option. OpenBMC images for `quanta-gsj` and
8182c703feSHavard Skinnemoenpossibly others can be downloaded from the OpenPOWER jenkins :
8282c703feSHavard Skinnemoen
8382c703feSHavard Skinnemoen   https://openpower.xyz/
8482c703feSHavard Skinnemoen
8582c703feSHavard SkinnemoenThe firmware image should be attached as an MTD drive. Example :
8682c703feSHavard Skinnemoen
8782c703feSHavard Skinnemoen.. code-block:: bash
8882c703feSHavard Skinnemoen
8982c703feSHavard Skinnemoen  $ qemu-system-arm -machine quanta-gsj -nographic \
9082c703feSHavard Skinnemoen      -drive file=image-bmc,if=mtd,bus=0,unit=0,format=raw
9182c703feSHavard Skinnemoen
9282c703feSHavard SkinnemoenThe default root password for test images is usually ``0penBmc``.
93