master
rst 153 lines 5.33 KB
Raw
1 Nuvoton iBMC boards (``kudo-bmc``, ``mori-bmc``, ``npcm750-evb``, ``quanta-gbs-bmc``, ``quanta-gsj``, ``npcm845-evb``)
2 ======================================================================================================================
3
4 The `Nuvoton iBMC`_ chips are a family of Arm-based SoCs that are
5 designed to be used as Baseboard Management Controllers (BMCs) in various
6 servers. Currently there are two families: NPCM7XX series and
7 NPCM8XX series. NPCM7XX series feature one or two Arm Cortex-A9 CPU cores,
8 while NPCM8XX feature 4 Arm Cortex-A35 CPU cores. Both series contain a
9 different assortment of peripherals targeted for either Enterprise or Data
10 Center / Hyperscale applications.
11
12 .. _Nuvoton iBMC: https://www.nuvoton.com/products/cloud-computing/ibmc/
13
14 The NPCM750 SoC has two Cortex-A9 cores and is targeted for the Enterprise
15 segment. The following machines are based on this chip :
16
17 - ``npcm750-evb`` Nuvoton NPCM750 Evaluation board
18
19 The NPCM730 SoC has two Cortex-A9 cores and is targeted for Data Center and
20 Hyperscale applications. The following machines are based on this chip :
21
22 - ``quanta-gbs-bmc`` Quanta GBS server BMC
23 - ``quanta-gsj`` Quanta GSJ server BMC
24 - ``kudo-bmc`` Fii USA Kudo server BMC
25 - ``mori-bmc`` Fii USA Mori server BMC
26
27 There are also two more SoCs, NPCM710 and NPCM705, which are single-core
28 variants of NPCM750 and NPCM730, respectively. These are currently not
29 supported by QEMU.
30
31 The NPCM8xx SoC is the successor of the NPCM7xx SoC. It has 4 Cortex-A35 cores.
32 The following machines are based on this chip :
33
34 - ``npcm845-evb`` Nuvoton NPCM845 Evaluation board
35
36 Supported devices
37 -----------------
38
39 * SMP (Dual Core Cortex-A9)
40 * Cortex-A9MPCore built-in peripherals: SCU, GIC, Global Timer, Private Timer
41 and Watchdog.
42 * SRAM, ROM and DRAM mappings
43 * System Global Control Registers (GCR)
44 * Clock and reset controller (CLK)
45 * Timer controller (TIM)
46 * Serial ports (16550-based)
47 * DDR4 memory controller (dummy interface indicating memory training is done)
48 * OTP controllers (no protection features)
49 * Flash Interface Unit (FIU; no protection features)
50 * Random Number Generator (RNG)
51 * USB host (USBH)
52 * GPIO controller
53 * Analog to Digital Converter (ADC)
54 * Pulse Width Modulation (PWM)
55 * SMBus controller (SMBF)
56 * Ethernet controller (EMC)
57 * Tachometer
58 * Peripheral SPI controller (PSPI)
59
60 Missing devices
61 ---------------
62
63 * LPC/eSPI host-to-BMC interface, including
64
65 * Keyboard and mouse controller interface (KBCI)
66 * Keyboard Controller Style (KCS) channels
67 * BIOS POST code FIFO
68 * System Wake-up Control (SWC)
69 * Shared memory (SHM)
70 * eSPI slave interface
71 * Block-transfer interface (8XX only)
72 * Virtual UART (8XX only)
73
74 * Ethernet controller (GMAC)
75 * USB device (USBD)
76 * SD/MMC host
77 * PECI interface
78 * PCI and PCIe root complex and bridges
79 * VDM and MCTP support
80 * Serial I/O expansion
81 * LPC/eSPI host
82 * Coprocessor
83 * Graphics
84 * Video capture
85 * Encoding compression engine
86 * Security features
87 * I3C buses (8XX only)
88 * Temperature sensor interface (8XX only)
89 * Virtual UART (8XX only)
90 * Flash monitor (8XX only)
91 * JTAG master (8XX only)
92
93 Boot options
94 ------------
95
96 The Nuvoton machines can boot from an OpenBMC firmware image, or directly into
97 a kernel using the ``-kernel`` option. OpenBMC machine names do not always
98 match QEMU machine names. Check the OpenBMC supported-machine list and Jenkins
99 for currently available source and pre-built images.
100
101 Known OpenBMC (v2.18.0) target names for QEMU Nuvoton machines per:
102
103 https://github.com/openbmc/openbmc/blob/2.18.0/meta-phosphor/docs/supported-machines.md
104
105 .. list-table::
106 :header-rows: 1
107
108 * - QEMU machine
109 - OpenBMC machine
110 * - ``npcm750-evb``
111 - ``evb-npcm750``
112 * - ``npcm845-evb``
113 - ``evb-npcm845``
114 * - ``quanta-gbs-bmc``
115 - ``gbs``
116 * - ``kudo-bmc``
117 - ``kudo``
118 * - ``mori-bmc``
119 - ``mori``
120
121 As of June 2026, the latest OpenBMC release, ``2.18.0``, no longer lists a
122 ``gsj`` machine. To build an image for QEMU's ``quanta-gsj`` machine, use an
123 older OpenBMC release that still contains ``meta-quanta/meta-gsj``. The
124 ``2.14.0`` release contains the ``gsj`` machine:
125
126 https://github.com/openbmc/openbmc/tree/2.14.0/meta-quanta/meta-gsj
127
128 Some pre-built OpenBMC images for QEMU Nuvoton machines may be available on
129 Jenkins:
130
131 https://jenkins.openbmc.org/
132
133 To find a pre-built MTD image on Jenkins, start from the Jenkins home page and
134 open the ``latest-master`` job. Select the matrix configuration whose
135 ``target`` matches the OpenBMC machine name, for example
136 ``label=docker-builder,target=gbs``, then open its latest successful build's
137 artifacts. The MTD image is usually published under
138 ``openbmc/build/tmp/deploy/images/<machine>/`` as
139 ``obmc-phosphor-image-<machine>-<timestamp>.static.mtd``. If Jenkins does not
140 list a matching target, or the build artifacts do not include an MTD image,
141 there is no current pre-built MTD image for that machine.
142
143 The firmware image should be attached as an MTD drive. Example:
144
145 .. code-block:: bash
146
147 $ qemu-system-arm -machine quanta-gbs-bmc -nographic \
148 -drive file=obmc-phosphor-image-gbs-xxxxxx.static.mtd,if=mtd,bus=0,unit=0,format=raw
149
150 The default root password for test images is usually ``0penBmc``.
151
152 For other machines that don't have pre-built images on Jenkins, build an image
153 from source by following the OpenBMC build documentation.