Back to Qemu

Nuvoton iBMC boards (``kudo-bmc``, ``mori-bmc``, ``npcm750-evb``, ``quanta-gbs-bmc``, ``quanta-gsj``, ``npcm845-evb``)

docs/system/arm/nuvoton.rst

11.1.05.3 KB
Original Source

Nuvoton iBMC boards (kudo-bmc, mori-bmc, npcm750-evb, quanta-gbs-bmc, quanta-gsj, npcm845-evb)

The Nuvoton iBMC_ chips are a family of Arm-based SoCs that are designed to be used as Baseboard Management Controllers (BMCs) in various servers. Currently there are two families: NPCM7XX series and NPCM8XX series. NPCM7XX series feature one or two Arm Cortex-A9 CPU cores, while NPCM8XX feature 4 Arm Cortex-A35 CPU cores. Both series contain a different assortment of peripherals targeted for either Enterprise or Data Center / Hyperscale applications.

.. _Nuvoton iBMC: https://www.nuvoton.com/products/cloud-computing/ibmc/

The NPCM750 SoC has two Cortex-A9 cores and is targeted for the Enterprise segment. The following machines are based on this chip :

  • npcm750-evb Nuvoton NPCM750 Evaluation board

The NPCM730 SoC has two Cortex-A9 cores and is targeted for Data Center and Hyperscale applications. The following machines are based on this chip :

  • quanta-gbs-bmc Quanta GBS server BMC
  • quanta-gsj Quanta GSJ server BMC
  • kudo-bmc Fii USA Kudo server BMC
  • mori-bmc Fii USA Mori server BMC

There are also two more SoCs, NPCM710 and NPCM705, which are single-core variants of NPCM750 and NPCM730, respectively. These are currently not supported by QEMU.

The NPCM8xx SoC is the successor of the NPCM7xx SoC. It has 4 Cortex-A35 cores. The following machines are based on this chip :

  • npcm845-evb Nuvoton NPCM845 Evaluation board

Supported devices

  • SMP (Dual Core Cortex-A9)
  • Cortex-A9MPCore built-in peripherals: SCU, GIC, Global Timer, Private Timer and Watchdog.
  • SRAM, ROM and DRAM mappings
  • System Global Control Registers (GCR)
  • Clock and reset controller (CLK)
  • Timer controller (TIM)
  • Serial ports (16550-based)
  • DDR4 memory controller (dummy interface indicating memory training is done)
  • OTP controllers (no protection features)
  • Flash Interface Unit (FIU; no protection features)
  • Random Number Generator (RNG)
  • USB host (USBH)
  • GPIO controller
  • Analog to Digital Converter (ADC)
  • Pulse Width Modulation (PWM)
  • SMBus controller (SMBF)
  • Ethernet controller (EMC)
  • Tachometer
  • Peripheral SPI controller (PSPI)

Missing devices

  • LPC/eSPI host-to-BMC interface, including

    • Keyboard and mouse controller interface (KBCI)
    • Keyboard Controller Style (KCS) channels
    • BIOS POST code FIFO
    • System Wake-up Control (SWC)
    • Shared memory (SHM)
    • eSPI slave interface
    • Block-transfer interface (8XX only)
    • Virtual UART (8XX only)
  • Ethernet controller (GMAC)

  • USB device (USBD)

  • SD/MMC host

  • PECI interface

  • PCI and PCIe root complex and bridges

  • VDM and MCTP support

  • Serial I/O expansion

  • LPC/eSPI host

  • Coprocessor

  • Graphics

  • Video capture

  • Encoding compression engine

  • Security features

  • I3C buses (8XX only)

  • Temperature sensor interface (8XX only)

  • Virtual UART (8XX only)

  • Flash monitor (8XX only)

  • JTAG master (8XX only)

Boot options

The Nuvoton machines can boot from an OpenBMC firmware image, or directly into a kernel using the -kernel option. OpenBMC machine names do not always match QEMU machine names. Check the OpenBMC supported-machine list and Jenkins for currently available source and pre-built images.

Known OpenBMC (v2.18.0) target names for QEMU Nuvoton machines per:

https://github.com/openbmc/openbmc/blob/2.18.0/meta-phosphor/docs/supported-machines.md

.. list-table:: :header-rows: 1

    • QEMU machine
    • OpenBMC machine
    • npcm750-evb
    • evb-npcm750
    • npcm845-evb
    • evb-npcm845
    • quanta-gbs-bmc
    • gbs
    • kudo-bmc
    • kudo
    • mori-bmc
    • mori

As of June 2026, the latest OpenBMC release, 2.18.0, no longer lists a gsj machine. To build an image for QEMU's quanta-gsj machine, use an older OpenBMC release that still contains meta-quanta/meta-gsj. The 2.14.0 release contains the gsj machine:

https://github.com/openbmc/openbmc/tree/2.14.0/meta-quanta/meta-gsj

Some pre-built OpenBMC images for QEMU Nuvoton machines may be available on Jenkins:

https://jenkins.openbmc.org/

To find a pre-built MTD image on Jenkins, start from the Jenkins home page and open the latest-master job. Select the matrix configuration whose target matches the OpenBMC machine name, for example label=docker-builder,target=gbs, then open its latest successful build's artifacts. The MTD image is usually published under openbmc/build/tmp/deploy/images/<machine>/ as obmc-phosphor-image-<machine>-<timestamp>.static.mtd. If Jenkins does not list a matching target, or the build artifacts do not include an MTD image, there is no current pre-built MTD image for that machine.

The firmware image should be attached as an MTD drive. Example:

.. code-block:: bash

$ qemu-system-arm -machine quanta-gbs-bmc -nographic
-drive file=obmc-phosphor-image-gbs-xxxxxx.static.mtd,if=mtd,bus=0,unit=0,format=raw

The default root password for test images is usually 0penBmc.

For other machines that don't have pre-built images on Jenkins, build an image from source by following the OpenBMC build documentation.