From: Sebastian Huber <sebastian.hu...@embedded-brains.de> Update #3869. --- buildset/default.ini | 1 + freebsd/sys/arm/freescale/imx/imx6_ccm.c | 7 +++++++ libbsd.py | 21 +++++++++++++++++++++ rtemsbsd/include/bsp/nexus-devices.h | 2 ++ 4 files changed, 31 insertions(+)
diff --git a/buildset/default.ini b/buildset/default.ini index 43ea82a3..ac8c9c48 100644 --- a/buildset/default.ini +++ b/buildset/default.ini @@ -40,6 +40,7 @@ dhcpcd = on dpaa = on evdev = on fdt = on +imx = on in_cksum = on mdnsresponder = on mmc = on diff --git a/freebsd/sys/arm/freescale/imx/imx6_ccm.c b/freebsd/sys/arm/freescale/imx/imx6_ccm.c index 2993f1d6..cef79933 100644 --- a/freebsd/sys/arm/freescale/imx/imx6_ccm.c +++ b/freebsd/sys/arm/freescale/imx/imx6_ccm.c @@ -92,6 +92,7 @@ WR4(struct ccm_softc *sc, bus_size_t off, uint32_t val) static void ccm_init_gates(struct ccm_softc *sc) { +#ifndef __rtems__ uint32_t reg; /* ahpbdma, aipstz 1 & 2 buses */ @@ -129,6 +130,7 @@ ccm_init_gates(struct ccm_softc *sc) reg = CCGR6_USBOH3 | CCGR6_USDHC1 | CCGR6_USDHC2 | CCGR6_USDHC3 | CCGR6_USDHC4; WR4(sc, CCM_CCGR6, reg); +#endif /* __rtems__ */ } static int @@ -204,7 +206,12 @@ ccm_probe(device_t dev) if (!ofw_bus_status_okay(dev)) return (ENXIO); +#ifndef __rtems__ if (ofw_bus_is_compatible(dev, "fsl,imx6q-ccm") == 0) +#else /* __rtems__ */ + if (ofw_bus_is_compatible(dev, "fsl,imx6q-ccm") == 0 && + ofw_bus_is_compatible(dev, "fsl,imx6ul-ccm") == 0) +#endif /* __rtems__ */ return (ENXIO); device_set_desc(dev, "Freescale i.MX6 Clock Control Module"); diff --git a/libbsd.py b/libbsd.py index d791efe4..eeb1ec4f 100644 --- a/libbsd.py +++ b/libbsd.py @@ -5010,6 +5010,26 @@ class dpaa(builder.Module): mm.generator['source']() ) +class imx(builder.Module): + def __init__(self, manager): + super(imx, self).__init__(manager, type(self).__name__) + + def generate(self): + mm = self.manager + self.addKernelSpaceHeaderFiles( + [ + 'sys/arm/freescale/imx/imx6_ccmreg.h', + 'sys/arm/freescale/imx/imx6_machdep.h', + 'sys/arm/freescale/imx/imx_machdep.h', + ] + ) + self.addKernelSpaceSourceFiles( + [ + 'sys/arm/freescale/imx/imx6_ccm.c', + ], + mm.generator['source']() + ) + # # Tests # @@ -5166,6 +5186,7 @@ def load(mm): mm.addModule(dev_nic_broadcomm(mm)) mm.addModule(nvme(mm)) + mm.addModule(imx(mm)) # Add in_chksum mm.addModule(in_cksum(mm)) diff --git a/rtemsbsd/include/bsp/nexus-devices.h b/rtemsbsd/include/bsp/nexus-devices.h index a916c664..92665409 100644 --- a/rtemsbsd/include/bsp/nexus-devices.h +++ b/rtemsbsd/include/bsp/nexus-devices.h @@ -127,6 +127,8 @@ RTEMS_BSD_DRIVER_MMC; RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL); SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus); +SYSINIT_DRIVER_REFERENCE(ccm, simplebus); + SYSINIT_DRIVER_REFERENCE(ffec, simplebus); SYSINIT_DRIVER_REFERENCE(ukphy, miibus); -- 2.16.4 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel