Patrick Venture | fd17995 | 2021-06-15 12:28:48 -0700 | [diff] [blame] | 1 | Nuvoton iBMC boards (``*-bmc``, ``npcm750-evb``, ``quanta-gsj``) |
| 2 | ================================================================ |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 3 | |
| 4 | The `Nuvoton iBMC`_ chips (NPCM7xx) are a family of ARM-based SoCs that are |
| 5 | designed to be used as Baseboard Management Controllers (BMCs) in various |
Peter Maydell | f548f20 | 2021-05-27 10:51:52 +0100 | [diff] [blame] | 6 | servers. They all feature one or two ARM Cortex-A9 CPU cores, as well as an |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 7 | assortment of peripherals targeted for either Enterprise or Data Center / |
| 8 | Hyperscale applications. The former is a superset of the latter, so NPCM750 has |
| 9 | all the peripherals of NPCM730 and more. |
| 10 | |
| 11 | .. _Nuvoton iBMC: https://www.nuvoton.com/products/cloud-computing/ibmc/ |
| 12 | |
Peter Maydell | f548f20 | 2021-05-27 10:51:52 +0100 | [diff] [blame] | 13 | The NPCM750 SoC has two Cortex-A9 cores and is targeted for the Enterprise |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 14 | segment. The following machines are based on this chip : |
| 15 | |
| 16 | - ``npcm750-evb`` Nuvoton NPCM750 Evaluation board |
| 17 | |
Peter Maydell | f548f20 | 2021-05-27 10:51:52 +0100 | [diff] [blame] | 18 | The NPCM730 SoC has two Cortex-A9 cores and is targeted for Data Center and |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 19 | Hyperscale applications. The following machines are based on this chip : |
| 20 | |
Patrick Venture | fd17995 | 2021-06-15 12:28:48 -0700 | [diff] [blame] | 21 | - ``quanta-gbs-bmc`` Quanta GBS server BMC |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 22 | - ``quanta-gsj`` Quanta GSJ server BMC |
Chris Rauer | 3b8a473 | 2021-09-13 16:07:22 +0100 | [diff] [blame] | 23 | - ``kudo-bmc`` Fii USA Kudo server BMC |
Patrick Venture | ca6d63c | 2022-02-08 15:31:04 -0800 | [diff] [blame] | 24 | - ``mori-bmc`` Fii USA Mori server BMC |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 25 | |
| 26 | There are also two more SoCs, NPCM710 and NPCM705, which are single-core |
| 27 | variants of NPCM750 and NPCM730, respectively. These are currently not |
| 28 | supported by QEMU. |
| 29 | |
| 30 | Supported devices |
| 31 | ----------------- |
| 32 | |
| 33 | * SMP (Dual Core Cortex-A9) |
| 34 | * Cortex-A9MPCore built-in peripherals: SCU, GIC, Global Timer, Private Timer |
| 35 | and Watchdog. |
| 36 | * SRAM, ROM and DRAM mappings |
| 37 | * System Global Control Registers (GCR) |
| 38 | * Clock and reset controller (CLK) |
| 39 | * Timer controller (TIM) |
| 40 | * Serial ports (16550-based) |
| 41 | * DDR4 memory controller (dummy interface indicating memory training is done) |
| 42 | * OTP controllers (no protection features) |
| 43 | * Flash Interface Unit (FIU; no protection features) |
Havard Skinnemoen | 326ccfe | 2020-10-23 14:06:35 -0700 | [diff] [blame] | 44 | * Random Number Generator (RNG) |
Havard Skinnemoen | e23e7b1 | 2020-10-23 14:06:36 -0700 | [diff] [blame] | 45 | * USB host (USBH) |
Havard Skinnemoen | 526dbbe | 2020-10-23 14:06:37 -0700 | [diff] [blame] | 46 | * GPIO controller |
Hao Wu | 77c05b0 | 2021-01-08 11:09:42 -0800 | [diff] [blame] | 47 | * Analog to Digital Converter (ADC) |
Hao Wu | 1e943c5 | 2021-01-08 11:09:43 -0800 | [diff] [blame] | 48 | * Pulse Width Modulation (PWM) |
Hao Wu | 94e7787 | 2021-02-10 14:04:22 -0800 | [diff] [blame] | 49 | * SMBus controller (SMBF) |
Doug Evans | 7758643 | 2021-02-18 13:24:52 -0800 | [diff] [blame] | 50 | * Ethernet controller (EMC) |
Hao Wu | fc11115 | 2021-03-11 10:08:53 -0800 | [diff] [blame] | 51 | * Tachometer |
Hao Wu | 4d120d7 | 2023-02-08 15:54:33 -0800 | [diff] [blame] | 52 | * Peripheral SPI controller (PSPI) |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 53 | |
| 54 | Missing devices |
| 55 | --------------- |
| 56 | |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 57 | * LPC/eSPI host-to-BMC interface, including |
| 58 | |
| 59 | * Keyboard and mouse controller interface (KBCI) |
| 60 | * Keyboard Controller Style (KCS) channels |
| 61 | * BIOS POST code FIFO |
| 62 | * System Wake-up Control (SWC) |
| 63 | * Shared memory (SHM) |
| 64 | * eSPI slave interface |
| 65 | |
Doug Evans | 7758643 | 2021-02-18 13:24:52 -0800 | [diff] [blame] | 66 | * Ethernet controller (GMAC) |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 67 | * USB device (USBD) |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 68 | * SD/MMC host |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 69 | * PECI interface |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 70 | * PCI and PCIe root complex and bridges |
| 71 | * VDM and MCTP support |
| 72 | * Serial I/O expansion |
| 73 | * LPC/eSPI host |
| 74 | * Coprocessor |
| 75 | * Graphics |
| 76 | * Video capture |
| 77 | * Encoding compression engine |
| 78 | * Security features |
| 79 | |
| 80 | Boot options |
| 81 | ------------ |
| 82 | |
| 83 | The Nuvoton machines can boot from an OpenBMC firmware image, or directly into |
Peter Maydell | 6df743d | 2021-07-26 15:23:36 +0100 | [diff] [blame] | 84 | a kernel using the ``-kernel`` option. OpenBMC images for ``quanta-gsj`` and |
Joel Stanley | 86a85d7 | 2022-10-04 15:30:42 +1030 | [diff] [blame] | 85 | possibly others can be downloaded from the OpenBMC jenkins : |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 86 | |
Joel Stanley | 86a85d7 | 2022-10-04 15:30:42 +1030 | [diff] [blame] | 87 | https://jenkins.openbmc.org/ |
Havard Skinnemoen | 82c703f | 2020-09-10 22:21:00 -0700 | [diff] [blame] | 88 | |
| 89 | The firmware image should be attached as an MTD drive. Example : |
| 90 | |
| 91 | .. code-block:: bash |
| 92 | |
| 93 | $ qemu-system-arm -machine quanta-gsj -nographic \ |
| 94 | -drive file=image-bmc,if=mtd,bus=0,unit=0,format=raw |
| 95 | |
| 96 | The default root password for test images is usually ``0penBmc``. |