This patch series adds missing Allwinner A10 modules needed for successful SPL boot: - Clock controller module - DRAM controller - I2C0 controller (added also for Allwinner H3 since it is the same) - AXP-209 connected to I2C0 bus
It also updates Allwinner A10 emulation so SPL is copied from attached SD card if `-kernel` parameter is not passed when starting QEMU (approach adapted from Allwinner H3 implementation). Boot from SD card has been tested with Cubieboard Armbian SD card image and custom Yocto image built for Cubieboard. Example usage for Armbian image: qemu-system-arm -M cubieboard -nographic -sd ~/Armbian_22.11.0-trunk_Cubieboard_kinetic_edge_6.0.7.img v2 from v1: * replaced DB_PRINTF with tracing functions * removed .init function in AXP209 since .reset covers functionality * moved defines to allwinner_i2c.c from header file * updated docs with information about TWI * minor code style fixes Strahinja Jankovic (7): hw/misc: Allwinner-A10 Clock Controller Module Emulation hw/misc: Allwinner A10 DRAM Controller Emulation hw/i2c: Allwinner TWI/I2C Emulation hw/misc: Allwinner AXP-209 Emulation hw/arm: Add AXP-209 to Cubieboard hw/arm: Allwinner A10 enable SPL load from MMC docs/system/arm: Update Allwinner with TWI (I2C) docs/system/arm/cubieboard.rst | 1 + docs/system/arm/orangepi.rst | 1 + hw/arm/Kconfig | 5 + hw/arm/allwinner-a10.c | 40 +++ hw/arm/allwinner-h3.c | 11 +- hw/arm/cubieboard.c | 11 + hw/i2c/Kconfig | 4 + hw/i2c/allwinner-i2c.c | 459 ++++++++++++++++++++++++++ hw/i2c/meson.build | 1 + hw/i2c/trace-events | 5 + hw/misc/Kconfig | 10 + hw/misc/allwinner-a10-ccm.c | 224 +++++++++++++ hw/misc/allwinner-a10-dramc.c | 179 ++++++++++ hw/misc/allwinner-axp-209.c | 238 +++++++++++++ hw/misc/meson.build | 3 + hw/misc/trace-events | 5 + include/hw/arm/allwinner-a10.h | 27 ++ include/hw/arm/allwinner-h3.h | 3 + include/hw/i2c/allwinner-i2c.h | 55 +++ include/hw/misc/allwinner-a10-ccm.h | 67 ++++ include/hw/misc/allwinner-a10-dramc.h | 68 ++++ 21 files changed, 1416 insertions(+), 1 deletion(-) create mode 100644 hw/i2c/allwinner-i2c.c create mode 100644 hw/misc/allwinner-a10-ccm.c create mode 100644 hw/misc/allwinner-a10-dramc.c create mode 100644 hw/misc/allwinner-axp-209.c create mode 100644 include/hw/i2c/allwinner-i2c.h create mode 100644 include/hw/misc/allwinner-a10-ccm.h create mode 100644 include/hw/misc/allwinner-a10-dramc.h -- 2.30.2