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

# 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:

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

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:

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