diff options
author | Michael Brown <mcb30@etherboot.org> | 2005-04-13 02:02:08 +0000 |
---|---|---|
committer | Michael Brown <mcb30@etherboot.org> | 2005-04-13 02:02:08 +0000 |
commit | 7cc6366a840317923a70ee6e8e619dd673cae11e (patch) | |
tree | c18b4e1c9c4e16133af839bbe848cd9c592062f9 /src/drivers/net/prism2_pci.c | |
parent | 951e305081bc77ccaefeb076f05cdab72bdcd8ef (diff) | |
download | ipxe-7cc6366a840317923a70ee6e8e619dd673cae11e.tar.gz |
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 1d4ea31c1..08a698c8b 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 ); |