xref: /openbmc/qemu/docs/system/arm/nuvoton.rst (revision f548f20176cb5f440693120f9bde911dd3639748)
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
6*f548f201SPeter Maydellservers. 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
13*f548f201SPeter MaydellThe 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
18*f548f201SPeter MaydellThe 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)
42e23e7b12SHavard Skinnemoen * USB host (USBH)
43526dbbe0SHavard Skinnemoen * GPIO controller
4477c05b0bSHao Wu * Analog to Digital Converter (ADC)
451e943c58SHao Wu * Pulse Width Modulation (PWM)
4694e77879SHao Wu * SMBus controller (SMBF)
4777586436SDoug Evans * Ethernet controller (EMC)
48fc11115fSHao Wu * Tachometer
4982c703feSHavard Skinnemoen
5082c703feSHavard SkinnemoenMissing devices
5182c703feSHavard Skinnemoen---------------
5282c703feSHavard Skinnemoen
5382c703feSHavard Skinnemoen * LPC/eSPI host-to-BMC interface, including
5482c703feSHavard Skinnemoen
5582c703feSHavard Skinnemoen   * Keyboard and mouse controller interface (KBCI)
5682c703feSHavard Skinnemoen   * Keyboard Controller Style (KCS) channels
5782c703feSHavard Skinnemoen   * BIOS POST code FIFO
5882c703feSHavard Skinnemoen   * System Wake-up Control (SWC)
5982c703feSHavard Skinnemoen   * Shared memory (SHM)
6082c703feSHavard Skinnemoen   * eSPI slave interface
6182c703feSHavard Skinnemoen
6277586436SDoug Evans * Ethernet controller (GMAC)
6382c703feSHavard Skinnemoen * USB device (USBD)
6482c703feSHavard Skinnemoen * Peripheral SPI controller (PSPI)
6582c703feSHavard Skinnemoen * SD/MMC host
6682c703feSHavard Skinnemoen * PECI interface
6782c703feSHavard Skinnemoen * PCI and PCIe root complex and bridges
6882c703feSHavard Skinnemoen * VDM and MCTP support
6982c703feSHavard Skinnemoen * Serial I/O expansion
7082c703feSHavard Skinnemoen * LPC/eSPI host
7182c703feSHavard Skinnemoen * Coprocessor
7282c703feSHavard Skinnemoen * Graphics
7382c703feSHavard Skinnemoen * Video capture
7482c703feSHavard Skinnemoen * Encoding compression engine
7582c703feSHavard Skinnemoen * Security features
7682c703feSHavard Skinnemoen
7782c703feSHavard SkinnemoenBoot options
7882c703feSHavard Skinnemoen------------
7982c703feSHavard Skinnemoen
8082c703feSHavard SkinnemoenThe Nuvoton machines can boot from an OpenBMC firmware image, or directly into
8182c703feSHavard Skinnemoena kernel using the ``-kernel`` option. OpenBMC images for `quanta-gsj` and
8282c703feSHavard Skinnemoenpossibly others can be downloaded from the OpenPOWER jenkins :
8382c703feSHavard Skinnemoen
8482c703feSHavard Skinnemoen   https://openpower.xyz/
8582c703feSHavard Skinnemoen
8682c703feSHavard SkinnemoenThe firmware image should be attached as an MTD drive. Example :
8782c703feSHavard Skinnemoen
8882c703feSHavard Skinnemoen.. code-block:: bash
8982c703feSHavard Skinnemoen
9082c703feSHavard Skinnemoen  $ qemu-system-arm -machine quanta-gsj -nographic \
9182c703feSHavard Skinnemoen      -drive file=image-bmc,if=mtd,bus=0,unit=0,format=raw
9282c703feSHavard Skinnemoen
9382c703feSHavard SkinnemoenThe default root password for test images is usually ``0penBmc``.
94