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

6-freebsd-12
Last change on this file since 25a8832 was 25a8832, checked in by Chris Johns <chrisj@…>, on 10/20/21 at 03:15:28

Add support for Xilinx Versal APAC

  • Property mode set to 100644
File size: 7.9 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_AARCH64_XILINX_VERSAL_BSP_H)
130
131#include <bsp/irq.h>
132
133RTEMS_BSD_DRIVER_XILINX_VERSAL_SLCR;
134RTEMS_BSD_DRIVER_XILINX_VERSAL_CGEM0(VERSAL_IRQ_ETHERNET_0);
135RTEMS_BSD_DRIVER_XILINX_VERSAL_CGEM1(VERSAL_IRQ_ETHERNET_1);
136RTEMS_BSD_DRIVER_UKPHY;
137
138#elif defined(LIBBSP_ARM_ATSAM_BSP_H)
139
140RTEMS_BSD_DRIVER_USB;
141RTEMS_BSD_DRIVER_USB_MASS;
142RTEMS_BSD_DRIVER_IF_ATSAM;
143SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
144
145#elif defined(LIBBSP_ARM_ALTERA_CYCLONE_V_BSP_H)
146
147RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL);
148SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus);
149
150RTEMS_BSD_DRIVER_DW_ETH;
151RTEMS_BSD_DRIVER_PHY_MIC;
152
153RTEMS_BSD_DRIVER_DW_OTG;
154RTEMS_BSD_DRIVER_USB;
155RTEMS_BSD_DRIVER_USB_MASS;
156
157RTEMS_BSD_DRIVER_DW_MMC;
158RTEMS_BSD_DRIVER_MMC;
159
160#elif defined(LIBBSP_ARM_IMX_BSP_H)
161
162RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL);
163SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus);
164
165SYSINIT_DRIVER_REFERENCE(ccm, simplebus);
166SYSINIT_DRIVER_REFERENCE(ehci, simplebus);
167SYSINIT_DRIVER_REFERENCE(usbphy, simplebus);
168SYSINIT_DRIVER_REFERENCE(usbus, ehci);
169RTEMS_BSD_DRIVER_USB;
170RTEMS_BSD_DRIVER_USB_MASS;
171
172SYSINIT_DRIVER_REFERENCE(ffec, simplebus);
173SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
174
175SYSINIT_DRIVER_REFERENCE(imx_rtems_gpio, simplebus);
176SYSINIT_DRIVER_REFERENCE(sdhci_fsl, simplebus);
177RTEMS_BSD_DRIVER_MMC;
178
179SYSINIT_DRIVER_REFERENCE(ofw_regulator_bus, simplebus);
180
181#elif defined(LIBBSP_ARM_IMXRT_BSP_H)
182
183RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL);
184SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus);
185
186SYSINIT_DRIVER_REFERENCE(ffec, simplebus);
187SYSINIT_DRIVER_REFERENCE(ksz8091rnb, miibus);
188
189#elif defined(LIBBSP_ARM_LPC24XX_BSP_H)
190
191RTEMS_BSD_DEFINE_NEXUS_DEVICE(ohci, 0, 0, NULL);
192SYSINIT_DRIVER_REFERENCE(usbus, ohci);
193RTEMS_BSD_DRIVER_USB;
194RTEMS_BSD_DRIVER_USB_MASS;
195
196#elif defined(LIBBSP_ARM_STM32H7_BSP_H)
197
198#include <stm32h7xx.h>
199
200RTEMS_BSD_DEFINE_NEXUS_DEVICE(stmac, 0, 0, NULL);
201SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
202
203static const rtems_bsd_device_resource dwcotg_res[] = {
204        {
205                .type = RTEMS_BSD_RES_MEMORY,
206                .start_request = 0,
207                .start_actual = USB2_OTG_FS_PERIPH_BASE
208        }, {
209                .type = RTEMS_BSD_RES_IRQ,
210                .start_request = 0,
211                .start_actual = OTG_FS_IRQn
212        }
213};
214RTEMS_BSD_DEFINE_NEXUS_DEVICE(dwcotg, 0, RTEMS_ARRAY_SIZE(dwcotg_res),
215    dwcotg_res);
216RTEMS_BSD_DRIVER_ST_SDMMC(0, SDMMC1_BASE, DLYB_SDMMC1_BASE, SDMMC1_IRQn);
217RTEMS_BSD_DRIVER_MMC;
218RTEMS_BSD_DRIVER_USB;
219RTEMS_BSD_DRIVER_USB_MASS;
220
221#elif defined(LIBBSP_I386_PC386_BSP_H)
222
223RTEMS_BSD_DRIVER_PC_LEGACY;
224RTEMS_BSD_DRIVER_PCI_LEM;
225RTEMS_BSD_DRIVER_PCI_IGB;
226RTEMS_BSD_DRIVER_PCI_EM;
227RTEMS_BSD_DRIVER_PCI_RE;
228RTEMS_BSD_DRIVER_REPHY;
229RTEMS_BSD_DRIVER_PCI_DC;
230RTEMS_BSD_DRIVER_DCPHY;
231
232#elif defined(LIBBSP_POWERPC_QORIQ_BSP_H)
233
234#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
235
236#include <bsp/irq.h>
237
238#ifdef QORIQ_IS_HYPERVISOR_GUEST
239
240RTEMS_BSD_DEFINE_NEXUS_DEVICE(dpaa_ml, 0, 0, NULL);
241
242#else /* !QORIQ_IS_HYPERVISOR_GUEST */
243
244RTEMS_BSD_DEFINE_NEXUS_DEVICE(fman, 0, 0, NULL);
245RTEMS_BSD_DEFINE_NEXUS_DEVICE(fman, 1, 0, NULL);
246
247SYSINIT_DRIVER_REFERENCE(fman_mac, fman);
248SYSINIT_DRIVER_REFERENCE(fman_port, fman_mac);
249SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
250
251#endif /* QORIQ_IS_HYPERVISOR_GUEST */
252
253#else /* QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) */
254
255#include <bsp/irq.h>
256
257RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL);
258SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus);
259SYSINIT_DRIVER_REFERENCE(tsec, simplebus);
260SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
261
262#endif /* QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) */
263
264#elif defined(LIBBSP_POWERPC_TQM8XX_BSP_H)
265
266RTEMS_BSD_DEFINE_NEXUS_DEVICE(fec, 0, 0, NULL);
267SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
268
269#elif defined(LIBBSP_POWERPC_MOTOROLA_POWERPC_BSP_H)
270
271RTEMS_BSD_DRIVER_PC_LEGACY;
272RTEMS_BSD_DRIVER_PCI_DC;
273RTEMS_BSD_DRIVER_UKPHY;
274
275#endif /* LIBBSP_POWERPC_MOTOROLA_POWERPC_BSP_H */
276
277#endif
Note: See TracBrowser for help on using the repository browser.