summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Nyholm <aaron.nyholm@southerninnovation.com>2022-11-22 09:28:09 +1100
committerChris Johns <chrisj@rtems.org>2022-11-22 13:53:27 +1100
commita39a6a249fe5c2bf4c75589a5c00ae4fad28c6d6 (patch)
treec786c80af2c1c79d51359dca12b745cd224924a4
parentnexus/zynqmp: Use device trees for CGEM (diff)
downloadrtems-libbsd-a39a6a249fe5c2bf4c75589a5c00ae4fad28c6d6.tar.bz2
rtemsbsd/versal: Add SDHCI Driver support
Tested on VCK190 Closes #4762
-rw-r--r--rtemsbsd/include/bsp/nexus-devices.h4
-rw-r--r--rtemsbsd/include/machine/rtems-bsd-nexus-bus.h45
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).
*/