Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/nfe/if_nfe.c
Show First 20 Lines • Show All 177 Lines • ▼ Show 20 Lines | |||||
static driver_t nfe_driver = { | static driver_t nfe_driver = { | ||||
"nfe", | "nfe", | ||||
nfe_methods, | nfe_methods, | ||||
sizeof(struct nfe_softc) | sizeof(struct nfe_softc) | ||||
}; | }; | ||||
static devclass_t nfe_devclass; | static devclass_t nfe_devclass; | ||||
DRIVER_MODULE(nfe, pci, nfe_driver, nfe_devclass, 0, 0); | struct pci_device_table nfe_devs[] = { | ||||
DRIVER_MODULE(miibus, nfe, miibus_driver, miibus_devclass, 0, 0); | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE_LAN), | ||||
PCI_DESCR("NVIDIA nForce MCP Networking Adapter")}, | |||||
static struct nfe_type nfe_devs[] = { | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE2_LAN), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE_LAN, | PCI_DESCR("NVIDIA nForce2 MCP2 Networking Adapter")}, | ||||
"NVIDIA nForce MCP Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE2_400_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE2_LAN, | PCI_DESCR("NVIDIA nForce2 400 MCP4 Networking Adapter")}, | ||||
"NVIDIA nForce2 MCP2 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE2_400_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE2_400_LAN1, | PCI_DESCR("NVIDIA nForce2 400 MCP5 Networking Adapter")}, | ||||
"NVIDIA nForce2 400 MCP4 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE3_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE2_400_LAN2, | PCI_DESCR("NVIDIA nForce3 MCP3 Networking Adapter")}, | ||||
"NVIDIA nForce2 400 MCP5 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE3_250_LAN), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE3_LAN1, | PCI_DESCR("NVIDIA nForce3 250 MCP6 Networking Adapter")}, | ||||
"NVIDIA nForce3 MCP3 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE3_LAN4), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE3_250_LAN, | PCI_DESCR("NVIDIA nForce3 MCP7 Networking Adapter")}, | ||||
"NVIDIA nForce3 250 MCP6 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE4_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE3_LAN4, | PCI_DESCR("NVIDIA nForce4 CK804 MCP8 Networking Adapter")}, | ||||
"NVIDIA nForce3 MCP7 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE4_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE4_LAN1, | PCI_DESCR("NVIDIA nForce4 CK804 MCP9 Networking Adapter")}, | ||||
"NVIDIA nForce4 CK804 MCP8 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP04_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE4_LAN2, | PCI_DESCR("NVIDIA nForce MCP04 Networking Adapter")}, /* MCP10 */ | ||||
"NVIDIA nForce4 CK804 MCP9 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP04_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP04_LAN1, | PCI_DESCR("NVIDIA nForce MCP04 Networking Adapter")}, /* MCP11 */ | ||||
"NVIDIA nForce MCP04 Networking Adapter"}, /* MCP10 */ | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE430_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP04_LAN2, | PCI_DESCR("NVIDIA nForce 430 MCP12 Networking Adapter")}, | ||||
"NVIDIA nForce MCP04 Networking Adapter"}, /* MCP11 */ | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE430_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE430_LAN1, | PCI_DESCR("NVIDIA nForce 430 MCP13 Networking Adapter")}, | ||||
"NVIDIA nForce 430 MCP12 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP55_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_NFORCE430_LAN2, | PCI_DESCR("NVIDIA nForce MCP55 Networking Adapter")}, | ||||
"NVIDIA nForce 430 MCP13 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP55_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP55_LAN1, | PCI_DESCR("NVIDIA nForce MCP55 Networking Adapter")}, | ||||
"NVIDIA nForce MCP55 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP61_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP55_LAN2, | PCI_DESCR("NVIDIA nForce MCP61 Networking Adapter")}, | ||||
"NVIDIA nForce MCP55 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP61_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP61_LAN1, | PCI_DESCR("NVIDIA nForce MCP61 Networking Adapter")}, | ||||
"NVIDIA nForce MCP61 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP61_LAN3), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP61_LAN2, | PCI_DESCR("NVIDIA nForce MCP61 Networking Adapter")}, | ||||
"NVIDIA nForce MCP61 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP61_LAN4), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP61_LAN3, | PCI_DESCR("NVIDIA nForce MCP61 Networking Adapter")}, | ||||
"NVIDIA nForce MCP61 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP61_LAN4, | PCI_DESCR("NVIDIA nForce MCP65 Networking Adapter")}, | ||||
"NVIDIA nForce MCP61 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_LAN1, | PCI_DESCR("NVIDIA nForce MCP65 Networking Adapter")}, | ||||
"NVIDIA nForce MCP65 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_LAN3), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_LAN2, | PCI_DESCR("NVIDIA nForce MCP65 Networking Adapter")}, | ||||
"NVIDIA nForce MCP65 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_LAN4), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_LAN3, | PCI_DESCR("NVIDIA nForce MCP65 Networking Adapter")}, | ||||
"NVIDIA nForce MCP65 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP67_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_LAN4, | PCI_DESCR("NVIDIA nForce MCP67 Networking Adapter")}, | ||||
"NVIDIA nForce MCP65 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP67_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP67_LAN1, | PCI_DESCR("NVIDIA nForce MCP67 Networking Adapter")}, | ||||
"NVIDIA nForce MCP67 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP67_LAN3), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP67_LAN2, | PCI_DESCR("NVIDIA nForce MCP67 Networking Adapter")}, | ||||
"NVIDIA nForce MCP67 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP67_LAN4), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP67_LAN3, | PCI_DESCR("NVIDIA nForce MCP67 Networking Adapter")}, | ||||
"NVIDIA nForce MCP67 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP73_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP67_LAN4, | PCI_DESCR("NVIDIA nForce MCP73 Networking Adapter")}, | ||||
"NVIDIA nForce MCP67 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP73_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP73_LAN1, | PCI_DESCR("NVIDIA nForce MCP73 Networking Adapter")}, | ||||
"NVIDIA nForce MCP73 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP73_LAN3), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP73_LAN2, | PCI_DESCR("NVIDIA nForce MCP73 Networking Adapter")}, | ||||
"NVIDIA nForce MCP73 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP73_LAN4), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP73_LAN3, | PCI_DESCR("NVIDIA nForce MCP73 Networking Adapter")}, | ||||
"NVIDIA nForce MCP73 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP73_LAN4, | PCI_DESCR("NVIDIA nForce MCP77 Networking Adapter")}, | ||||
"NVIDIA nForce MCP73 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_LAN1, | PCI_DESCR("NVIDIA nForce MCP77 Networking Adapter")}, | ||||
"NVIDIA nForce MCP77 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_LAN3), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_LAN2, | PCI_DESCR("NVIDIA nForce MCP77 Networking Adapter")}, | ||||
"NVIDIA nForce MCP77 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_LAN4), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_LAN3, | PCI_DESCR("NVIDIA nForce MCP77 Networking Adapter")}, | ||||
"NVIDIA nForce MCP77 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP79_LAN1), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_LAN4, | PCI_DESCR("NVIDIA nForce MCP79 Networking Adapter")}, | ||||
"NVIDIA nForce MCP77 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP79_LAN2), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP79_LAN1, | PCI_DESCR("NVIDIA nForce MCP79 Networking Adapter")}, | ||||
"NVIDIA nForce MCP79 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP79_LAN3), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP79_LAN2, | PCI_DESCR("NVIDIA nForce MCP79 Networking Adapter")}, | ||||
"NVIDIA nForce MCP79 Networking Adapter"}, | {PCI_DEV(PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP79_LAN4), | ||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP79_LAN3, | PCI_DESCR("NVIDIA nForce MCP79 Networking Adapter")} | ||||
"NVIDIA nForce MCP79 Networking Adapter"}, | |||||
{PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP79_LAN4, | |||||
"NVIDIA nForce MCP79 Networking Adapter"}, | |||||
{0, 0, NULL} | |||||
}; | }; | ||||
DRIVER_MODULE(nfe, pci, nfe_driver, nfe_devclass, 0, 0); | |||||
PCI_PNP_INFO(nfe_devs); | |||||
DRIVER_MODULE(miibus, nfe, miibus_driver, miibus_devclass, 0, 0); | |||||
/* Probe for supported hardware ID's */ | /* Probe for supported hardware ID's */ | ||||
static int | static int | ||||
nfe_probe(device_t dev) | nfe_probe(device_t dev) | ||||
{ | { | ||||
struct nfe_type *t; | const struct pci_device_table *nfed; | ||||
t = nfe_devs; | nfed = PCI_MATCH(dev, nfe_devs); | ||||
/* Check for matching PCI DEVICE ID's */ | if (nfed == NULL) | ||||
while (t->name != NULL) { | |||||
if ((pci_get_vendor(dev) == t->vid_id) && | |||||
(pci_get_device(dev) == t->dev_id)) { | |||||
device_set_desc(dev, t->name); | |||||
return (BUS_PROBE_DEFAULT); | |||||
} | |||||
t++; | |||||
} | |||||
return (ENXIO); | return (ENXIO); | ||||
device_set_desc(dev, nfed->descr); | |||||
return (BUS_PROBE_DEFAULT); | |||||
} | } | ||||
static void | static void | ||||
nfe_alloc_msix(struct nfe_softc *sc, int count) | nfe_alloc_msix(struct nfe_softc *sc, int count) | ||||
{ | { | ||||
int rid; | int rid; | ||||
rid = PCIR_BAR(2); | rid = PCIR_BAR(2); | ||||
▲ Show 20 Lines • Show All 3,116 Lines • Show Last 20 Lines |