bsp/motorola_powerpc: Add dc, ukphy and legacy PCI support

- Add the dc net dev to the BSP

- Add the ukphy support

- Add PCI Legacy bus support to the PowerPC

Closes #4514
This commit is contained in:
Chris Johns 2021-02-16 17:55:48 -10:00
parent afb361690c
commit 332cc9f47b
7 changed files with 43 additions and 2 deletions

View File

@ -156,6 +156,10 @@ MODULE_DEPEND(dc, miibus, 1, 1, 1);
* Various supported device vendors/types and their names. * Various supported device vendors/types and their names.
*/ */
static const struct dc_type dc_devs[] = { 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, { DC_DEVID(DC_VENDORID_DEC, DC_DEVICEID_21143), 0,
"Intel 21143 10/100BaseTX" }, "Intel 21143 10/100BaseTX" },
{ DC_DEVID(DC_VENDORID_DAVICOM, DC_DEVICEID_DM9009), 0, { DC_DEVID(DC_VENDORID_DAVICOM, DC_DEVICEID_DM9009), 0,
@ -2076,6 +2080,9 @@ dc_attach(device_t dev)
dc_eeprom_width(sc); dc_eeprom_width(sc);
switch (sc->dc_info->dc_devid) { 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): case DC_DEVID(DC_VENDORID_DEC, DC_DEVICEID_21143):
sc->dc_type = DC_TYPE_21143; sc->dc_type = DC_TYPE_21143;
sc->dc_flags |= DC_TX_POLL | DC_TX_USE_TX_INTR; sc->dc_flags |= DC_TX_POLL | DC_TX_USE_TX_INTR;

View File

@ -824,6 +824,13 @@ struct dc_softc {
*/ */
#define DC_VENDORID_DEC 0x1011 #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 * DEC/Intel 21143 PCI device ID
*/ */

View File

@ -2639,7 +2639,7 @@ class pci(builder.Module):
] ]
) )
self.addCPUDependentFreeBSDSourceFiles( self.addCPUDependentFreeBSDSourceFiles(
[ 'i386' ], [ 'i386', 'powerpc' ],
[ [
'sys/x86/x86/legacy.c', 'sys/x86/x86/legacy.c',
'sys/x86/pci/pci_bus.c', 'sys/x86/pci/pci_bus.c',

View File

@ -197,6 +197,12 @@ SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
RTEMS_BSD_DEFINE_NEXUS_DEVICE(fec, 0, 0, NULL); RTEMS_BSD_DEFINE_NEXUS_DEVICE(fec, 0, 0, NULL);
SYSINIT_DRIVER_REFERENCE(ukphy, miibus); SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
#endif #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 */
#endif #endif

View File

@ -77,6 +77,7 @@
* RTEMS_BSD_DRIVER_ICSPHY * RTEMS_BSD_DRIVER_ICSPHY
* RTEMS_BSD_DRIVER_REPHY * RTEMS_BSD_DRIVER_REPHY
* RTEMS_BSD_DRIVER_PHY_MIC * RTEMS_BSD_DRIVER_PHY_MIC
* RTEMS_BSD_DRIVER_UKPHY
*/ */
#if !defined(RTEMS_BSD_NEXUS_BUS_h) #if !defined(RTEMS_BSD_NEXUS_BUS_h)
@ -441,6 +442,14 @@ extern "C" {
SYSINIT_DRIVER_REFERENCE(re, pci); SYSINIT_DRIVER_REFERENCE(re, pci);
#endif /* RTEMS_BSD_DRIVER_PCI_RE */ #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. ** MMI Physical Layer Support.
**/ **/
@ -477,6 +486,14 @@ extern "C" {
SYSINIT_DRIVER_REFERENCE(micphy, miibus); SYSINIT_DRIVER_REFERENCE(micphy, miibus);
#endif /* RTEMS_BSD_DRIVER_PHY_MIC */ #endif /* RTEMS_BSD_DRIVER_PHY_MIC */
/*
* 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 */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@ -0,0 +1,2 @@
/* See freebsd/sys/x86/include/machine/legacyvar.h */
#include <x86/include/machine/legacyvar.h>

View File

@ -0,0 +1,2 @@
/* See freebsd/sys/x86/include/machine/pci_cfgreg.h */
#include <x86/include/machine/pci_cfgreg.h>