This patch series models enough of the Nuvoton NPCM730 and NPCM750 SoCs to boot a minimal Linux kernel. This includes device models for:
- Global Configuration Registers - Clock Control - Timers These modules, along with the existing Cortex A9 CPU cores and built-in peripherals, are integrated into a NPCM730 or NPCM750 SoC, which in turn form the foundation for the quanta-gsj and npcm750-evb machines, respectively. The two SoCs are very similar; the only difference is that NPCM730 is missing some peripherals that NPCM750 has, and which are not considered essential for datacenter use (e.g. graphics controllers). For more information, see https://www.nuvoton.com/products/cloud-computing/ibmc/ Both quanta-gsj and npcm750-evb correspond to real boards supported by OpenBMC. While this initial series uses a stripped-down kernel for testing, future series will be tested using OpenBMC images built from public sources. I'm currently putting the finishing touches on flash controller support, which is necessary to boot a full OpenBMC image, and will be enabled by the next series. The patches in this series were developed by Google and reviewed by Nuvoton. We will be maintaining the machine and peripheral support together. The data sheet for these SoCs is not generally available. Please let me know if more comments are needed to understand the device behavior. Thanks for reviewing, Havard Havard Skinnemoen (6): npcm7xx: Add config symbol hw/misc: Add NPCM7xx System Global Control Registers device model hw/misc: Add NPCM7xx Clock Controller device model hw/timer: Add NPCM7xx Timer device model hw/arm: Add NPCM730 and NPCM750 SoC models hw/arm: Add two NPCM7xx-based machines MAINTAINERS | 12 + default-configs/arm-softmmu.mak | 1 + hw/arm/Kconfig | 8 + hw/arm/Makefile.objs | 1 + hw/arm/npcm7xx.c | 328 +++++++++++++++++++++++ hw/arm/npcm7xx_boards.c | 108 ++++++++ hw/misc/Makefile.objs | 2 + hw/misc/npcm7xx_clk.c | 210 +++++++++++++++ hw/misc/npcm7xx_gcr.c | 160 +++++++++++ hw/misc/trace-events | 8 + hw/timer/Makefile.objs | 1 + hw/timer/npcm7xx_timer.c | 437 +++++++++++++++++++++++++++++++ hw/timer/trace-events | 5 + include/hw/arm/npcm7xx.h | 98 +++++++ include/hw/misc/npcm7xx_clk.h | 65 +++++ include/hw/misc/npcm7xx_gcr.h | 74 ++++++ include/hw/timer/npcm7xx_timer.h | 95 +++++++ 17 files changed, 1613 insertions(+) create mode 100644 hw/arm/npcm7xx.c create mode 100644 hw/arm/npcm7xx_boards.c create mode 100644 hw/misc/npcm7xx_clk.c create mode 100644 hw/misc/npcm7xx_gcr.c create mode 100644 hw/timer/npcm7xx_timer.c create mode 100644 include/hw/arm/npcm7xx.h create mode 100644 include/hw/misc/npcm7xx_clk.h create mode 100644 include/hw/misc/npcm7xx_gcr.h create mode 100644 include/hw/timer/npcm7xx_timer.h -- 2.27.0.rc0.183.gde8f92d652-goog