[rtems-libbsd commit] nexus: Added SDHCI driver to ZynqMP

Joel Sherrill joel at rtems.org
Thu Jul 15 16:30:13 UTC 2021


Module:    rtems-libbsd
Branch:    6-freebsd-12
Commit:    c41318075ee34ca1891dc7df8a3ea09142b50bf9
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=c41318075ee34ca1891dc7df8a3ea09142b50bf9

Author:    Stephen Clark <stephen.clark at oarcorp.com>
Date:      Mon Jul 12 11:41:52 2021 -0500

nexus: Added SDHCI driver to ZynqMP

Made ZynqMP build with the SDHCI driver.

---

 rtemsbsd/include/bsp/nexus-devices.h           |  4 ++++
 rtemsbsd/include/machine/rtems-bsd-nexus-bus.h | 29 ++++++++++++++++++++++++++
 2 files changed, 33 insertions(+)

diff --git a/rtemsbsd/include/bsp/nexus-devices.h b/rtemsbsd/include/bsp/nexus-devices.h
index 9486083..4f2b2c6 100644
--- a/rtemsbsd/include/bsp/nexus-devices.h
+++ b/rtemsbsd/include/bsp/nexus-devices.h
@@ -122,6 +122,10 @@ RTEMS_BSD_DRIVER_XILINX_ZYNQMP_CGEM3(ZYNQMP_IRQ_ETHERNET_3);
 RTEMS_BSD_DRIVER_E1000PHY;
 RTEMS_BSD_DRIVER_UKPHY;
 
+RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI0;
+RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI1;
+RTEMS_BSD_DRIVER_MMC;
+
 #elif defined(LIBBSP_ARM_ATSAM_BSP_H)
 
 RTEMS_BSD_DRIVER_USB;
diff --git a/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h b/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h
index ccf8efa..fd35a01 100644
--- a/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h
+++ b/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h
@@ -140,6 +140,35 @@ extern "C" {
 #endif /* RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SLCR */
 
 /*
+ * Xilinx ZynqMP Arasan SDIO Driver.
+ */
+#if !defined(RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI)
+  #define RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI(_num, _base, _irq)                     \
+    static const rtems_bsd_device_resource arasan_sdhci ## _num ## _res[] = {       \
+      {                                                                             \
+        .type = RTEMS_BSD_RES_MEMORY,                                               \
+        .start_request = 0,                                                         \
+        .start_actual = (_base)                                                     \
+      }, {                                                                          \
+        .type = RTEMS_BSD_RES_IRQ,                                                  \
+        .start_request = 0,                                                         \
+        .start_actual = (_irq)                                                      \
+      }                                                                             \
+    };                                                                              \
+    RTEMS_BSD_DEFINE_NEXUS_DEVICE(arasan_sdhci, _num,                               \
+                                  RTEMS_ARRAY_SIZE(arasan_sdhci ## _num ## _res),      \
+                                  &arasan_sdhci ## _num ## _res[0])
+#endif /* RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI */
+#if !defined(RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI0)
+  #define RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI0                \
+    RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI(0, 0xFF160000, 80)
+#endif /* RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI0 */
+#if !defined(RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI1)
+  #define RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI1                \
+    RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI(1, 0xFF170000, 81)
+#endif /* RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI1 */
+
+/*
  * Xilinx Zynq Arasan SDIO Driver.
  */
 #if !defined(RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI)



More information about the vc mailing list