i.MX25 SOC has a different CCM device than i.MX31. Qemu i.MX25 emulation was built with i.MX31 CCM driver. This allows Linux to work on top of the i.MX25 emultion but this is not correct.
Furthermore, other SOC we could emulate like i.MX6 have yet a different implementation of the CCM device. So we split the i.MX31 into a generic base class and a specific i.MX31 class. We then add an i.MX25 specific CCM Device and have the i.MX25 SOC use it. Jean-Christophe Dubois (3): i.MX: rename i.MX CCM get_clock() function and CLK ID enum names i.MX: Split the CCM class into an abstact base class and a concrete class. i.MX: Add an i.MX25 specific CCM class/instance. hw/arm/fsl-imx25.c | 6 +- hw/arm/fsl-imx31.c | 6 +- hw/misc/Makefile.objs | 2 + hw/misc/imx25_ccm.c | 276 +++++++++++++++++++++++++++++++++++++++ hw/misc/imx31_ccm.c | 306 ++++++++++++++++++++++++++++++++++++++++++++ hw/misc/imx_ccm.c | 226 +++----------------------------- hw/timer/imx_epit.c | 20 ++- hw/timer/imx_gpt.c | 16 +-- include/hw/arm/fsl-imx25.h | 4 +- include/hw/arm/fsl-imx31.h | 4 +- include/hw/misc/imx25_ccm.h | 59 +++++++++ include/hw/misc/imx31_ccm.h | 64 +++++++++ include/hw/misc/imx_ccm.h | 75 ++++------- include/hw/timer/imx_epit.h | 5 +- include/hw/timer/imx_gpt.h | 5 +- 15 files changed, 784 insertions(+), 290 deletions(-) create mode 100644 hw/misc/imx25_ccm.c create mode 100644 hw/misc/imx31_ccm.c create mode 100644 include/hw/misc/imx25_ccm.h create mode 100644 include/hw/misc/imx31_ccm.h -- 2.5.0