From 370f3c5469cbc626113a3a53dde09bb86d50d788 Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Wed, 5 Aug 2009 21:41:20 +0000 Subject: 2009-08-05 Till Straumann * if_em/Makefile.am, if_em/e1000_osdep.h, if_em/if_em.c: Changed 'e1000_osdep.h' to provide stdalone I/O methods for select architectures (x86 and PPC -- others fall back on libbsdport/bus.h). This lets the low-level driver (everything except for 'if_em.c/if_em.h') API be independent of BSD networking and libbsdport which is desirable since certain applications may wish to just use the low-level API for implementing dedicated 'raw-ethernet' drivers for BSD-independent, proprietary GigE communication. --- bsd_eth_drivers/if_em/if_em.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'bsd_eth_drivers/if_em/if_em.c') diff --git a/bsd_eth_drivers/if_em/if_em.c b/bsd_eth_drivers/if_em/if_em.c index 449ef5b..05d4216 100644 --- a/bsd_eth_drivers/if_em/if_em.c +++ b/bsd_eth_drivers/if_em/if_em.c @@ -2661,7 +2661,11 @@ em_allocate_pci_resources(struct adapter *adapter) rman_get_bustag(adapter->res_memory); adapter->osdep.mem_bus_space_handle = rman_get_bushandle(adapter->res_memory); +#ifndef __rtems__ adapter->hw.hw_addr = (uint8_t*)&adapter->osdep.mem_bus_space_handle; +#else + adapter->hw.hw_addr = (uint8_t*)adapter->res_memory; +#endif /* Only older adapters use IO mapping */ if ((adapter->hw.mac.type >= e1000_82543) && /* __rtems__ >82542 -> >= 82543 */ @@ -2689,7 +2693,12 @@ em_allocate_pci_resources(struct adapter *adapter) "ioport\n"); return (ENXIO); } +#ifndef __rtems__ adapter->hw.io_base = 0; +#else + adapter->hw.io_base = (unsigned long)adapter->res_ioport + & PCI_BASE_ADDRESS_IO_MASK; +#endif adapter->osdep.io_bus_space_tag = rman_get_bustag(adapter->res_ioport); adapter->osdep.io_bus_space_handle = @@ -3279,9 +3288,15 @@ em_initialize_transmit_unit(struct adapter *adapter) E1000_WRITE_REG(&adapter->hw, E1000_TDT, 0); E1000_WRITE_REG(&adapter->hw, E1000_TDH, 0); +#ifndef __rtems__ HW_DEBUGOUT2("Base = %x, Length = %x\n", E1000_READ_REG(&adapter->hw, E1000_TDBAL), E1000_READ_REG(&adapter->hw, E1000_TDLEN)); +#else + HW_DEBUGOUT2("Base = %x, Length = %x\n", + (unsigned)E1000_READ_REG(&adapter->hw, E1000_TDBAL), + (unsigned)E1000_READ_REG(&adapter->hw, E1000_TDLEN)); +#endif /* Set the default values for the Tx Inter Packet Gap timer */ switch (adapter->hw.mac.type) { -- cgit v1.2.3