xref: /openbmc/qemu/docs/system/arm/nuvoton.rst (revision fc11115f74b4355b38eeebc118e347cd74f35845)
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)
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)
48*fc11115fSHao 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