summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2021-02-16 17:55:48 -1000
committerChris Johns <chrisj@rtems.org>2021-08-28 10:23:41 +1000
commitf5c405ec05f58033cf2d74da4e989104423bf218 (patch)
tree4040bc3e97780d6415b7987118d0b3f66ac21162
parenttestsuite: Wait for the link to be UP (diff)
downloadrtems-libbsd-f5c405ec05f58033cf2d74da4e989104423bf218.tar.bz2
bsp/motorola_powerpc: Add dc and ukphy support
- Add the dc net dev to the BSP - Add the ukphy support Closes # 4246
-rw-r--r--freebsd/sys/dev/dc/if_dc.c7
-rw-r--r--freebsd/sys/dev/dc/if_dcreg.h7
-rw-r--r--rtemsbsd/include/bsp/nexus-devices.h4
-rw-r--r--rtemsbsd/include/machine/rtems-bsd-nexus-bus.h32
4 files changed, 50 insertions, 0 deletions
diff --git a/freebsd/sys/dev/dc/if_dc.c b/freebsd/sys/dev/dc/if_dc.c
index 7fc0ef54..b36967da 100644
--- a/freebsd/sys/dev/dc/if_dc.c
+++ b/freebsd/sys/dev/dc/if_dc.c
@@ -156,6 +156,10 @@ MODULE_DEPEND(dc, miibus, 1, 1, 1);
* Various supported device vendors/types and their names.
*/
static const struct dc_type dc_devs[] = {
+#ifdef __rtems__
+ { DC_DEVID(DC_VENDORID_DEC, DC_DEVICEID_21140A), 0,
+ "Intel 21140A 10/100BaseTX" },
+#endif /* __rtems__ */
{ DC_DEVID(DC_VENDORID_DEC, DC_DEVICEID_21143), 0,
"Intel 21143 10/100BaseTX" },
{ DC_DEVID(DC_VENDORID_DAVICOM, DC_DEVICEID_DM9009), 0,
@@ -2076,6 +2080,9 @@ dc_attach(device_t dev)
dc_eeprom_width(sc);
switch (sc->dc_info->dc_devid) {
+#ifdef __rtems__
+ case DC_DEVID(DC_VENDORID_DEC, DC_DEVICEID_21140A):
+#endif /* __rtems__ */
case DC_DEVID(DC_VENDORID_DEC, DC_DEVICEID_21143):
sc->dc_type = DC_TYPE_21143;
sc->dc_flags |= DC_TX_POLL | DC_TX_USE_TX_INTR;
diff --git a/freebsd/sys/dev/dc/if_dcreg.h b/freebsd/sys/dev/dc/if_dcreg.h
index 9ae26cc6..1c5d39a0 100644
--- a/freebsd/sys/dev/dc/if_dcreg.h
+++ b/freebsd/sys/dev/dc/if_dcreg.h
@@ -824,6 +824,13 @@ struct dc_softc {
*/
#define DC_VENDORID_DEC 0x1011
+#ifdef __rtems__
+/*
+ * DEC/Intel 21140 PCI device ID
+ */
+#define DC_DEVICEID_21140A 0x0009
+
+#endif /* __rtems__ */
/*
* DEC/Intel 21143 PCI device ID
*/
diff --git a/rtemsbsd/include/bsp/nexus-devices.h b/rtemsbsd/include/bsp/nexus-devices.h
index 4f2b2c6e..4c13e868 100644
--- a/rtemsbsd/include/bsp/nexus-devices.h
+++ b/rtemsbsd/include/bsp/nexus-devices.h
@@ -217,6 +217,8 @@ RTEMS_BSD_DRIVER_PCI_IGB;
RTEMS_BSD_DRIVER_PCI_EM;
RTEMS_BSD_DRIVER_PCI_RE;
RTEMS_BSD_DRIVER_REPHY;
+RTEMS_BSD_DRIVER_PCI_DC;
+RTEMS_BSD_DRIVER_DCPHY;
#elif defined(LIBBSP_POWERPC_QORIQ_BSP_H)
@@ -258,6 +260,8 @@ SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
#elif defined(LIBBSP_POWERPC_MOTOROLA_POWERPC_BSP_H)
RTEMS_BSD_DRIVER_PC_LEGACY;
+RTEMS_BSD_DRIVER_PCI_DC;
+RTEMS_BSD_DRIVER_UKPHY;
#endif /* LIBBSP_POWERPC_MOTOROLA_POWERPC_BSP_H */
diff --git a/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h b/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h
index fd35a01d..f0987513 100644
--- a/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h
+++ b/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h
@@ -559,11 +559,27 @@ extern "C" {
SYSINIT_DRIVER_REFERENCE(re, pci);
#endif /* RTEMS_BSD_DRIVER_PCI_RE */
+/*
+ * DEC Tulip Driver
+ */
+#if !defined(RTEMS_BSD_DRIVER_PCI_DC)
+ #define RTEMS_BSD_DRIVER_PCI_DC \
+ SYSINIT_DRIVER_REFERENCE(dc, pci);
+#endif /* RTEMS_BSD_DRIVER_PCI_DC */
+
/**
** MMI Physical Layer Support.
**/
/*
+ * UK PHY (for unknown PHY devices)
+ */
+#if !defined(RTEMS_BSD_DRIVER_UKPHY)
+ #define RTEMS_BSD_DRIVER_UKPHY \
+ SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
+#endif /* RTEMS_BSD_DRIVER_UKPHY */
+
+/*
* E1000 PHY
*/
#if !defined(RTEMS_BSD_DRIVER_E1000PHY)
@@ -603,6 +619,22 @@ extern "C" {
SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
#endif /* RTEMS_BSD_DRIVER_UKPHY */
+/*
+ * DC PHY.
+ */
+#if !defined(RTEMS_BSD_DRIVER_DCPHY)
+ #define RTEMS_BSD_DRIVER_DCPHY \
+ SYSINIT_DRIVER_REFERENCE(dcphy, miibus);
+#endif /* RTEMS_BSD_DRIVER_DCPHY */
+
+/*
+ * PN PHY.
+ */
+#if !defined(RTEMS_BSD_DRIVER_PNPHY)
+ #define RTEMS_BSD_DRIVER_PNPHY \
+ SYSINIT_DRIVER_REFERENCE(pnphy, miibus);
+#endif /* RTEMS_BSD_DRIVER_PNPHY */
+
#ifdef __cplusplus
}
#endif /* __cplusplus */