diff options
author | Chris Johns <chrisj@rtems.org> | 2021-02-16 17:55:48 -1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2021-08-28 10:23:41 +1000 |
commit | f5c405ec05f58033cf2d74da4e989104423bf218 (patch) | |
tree | 4040bc3e97780d6415b7987118d0b3f66ac21162 | |
parent | testsuite: Wait for the link to be UP (diff) | |
download | rtems-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.c | 7 | ||||
-rw-r--r-- | freebsd/sys/dev/dc/if_dcreg.h | 7 | ||||
-rw-r--r-- | rtemsbsd/include/bsp/nexus-devices.h | 4 | ||||
-rw-r--r-- | rtemsbsd/include/machine/rtems-bsd-nexus-bus.h | 32 |
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 */ |