source: rtems-libbsd/rtemsbsd/include/bsp/nexus-devices.h @ efd75d2

6-freebsd-12
Last change on this file since efd75d2 was c413180, checked in by Stephen Clark <stephen.clark@…>, on 07/12/21 at 16:41:52

nexus: Added SDHCI driver to ZynqMP

Made ZynqMP build with the SDHCI driver.

  • Property mode set to 100644
File size: 7.6 KB
Line 
1/*
2 * Copyright (c) 2013, 2018 embedded brains GmbH.  All rights reserved.
3 *
4 *  embedded brains GmbH
5 *  Dornierstr. 4
6 *  82178 Puchheim
7 *  Germany
8 *  <rtems@embedded-brains.de>
9 *
10 * Copyright (c) 2016 Chris Johns <chrisj@rtems.org> All rights reserved.
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 * 1. Redistributions of source code must retain the above copyright
16 *    notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright
18 *    notice, this list of conditions and the following disclaimer in the
19 *    documentation and/or other materials provided with the distribution.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#if !defined(BSP_NEXUS_DEVICES_h)
35#define BSP_NEXUS_DEVICES_h
36
37#include <bsp.h>
38
39#include <rtems/bsd/bsd.h>
40#include <rtems/bsd/modules.h>
41#include <machine/rtems-bsd-nexus-bus.h>
42
43
44#if defined(LIBBSP_ARM_REALVIEW_PBX_A9_BSP_H)
45
46#include <bsp/irq.h>
47
48RTEMS_BSD_DRIVER_SMC0(0x4e000000,  RVPBXA9_IRQ_ETHERNET);
49
50#elif defined(LIBBSP_ARM_BEAGLE_BSP_H)
51
52#include <bsp/irq.h>
53
54RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL);
55SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus);
56SYSINIT_DRIVER_REFERENCE(ti_scm, simplebus);
57SYSINIT_DRIVER_REFERENCE(am335x_prcm, simplebus);
58SYSINIT_DRIVER_REFERENCE(usbss, simplebus);
59SYSINIT_DRIVER_REFERENCE(musbotg, usbss);
60SYSINIT_DRIVER_REFERENCE(sdhci_ti, simplebus);
61SYSINIT_DRIVER_REFERENCE(mmcsd, mmc);
62SYSINIT_DRIVER_REFERENCE(cpsw, cpswss);
63SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
64#ifdef RTEMS_BSD_MODULE_NET80211
65SYSINIT_DRIVER_REFERENCE(rtwn_usb, uhub);
66SYSINIT_MODULE_REFERENCE(wlan_ratectl_none);
67SYSINIT_MODULE_REFERENCE(wlan_sta);
68SYSINIT_MODULE_REFERENCE(wlan_amrr);
69SYSINIT_MODULE_REFERENCE(wlan_wep);
70SYSINIT_MODULE_REFERENCE(wlan_tkip);
71SYSINIT_MODULE_REFERENCE(wlan_ccmp);
72SYSINIT_REFERENCE(rtwn_rtl8188eufw);
73#endif /* RTEMS_BSD_MODULE_NET80211 */
74
75RTEMS_BSD_DRIVER_USB;
76RTEMS_BSD_DRIVER_USB_MASS;
77
78#elif defined(LIBBSP_ARM_LPC32XX_BSP_H)
79
80#include <bsp/irq.h>
81
82RTEMS_BSD_DRIVER_LPC32XX_PWR;
83RTEMS_BSD_DRIVER_LPC32XX_LPE;
84RTEMS_BSD_DRIVER_LPC32XX_TSC;
85RTEMS_BSD_DRIVER_ICSPHY;
86RTEMS_BSD_DRIVER_LPC32XX_OHCI;
87SYSINIT_DRIVER_REFERENCE(usbus, ohci);
88RTEMS_BSD_DRIVER_USB;
89RTEMS_BSD_DRIVER_USB_MASS;
90
91#elif defined(LIBBSP_M68K_GENMCF548X_BSP_H)
92
93RTEMS_BSD_DRIVER_FEC;
94
95#elif defined(LIBBSP_ARM_XILINX_ZYNQ_BSP_H)
96
97#include <bsp/irq.h>
98
99RTEMS_BSD_DRIVER_XILINX_ZYNQ_SLCR;
100RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI0;
101RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI1;
102RTEMS_BSD_DRIVER_XILINX_ZYNQ_CGEM0(ZYNQ_IRQ_ETHERNET_0);
103RTEMS_BSD_DRIVER_E1000PHY;
104RTEMS_BSD_DRIVER_MMC;
105
106#elif defined(LIBBSP_AARCH64_XILINX_ZYNQMP_BSP_H)
107
108#include <bsp/irq.h>
109
110RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SLCR;
111/* Qemu only applies user-mode networking to the first interface by default, so
112 * all 4 CGEM instances must be configured in the Qemu arguments using
113 * "-nic user,model=cadence_gem" for each nic.
114 *
115 * CGEM3 is used for LibBSD because all Zynq Ultrascale+ MPSoC dev boards treat
116 * the highest-mapped CGEM as the primary interface.
117 */
118RTEMS_BSD_DRIVER_XILINX_ZYNQMP_CGEM0(ZYNQMP_IRQ_ETHERNET_0);
119RTEMS_BSD_DRIVER_XILINX_ZYNQMP_CGEM1(ZYNQMP_IRQ_ETHERNET_1);
120RTEMS_BSD_DRIVER_XILINX_ZYNQMP_CGEM2(ZYNQMP_IRQ_ETHERNET_2);
121RTEMS_BSD_DRIVER_XILINX_ZYNQMP_CGEM3(ZYNQMP_IRQ_ETHERNET_3);
122RTEMS_BSD_DRIVER_E1000PHY;
123RTEMS_BSD_DRIVER_UKPHY;
124
125RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI0;
126RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI1;
127RTEMS_BSD_DRIVER_MMC;
128
129#elif defined(LIBBSP_ARM_ATSAM_BSP_H)
130
131RTEMS_BSD_DRIVER_USB;
132RTEMS_BSD_DRIVER_USB_MASS;
133RTEMS_BSD_DRIVER_IF_ATSAM;
134SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
135
136#elif defined(LIBBSP_ARM_ALTERA_CYCLONE_V_BSP_H)
137
138RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL);
139SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus);
140
141RTEMS_BSD_DRIVER_DW_ETH;
142RTEMS_BSD_DRIVER_PHY_MIC;
143
144RTEMS_BSD_DRIVER_DW_OTG;
145RTEMS_BSD_DRIVER_USB;
146RTEMS_BSD_DRIVER_USB_MASS;
147
148RTEMS_BSD_DRIVER_DW_MMC;
149RTEMS_BSD_DRIVER_MMC;
150
151#elif defined(LIBBSP_ARM_IMX_BSP_H)
152
153RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL);
154SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus);
155
156SYSINIT_DRIVER_REFERENCE(ccm, simplebus);
157SYSINIT_DRIVER_REFERENCE(ehci, simplebus);
158SYSINIT_DRIVER_REFERENCE(usbphy, simplebus);
159SYSINIT_DRIVER_REFERENCE(usbus, ehci);
160RTEMS_BSD_DRIVER_USB;
161RTEMS_BSD_DRIVER_USB_MASS;
162
163SYSINIT_DRIVER_REFERENCE(ffec, simplebus);
164SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
165
166SYSINIT_DRIVER_REFERENCE(imx_rtems_gpio, simplebus);
167SYSINIT_DRIVER_REFERENCE(sdhci_fsl, simplebus);
168RTEMS_BSD_DRIVER_MMC;
169
170SYSINIT_DRIVER_REFERENCE(ofw_regulator_bus, simplebus);
171
172#elif defined(LIBBSP_ARM_IMXRT_BSP_H)
173
174RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL);
175SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus);
176
177SYSINIT_DRIVER_REFERENCE(ffec, simplebus);
178SYSINIT_DRIVER_REFERENCE(ksz8091rnb, miibus);
179
180#elif defined(LIBBSP_ARM_LPC24XX_BSP_H)
181
182RTEMS_BSD_DEFINE_NEXUS_DEVICE(ohci, 0, 0, NULL);
183SYSINIT_DRIVER_REFERENCE(usbus, ohci);
184RTEMS_BSD_DRIVER_USB;
185RTEMS_BSD_DRIVER_USB_MASS;
186
187#elif defined(LIBBSP_ARM_STM32H7_BSP_H)
188
189#include <stm32h7xx.h>
190
191RTEMS_BSD_DEFINE_NEXUS_DEVICE(stmac, 0, 0, NULL);
192SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
193
194static const rtems_bsd_device_resource dwcotg_res[] = {
195        {
196                .type = RTEMS_BSD_RES_MEMORY,
197                .start_request = 0,
198                .start_actual = USB2_OTG_FS_PERIPH_BASE
199        }, {
200                .type = RTEMS_BSD_RES_IRQ,
201                .start_request = 0,
202                .start_actual = OTG_FS_IRQn
203        }
204};
205RTEMS_BSD_DEFINE_NEXUS_DEVICE(dwcotg, 0, RTEMS_ARRAY_SIZE(dwcotg_res),
206    dwcotg_res);
207RTEMS_BSD_DRIVER_ST_SDMMC(0, SDMMC1_BASE, DLYB_SDMMC1_BASE, SDMMC1_IRQn);
208RTEMS_BSD_DRIVER_MMC;
209RTEMS_BSD_DRIVER_USB;
210RTEMS_BSD_DRIVER_USB_MASS;
211
212#elif defined(LIBBSP_I386_PC386_BSP_H)
213
214RTEMS_BSD_DRIVER_PC_LEGACY;
215RTEMS_BSD_DRIVER_PCI_LEM;
216RTEMS_BSD_DRIVER_PCI_IGB;
217RTEMS_BSD_DRIVER_PCI_EM;
218RTEMS_BSD_DRIVER_PCI_RE;
219RTEMS_BSD_DRIVER_REPHY;
220
221#elif defined(LIBBSP_POWERPC_QORIQ_BSP_H)
222
223#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
224
225#include <bsp/irq.h>
226
227#ifdef QORIQ_IS_HYPERVISOR_GUEST
228
229RTEMS_BSD_DEFINE_NEXUS_DEVICE(dpaa_ml, 0, 0, NULL);
230
231#else /* !QORIQ_IS_HYPERVISOR_GUEST */
232
233RTEMS_BSD_DEFINE_NEXUS_DEVICE(fman, 0, 0, NULL);
234RTEMS_BSD_DEFINE_NEXUS_DEVICE(fman, 1, 0, NULL);
235
236SYSINIT_DRIVER_REFERENCE(fman_mac, fman);
237SYSINIT_DRIVER_REFERENCE(fman_port, fman_mac);
238SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
239
240#endif /* QORIQ_IS_HYPERVISOR_GUEST */
241
242#else /* QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) */
243
244#include <bsp/irq.h>
245
246RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL);
247SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus);
248SYSINIT_DRIVER_REFERENCE(tsec, simplebus);
249SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
250
251#endif /* QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) */
252
253#elif defined(LIBBSP_POWERPC_TQM8XX_BSP_H)
254
255RTEMS_BSD_DEFINE_NEXUS_DEVICE(fec, 0, 0, NULL);
256SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
257
258#elif defined(LIBBSP_POWERPC_MOTOROLA_POWERPC_BSP_H)
259
260RTEMS_BSD_DRIVER_PC_LEGACY;
261
262#endif /* LIBBSP_POWERPC_MOTOROLA_POWERPC_BSP_H */
263
264#endif
Note: See TracBrowser for help on using the repository browser.