diff options
| author | Michael Brown | 2005-04-13 04:02:08 +0200 |
|---|---|---|
| committer | Michael Brown | 2005-04-13 04:02:08 +0200 |
| commit | 7cc6366a840317923a70ee6e8e619dd673cae11e (patch) | |
| tree | c18b4e1c9c4e16133af839bbe848cd9c592062f9 /src/drivers/net/prism2_pci.c | |
| parent | Finished by hand (diff) | |
| download | ipxe-7cc6366a840317923a70ee6e8e619dd673cae11e.tar.gz ipxe-7cc6366a840317923a70ee6e8e619dd673cae11e.tar.xz ipxe-7cc6366a840317923a70ee6e8e619dd673cae11e.zip | |
Finished by hand
Diffstat (limited to 'src/drivers/net/prism2_pci.c')
| -rw-r--r-- | src/drivers/net/prism2_pci.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/drivers/net/prism2_pci.c b/src/drivers/net/prism2_pci.c index 1d4ea31c..08a698c8 100644 --- a/src/drivers/net/prism2_pci.c +++ b/src/drivers/net/prism2_pci.c @@ -26,5 +26,23 @@ PCI_ROM(0x1260, 0x3873, "dwl520", "DLink DWL-520"), static struct pci_driver prism2_pci_driver = PCI_DRIVER ( "Prism2_PCI", prism2_pci_nics, PCI_NO_CLASS ); +static int prism2_pci_probe ( struct dev *dev ) { + struct nic *nic = nic_device ( dev ); + struct pci_device *pci = pci_device ( dev ); + hfa384x_t *hw = &hw_global; + uint32_t membase = 0; /* Prism2.5 Memory Base */ + + if ( ! find_pci_device ( pci, &prism2_pci_driver ) ) + return 0; + + pci_read_config_dword( pci, PRISM2_PCI_MEM_BASE, &membase); + membase &= PCI_BASE_ADDRESS_MEM_MASK; + hw->membase = (uint32_t) phys_to_virt(membase); + printf ( "Prism2.5 has registers at %#x\n", hw->membase ); + nic->ioaddr = hw->membase; + + return prism2_probe ( nic, hw ); +} + BOOT_DRIVER ( "Prism2_PCI", prism2_pci_probe ); |
