diff options
author | cvs2git <rtems-devel@rtems.org> | 2011-07-21 23:24:55 +0000 |
---|---|---|
committer | cvs2git <rtems-devel@rtems.org> | 2011-07-21 23:24:55 +0000 |
commit | 914cc24b3f44c6de62403d168eb413f469dddc98 (patch) | |
tree | e275210405f24b149e15f00e1912d8d849b63b7f /bsd_eth_drivers/if_em/if_em.c | |
parent | - importing updated version from SLAC as of 20090422 (diff) | |
download | libbsdport-ssrlApps_R20110804_p0.tar.bz2 |
This commit was manufactured by cvs2svn to create tagssrlApps_R20110804_p0
'ssrlApps_R20110804_p0'.
Sprout from base 2009-04-22 22:06:58 UTC Till Straumann <strauman@slac.stanford.edu> ' - importing updated version from SLAC as of 20090422'
Cherrypick from master 2011-07-21 23:24:54 UTC Till Straumann <strauman@slac.stanford.edu> '2011-07-21 Till Straumann <Till.Straumann@TU-Berlin.de>':
bsd_eth_drivers/.cvsignore
bsd_eth_drivers/ChangeLog
bsd_eth_drivers/Makefile.am
bsd_eth_drivers/if_bge/.cvsignore
bsd_eth_drivers/if_bge/Makefile.am
bsd_eth_drivers/if_bge/if_bge.c
bsd_eth_drivers/if_bge/if_bgereg.h
bsd_eth_drivers/if_em/.cvsignore
bsd_eth_drivers/if_em/Makefile.am
bsd_eth_drivers/if_em/e1000_manage.c
bsd_eth_drivers/if_em/e1000_manage.h
bsd_eth_drivers/if_em/e1000_osdep.c
bsd_eth_drivers/if_em/e1000_osdep.h
bsd_eth_drivers/if_em/if_em.c
bsd_eth_drivers/if_fxp/.cvsignore
bsd_eth_drivers/if_fxp/Makefile.am
bsd_eth_drivers/if_fxp/if_fxp.c
bsd_eth_drivers/if_fxp/if_fxpvar.h
bsd_eth_drivers/if_le/.cvsignore
bsd_eth_drivers/if_pcn/.cvsignore
bsd_eth_drivers/if_pcn/if_pcn.c
bsd_eth_drivers/if_re/.cvsignore
bsd_eth_drivers/if_re/Makefile.am
bsd_eth_drivers/if_re/if_re.c
bsd_eth_drivers/if_re/if_rl.c
bsd_eth_drivers/if_re/if_rlreg.h
bsd_eth_drivers/libbsdport/.cvsignore
bsd_eth_drivers/libbsdport/Makefile.am
bsd_eth_drivers/libbsdport/alldrv.c
bsd_eth_drivers/libbsdport/bus.h
bsd_eth_drivers/libbsdport/callout.h
bsd_eth_drivers/libbsdport/devicet.c
bsd_eth_drivers/libbsdport/ifmedia.c
bsd_eth_drivers/libbsdport/libbsdport.h
bsd_eth_drivers/libbsdport/libbsdport_api.h
bsd_eth_drivers/libbsdport/libbsdport_post.h
bsd_eth_drivers/libbsdport/miistuff.c
bsd_eth_drivers/libbsdport/misc.c
bsd_eth_drivers/libbsdport/mutex.h
bsd_eth_drivers/libbsdport/rtems_callout.c
bsd_eth_drivers/libbsdport/sysbus.c
bsd_eth_drivers/libbsdport/taskqueue.h
bsd_eth_drivers/links.am
Cherrypick from freebsd_orig 2009-04-23 04:52:05 UTC Till Straumann <strauman@slac.stanford.edu> ' - importing original 'releng_7_1' version of FXP driver from FreeBSD.':
bsd_eth_drivers/if_fxp/if_fxpreg.h
bsd_eth_drivers/if_fxp/rcvbundl.h
Delete:
INSTALL
Makefile.am
bootstrap
config.h.in
configure.ac
m4/acinclude.m4
m4/config-if-present.m4
m4/cvstag.m4
m4/multilib-fix.m4
m4/multilib-installdir.m4
m4/rtems-bsp-postlink.m4
m4/rtems-bsplist.m4
m4/rtems-check-libargs.m4
m4/rtems-checkprog.m4
m4/rtems-checktool.m4
m4/rtems-checktop.m4
m4/rtems-fixup-prefix.m4
m4/rtems-isml.m4
m4/rtems-ismultibsp.m4
m4/rtems-isrtems.m4
m4/rtems-makevars.m4
m4/rtems-multilib.m4
m4/rtems-options.m4
m4/rtems-setup-recurse.m4
m4/rtems-tools.m4
m4/rtems-trim-builddir.m4
m4/rtems-verscheck.m4
makefile.top.am
makefile.top.in
rtems-pre.am
rtems.am
ssrlApps.components.in
Diffstat (limited to 'bsd_eth_drivers/if_em/if_em.c')
-rw-r--r-- | bsd_eth_drivers/if_em/if_em.c | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/bsd_eth_drivers/if_em/if_em.c b/bsd_eth_drivers/if_em/if_em.c index 71d1227..f0e06d6 100644 --- a/bsd_eth_drivers/if_em/if_em.c +++ b/bsd_eth_drivers/if_em/if_em.c @@ -413,8 +413,6 @@ TUNABLE_INT("hw.em.rx_process_limit", &em_rx_process_limit); #endif #ifdef __rtems__ -int em_bootverbose = 0; -#define bootverbose em_bootverbose #undef static #define static static #endif @@ -461,6 +459,22 @@ em_probe(device_t dev) ((pci_subdevice_id == ent->subdevice_id) || (ent->subdevice_id == PCI_ANY_ID))) { +#ifdef __rtems__ + /* Copy PCI signature to the low-level (bsd-agnostic) + * support struct and register with ll-support. This + * step also detects if the device is already in use. + */ + { + struct adapter *adapter = device_get_softc(dev); + + if ( e1000_register( &adapter->osdep.pcisig, + dev->bushdr.pci.bus, + dev->bushdr.pci.dev, + dev->bushdr.pci.fun ) ) { + return (EBUSY); + } + } +#endif sprintf(adapter_name, "%s %s", em_strings[ent->index], em_driver_version); @@ -825,6 +839,10 @@ err_pci: em_free_pci_resources(adapter); EM_LOCK_DESTROY(adapter); +#ifdef __rtems__ + e1000_unregister( &adapter->osdep.pcisig ); +#endif + return (error); } @@ -900,6 +918,10 @@ em_detach(device_t dev) EM_LOCK_DESTROY(adapter); +#ifdef __rtems__ + e1000_unregister( &adapter->osdep.pcisig ); +#endif + return (0); } @@ -2663,7 +2685,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 */ @@ -2691,7 +2717,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 = @@ -3281,9 +3312,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) { @@ -4769,6 +4806,7 @@ em_is_valid_ether_addr(uint8_t *addr) return (TRUE); } +#ifndef __rtems__ /* * NOTE: the following routines using the e1000 * naming style are provided to the shared @@ -4851,6 +4889,7 @@ e1000_free_dev_spec_struct(struct e1000_hw *hw) free(hw->dev_spec, M_DEVBUF); return; } +#endif /* * Enable PCI Wake On Lan capability |