Home | History | Annotate | Download | only in cardbus
History log of /src/sys/dev/cardbus/if_fxp_cardbus.c
RevisionDateAuthorComments
 1.53  25-Sep-2022  thorpej Remove unnecessary include of <sys/malloc.h>.
 1.52  07-Jul-2016  msaitoh KNF. Remove extra spaces. No functional change.
 1.51  13-Apr-2015  riastradh Convert sys/dev to use <sys/rndsource.h>.
 1.50  02-Feb-2012  tls branches: 1.50.6; 1.50.24;
Entropy-pool implementation move and cleanup.

1) Move core entropy-pool code and source/sink/sample management code
to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
avoid expensive operations on disabled entropy sources; make the
rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
system events, and skew between clocks, with a sample implementation
for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files). Tested with release
builds on amd64 and evbarm and live testing on amd64.
 1.49  05-Sep-2011  msaitoh branches: 1.49.2; 1.49.6;
Change 0x1229's product name from 82557 to 8255x.
82550, 82551, 82558 and 82559 share the same product id.
This change makes "pcictl dump" happy.
 1.48  01-Aug-2011  drochner remove some bloat:
-cardbus doesn't use multiple interrupt lines like PCI, and it doesn't
use machanisms like interrupt line register and swizzling -- no need
to carry around dummy information, this is all dealt with by the
bridge
(I'm asking myself how "rbus_ppb" can work -- a bridge attached to
cardbus just can't work like a normal PCI bridge as far as interrupts
are concerned. I thing that should be a hardware specific driver
because behavior is not covered by a standard.)
-cardbus always uses 3.3V -- no need for a variable to keep track
of the voltage
 1.47  18-Mar-2010  dyoung Simplify interrupt (dis)establishment by two source transformations:

- cardbus_intr_disestablish(cc, cf, ih);
+ Cardbus_intr_disestablish(ct, ih);

- ih = cardbus_intr_establish(cc, cf, ...);
+ ih = Cardbus_intr_establish(ct, ...);

The identical change to a few other CardBus NICs has not caused any
problems, as expected, so I'm going to commit this rather safe change
and get on with the work.

Testers have been enlisted. I will revisit this change if I get any
negative responses.
 1.46  26-Feb-2010  dyoung branches: 1.46.2;
Use PCI_ constants and macros instead of CARDBUS_. Use
Cardbus_conf_{read,write}() instead of cardbus_conf_{read,write}().
Delete all of the CARDBUS_ constants and macros that replicate PCI_.

Compile-tested, only.
 1.45  25-Feb-2010  dyoung Make fxp at cardbus detach during shutdown.

Stop calling (*cardbus_ctrl) to enable bus mastering, I/O and memory
spaces on the CardBus bridge. cbb(4) always enables that stuff,
anyway. In the process, avoid remembering what BAR we mapped by
writing CARDBUS_{IO,MEM}_ENABLE to sc_cben or sc_cbenable, and
record the BAR in use sc_bar, instead.

Replace more CARDBUS_ constants with PCI_ constants.

Compile-tested, only.
 1.44  25-Feb-2010  dyoung Don't use the cardbus_softc. Compile-tested, only.
 1.43  25-Feb-2010  dyoung Don't create the device's PCI tag with Cardbus_make_tag(9), but save and
use the tag found in the cardbus_attach_args. Compile-tested, only.
 1.42  24-Feb-2010  dyoung Start to tuck Cardbus under the PCI abstraction. Step #1, textual
substitution: for all practical purposes, pcitag_t and cardbustag_t are
interchangeable, so just use pcitag_t. Ditto pcireg_t and cardbusreg_t.

Poison new uses of cardbusreg_t and cardbustag_t by deleting the type
definitions.
 1.41  18-Jan-2010  pooka branches: 1.41.2;
Remove conditional inclusion of unused bpf.h
 1.40  05-Sep-2009  tsutsui Invert logic around nested pmf(9) registrations for readability.
 1.39  12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.38  12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.37  07-Mar-2009  tsutsui Add TCPv4/UDPv4 RX hardware checksum support for i82559 and later chips
which don't have EXT_RFA and IPCB support. From hme(4) driver and
FreeBSD's fxp(4). Tested on i82559.

XXX: Probably we should have a common function to parse RX packet headers
XXX: to handle a raw checksum value and share it among hme(4) and gem(4) etc.
 1.36  20-Feb-2009  mrg - remove FXPF_IPCB flag. it should always/only be used with the code
conditional on FXPF_EXT_TXCB, so, replace all uses with that
- for the pci frontend, reestablish some flags lost the the prior
changes and simplify one of the cases

this fixes PR 40677 and may fix PR 40431.
 1.35  18-Jan-2009  mrg branches: 1.35.2;
