On 6/12/20 12:30 AM, Havard Skinnemoen wrote: > Change-Id: I88e437cb22a8441e0c0e672dfb57568ac81172d8 > Signed-off-by: Havard Skinnemoen <hskinnem...@google.com>
Reviewed-by: Cédric Le Goater <c...@kaod.org> > --- > docs/system/arm/nuvoton.rst | 89 +++++++++++++++++++++++++++++++++++++ > docs/system/target-arm.rst | 1 + > 2 files changed, 90 insertions(+) > create mode 100644 docs/system/arm/nuvoton.rst > > diff --git a/docs/system/arm/nuvoton.rst b/docs/system/arm/nuvoton.rst > new file mode 100644 > index 0000000000..1ca34c0051 > --- /dev/null > +++ b/docs/system/arm/nuvoton.rst > @@ -0,0 +1,89 @@ > +Nuvoton iBMC boards (``npcm750-evb``, ``quanta-gsj``) > +===================================================== > + > +The `Nuvoton iBMC`_ chips (NPCM7xx) are a family of ARM-based SoCs that are > +designed to be used as Baseboard Management Controllers (BMCs) in various > +servers. They all feature one or two ARM Cortex A9 CPU cores, as well as an > +assortment of peripherals targeted for either Enterprise or Data Center / > +Hyperscale applications. The former is a superset of the latter, so NPCM750 > has > +all the peripherals of NPCM730 and more. > + > +.. _Nuvoton iBMC: https://www.nuvoton.com/products/cloud-computing/ibmc/ > + > +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-gsj`` Quanta GSJ 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. > + > +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) > + > +Missing devices > +--------------- > + > + * GPIO controller > + * 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 > + > + * Ethernet controllers (GMAC and EMC) > + * USB host (USBH) > + * USB device (USBD) > + * SMBus controller (SMBF) > + * Peripheral SPI controller (PSPI) > + * Analog to Digital Converter (ADC) > + * SD/MMC host > + * Random Number Generator (RNG) > + * PECI interface > + * Pulse Width Modulation (PWM) > + * Tachometer > + * 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 > + > +Boot options > +------------ > + > +The Nuvoton machines can boot from an OpenBMC firmware image, or directly > into > +a kernel using the ``-kernel`` option. > + > +Booting a full firmware image requires a Boot ROM specified via the ``-bios`` > +option to QEMU. The firmware image should be attached as an MTD drive. > Example : > + > +.. code-block:: bash > + > + $ qemu-system-arm -machine quanta-gsj -nographic \ > + -bios npcm7xx_bootrom.bin \ > + -drive file=image-bmc,if=mtd,bus=0,unit=0,format=raw > diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst > index 1bd477a293..38a9daa9b9 100644 > --- a/docs/system/target-arm.rst > +++ b/docs/system/target-arm.rst > @@ -84,6 +84,7 @@ undocumented; you can get a complete list by running > arm/aspeed > arm/musicpal > arm/nseries > + arm/nuvoton > arm/orangepi > arm/palm > arm/xscale >