[rtems-libbsd commit] rtemsbsd/versal: Add SDHCI Driver support

Chris Johns chrisj at rtems.org
Tue Nov 22 02:40:46 UTC 2022


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

Author:    Aaron Nyholm <aaron.nyholm at southerninnovation.com>
Date:      Tue Nov 22 09:28:09 2022 +1100

rtemsbsd/versal: Add SDHCI Driver support

Tested on VCK190

Closes #4762

---

 rtemsbsd/include/bsp/nexus-devices.h           |  4 +++
 rtemsbsd/include/machine/rtems-bsd-nexus-bus.h | 45 ++++++++++----------------
 2 files changed, 21 insertions(+), 28 deletions(-)

diff --git a/rtemsbsd/include/bsp/nexus-devices.h b/rtemsbsd/include/bsp/nexus-devices.h
index 8f3f437e..43a08207 100644
--- a/rtemsbsd/include/bsp/nexus-devices.h
+++ b/rtemsbsd/include/bsp/nexus-devices.h
@@ -131,6 +131,10 @@ RTEMS_BSD_DRIVER_XILINX_VERSAL_CGEM0(VERSAL_IRQ_ETHERNET_0);
 RTEMS_BSD_DRIVER_XILINX_VERSAL_CGEM1(VERSAL_IRQ_ETHERNET_1);
 RTEMS_BSD_DRIVER_UKPHY;
 
+RTEMS_BSD_DRIVER_XILINX_VERSAL_SDHCI0;
+RTEMS_BSD_DRIVER_XILINX_VERSAL_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 9e1e725a..9481375b 100644
--- a/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h
+++ b/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h
@@ -160,10 +160,10 @@ extern "C" {
 #endif /* RTEMS_BSD_DRIVER_XILINX_VERSAL_SLCR */
 
 /*
- * Xilinx ZynqMP Arasan SDIO Driver.
+ * Xilinx Arasan SDIO Driver.
  */
-#if !defined(RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI)
-  #define RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI(_num, _base, _irq)                     \
+#if !defined(RTEMS_BSD_DRIVER_ARASAN_SDHCI)
+  #define RTEMS_BSD_DRIVER_ARASAN_SDHCI(_num, _base, _irq)                     \
     static const rtems_bsd_device_resource arasan_sdhci ## _num ## _res[] = {       \
       {                                                                             \
         .type = RTEMS_BSD_RES_MEMORY,                                               \
@@ -178,45 +178,34 @@ extern "C" {
     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 */
+#endif /* RTEMS_BSD_DRIVER_ARASAN_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)
+    RTEMS_BSD_DRIVER_ARASAN_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)
+    RTEMS_BSD_DRIVER_ARASAN_SDHCI(1, 0xFF170000, 81)
 #endif /* RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI1 */
 
-/*
- * Xilinx Zynq Arasan SDIO Driver.
- */
-#if !defined(RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI)
-  #define RTEMS_BSD_DRIVER_XILINX_ZYNQ_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_ZYNQ_SDHCI */
 #if !defined(RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI0)
   #define RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI0                \
-    RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI(0, 0xE0100000, 56)
+    RTEMS_BSD_DRIVER_ARASAN_SDHCI(0, 0xE0100000, 56)
 #endif /* RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI0 */
 #if !defined(RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI1)
   #define RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI1                \
-    RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI(1, 0xE0101000, 79)
+    RTEMS_BSD_DRIVER_ARASAN_SDHCI(1, 0xE0101000, 79)
 #endif /* RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI1 */
 
+#if !defined(RTEMS_BSD_DRIVER_XILINX_VERSAL_SDHCI0)
+  #define RTEMS_BSD_DRIVER_XILINX_VERSAL_SDHCI0                \
+    RTEMS_BSD_DRIVER_ARASAN_SDHCI(0, 0xF1040000, 158)
+#endif /* RTEMS_BSD_DRIVER_XILINX_VERSAL_SDHCI0 */
+#if !defined(RTEMS_BSD_DRIVER_XILINX_VERSAL_SDHCI1)
+  #define RTEMS_BSD_DRIVER_XILINX_VERSAL_SDHCI1                \
+    RTEMS_BSD_DRIVER_ARASAN_SDHCI(1, 0xF1050000, 160)
+#endif /* RTEMS_BSD_DRIVER_XILINX_VERSAL_SDHCI1 */
+
 /*
  * LPC32XX Power Control (PWR).
  */



More information about the vc mailing list