The PCI revision numbers are unique to a PCI vendor/product
ID pair. Misuse of the revision numbers was causing some of the chip
features to be disabled on some integrated Intel chips. So, move the
determination of the features into the bus frontend, where the
vendor/product ID is known. (Note: sc_rev should be removed. The
microcode patch stuff is also busted and needs to be fixed.) Also,
poll the actual flow control status in inphy, rather than making
assumptions.

contributed anonymously.
 1.34  09-Jul-2008  joerg branches: 1.34.2;
- device/softc split for fxp(4)
 1.33  09-Jul-2008  joerg Use device_private to access cardbus_softc.
 1.32  24-Jun-2008  drochner branches: 1.32.2;
clean up the cardbus interrupt stuff:
There were cardbus_intr_line_t and cardbus_intr_handle_t used intermixed
for the same variable, and that variable is pretty much useless because
cardbus doesn't follow the PCI interrupt swizzling etc scheme.
Useless interrupt numbers were printed on cardbus device attach.
So as a first step to sanity, kill cardbus_intr_handle_t and poison
cardbus_intr_line_t to discourage printing it as a %d.
Use cardbus_intr_line_t consistently throughout the code.
Remove the "interrupting at foo" messages because the information
is misleading. We could come up with a better interrupt vector
information, but because cardbus interrupts are mediated by pccbb
it would still be misleading.
 1.31  28-Apr-2008  martin branches: 1.31.2; 1.31.4;
Remove clause 3 and 4 from TNF licenses
 1.30  06-Apr-2008  cegger branches: 1.30.2; 1.30.4;
use aprint_*_dev and device_xname
 1.29  09-Dec-2007  jmcneill branches: 1.29.10;
pmf_driver_register -> pmf_device_register
 1.28  09-Dec-2007  jmcneill Register with power management framework.
 1.27  19-Oct-2007  ad branches: 1.27.4; 1.27.6;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.26  16-Nov-2006  christos branches: 1.26.8; 1.26.22; 1.26.24; 1.26.28;
__unused removal on arguments; approved by core.
 1.25  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.24  07-Sep-2006  dogcow branches: 1.24.2; 1.24.4;
remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
 1.23  29-Mar-2006  thorpej Use device_private().
 1.22  25-Mar-2006  thorpej Use device_parent().CVS: ----------------------------------------------------------------------
 1.21  11-Dec-2005  christos branches: 1.21.4; 1.21.6; 1.21.8; 1.21.10; 1.21.12;
merge ktrace-lwp.
 1.20  09-Sep-2005  drochner remove the useless (always 0) device number from cardbus driver state,
autoconf attach structures and configuration cycle functions
(just leave the kernel configuration attribute for now to avoid breaking
config(1) files)
 1.19  04-Feb-2005  perry branches: 1.19.6;
de-__P
 1.18  02-Aug-2004  mycroft branches: 1.18.4; 1.18.6;
cardbusdevs -> pcidevs
 1.17  02-Oct-2002  thorpej branches: 1.17.6;
Add trailing ; to CFATTACH_DECL.
 1.16  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.15  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.14  27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.13  13-Nov-2001  lukem add RCSID
 1.12  08-May-2000  thorpej branches: 1.12.6; 1.12.8;
Don't use not-in-user-namespace variable names that newer versions of
GCC doesn't like very much.
 1.11  22-Mar-2000  thorpej Fix logic bug in fxp_cardbus_match().
 1.10  12-Mar-2000  veego Reverse the mapping of the control/status registers. Use I/O before MEM.
My card works now on a TI1220 chipset. Approved by Jason.
 1.9  10-Mar-2000  thorpej Normalize the copyright notice (TNF copyrights should *always* match
the appropriate template), and run through indent.
 1.8  07-Mar-2000  mycroft Do a CARDBUS_BM_ENABLE to be sure.
 1.7  12-Feb-2000  enami Add activate routine and check device active flag also in one second
tick handler.
 1.6  09-Feb-2000  joda add detach code
 1.5  12-Dec-1999  thorpej branches: 1.5.2;
Take a stab at making this work on big-endian systems.
 1.4  01-Nov-1999  haya Change the interface of cardbus_function_enable() and
cardbus_function_disable().
 1.3  31-Oct-1999  joda commit a more working version if this driver; so far only tested on an
