xref: /openbmc/qemu/docs/system/arm/nuvoton.rst (revision 82c703fea4a45dd509685030ae769fe25462f486)
1*82c703feSHavard SkinnemoenNuvoton iBMC boards (``npcm750-evb``, ``quanta-gsj``)
2*82c703feSHavard Skinnemoen=====================================================
3*82c703feSHavard Skinnemoen
4*82c703feSHavard SkinnemoenThe `Nuvoton iBMC`_ chips (NPCM7xx) are a family of ARM-based SoCs that are
5*82c703feSHavard Skinnemoendesigned to be used as Baseboard Management Controllers (BMCs) in various
6*82c703feSHavard Skinnemoenservers. They all feature one or two ARM Cortex A9 CPU cores, as well as an
7*82c703feSHavard Skinnemoenassortment of peripherals targeted for either Enterprise or Data Center /
8*82c703feSHavard SkinnemoenHyperscale applications. The former is a superset of the latter, so NPCM750 has
9*82c703feSHavard Skinnemoenall the peripherals of NPCM730 and more.
10*82c703feSHavard Skinnemoen
11*82c703feSHavard Skinnemoen.. _Nuvoton iBMC: https://www.nuvoton.com/products/cloud-computing/ibmc/
12*82c703feSHavard Skinnemoen
13*82c703feSHavard SkinnemoenThe NPCM750 SoC has two Cortex A9 cores and is targeted for the Enterprise
14*82c703feSHavard Skinnemoensegment. The following machines are based on this chip :
15*82c703feSHavard Skinnemoen
16*82c703feSHavard Skinnemoen- ``npcm750-evb``       Nuvoton NPCM750 Evaluation board
17*82c703feSHavard Skinnemoen
18*82c703feSHavard SkinnemoenThe NPCM730 SoC has two Cortex A9 cores and is targeted for Data Center and
19*82c703feSHavard SkinnemoenHyperscale applications. The following machines are based on this chip :
20*82c703feSHavard Skinnemoen
21*82c703feSHavard Skinnemoen- ``quanta-gsj``        Quanta GSJ server BMC
22*82c703feSHavard Skinnemoen
23*82c703feSHavard SkinnemoenThere are also two more SoCs, NPCM710 and NPCM705, which are single-core
24*82c703feSHavard Skinnemoenvariants of NPCM750 and NPCM730, respectively. These are currently not
25*82c703feSHavard Skinnemoensupported by QEMU.
26*82c703feSHavard Skinnemoen
27*82c703feSHavard SkinnemoenSupported devices
28*82c703feSHavard Skinnemoen-----------------
29*82c703feSHavard Skinnemoen
30*82c703feSHavard Skinnemoen * SMP (Dual Core Cortex-A9)
31*82c703feSHavard Skinnemoen * Cortex-A9MPCore built-in peripherals: SCU, GIC, Global Timer, Private Timer
32*82c703feSHavard Skinnemoen   and Watchdog.
33*82c703feSHavard Skinnemoen * SRAM, ROM and DRAM mappings
34*82c703feSHavard Skinnemoen * System Global Control Registers (GCR)
35*82c703feSHavard Skinnemoen * Clock and reset controller (CLK)
36*82c703feSHavard Skinnemoen * Timer controller (TIM)
37*82c703feSHavard Skinnemoen * Serial ports (16550-based)
38*82c703feSHavard Skinnemoen * DDR4 memory controller (dummy interface indicating memory training is done)
39*82c703feSHavard Skinnemoen * OTP controllers (no protection features)
40*82c703feSHavard Skinnemoen * Flash Interface Unit (FIU; no protection features)
41*82c703feSHavard Skinnemoen
42*82c703feSHavard SkinnemoenMissing devices
43*82c703feSHavard Skinnemoen---------------
44*82c703feSHavard Skinnemoen
45*82c703feSHavard Skinnemoen * GPIO controller
46*82c703feSHavard Skinnemoen * LPC/eSPI host-to-BMC interface, including
47*82c703feSHavard Skinnemoen
48*82c703feSHavard Skinnemoen   * Keyboard and mouse controller interface (KBCI)
49*82c703feSHavard Skinnemoen   * Keyboard Controller Style (KCS) channels
50*82c703feSHavard Skinnemoen   * BIOS POST code FIFO
51*82c703feSHavard Skinnemoen   * System Wake-up Control (SWC)
52*82c703feSHavard Skinnemoen   * Shared memory (SHM)
53*82c703feSHavard Skinnemoen   * eSPI slave interface
54*82c703feSHavard Skinnemoen
55*82c703feSHavard Skinnemoen * Ethernet controllers (GMAC and EMC)
56*82c703feSHavard Skinnemoen * USB host (USBH)
57*82c703feSHavard Skinnemoen * USB device (USBD)
58*82c703feSHavard Skinnemoen * SMBus controller (SMBF)
59*82c703feSHavard Skinnemoen * Peripheral SPI controller (PSPI)
60*82c703feSHavard Skinnemoen * Analog to Digital Converter (ADC)
61*82c703feSHavard Skinnemoen * SD/MMC host
62*82c703feSHavard Skinnemoen * Random Number Generator (RNG)
63*82c703feSHavard Skinnemoen * PECI interface
64*82c703feSHavard Skinnemoen * Pulse Width Modulation (PWM)
65*82c703feSHavard Skinnemoen * Tachometer
66*82c703feSHavard Skinnemoen * PCI and PCIe root complex and bridges
67*82c703feSHavard Skinnemoen * VDM and MCTP support
68*82c703feSHavard Skinnemoen * Serial I/O expansion
69*82c703feSHavard Skinnemoen * LPC/eSPI host
70*82c703feSHavard Skinnemoen * Coprocessor
71*82c703feSHavard Skinnemoen * Graphics
72*82c703feSHavard Skinnemoen * Video capture
73*82c703feSHavard Skinnemoen * Encoding compression engine
74*82c703feSHavard Skinnemoen * Security features
75*82c703feSHavard Skinnemoen
76*82c703feSHavard SkinnemoenBoot options
77*82c703feSHavard Skinnemoen------------
78*82c703feSHavard Skinnemoen
79*82c703feSHavard SkinnemoenThe Nuvoton machines can boot from an OpenBMC firmware image, or directly into
80*82c703feSHavard Skinnemoena kernel using the ``-kernel`` option. OpenBMC images for `quanta-gsj` and
81*82c703feSHavard Skinnemoenpossibly others can be downloaded from the OpenPOWER jenkins :
82*82c703feSHavard Skinnemoen
83*82c703feSHavard Skinnemoen   https://openpower.xyz/
84*82c703feSHavard Skinnemoen
85*82c703feSHavard SkinnemoenThe firmware image should be attached as an MTD drive. Example :
86*82c703feSHavard Skinnemoen
87*82c703feSHavard Skinnemoen.. code-block:: bash
88*82c703feSHavard Skinnemoen
89*82c703feSHavard Skinnemoen  $ qemu-system-arm -machine quanta-gsj -nographic \
90*82c703feSHavard Skinnemoen      -drive file=image-bmc,if=mtd,bus=0,unit=0,format=raw
91*82c703feSHavard Skinnemoen
92*82c703feSHavard SkinnemoenThe default root password for test images is usually ``0penBmc``.
93