diff options
author | Wolfgang Denk <wd@denx.de> | 2009-08-21 23:03:58 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2009-08-21 23:03:58 +0200 |
commit | db81c0d27654ed18b12ba94f05f9578294cb62ed (patch) | |
tree | ef3af435e6559eae353a07cb3af999da60d4b212 /drivers/net/e1000.c | |
parent | 269610f6ba2e4a7bc27d2e53d43160614016964f (diff) | |
parent | b1e849f2201bbbf3ca81fde164f154f9caf7f0e9 (diff) | |
download | u-boot-imx-db81c0d27654ed18b12ba94f05f9578294cb62ed.zip u-boot-imx-db81c0d27654ed18b12ba94f05f9578294cb62ed.tar.gz u-boot-imx-db81c0d27654ed18b12ba94f05f9578294cb62ed.tar.bz2 |
Merge branch 'master' of git://git.denx.de/u-boot-net
Diffstat (limited to 'drivers/net/e1000.c')
-rw-r--r-- | drivers/net/e1000.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 777783a..b8dd9f2 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -46,8 +46,7 @@ tested on both gig copper and gig fiber boards #define TOUT_LOOP 100000 -#undef virt_to_bus -#define virt_to_bus(x) ((unsigned long)x) +#define virt_to_bus(devno, v) pci_virt_to_mem(devno, (void *) (v)) #define bus_to_phys(devno, a) pci_mem_to_phys(devno, a) #define mdelay(n) udelay((n)*1000) @@ -357,7 +356,7 @@ e1000_acquire_eeprom(struct e1000_hw *hw) struct e1000_eeprom_info *eeprom = &hw->eeprom; uint32_t eecd, i = 0; - DEBUGOUT(); + DEBUGFUNC(); if (e1000_swfw_sync_acquire(hw, E1000_SWFW_EEP_SM)) return -E1000_ERR_SWFW_SYNC; @@ -418,7 +417,7 @@ static int32_t e1000_init_eeprom_params(struct e1000_hw *hw) int32_t ret_val = E1000_SUCCESS; uint16_t eeprom_size; - DEBUGOUT(); + DEBUGFUNC(); switch (hw->mac_type) { case e1000_82542_rev2_0: @@ -2355,7 +2354,7 @@ e1000_copper_link_igp_setup(struct e1000_hw *hw) int32_t ret_val; uint16_t phy_data; - DEBUGOUT(); + DEBUGFUNC(); if (hw->phy_reset_disable) return E1000_SUCCESS; @@ -5017,7 +5016,7 @@ e1000_transmit(struct eth_device *nic, volatile void *packet, int length) txp = tx_base + tx_tail; tx_tail = (tx_tail + 1) % 8; - txp->buffer_addr = cpu_to_le64(virt_to_bus(packet)); + txp->buffer_addr = cpu_to_le64(virt_to_bus(hw->pdev, packet)); txp->lower.data = cpu_to_le32(hw->txd_cmd | length); txp->upper.data = 0; E1000_WRITE_REG(hw, TDT, tx_tail); @@ -5145,6 +5144,8 @@ e1000_initialize(bd_t * bis) int idx = 0; u32 PciCommandWord; + DEBUGFUNC(); + while (1) { /* Find PCI device(s) */ if ((devno = pci_find_devices(supported, idx++)) < 0) { break; @@ -5170,7 +5171,6 @@ e1000_initialize(bd_t * bis) hw = (struct e1000_hw *) malloc(sizeof (*hw)); hw->pdev = devno; nic->priv = hw; - nic->iobase = bus_to_phys(devno, iobase); sprintf(nic->name, "e1000#%d", card_number); @@ -5180,7 +5180,8 @@ e1000_initialize(bd_t * bis) hw->autoneg_failed = 0; hw->autoneg = 1; hw->get_link_status = TRUE; - hw->hw_addr = (typeof(hw->hw_addr)) iobase; + hw->hw_addr = + pci_map_bar(devno, PCI_BASE_ADDRESS_0, PCI_REGION_MEM); hw->mac_type = e1000_undefined; /* MAC and Phy settings */ |