Intel `PRO/100 LAN+Modem56 CardBus II'
 1.2  15-Oct-1999  haya branches: 1.2.2; 1.2.4;
add NetBSD ID tag.
 1.1  15-Oct-1999  haya This is the first check-in of CardBus driver. CardBus driver contains
CardBus bus stub, YENTA PCI-CardBus bridge (cbb), 3Com 3C575TX driver
(ex) and Intel fxp driver.

TODO:
o Conform to the KNF more strictly.
o Be unified with pcmcia code as much as possible.
o Add more drivers for CardBus card, such as APA-1480 or USB card.

The affected files are listed below.

sys/arch/i386/conf/files.i386
sys/arch/macppc/conf/files.macppc
sys/conf/files
sys/dev/ic/elinkxl.c
sys/dev/ic/elinkxlvar.h
sys/dev/ic/i82365.c
sys/dev/ic/i82365var.h
sys/dev/isa/i82365_isasubr.c
sys/dev/pci/files.pci
sys/dev/pcmcia/pcmcia.c
sys/dev/pcmcia/pcmciachip.h

The added files are listed below.

sys/arch/i386/conf/CARDBUS
sys/arch/i386/include/rbus_machdep.h
sys/arch/i386/i386/rbus_machdep.c
sys/arch/macppc/include/rbus_machdep.h
sys/arch/macppc/macppc/rbus_machdep.c
sys/dev/cardbus/if_ex_cardbus.c
sys/dev/cardbus/Makefile.cardbusdevs
sys/dev/cardbus/cardbus.c
sys/dev/cardbus/cardbus_map.c
sys/dev/cardbus/cardbusdevs
sys/dev/cardbus/cardbusdevs.h
sys/dev/cardbus/cardbusdevs_data.h
sys/dev/cardbus/cardbusvar.h
sys/dev/cardbus/cardslot.c
sys/dev/cardbus/cardslotvar.h
sys/dev/cardbus/devlist2h.awk
sys/dev/cardbus/files.cardbus
sys/dev/cardbus/if_fxp_cardbus.c
sys/dev/cardbus/pccardcis.h
sys/dev/cardbus/rbus.c
sys/dev/cardbus/rbus.h
sys/dev/pci/pccbb.c
sys/dev/pci/pccbbreg.h
sys/dev/pci/pccbbvar.h
 1.2.4.1  15-Nov-1999  fvdl Sync with -current
 1.2.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.2.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.12.8.2  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.12.8.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.12.6.2  18-Oct-2002  nathanw Catch up to -current.
 1.12.6.1  14-Nov-2001  nathanw Catch up to -current.
 1.17.6.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.17.6.4  04-Feb-2005  skrll Sync with HEAD.
 1.17.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.17.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.17.6.1  03-Aug-2004  skrll Sync with HEAD
 1.18.6.1  12-Feb-2005  yamt sync with head.
 1.18.4.1  29-Apr-2005  kent sync with -current
 1.19.6.4  21-Jan-2008  yamt sync with head
 1.19.6.3  27-Oct-2007  yamt sync with head.
 1.19.6.2  30-Dec-2006  yamt sync with head.
 1.19.6.1  21-Jun-2006  yamt sync with head.
 1.21.12.2  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.21.12.1  28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.21.10.1  19-Apr-2006  elad sync with head.
 1.21.8.2  14-Sep-2006  yamt sync with head.
 1.21.8.1  01-Apr-2006  yamt sync with head.
 1.21.6.1  22-Apr-2006  simonb Sync with head.
 1.21.4.1  09-Sep-2006  rpaulo sync with head
 1.24.4.2  10-Dec-2006  yamt sync with head.
 1.24.4.1  22-Oct-2006  yamt sync with head
 1.24.2.1  18-Nov-2006  ad Sync with head.
 1.26.28.1  25-Oct-2007  bouyer Sync with HEAD.
 1.26.24.2  09-Jan-2008  matt sync with HEAD
 1.26.24.1  06-Nov-2007  matt sync with HEAD
 1.26.22.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.26.8.1  23-Oct-2007  ad Sync with head.
 1.27.6.1  11-Dec-2007  yamt sync with head.
 1.27.4.1  26-Dec-2007  ad Sync with head.
 1.29.10.3  28-Sep-2008  mjf Sync with HEAD.
 1.29.10.2  29-Jun-2008  mjf Sync with HEAD.
 1.29.10.1  02-Jun-2008  mjf Sync with HEAD.
 1.30.4.6  11-Aug-2010  yamt sync with head.
 1.30.4.5  11-Mar-2010  yamt sync with head
 1.30.4.4  16-Sep-2009  yamt sync with head
 1.30.4.3  16-May-2009  yamt sync with head
 1.30.4.2  04-May-2009  yamt sync with head.
 1.30.4.1  16-May-2008  yamt sync with head.
 1.30.2.1  18-May-2008  yamt sync with head.
 1.31.4.2  18-Jul-2008  simonb Sync with head.
 1.31.4.1  27-Jun-2008  simonb Sync with head.
 1.31.2.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.32.2.1  19-Oct-2008  haad Sync with HEAD.
 1.34.2.3  28-Apr-2009  skrll Sync with HEAD.
 1.34.2.2  03-Mar-2009  skrll Sync with HEAD.
 1.34.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.35.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.41.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.46.2.1  30-May-2010  rmind sync with head
 1.49.6.1  18-Feb-2012  mrg merge to -current.
 1.49.2.1  17-Apr-2012  yamt sync with head
 1.50.24.2  09-Jul-2016  skrll Sync with HEAD
 1.50.24.1  06-Jun-2015  skrll Sync with HEAD
 1.50.6.1  03-Dec-2017  jdolecek update from HEAD

RSS XML Feed