Hi all, This is the first time I've implemented QEMU device models so no doubt the patches contain misunderstandings and/or oversights - happy to hear any feedback!
This patch series implements enough of the ASPEED AST2400 (ARMv5 SoC) machine model to boot an aspeed_defconfig Linux kernel[1]. The device model patches in turn only partially implement the hardware features of the timer and AVIC, again mostly just enough to boot Linux. The addition of the AST2400 to QEMU is motivated by use of the SoC as a BMC in OpenPOWER[2][3] machines and the ongoing development of OpenBMC[4]. The presence of a machine model for the AST2400 will help with development and testing of the OpenBMC stack. I posted an initial revision to the OpenBMC mailing list (CC'ed) for review, hence the v2. Cheers, Andrew [1] git fetch g...@github.com:openbmc/linux.git dev-4.3 [2] http://openpowerfoundation.org/ [3] https://github.com/open-power/ [4] https://github.com/openbmc/openbmc === Since v1: Address comments from Cédric Le Goater: General: * Use tracing infrastructure instead of internal DPRINTF * Enforce access size constraints and alignment in MemoryRegionOps hw/timer/aspeed_timer.c: * Refactor initialisation of and respect requested clock rates (APB/External) * Simplify some index calculations === Andrew Jeffery (3): hw/timer: Add ASPEED AST2400 timer device model hw/intc: Add (new) ASPEED AST2400 AVIC device model hw/arm: Add ASPEED AST2400 machine type default-configs/arm-softmmu.mak | 2 + hw/arm/Makefile.objs | 1 + hw/arm/ast2400.c | 139 ++++++++++++++++++ hw/intc/Makefile.objs | 1 + hw/intc/aspeed_vic.c | 256 +++++++++++++++++++++++++++++++++ hw/timer/Makefile.objs | 2 + hw/timer/aspeed_timer.c | 308 ++++++++++++++++++++++++++++++++++++++++ include/hw/intc/aspeed_vic.h | 40 ++++++ include/hw/timer/aspeed_timer.h | 55 +++++++ trace-events | 22 +++ 10 files changed, 826 insertions(+) create mode 100644 hw/arm/ast2400.c create mode 100644 hw/intc/aspeed_vic.c create mode 100644 hw/timer/aspeed_timer.c create mode 100644 include/hw/intc/aspeed_vic.h create mode 100644 include/hw/timer/aspeed_timer.h -- 2.5.0