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.

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:

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:

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

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:

$ 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.