From f5c405ec05f58033cf2d74da4e989104423bf218 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Tue, 16 Feb 2021 17:55:48 -1000 Subject: bsp/motorola_powerpc: Add dc and ukphy support - Add the dc net dev to the BSP - Add the ukphy support Closes # 4246 --- freebsd/sys/dev/dc/if_dc.c | 7 ++++++ freebsd/sys/dev/dc/if_dcreg.h | 7 ++++++ rtemsbsd/include/bsp/nexus-devices.h | 4 ++++ rtemsbsd/include/machine/rtems-bsd-nexus-bus.h | 32 ++++++++++++++++++++++++++ 4 files changed, 50 insertions(+) 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,10 +559,26 @@ 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 */ @@ -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 */ -- cgit v1.2.3