[PATCH libbsd 02/11] imx6_ccm: Port to RTEMS
Christian Mauderer
christian.mauderer at embedded-brains.de
Thu Apr 2 14:42:36 UTC 2020
From: Sebastian Huber <sebastian.huber at 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
More information about the devel
mailing list