This patch series adds support for the Freescale i.MX6 processor. For now we only support the following devices: * up to 4 Cortex A9 cores * A9 MPCORE (SCU, GIC, TWD) * 5 i.MX UARTs * 2 EPIT timers * 1 GPT timer * 7 GPIO controllers * 6 SDHC controllers * 5 SPI controllers * 1 CCM device * 1 SRC device * 3 I2C devices * various ROM/RAM areas.
This also adds the sabrelite board as a an actual platform for i.MX6. This series was tested by booting a 4.4 linux kernel (using the imx_v6_v7_defconfig file as kernel configuration). Note1: as sabrelite uses uart2 as console, you have to redirect the second QEMU serial port to stdout. qemu-system-arm -M sabrelite -display none ... -serial null -serial stdio Note2: You need to disable the GPIO section related to physical push buttons in the Linux DTS tree in order to avoid excecive interrupt triggering on GPIO devices for non existant buttons. Jean-Christophe Dubois (12): i.MX: Allow GPT timer to rollover. i.MX: Rename CCM NOCLK to CLK_NONE for naming consistency. i.MX: Remove CCM useless clock computation handling. i.MX: Add the CLK_IPG_HIGH clock i.MX: Add i.MX6 CCM and ANALOG device. ARM: Factor out ARM on/off PSCI control functions i.MX: Add i.MX6 System Reset Controller device. i.MX: Add missing descriptions in devices. FIFO: Add a FIFO32 implementation i.MX: Add the Freescale SPI Controller i.MX: Add i.MX6 SOC implementation. i.MX: Add sabrelite i.MX6 emulation. default-configs/arm-softmmu.mak | 1 + hw/arm/Makefile.objs | 1 + hw/arm/fsl-imx25.c | 1 + hw/arm/fsl-imx31.c | 1 + hw/arm/fsl-imx6.c | 449 +++++++++++++++++++++++ hw/arm/sabrelite.c | 117 ++++++ hw/i2c/imx_i2c.c | 1 + hw/misc/Makefile.objs | 2 + hw/misc/imx25_ccm.c | 29 +- hw/misc/imx31_ccm.c | 35 +- hw/misc/imx6_ccm.c | 774 ++++++++++++++++++++++++++++++++++++++++ hw/misc/imx6_src.c | 260 ++++++++++++++ hw/net/imx_fec.c | 1 + hw/ssi/Makefile.objs | 1 + hw/ssi/imx_spi.c | 459 ++++++++++++++++++++++++ hw/timer/imx_epit.c | 8 +- hw/timer/imx_gpt.c | 43 +-- include/hw/arm/fsl-imx6.h | 450 +++++++++++++++++++++++ include/hw/misc/imx6_ccm.h | 197 ++++++++++ include/hw/misc/imx6_src.h | 73 ++++ include/hw/misc/imx_ccm.h | 10 +- include/hw/ssi/imx_spi.h | 103 ++++++ include/qemu/fifo32.h | 186 ++++++++++ target-arm/Makefile.objs | 1 + target-arm/arm-powerctl.c | 156 ++++++++ target-arm/arm-powerctl.h | 22 ++ target-arm/psci.c | 72 +--- 27 files changed, 3294 insertions(+), 159 deletions(-) create mode 100644 hw/arm/fsl-imx6.c create mode 100644 hw/arm/sabrelite.c create mode 100644 hw/misc/imx6_ccm.c create mode 100644 hw/misc/imx6_src.c create mode 100644 hw/ssi/imx_spi.c create mode 100644 include/hw/arm/fsl-imx6.h create mode 100644 include/hw/misc/imx6_ccm.h create mode 100644 include/hw/misc/imx6_src.h create mode 100644 include/hw/ssi/imx_spi.h create mode 100644 include/qemu/fifo32.h create mode 100644 target-arm/arm-powerctl.c create mode 100644 target-arm/arm-powerctl.h -- 2.5.0