Home | History | Annotate | only in /src/sys/dev/mca
History log of /src/sys/dev/mca
RevisionDateAuthorComments
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 16-Mar-2001  jdolecek branches: 1.1.2; 1.1.4; 1.1.124; 1.1.126; 1.1.128;
Add driver for 3Com EtherLink/MC (3c523) Ethernet MCA card. This beast uses
i82586-based controller, similarily to e.g. ai(4), el(4) or ix(4).
The driver was modelled after the ai(4) driver.

Due to lack of better documentation, Linux 3c523 driver was used
to find out 3c523-specific quirks. Of course, the necessary work was greatly
reduced by our decend generic ic/i82586 code :)

Finally, NetBSD supports an ethernet card on IBM PS/2!
 1.1.128.1 16-May-2008  yamt sync with head.
 1.1.126.1 18-May-2008  yamt sync with head.
 1.1.124.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.4.2 09-Apr-2001  nathanw Catch up with -current.
 1.1.4.1 16-Mar-2001  nathanw file 3c523reg.h was added on branch nathanw_sa on 2001-04-09 01:56:44 +0000
 1.1.2.2 27-Mar-2001  bouyer Sync with HEAD.
 1.1.2.1 16-Mar-2001  bouyer file 3c523reg.h was added on branch thorpej_scsipi on 2001-03-27 15:32:05 +0000
 1.2 13-May-2000  jdolecek superseded by http://www.netbsd.org/Ports/i386/ps2.html
 1.1 11-May-2000  jdolecek MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.2 19-Oct-2008  apb Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.
 1.1 11-May-2000  jdolecek branches: 1.1.6; 1.1.128; 1.1.132; 1.1.138;
MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.1.138.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.1.132.1 04-May-2009  yamt sync with head.
 1.1.128.1 17-Jan-2009  mjf Sync with HEAD.
 1.1.6.2 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.1.6.1 11-May-2000  bouyer file Makefile.mcadevs was added on branch thorpej_scsipi on 2000-11-20 11:41:27 +0000
 1.16 24-Mar-2002  jdolecek aha at mca? confirmed working (test card provided by Jonathan Hankins)
 1.15 23-Nov-2001  jdolecek MCA DMA hooked via bus_dma, so remove one
add entry regarding AHA-1640 (the driver needs testing)
 1.14 31-Jul-2001  jdolecek all outstanding MCA bugs fixed, woo-hoo :)
 1.13 02-May-2001  jdolecek branches: 1.13.2;
Add IBM SCSI Adapter support to the list - this is the last thing
I'm aware Linux MCA supports and NetBSD not
 1.12 02-May-2001  jdolecek One item off TODO list - we check for MCA bus presence via bios call
 1.11 23-Apr-2001  jdolecek one less
 1.10 19-Apr-2001  jdolecek dasd --> edc
 1.9 19-Apr-2001  jdolecek one less - ESDI support is written (albeit the driver needs to be tested more)
add some additional comments
 1.8 17-Mar-2001  jdolecek the elmc initialization problem is hopefully fixed
 1.7 17-Mar-2001  jdolecek The 3c523 now driver works (with quite acceptable performance, like 320KB/s
for ftp and like 310KB/s via nfs); since there is still issue
with the card initialization, move the entry to bugs subsection
 1.6 21-Feb-2001  jdolecek branches: 1.6.2;
simplify
 1.5 13-Aug-2000  jdolecek branches: 1.5.2;
describe more precisely when the keyboard freeze happens
 1.4 14-May-2000  soren Typo.
 1.3 13-May-2000  jdolecek one less - the bootblocks were even easier shot than I though :)
 1.2 13-May-2000  jdolecek one more
 1.1 11-May-2000  jdolecek MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.5.2.6 23-Apr-2001  bouyer Sync with HEAD.
 1.5.2.5 21-Apr-2001  bouyer Sync with HEAD
 1.5.2.4 27-Mar-2001  bouyer Sync with HEAD.
 1.5.2.3 12-Mar-2001  bouyer Sync with HEAD.
 1.5.2.2 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 13-Aug-2000  bouyer file TODO was added on branch thorpej_scsipi on 2000-11-20 11:41:27 +0000
 1.6.2.5 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.6.2.4 08-Jan-2002  nathanw Catch up to -current.
 1.6.2.3 24-Aug-2001  nathanw Catch up with -current.
 1.6.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.6.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.13.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.13.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.13.2.1 03-Aug-2001  lukem update to -current
 1.22 22-Sep-2009  tsutsui Make local functions static.
 1.21 21-Sep-2009  tsutsui Split device_t/softc. Tested on AHA-1542CF.
 1.20 12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.19 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.18 08-Apr-2008  cegger branches: 1.18.4; 1.18.18;
use aprint_*_dev and device_xname
 1.17 19-Oct-2007  ad branches: 1.17.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.16 16-Nov-2006  christos branches: 1.16.8; 1.16.22; 1.16.24; 1.16.28;
__unused removal on arguments; approved by core.
 1.15 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.14 29-Mar-2006  thorpej branches: 1.14.8; 1.14.10;
Use device_private().
 1.13 11-Dec-2005  christos branches: 1.13.4; 1.13.6; 1.13.8; 1.13.10; 1.13.12;
merge ktrace-lwp.
 1.12 27-Feb-2005  perry branches: 1.12.4;
nuke trailing whitespace
 1.11 04-Feb-2005  perry de-__P
 1.10 02-Oct-2002  thorpej branches: 1.10.6; 1.10.14; 1.10.16;
Add trailing ; to CFATTACH_DECL.
 1.9 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.8 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.7 24-Mar-2002  jdolecek update comments + cosmetic change in aha_mca_probe()

Driver is now confirmed working. Tested with AHA-1640 card provided to me
by Jonathan Hankins.
 1.6 22-Nov-2001  jdolecek add a comment clarifying the DMA support, g/c the commented
out isa_dmacascade() call
some minor intendation changes, while here
 1.5 15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.4 13-Nov-2001  lukem add RCSID
 1.3 23-Apr-2001  jdolecek branches: 1.3.2;
Compact autoconf info by printing the IRQ number together
with 'at mca0 slot foo' info.
 1.2 05-Apr-2001  jdolecek change the attach message to contain slot number and product name
 1.1 11-May-2000  jdolecek branches: 1.1.6; 1.1.8;
MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.1.8.6 18-Oct-2002  nathanw Catch up to -current.
 1.1.8.5 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.8.4 08-Jan-2002  nathanw Catch up to -current.
 1.1.8.3 14-Nov-2001  nathanw Catch up to -current.
 1.1.8.2 21-Jun-2001  nathanw Catch up to -current.
 1.1.8.1 09-Apr-2001  nathanw Catch up with -current.
 1.1.6.4 23-Apr-2001  bouyer Sync with HEAD.
 1.1.6.3 21-Apr-2001  bouyer Sync with HEAD
 1.1.6.2 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.1.6.1 11-May-2000  bouyer file aha_mca.c was added on branch thorpej_scsipi on 2000-11-20 11:41:27 +0000
 1.3.2.3 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.3.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.3.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.10.16.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.10.16.1 12-Feb-2005  yamt sync with head.
 1.10.14.1 29-Apr-2005  kent sync with -current
 1.10.6.2 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.10.6.1 04-Feb-2005  skrll Sync with HEAD.
 1.12.4.3 27-Oct-2007  yamt sync with head.
 1.12.4.2 30-Dec-2006  yamt sync with head.
 1.12.4.1 21-Jun-2006  yamt sync with head.
 1.13.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.13.10.1 19-Apr-2006  elad sync with head.
 1.13.8.1 01-Apr-2006  yamt sync with head.
 1.13.6.1 22-Apr-2006  simonb Sync with head.
 1.13.4.1 09-Sep-2006  rpaulo sync with head
 1.14.10.2 10-Dec-2006  yamt sync with head.
 1.14.10.1 22-Oct-2006  yamt sync with head
 1.14.8.1 18-Nov-2006  ad Sync with head.
 1.16.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.16.24.1 06-Nov-2007  matt sync with HEAD
 1.16.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.16.8.1 23-Oct-2007  ad Sync with head.
 1.17.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.18.18.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.18.4.2 11-Mar-2010  yamt sync with head
 1.18.4.1 16-May-2009  yamt sync with head
 1.23 08-Dec-2018  thorpej Clean up initialization of com_regs structure, in preparation for
some additional changers.
 1.22 23-Nov-2009  rmind branches: 1.22.62; 1.22.64;
Remove some unecessary includes sys/user.h header.
 1.21 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.20 14-Mar-2008  cube branches: 1.20.2; 1.20.4;
Split device_t and softc for all com(4) devices (well, everything that
uses a com_softc backend). Use proper types and ansify where appropriate.
 1.19 29-Feb-2008  dyoung Use pmf_device_register1() instead of shutdownhook_establish() to
register com_cleanup() as the shutdown hook.

Add a generic suspend routine. Suspend and resume com@isa.

Protect against dereferencing a NULL softc in comioctl().

Destroy both a mutex and a callout in com_detach().

Cosmetic: use aprint_*_dev(). Use PMF_FN_ARGS, PMF_FN_PROTO.
 1.18 19-Oct-2007  ad branches: 1.18.12; 1.18.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.17 16-Nov-2006  christos branches: 1.17.8; 1.17.22; 1.17.24; 1.17.28;
__unused removal on arguments; approved by core.
 1.16 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.15 13-Jul-2006  gdamore branches: 1.15.4; 1.15.6;
Add an option COM_REGMAP to allow com(4) to use an array of register indices.
This allows us to convert aucom to just another com attachment, and cleanup
some code in the com_arbus.c.

Additionally, we use a common com_cleanup routine rather than having a
zillion copies of it in the attachment points.

This has been tested on a number architectures, and it has been shown to get
close to comparable performance when COM_REGMAP is defined, and comparable
when it is not defined.

Approved by core@. Fixes PR port-evbmips/32362.
 1.14 29-Mar-2006  thorpej branches: 1.14.4;
Use device_private().
 1.13 11-Dec-2005  christos branches: 1.13.4; 1.13.6; 1.13.8; 1.13.10; 1.13.12;
merge ktrace-lwp.
 1.12 27-Feb-2005  perry branches: 1.12.4;
nuke trailing whitespace
 1.11 04-Feb-2005  perry de-__P
 1.10 07-Aug-2003  agc branches: 1.10.8; 1.10.10;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.9 02-Oct-2002  thorpej branches: 1.9.6;
Add trailing ; to CFATTACH_DECL.
 1.8 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.7 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.6 15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.5 13-Nov-2001  lukem add RCSID
 1.4 20-Apr-2001  jdolecek branches: 1.4.2;
Add support for IBM Multi-Protocol Communications Adapter. Card provided
by Hans Hubner <hans@huebner.org>.
We only support the card in "serial" mode. BISYNC nor SDLC modes are
not supported.
 1.3 20-Apr-2001  jdolecek Add support for NeoTecH Single RS-232 Async. Adapter, SM110. Tested
with card provided by Hans Hubner <hans@huebner.org>.

Also pretty the autoconf attach messages a little.
 1.2 31-Mar-2001  jdolecek branches: 1.2.2;
add year 2001 to copyright for NetBSD
 1.1 19-Mar-2001  jdolecek branches: 1.1.2;
Provide MCA com(4) attachment. Tested with IBM Internal modem, kindly
donated to me by David Brownlee <abs@anim.dreamworks.com>.
 1.1.2.4 23-Apr-2001  bouyer Sync with HEAD.
 1.1.2.3 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.2 27-Mar-2001  bouyer Sync with HEAD.
 1.1.2.1 19-Mar-2001  bouyer file com_mca.c was added on branch thorpej_scsipi on 2001-03-27 15:32:05 +0000
 1.2.2.6 18-Oct-2002  nathanw Catch up to -current.
 1.2.2.5 08-Jan-2002  nathanw Catch up to -current.
 1.2.2.4 14-Nov-2001  nathanw Catch up to -current.
 1.2.2.3 21-Jun-2001  nathanw Catch up to -current.
 1.2.2.2 09-Apr-2001  nathanw Catch up with -current.
 1.2.2.1 31-Mar-2001  nathanw file com_mca.c was added on branch nathanw_sa on 2001-04-09 01:56:45 +0000
 1.4.2.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.4.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.9.6.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.9.6.4 04-Feb-2005  skrll Sync with HEAD.
 1.9.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.9.6.1 03-Aug-2004  skrll Sync with HEAD
 1.10.10.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.10.10.1 12-Feb-2005  yamt sync with head.
 1.10.8.1 29-Apr-2005  kent sync with -current
 1.12.4.4 17-Mar-2008  yamt sync with head.
 1.12.4.3 27-Oct-2007  yamt sync with head.
 1.12.4.2 30-Dec-2006  yamt sync with head.
 1.12.4.1 21-Jun-2006  yamt sync with head.
 1.13.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.13.10.1 19-Apr-2006  elad sync with head.
 1.13.8.2 11-Aug-2006  yamt sync with head
 1.13.8.1 01-Apr-2006  yamt sync with head.
 1.13.6.1 22-Apr-2006  simonb Sync with head.
 1.13.4.1 09-Sep-2006  rpaulo sync with head
 1.14.4.4 17-Jun-2006  gdamore Undo the undo. Restore COM_INIT_REGS.
 1.14.4.3 17-Jun-2006  gdamore Revert COM_INIT_REGS, but keep the com_cleanup tweak.
 1.14.4.2 16-Jun-2006  gdamore Use common com_cleanup, eliminating dependency on com_regs.
 1.14.4.1 15-Jun-2006  gdamore Adapt to new com framework.
 1.15.6.2 10-Dec-2006  yamt sync with head.
 1.15.6.1 22-Oct-2006  yamt sync with head
 1.15.4.1 18-Nov-2006  ad Sync with head.
 1.17.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.17.24.2 23-Mar-2008  matt sync with HEAD
 1.17.24.1 06-Nov-2007  matt sync with HEAD
 1.17.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.17.8.1 23-Oct-2007  ad Sync with head.
 1.18.16.2 02-Jun-2008  mjf Sync with HEAD.
 1.18.16.1 03-Apr-2008  mjf Sync with HEAD.
 1.18.12.1 24-Mar-2008  keiichi sync with head.
 1.20.4.2 11-Mar-2010  yamt sync with head
 1.20.4.1 16-May-2008  yamt sync with head.
 1.20.2.1 18-May-2008  yamt sync with head.
 1.22.64.1 10-Jun-2019  christos Sync with HEAD
 1.22.62.1 26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.2 19-Apr-2001  jdolecek branches: 1.2.2;
Use "edc" instead of "dasd". As pointed out by Soren, dasd doesn't
mean anything special in IBM-talk. And edc better matches prior art, too.
 1.1 19-Apr-2001  jdolecek Add a driver for IBM ESDI disk controllers. Tested with IBM Integ. ESDI Fixed
Disk & Controller only at the moment.

This driver still needs some touchup (error recovery is not quite
good, MCA DMA controller goo should be moved to driver independant
location), but is working enough to be usable for others. And I
want this under CVS control :)

Thanks to Scott Telford <st@epcc.ed.ac.uk> for providing me docs for
these devices (IBM DASD Storage Interface Specification for MCA rev. 2.2).
 1.2.2.2 23-Apr-2001  bouyer Sync with HEAD.
 1.2.2.1 21-Apr-2001  bouyer Sync with HEAD
 1.2 19-Apr-2001  jdolecek branches: 1.2.2;
Use "edc" instead of "dasd". As pointed out by Soren, dasd doesn't
mean anything special in IBM-talk. And edc better matches prior art, too.
 1.1 19-Apr-2001  jdolecek Add a driver for IBM ESDI disk controllers. Tested with IBM Integ. ESDI Fixed
Disk & Controller only at the moment.

This driver still needs some touchup (error recovery is not quite
good, MCA DMA controller goo should be moved to driver independant
location), but is working enough to be usable for others. And I
want this under CVS control :)

Thanks to Scott Telford <st@epcc.ed.ac.uk> for providing me docs for
these devices (IBM DASD Storage Interface Specification for MCA rev. 2.2).
 1.2.2.2 23-Apr-2001  bouyer Sync with HEAD.
 1.2.2.1 21-Apr-2001  bouyer Sync with HEAD
 1.2 19-Apr-2001  jdolecek branches: 1.2.2;
Use "edc" instead of "dasd". As pointed out by Soren, dasd doesn't
mean anything special in IBM-talk. And edc better matches prior art, too.
 1.1 19-Apr-2001  jdolecek Add a driver for IBM ESDI disk controllers. Tested with IBM Integ. ESDI Fixed
Disk & Controller only at the moment.

This driver still needs some touchup (error recovery is not quite
good, MCA DMA controller goo should be moved to driver independant
location), but is working enough to be usable for others. And I
want this under CVS control :)

Thanks to Scott Telford <st@epcc.ed.ac.uk> for providing me docs for
these devices (IBM DASD Storage Interface Specification for MCA rev. 2.2).
 1.2.2.2 23-Apr-2001  bouyer Sync with HEAD.
 1.2.2.1 21-Apr-2001  bouyer Sync with HEAD
 1.4 11-Dec-2005  christos merge ktrace-lwp.
 1.3 27-Feb-2005  perry don't leave whitespace at the end of the stripped RCS Id
 1.2 15-Dec-2003  jmc branches: 1.2.8; 1.2.10;
Fixes from PR#23177. Various lint/logic fixes:
Fix some non-initialized variables
close the output files when done
Redo the printing for RCS strings so they don't expand in the awk script too
Do proper tests for variables existance before accessing

Verified output from all scripts is identical to original versions
 1.1 11-May-2000  jdolecek branches: 1.1.6; 1.1.30;
MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.1.30.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.1.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 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.1.6.1 11-May-2000  bouyer file devlist2h.awk was added on branch thorpej_scsipi on 2000-11-20 11:41:27 +0000
 1.2.10.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.2.8.1 29-Apr-2005  kent sync with -current
 1.68 25-Sep-2022  thorpej Remove unnecessary include of <sys/malloc.h>.
 1.67 03-Sep-2018  riastradh Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int. The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER! Some subsystems have

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX. Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.66 14-Jul-2016  msaitoh branches: 1.66.16; 1.66.18;
- Use aprint*() instead of printf() in xxx_attach().
- Add missing aprint_naive("\n");
- KNF
 1.65 11-Jul-2016  msaitoh KNF. No functional change.
 1.64 26-Apr-2015  mlelstv Use C99-style initializers for struct dkdriver.
 1.63 13-Apr-2015  riastradh Convert sys/dev to use <sys/rndsource.h>.
 1.62 02-Jan-2015  christos We have three sets of DTYPE_ constants in the kernel:
altq Drop Type
disklabel Disk Type
file Descriptor Type
(not to mention constants that contain the string DTYPE).
Let's make them two, by changing the disklabel one to be DisK TYPE since the
other disklabel constants seem to do that. Not many userland programs use
these constants (and the ones that they do are mostly in ifdefs). They will
be fixed shortly.
 1.61 31-Dec-2014  christos make more drivers use disk_ioctl, and add a dev parameter to it so that
we can merge the "easy" disklabel ioctls to it. Ultimately all this will
go do dk_ioctl once all the drivers have been converted.
 1.60 31-Dec-2014  christos Centralize wedge ioctls in disk_ioctl.
 1.59 09-Nov-2014  mlelstv branches: 1.59.2;
support DIOCMWEDGES ioctl
 1.58 10-Aug-2014  tls Merge tls-earlyentropy branch into HEAD.
 1.57 25-Jul-2014  dholland Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.56 25-Jul-2014  dholland Add d_discard to all struct bdevsw instances I could find.

I've set them all to nodiscard. Some of them (wd, dk, vnd, ld,
raidframe, maybe cgd) should be implemented for real.
 1.55 20-Mar-2014  skrll branches: 1.55.2;
Mechanically replace simplelock with kmutex_t.
 1.54 16-Mar-2014  dholland Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.53 27-Oct-2012  chs branches: 1.53.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.52 31-Jul-2012  bouyer branches: 1.52.2;
Apply back changes that were reverted on Jul 24 and Jul 26 (general ata/wdc
cleanup and SATA PMP support), now that I'm back to fix the fallouts.
 1.51 24-Jul-2012  jakllsch Revert dsl@'s changes of Sun, 15 Jul 2012 10:55:35 +0000 and
Sun, 15 Jul 2012 10:56:50 +0000, excepting the kernel version bump.
First step in reverting regressions to ata(4) subsystem during the addition of
port multiplier support.
 1.50 15-Jul-2012  dsl Some namespace protection (and add greppablity).
Prefix the DRIVE_ and DRIVET_ constants from atavar.h with ATA_.
Don't use an enum for drive_type - you don't know how big it will be.
Move driver_type to avoid implicit structure padding (esp on arm).
This change is purely lexical and mechanical.

Update to 6.99.9 - this wasn't done when the SATA PMP changes
were made - I'm sure they warranted a bump.
 1.49 02-Feb-2012  tls 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.48 07-Aug-2011  rmind branches: 1.48.2; 1.48.6;
Replace some wakeup_one(9) uses with mutex(9) or plain wakeup(9).
 1.47 12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.46 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.45 14-Mar-2009  dsl ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.44 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.43 13-Jan-2009  yamt branches: 1.43.2;
g/c BUFQ_FOO() macros and use bufq_foo() directly.
 1.42 08-Jun-2008  tsutsui branches: 1.42.6;
Replace device_lookup() with device_lookup_private() on getting softc
for future device_t/softc spilt.
 1.41 04-May-2008  martin branches: 1.41.2;
Move to standard TNF 2 clause license
 1.40 08-Apr-2008  cegger branches: 1.40.2; 1.40.4;
use aprint_*_dev and device_xname
 1.39 19-Oct-2007  ad branches: 1.39.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.38 08-Oct-2007  ad branches: 1.38.2;
Merge disk init changes from the vmlocking branch. These seperate init /
destroy of 'struct disk' from attach / detach.
 1.37 29-Jul-2007  ad branches: 1.37.4; 1.37.6; 1.37.8; 1.37.10;
It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.36 21-Jul-2007  ad Replace some uses of lockmgr().
 1.35 04-Mar-2007  christos branches: 1.35.2; 1.35.10;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.34 16-Nov-2006  christos branches: 1.34.4;
__unused removal on arguments; approved by core.
 1.33 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.32 29-Mar-2006  thorpej branches: 1.32.8; 1.32.10;
Use device_private().
 1.31 11-Dec-2005  christos branches: 1.31.4; 1.31.6; 1.31.8; 1.31.10; 1.31.12;
merge ktrace-lwp.
 1.30 15-Oct-2005  yamt - change the way to specify a bufq strategy. (by string rather than by number)
- rather than embedding bufq_state in driver softc,
have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
from sys/bufq.h to sys/bufq_impl.h.
(is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c. (not tested)
 1.29 27-Feb-2005  perry branches: 1.29.4;
nuke trailing whitespace
 1.28 04-Feb-2005  perry de-__P
 1.27 28-Oct-2004  yamt branches: 1.27.4; 1.27.6;
move buffer queue related stuffs from buf.h to their own header, bufq.h.
 1.26 25-Sep-2004  thorpej Can't actually auto-discover wedges here yet, because ed drives are
not attached with interrupts enabled, meaning we can't do the required
I/O. Add a comment to this effect.
 1.25 25-Sep-2004  thorpej Add support for wedges to the MCA ESDI disk driver.
 1.24 01-Sep-2004  drochner use a submatch function for drive attachment, and pass locators
just for sanity
 1.23 13-Aug-2004  thorpej WDCDEBUG -> ATADEBUG.
 1.22 29-Jun-2003  fvdl branches: 1.22.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.21 28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.20 10-May-2003  thorpej Change bounds_check_with_label() to take a pointer to the disk structure,
rather than the label itself. This paves the way for some future changes.
 1.19 02-May-2003  dsl Change return type of readdisklabel() to const char *
I hope I've found all the correct places!
 1.18 23-Oct-2002  jdolecek merge kqueue branch into -current

kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.17 02-Oct-2002  thorpej 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 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.13 21-Jul-2002  hannken Rename bufq_init() to bufq_alloc().
Add bufq_free() to remove a buffer queue.
Avoid MALLOC while holding a spinlock.

From Chuck Silvers.
 1.12 20-Jul-2002  hannken Convert to new device buffer queue interface.
 1.11 29-Mar-2002  jdolecek branches: 1.11.2;
no need to splbio() while manipulating sc_q - it's accessed from
process context only (edcworker())
 1.10 23-Nov-2001  jdolecek Convert over to use the new MCA DMA facilities, which encapsulate
the MCA DMA controller access. This also means we gain >16MB RAM support.

While here, overhaul the driver to saner state, especially:
* simplify and clean the attach code a lot, and support the 'drive'
locator
* pass proper dev_t to readdisklabel() - formerly, the passed value was
completely broken (used incorrect major and wrong minor), but worked
by accident
* worker thread is now spawned per controller, rather than per-drive;
i/o cannot be done concurrently by different drivers, only one
i/o can be pending at any time
* simplify the command queue code, just sleep appropriately when
!poll case, g/c 'async' code formerly needed, move the bio code
from ed_mca.c to edc_mca.c:edc_bio()
* put all string arrays used by edc_dump_status_block() within #ifdef EDC_DEBUG,
and use numbers instead if it's not defined; this cuts object size by 5KB
* other misc cleanups
 1.9 13-Nov-2001  lukem add RCSID
 1.8 03-Sep-2001  sommerfeld branches: 1.8.2;
Don't spinlockinit a simple_lock; simple_lock_init it instead.
 1.7 14-May-2001  jdolecek branches: 1.7.2; 1.7.4;
remove //-commented debugging stuff
 1.6 04-May-2001  jdolecek Implement polled command mode, and use it for writing system dump
and for initial autoconf probes; the latter eliminates need for
deferred configuration (and makes dmesg a bit nicer).

g/c EDF_IODONE flag - protect against interrupt by calling tsleep()
at splbio in worker thread

g/c unneeded stuff, improve some autoconf messages
 1.5 23-Apr-2001  jdolecek Compact autoconf info by printing the IRQ number together
with 'at mca0 slot foo' info.
 1.4 22-Apr-2001  jdolecek Introduce machdep mca_disk_[un]busy(), which turn on/off disk LED.
Call as appropriate from the ESDI disk driver
 1.3 22-Apr-2001  jdolecek Fix serious bug in bounce buf handling - the EDF_BOUNCEBUF flag needs
to be cleared always in edmcadone(), otherwise if there is a write
via bounce buffer followed by read directly to buf, the read operation
would return trashed data (the buf data would get overwritten
by contents of bounce buffer in edmcadone()).
Reset b_resid as necessary when the i/o is done, too.

g/c some unneeded stuff, use lockmgr()-style locking in ed_[un]lock(),
better avoid some deadlocks

These changes make the driver quite a bit more stable. It's actually
reliable enough to be possible to newfs the drive and use it for
read/write filesystem now.
 1.2 19-Apr-2001  jdolecek branches: 1.2.2;
Use "edc" instead of "dasd". As pointed out by Soren, dasd doesn't
mean anything special in IBM-talk. And edc better matches prior art, too.
 1.1 19-Apr-2001  jdolecek Add a driver for IBM ESDI disk controllers. Tested with IBM Integ. ESDI Fixed
Disk & Controller only at the moment.

This driver still needs some touchup (error recovery is not quite
good, MCA DMA controller goo should be moved to driver independant
location), but is working enough to be usable for others. And I
want this under CVS control :)

Thanks to Scott Telford <st@epcc.ed.ac.uk> for providing me docs for
these devices (IBM DASD Storage Interface Specification for MCA rev. 2.2).
 1.2.2.3 23-Apr-2001  bouyer Sync with HEAD.
 1.2.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.2.2.1 19-Apr-2001  bouyer file ed_mca.c was added on branch thorpej_scsipi on 2001-04-21 17:48:52 +0000
 1.7.4.5 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.7.4.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.7.4.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.7.4.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.7.4.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.7.2.10 11-Nov-2002  nathanw Catch up to -current
 1.7.2.9 18-Oct-2002  nathanw Catch up to -current.
 1.7.2.8 17-Sep-2002  nathanw Catch up to -current.
 1.7.2.7 01-Aug-2002  nathanw Catch up to -current.
 1.7.2.6 17-Apr-2002  nathanw Catch up to -current.
 1.7.2.5 08-Jan-2002  nathanw Catch up to -current.
 1.7.2.4 14-Nov-2001  nathanw Catch up to -current.
 1.7.2.3 21-Sep-2001  nathanw Catch up to -current.
 1.7.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.7.2.1 14-May-2001  nathanw file ed_mca.c was added on branch nathanw_sa on 2001-06-21 20:03:59 +0000
 1.8.2.3 01-Oct-2001  fvdl Catch up with -current.
 1.8.2.2 26-Sep-2001  fvdl * add a VCLONED vnode flag that indicates a vnode representing a cloned
device.
* rename REVOKEALL to REVOKEALIAS, and add a REVOKECLONE flag, to pass
to VOP_REVOKE
* the revoke system call will revoke all aliases, as before, but not the
clones
* vdevgone is called when detaching a device, so make it use REVOKECLONE
to get rid of all clones as well
* clean up all uses of VOP_OPEN wrt. locking.
* add a few VOPS to spec_vnops that need to do something when it's a
clone vnode (access and getattr)
* add a copy of the vnode vattr structure of the original 'master' vnode
to the specinfo of a cloned vnode. could possibly redirect getattr to
the 'master' vnode, but this has issues with revoke
* add a vdev_reassignvp function that disassociates a vnode from its
original device, and reassociates it with the specified dev_t. to be
used by cloning devices only, in case a new minor is allocated.
* change all direct references in drivers to v_devcookie and v_rdev
to vdev_privdata(vp) and vdev_rdev(vp). for diagnostic purposes
when debugging race conditions that still exist wrt. locking and
revoking vnodes.
* make the locking state of a vnode consistent when passed to
d_open and d_close (unlocked). locked would be better, but has
some deadlock issues
 1.8.2.1 07-Sep-2001  thorpej Commit my "devvp" changes to the thorpej-devvp branch. This
replaces the use of dev_t in most places with a struct vnode *.

This will form the basic infrastructure for real cloning device
support (besides being architecurally cleaner -- it'll be good
to get away from using numbers to represent objects).
 1.11.2.2 29-Aug-2002  gehenna catch up with -current.
 1.11.2.1 16-May-2002  gehenna Add the block/character device switches.
 1.22.2.10 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.22.2.9 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.22.2.8 04-Feb-2005  skrll Sync with HEAD.
 1.22.2.7 02-Nov-2004  skrll Sync with HEAD.
 1.22.2.6 19-Oct-2004  skrll Sync with HEAD
 1.22.2.5 21-Sep-2004  skrll Fix the sync with head I botched.
 1.22.2.4 18-Sep-2004  skrll Sync with HEAD.
 1.22.2.3 03-Sep-2004  skrll Sync with HEAD
 1.22.2.2 25-Aug-2004  skrll Sync with HEAD.
 1.22.2.1 02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.27.6.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.27.6.1 12-Feb-2005  yamt sync with head.
 1.27.4.1 29-Apr-2005  kent sync with -current
 1.29.4.4 27-Oct-2007  yamt sync with head.
 1.29.4.3 03-Sep-2007  yamt sync with head.
 1.29.4.2 30-Dec-2006  yamt sync with head.
 1.29.4.1 21-Jun-2006  yamt sync with head.
 1.31.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.31.10.1 19-Apr-2006  elad sync with head.
 1.31.8.1 01-Apr-2006  yamt sync with head.
 1.31.6.1 22-Apr-2006  simonb Sync with head.
 1.31.4.1 09-Sep-2006  rpaulo sync with head
 1.32.10.2 10-Dec-2006  yamt sync with head.
 1.32.10.1 22-Oct-2006  yamt sync with head
 1.32.8.1 18-Nov-2006  ad Sync with head.
 1.34.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.35.10.1 15-Aug-2007  skrll Sync with HEAD.
 1.35.2.5 23-Oct-2007  ad Sync with head.
 1.35.2.4 09-Oct-2007  ad Sync with head.
 1.35.2.3 20-Aug-2007  ad - Alter disk attach/detach to fix a panic when closing a vnd device.
- Sync with HEAD.
 1.35.2.2 19-Aug-2007  ad - Back out the biodone() changes.
- Eliminate B_ERROR (from HEAD).
 1.35.2.1 13-May-2007  ad - Pass the error number and residual count to biodone(), and let it handle
setting error indicators. Prepare to eliminate B_ERROR.
- Add a flag argument to brelse() to be set into the buf's flags, instead
of doing it directly. Typically used to set B_INVAL.
- Add a "struct cpu_info *" argument to kthread_create(), to be used to
create bound threads. Change "bool mpsafe" to "int flags".
- Allow exit of LWPs in the IDL state when (l != curlwp).
- More locking fixes & conversion to the new API.
 1.37.10.2 29-Jul-2007  ad It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.37.10.1 29-Jul-2007  ad file ed_mca.c was added on branch matt-mips64 on 2007-07-29 12:50:22 +0000
 1.37.8.1 14-Oct-2007  yamt sync with head.
 1.37.6.1 06-Nov-2007  matt sync with HEAD
 1.37.4.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.38.2.1 25-Oct-2007  bouyer Sync with HEAD.
 1.39.16.3 17-Jan-2009  mjf Sync with HEAD.
 1.39.16.2 29-Jun-2008  mjf Sync with HEAD.
 1.39.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.40.4.3 16-May-2009  yamt sync with head
 1.40.4.2 04-May-2009  yamt sync with head.
 1.40.4.1 16-May-2008  yamt sync with head.
 1.40.2.2 17-Jun-2008  yamt sync with head.
 1.40.2.1 18-May-2008  yamt sync with head.
 1.41.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.42.6.2 28-Apr-2009  skrll Sync with HEAD.
 1.42.6.1 19-Jan-2009  skrll Sync with HEAD.
 1.43.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.48.6.1 18-Feb-2012  mrg merge to -current.
 1.48.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.48.2.2 30-Oct-2012  yamt sync with head
 1.48.2.1 17-Apr-2012  yamt sync with head
 1.52.2.3 03-Dec-2017  jdolecek update from HEAD
 1.52.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.52.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.53.2.1 18-May-2014  rmind sync with head
 1.55.2.2 10-Aug-2014  tls Rebase.
 1.55.2.1 07-Apr-2014  tls Be a little more clear and consistent about harvesting entropy from devices:

1) deprecate RND_FLAG_NO_ESTIMATE

2) define RND_FLAG_COLLECT_TIME, RND_FLAG_COLLECT_VALUE

3) define RND_FLAG_ESTIMATE_TIME, RND_FLAG_ESTIMATE_VALUE

4) define RND_FLAG_DEFAULT: RND_FLAG_COLLECT_TIME|
RND_FLAG_COLLECT_VALUE|RND_FLAG_ESTIMATE_TIME

5) Make entropy harvesting from environmental sensors a little more generic
and remove it from individual sensor drivers.

6) Remove individual open-coded delta-estimators for values from a few
places in the tree (uvm, environmental drivers).

7) 0 -> RND_FLAG_DEFAULT, actually gather entropy from various drivers
that had stubbed out code, other minor cleanups.
 1.59.2.3 05-Oct-2016  skrll Sync with HEAD
 1.59.2.2 06-Jun-2015  skrll Sync with HEAD
 1.59.2.1 06-Apr-2015  skrll Sync with HEAD
 1.66.18.1 10-Jun-2019  christos Sync with HEAD
 1.66.16.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.55 25-Sep-2022  thorpej Remove unnecessary include of <sys/malloc.h>.
 1.54 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.53 24-Apr-2021  thorpej branches: 1.53.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.52 14-Jul-2016  msaitoh branches: 1.52.34;
- Use aprint*() more in xxx_attach().
- Add missing aprint_naive("\n").
- Remove extra spaces and tabs.
- KNF.
 1.51 11-Jul-2016  msaitoh KNF. No functional change.
 1.50 13-Apr-2015  riastradh Convert sys/dev to use <sys/rndsource.h>.
 1.49 20-Mar-2014  skrll branches: 1.49.6;
Mechanically replace simplelock with kmutex_t.
 1.48 12-Oct-2013  christos adjust for recent deferred changes.
 1.47 27-Oct-2012  chs branches: 1.47.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.46 02-Feb-2012  tls branches: 1.46.6;
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.45 07-Aug-2011  rmind branches: 1.45.2; 1.45.6;
Replace some wakeup_one(9) uses with mutex(9) or plain wakeup(9).
 1.44 12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.43 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.42 13-Jan-2009  yamt branches: 1.42.2;
g/c BUFQ_FOO() macros and use bufq_foo() directly.
 1.41 16-Dec-2008  christos replace bitmask_snprintf(9) with snprintb(3)
 1.40 04-May-2008  martin branches: 1.40.8;
Move to standard TNF 2 clause license
 1.39 08-Apr-2008  cegger branches: 1.39.2; 1.39.4;
use aprint_*_dev and device_xname
 1.38 19-Oct-2007  ad branches: 1.38.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.37 29-Jul-2007  ad branches: 1.37.4; 1.37.6; 1.37.10; 1.37.12;
It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.36 09-Jul-2007  ad branches: 1.36.2;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.35 16-Nov-2006  christos branches: 1.35.8; 1.35.10;
__unused removal on arguments; approved by core.
 1.34 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.33 29-Mar-2006  thorpej branches: 1.33.8; 1.33.10;
Use device_private().
 1.32 11-Dec-2005  christos branches: 1.32.4; 1.32.6; 1.32.8; 1.32.10; 1.32.12;
merge ktrace-lwp.
 1.31 15-Oct-2005  yamt - change the way to specify a bufq strategy. (by string rather than by number)
- rather than embedding bufq_state in driver softc,
have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
from sys/bufq.h to sys/bufq_impl.h.
(is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c. (not tested)
 1.30 26-Aug-2005  drochner kill some more simple submatch() functions, use config_stdsubmatch()
 1.29 25-Aug-2005  drochner replace the "locdesc_t" structure carrying the number of locators
explicitely by a plain integer array
the length in now known to all relevant parties, so this avoids
duplication of information, and we can allocate that thing in
drivers without hacks
 1.28 27-Feb-2005  perry branches: 1.28.4;
nuke trailing whitespace
 1.27 04-Feb-2005  perry de-__P
 1.26 28-Oct-2004  yamt branches: 1.26.4; 1.26.6;
move buffer queue related stuffs from buf.h to their own header, bufq.h.
 1.25 01-Sep-2004  drochner use a submatch function for drive attachment, and pass locators
just for sanity
 1.24 30-Aug-2004  drochner There is no point in using config_found_sm() if there is no submatch function.
(actually, there should be one...)
 1.23 10-Nov-2003  wiz Spell address with two d's. Inspired by similar changes in OpenBSD,
originating from Jonathon Gray and forwarded by jmc@openbsd.
 1.22 25-Oct-2003  christos Fix uninitialized variable warnings
 1.21 01-Nov-2002  mrg branches: 1.21.6;
implement separate read/write disk statistics:
- disk_unbusy() gets a new parameter to tell the IO direction.
- struct disk_sysctl gets 4 new members for read/write bytes/transfers.
when processing hw.diskstats, add the read&write bytes/transfers for
the old combined stats to attempt to keep backwards compatibility.

unfortunately, due to multiple bugs, this will cause new kernels and old
vmstat/iostat/systat programs to fail. however, the next time this is
change it will not fail again.

this is just the kernel portion.
 1.20 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.19 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.18 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.17 20-Jul-2002  hannken Convert to new device buffer queue interface.
 1.16 31-Mar-2002  jdolecek branches: 1.16.2;
edc_cmd_wait(): it is absolutely necessary to wait for the BSR_CMD_INPROGRESS
flag to clear, even when the COMMAND COMPLETE interrupt already did happen,
otherwise we get ATTENTION ERROR for next command if it happens soon
enough; this fixes the reliability problems introduced by previous change

some other cleanup & simlify of edc_cmd_wait()/edc_run_cmd(), the 'secs'
is just a hint used in !poll case only
add some comments
move status_block[] back to edc_mca_softc, to save stack memory
make #ifdef DEBUG #ifdef EDC_DEBUG and g/c some obsolete debug stuff
make some EAGAINs EIOs
edc_intr(): wakeup the waiter for any command, not just READ/WRITE DATA
 1.15 31-Dec-2001  thorpej Labels must be followed by statements.
 1.14 06-Dec-2001  jdolecek it doesn't make sense to wait for resources during autoconfiguration
 1.13 04-Dec-2001  sommerfeld Fix so these files build with options DEBUG enabled.
The change to edc_mca.c may not work as I don't have any mca hardware.
 1.12 02-Dec-2001  jdolecek use the new MCABUS_DMA_16BIT flag to use 16bit DMA (not implicit anymore)
 1.11 23-Nov-2001  jdolecek Convert over to use the new MCA DMA facilities, which encapsulate
the MCA DMA controller access. This also means we gain >16MB RAM support.

While here, overhaul the driver to saner state, especially:
* simplify and clean the attach code a lot, and support the 'drive'
locator
* pass proper dev_t to readdisklabel() - formerly, the passed value was
completely broken (used incorrect major and wrong minor), but worked
by accident
* worker thread is now spawned per controller, rather than per-drive;
i/o cannot be done concurrently by different drivers, only one
i/o can be pending at any time
* simplify the command queue code, just sleep appropriately when
!poll case, g/c 'async' code formerly needed, move the bio code
from ed_mca.c to edc_mca.c:edc_bio()
* put all string arrays used by edc_dump_status_block() within #ifdef EDC_DEBUG,
and use numbers instead if it's not defined; this cuts object size by 5KB
* other misc cleanups
 1.10 13-Nov-2001  lukem add RCSID
 1.9 04-May-2001  jdolecek branches: 1.9.2; 1.9.4;
Implement polled command mode, and use it for writing system dump
and for initial autoconf probes; the latter eliminates need for
deferred configuration (and makes dmesg a bit nicer).

g/c EDF_IODONE flag - protect against interrupt by calling tsleep()
at splbio in worker thread

g/c unneeded stuff, improve some autoconf messages
 1.8 25-Apr-2001  simonb Spell occurred correctly.
 1.7 24-Apr-2001  jdolecek print the drq together with irq, slot info
 1.6 23-Apr-2001  jdolecek branches: 1.6.2;
Compact autoconf info by printing the IRQ number together
with 'at mca0 slot foo' info.
 1.5 22-Apr-2001  jdolecek g/c edc_dev_status[]
 1.4 22-Apr-2001  jdolecek fix edc_dump_status_block() to correctly print Command Error Code and
Device Error Code/Status when appropriate
add one item to TODO - need support for kernel memory crash dumps (to be
implemented "soon")
 1.3 22-Apr-2001  jdolecek edc_dump_status_block(): print RBA # and block count as unsigned
 1.2 22-Apr-2001  jdolecek Fix serious bug in bounce buf handling - the EDF_BOUNCEBUF flag needs
to be cleared always in edmcadone(), otherwise if there is a write
via bounce buffer followed by read directly to buf, the read operation
would return trashed data (the buf data would get overwritten
by contents of bounce buffer in edmcadone()).
Reset b_resid as necessary when the i/o is done, too.

g/c some unneeded stuff, use lockmgr()-style locking in ed_[un]lock(),
better avoid some deadlocks

These changes make the driver quite a bit more stable. It's actually
reliable enough to be possible to newfs the drive and use it for
read/write filesystem now.
 1.1 19-Apr-2001  jdolecek Use "edc" instead of "dasd". As pointed out by Soren, dasd doesn't
mean anything special in IBM-talk. And edc better matches prior art, too.
 1.6.2.2 23-Apr-2001  bouyer Sync with HEAD.
 1.6.2.1 23-Apr-2001  bouyer file edc_mca.c was added on branch thorpej_scsipi on 2001-04-23 09:42:23 +0000
 1.9.4.4 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.9.4.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.9.4.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.9.4.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.9.2.8 11-Nov-2002  nathanw Catch up to -current
 1.9.2.7 18-Oct-2002  nathanw Catch up to -current.
 1.9.2.6 01-Aug-2002  nathanw Catch up to -current.
 1.9.2.5 17-Apr-2002  nathanw Catch up to -current.
 1.9.2.4 08-Jan-2002  nathanw Catch up to -current.
 1.9.2.3 14-Nov-2001  nathanw Catch up to -current.
 1.9.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.9.2.1 04-May-2001  nathanw file edc_mca.c was added on branch nathanw_sa on 2001-06-21 20:04:00 +0000
 1.16.2.1 29-Aug-2002  gehenna catch up with -current.
 1.21.6.8 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.21.6.7 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.21.6.6 04-Feb-2005  skrll Sync with HEAD.
 1.21.6.5 02-Nov-2004  skrll Sync with HEAD.
 1.21.6.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.21.6.3 18-Sep-2004  skrll Sync with HEAD.
 1.21.6.2 03-Sep-2004  skrll Sync with HEAD
 1.21.6.1 03-Aug-2004  skrll Sync with HEAD
 1.26.6.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.26.6.1 12-Feb-2005  yamt sync with head.
 1.26.4.1 29-Apr-2005  kent sync with -current
 1.28.4.4 27-Oct-2007  yamt sync with head.
 1.28.4.3 03-Sep-2007  yamt sync with head.
 1.28.4.2 30-Dec-2006  yamt sync with head.
 1.28.4.1 21-Jun-2006  yamt sync with head.
 1.32.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.32.10.1 19-Apr-2006  elad sync with head.
 1.32.8.1 01-Apr-2006  yamt sync with head.
 1.32.6.1 22-Apr-2006  simonb Sync with head.
 1.32.4.1 09-Sep-2006  rpaulo sync with head
 1.33.10.2 10-Dec-2006  yamt sync with head.
 1.33.10.1 22-Oct-2006  yamt sync with head
 1.33.8.1 18-Nov-2006  ad Sync with head.
 1.35.10.1 11-Jul-2007  mjf Sync with head.
 1.35.8.5 23-Oct-2007  ad Sync with head.
 1.35.8.4 19-Aug-2007  ad - Back out the biodone() changes.
- Eliminate B_ERROR (from HEAD).
 1.35.8.3 13-May-2007  ad - Pass the error number and residual count to biodone(), and let it handle
setting error indicators. Prepare to eliminate B_ERROR.
- Add a flag argument to brelse() to be set into the buf's flags, instead
of doing it directly. Typically used to set B_INVAL.
- Add a "struct cpu_info *" argument to kthread_create(), to be used to
create bound threads. Change "bool mpsafe" to "int flags".
- Allow exit of LWPs in the IDL state when (l != curlwp).
- More locking fixes & conversion to the new API.
 1.35.8.2 10-Apr-2007  ad Nuke the deferred kthread creation stuff, as it's no longer needed.
Pointed out by thorpej@.
 1.35.8.1 09-Apr-2007  ad - Add two new arguments to kthread_create1: pri_t pri, bool mpsafe.
- Fork kthreads off proc0 as new LWPs, not new processes.
 1.36.2.1 15-Aug-2007  skrll Sync with HEAD.
 1.37.12.2 29-Jul-2007  ad It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.37.12.1 29-Jul-2007  ad file edc_mca.c was added on branch matt-mips64 on 2007-07-29 12:50:22 +0000
 1.37.10.1 25-Oct-2007  bouyer Sync with HEAD.
 1.37.6.1 06-Nov-2007  matt sync with HEAD
 1.37.4.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.38.16.2 17-Jan-2009  mjf Sync with HEAD.
 1.38.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.39.4.3 16-May-2009  yamt sync with head
 1.39.4.2 04-May-2009  yamt sync with head.
 1.39.4.1 16-May-2008  yamt sync with head.
 1.39.2.1 18-May-2008  yamt sync with head.
 1.40.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.42.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.45.6.1 18-Feb-2012  mrg merge to -current.
 1.45.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.45.2.2 30-Oct-2012  yamt sync with head
 1.45.2.1 17-Apr-2012  yamt sync with head
 1.46.6.3 03-Dec-2017  jdolecek update from HEAD
 1.46.6.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.46.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.47.2.1 18-May-2014  rmind sync with head
 1.49.6.2 05-Oct-2016  skrll Sync with HEAD
 1.49.6.1 06-Jun-2015  skrll Sync with HEAD
 1.52.34.2 22-Mar-2021  thorpej Audit CFARG_IATTR in config_found() calls, and remove it in situations
where the interface attribute is not ambiguous.
 1.52.34.1 22-Mar-2021  thorpej Mechanical conversion of config_found_sm_loc() -> config_found().
CFARG_IATTR usage needs to be audited.
 1.53.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.5 04-May-2008  martin Move to standard TNF 2 clause license
 1.4 11-Dec-2005  christos branches: 1.4.70; 1.4.72; 1.4.74;
merge ktrace-lwp.
 1.3 27-Feb-2005  perry nuke trailing whitespace
 1.2 22-Apr-2001  jdolecek branches: 1.2.2; 1.2.4; 1.2.26; 1.2.34; 1.2.36;
Fix serious bug in bounce buf handling - the EDF_BOUNCEBUF flag needs
to be cleared always in edmcadone(), otherwise if there is a write
via bounce buffer followed by read directly to buf, the read operation
would return trashed data (the buf data would get overwritten
by contents of bounce buffer in edmcadone()).
Reset b_resid as necessary when the i/o is done, too.

g/c some unneeded stuff, use lockmgr()-style locking in ed_[un]lock(),
better avoid some deadlocks

These changes make the driver quite a bit more stable. It's actually
reliable enough to be possible to newfs the drive and use it for
read/write filesystem now.
 1.1 19-Apr-2001  jdolecek Use "edc" instead of "dasd". As pointed out by Soren, dasd doesn't
mean anything special in IBM-talk. And edc better matches prior art, too.
 1.2.36.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.2.34.1 29-Apr-2005  kent sync with -current
 1.2.26.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.2.4.2 21-Jun-2001  nathanw Catch up to -current.
 1.2.4.1 22-Apr-2001  nathanw file edcreg.h was added on branch nathanw_sa on 2001-06-21 20:04:01 +0000
 1.2.2.2 23-Apr-2001  bouyer Sync with HEAD.
 1.2.2.1 22-Apr-2001  bouyer file edcreg.h was added on branch thorpej_scsipi on 2001-04-23 09:42:23 +0000
 1.4.74.1 16-May-2008  yamt sync with head.
 1.4.72.1 18-May-2008  yamt sync with head.
 1.4.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.8 04-May-2008  martin Move to standard TNF 2 clause license
 1.7 11-Dec-2005  christos branches: 1.7.70; 1.7.72; 1.7.74;
merge ktrace-lwp.
 1.6 04-Feb-2005  perry de-__P
 1.5 01-Sep-2004  drochner branches: 1.5.4; 1.5.6;
use a submatch function for drive attachment, and pass locators
just for sanity
 1.4 24-Nov-2001  jdolecek branches: 1.4.16;
The header part of driver overhault:
* simplify and clean the attach code a lot, and support the 'drive'
locator
* pass proper dev_t to readdisklabel() - formerly, the passed value was
completely broken (used incorrect major and wrong minor), but worked
by accident
* worker thread is now spawned per controller, rather than per-drive;
i/o cannot be done concurrently by different drivers, only one
i/o can be pending at any time
* simplify the command queue code, just sleep appropriately when
!poll case, g/c 'async' code formerly needed, move the bio code
from ed_mca.c to edc_mca.c:edc_bio()
* other misc cleanups
 1.3 04-May-2001  jdolecek branches: 1.3.2; 1.3.4;
Implement polled command mode, and use it for writing system dump
and for initial autoconf probes; the latter eliminates need for
deferred configuration (and makes dmesg a bit nicer).

g/c EDF_IODONE flag - protect against interrupt by calling tsleep()
at splbio in worker thread

g/c unneeded stuff, improve some autoconf messages
 1.2 22-Apr-2001  jdolecek branches: 1.2.2;
Fix serious bug in bounce buf handling - the EDF_BOUNCEBUF flag needs
to be cleared always in edmcadone(), otherwise if there is a write
via bounce buffer followed by read directly to buf, the read operation
would return trashed data (the buf data would get overwritten
by contents of bounce buffer in edmcadone()).
Reset b_resid as necessary when the i/o is done, too.

g/c some unneeded stuff, use lockmgr()-style locking in ed_[un]lock(),
better avoid some deadlocks

These changes make the driver quite a bit more stable. It's actually
reliable enough to be possible to newfs the drive and use it for
read/write filesystem now.
 1.1 19-Apr-2001  jdolecek Use "edc" instead of "dasd". As pointed out by Soren, dasd doesn't
mean anything special in IBM-talk. And edc better matches prior art, too.
 1.2.2.2 23-Apr-2001  bouyer Sync with HEAD.
 1.2.2.1 22-Apr-2001  bouyer file edcvar.h was added on branch thorpej_scsipi on 2001-04-23 09:42:24 +0000
 1.3.4.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.3 08-Jan-2002  nathanw Catch up to -current.
 1.3.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.3.2.1 04-May-2001  nathanw file edcvar.h was added on branch nathanw_sa on 2001-06-21 20:04:02 +0000
 1.4.16.4 04-Feb-2005  skrll Sync with HEAD.
 1.4.16.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.16.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.16.1 03-Sep-2004  skrll Sync with HEAD
 1.5.6.1 12-Feb-2005  yamt sync with head.
 1.5.4.1 29-Apr-2005  kent sync with -current
 1.7.74.1 16-May-2008  yamt sync with head.
 1.7.72.1 18-May-2008  yamt sync with head.
 1.7.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.18 14-Apr-2015  riastradh Include <sys/rndsource.h> where it is actually used.

I had removed <sys/rnd.h> from files that didn't mention anything of
the rnd(9) API. But they included other files which assumed
<sys/rnd.h> had already been included.
 1.17 20-Mar-2014  skrll branches: 1.17.6;
Mechanically replace simplelock with kmutex_t.
 1.16 27-Oct-2012  chs branches: 1.16.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.15 02-Feb-2012  tls branches: 1.15.6;
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.14 19-Nov-2011  tls branches: 1.14.2;
First step of random number subsystem rework described in
<20111022023242.BA26F14A158@mail.netbsd.org>. This change includes
the following:

An initial cleanup and minor reorganization of the entropy pool
code in sys/dev/rnd.c and sys/dev/rndpool.c. Several bugs are
fixed. Some effort is made to accumulate entropy more quickly at
boot time.

A generic interface, "rndsink", is added, for stream generators to
request that they be re-keyed with good quality entropy from the pool
as soon as it is available.

The arc4random()/arc4randbytes() implementation in libkern is
adjusted to use the rndsink interface for rekeying, which helps
address the problem of low-quality keys at boot time.

An implementation of the FIPS 140-2 statistical tests for random
number generator quality is provided (libkern/rngtest.c). This
is based on Greg Rose's implementation from Qualcomm.

A new random stream generator, nist_ctr_drbg, is provided. It is
based on an implementation of the NIST SP800-90 CTR_DRBG by
Henric Jungheim. This generator users AES in a modified counter
mode to generate a backtracking-resistant random stream.

An abstraction layer, "cprng", is provided for in-kernel consumers
of randomness. The arc4random/arc4randbytes API is deprecated for
in-kernel use. It is replaced by "cprng_strong". The current
cprng_fast implementation wraps the existing arc4random
implementation. The current cprng_strong implementation wraps the
new CTR_DRBG implementation. Both interfaces are rekeyed from
the entropy pool automatically at intervals justifiable from best
current cryptographic practice.

In some quick tests, cprng_fast() is about the same speed as
the old arc4randbytes(), and cprng_strong() is about 20% faster
than rnd_extract_data(). Performance is expected to improve.

The AES code in src/crypto/rijndael is no longer an optional
kernel component, as it is required by cprng_strong, which is
not an optional kernel component.

The entropy pool output is subjected to the rngtest tests at
startup time; if it fails, the system will reboot. There is
approximately a 3/10000 chance of a false positive from these
tests. Entropy pool _input_ from hardware random numbers is
subjected to the rngtest tests at attach time, as well as the
FIPS continuous-output test, to detect bad or stuck hardware
RNGs; if any are detected, they are detached, but the system
continues to run.

A problem with rndctl(8) is fixed -- datastructures with
pointers in arrays are no longer passed to userspace (this
was not a security problem, but rather a major issue for
compat32). A new kernel will require a new rndctl.

The sysctl kern.arandom() and kern.urandom() nodes are hooked
up to the new generators, but the /dev/*random pseudodevices
are not, yet.

Manual pages for the new kernel interfaces are forthcoming.
 1.13 04-May-2008  martin branches: 1.13.34;
Move to standard TNF 2 clause license
 1.12 04-Jan-2008  ad branches: 1.12.6; 1.12.8; 1.12.10;
Start detangling lock.h from intr.h. This is likely to cause short term
breakage, but the mess of dependencies has been regularly breaking the
build recently anyhow.
 1.11 11-Dec-2005  christos branches: 1.11.46; 1.11.52; 1.11.60;
merge ktrace-lwp.
 1.10 15-Oct-2005  yamt - change the way to specify a bufq strategy. (by string rather than by number)
- rather than embedding bufq_state in driver softc,
have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
from sys/bufq.h to sys/bufq_impl.h.
(is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c. (not tested)
 1.9 27-Feb-2005  perry branches: 1.9.4;
nuke trailing whitespace
 1.8 25-Sep-2004  thorpej branches: 1.8.4; 1.8.6;
Add support for wedges to the MCA ESDI disk driver.
 1.7 20-Jul-2002  hannken branches: 1.7.6;
Convert to new device buffer queue interface.
 1.6 24-Nov-2001  jdolecek branches: 1.6.8;
The header part of driver overhault:
* simplify and clean the attach code a lot, and support the 'drive'
locator
* pass proper dev_t to readdisklabel() - formerly, the passed value was
completely broken (used incorrect major and wrong minor), but worked
by accident
* worker thread is now spawned per controller, rather than per-drive;
i/o cannot be done concurrently by different drivers, only one
i/o can be pending at any time
* simplify the command queue code, just sleep appropriately when
!poll case, g/c 'async' code formerly needed, move the bio code
from ed_mca.c to edc_mca.c:edc_bio()
* other misc cleanups
 1.5 08-Jul-2001  wiz branches: 1.5.2;
Correct various misspellings of 'transfer' and inflected forms.
 1.4 04-May-2001  jdolecek branches: 1.4.2;
Implement polled command mode, and use it for writing system dump
and for initial autoconf probes; the latter eliminates need for
deferred configuration (and makes dmesg a bit nicer).

g/c EDF_IODONE flag - protect against interrupt by calling tsleep()
at splbio in worker thread

g/c unneeded stuff, improve some autoconf messages
 1.3 22-Apr-2001  jdolecek Fix serious bug in bounce buf handling - the EDF_BOUNCEBUF flag needs
to be cleared always in edmcadone(), otherwise if there is a write
via bounce buffer followed by read directly to buf, the read operation
would return trashed data (the buf data would get overwritten
by contents of bounce buffer in edmcadone()).
Reset b_resid as necessary when the i/o is done, too.

g/c some unneeded stuff, use lockmgr()-style locking in ed_[un]lock(),
better avoid some deadlocks

These changes make the driver quite a bit more stable. It's actually
reliable enough to be possible to newfs the drive and use it for
read/write filesystem now.
 1.2 19-Apr-2001  jdolecek branches: 1.2.2;
Use "edc" instead of "dasd". As pointed out by Soren, dasd doesn't
mean anything special in IBM-talk. And edc better matches prior art, too.
 1.1 19-Apr-2001  jdolecek Add a driver for IBM ESDI disk controllers. Tested with IBM Integ. ESDI Fixed
Disk & Controller only at the moment.

This driver still needs some touchup (error recovery is not quite
good, MCA DMA controller goo should be moved to driver independant
location), but is working enough to be usable for others. And I
want this under CVS control :)

Thanks to Scott Telford <st@epcc.ed.ac.uk> for providing me docs for
these devices (IBM DASD Storage Interface Specification for MCA rev. 2.2).
 1.2.2.3 23-Apr-2001  bouyer Sync with HEAD.
 1.2.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.2.2.1 19-Apr-2001  bouyer file edvar.h was added on branch thorpej_scsipi on 2001-04-21 17:48:52 +0000
 1.4.2.5 01-Aug-2002  nathanw Catch up to -current.
 1.4.2.4 08-Jan-2002  nathanw Catch up to -current.
 1.4.2.3 24-Aug-2001  nathanw Catch up with -current.
 1.4.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.4.2.1 04-May-2001  nathanw file edvar.h was added on branch nathanw_sa on 2001-06-21 20:04:03 +0000
 1.5.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.5.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.6.8.1 29-Aug-2002  gehenna catch up with -current.
 1.7.6.3 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.7.6.2 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.7.6.1 19-Oct-2004  skrll Sync with HEAD
 1.8.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.8.4.1 29-Apr-2005  kent sync with -current
 1.9.4.2 21-Jan-2008  yamt sync with head
 1.9.4.1 21-Jun-2006  yamt sync with head.
 1.11.60.1 08-Jan-2008  bouyer Sync with HEAD
 1.11.52.1 18-Feb-2008  mjf Sync with HEAD.
 1.11.46.1 09-Jan-2008  matt sync with HEAD
 1.12.10.1 16-May-2008  yamt sync with head.
 1.12.8.1 18-May-2008  yamt sync with head.
 1.12.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.13.34.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.13.34.2 30-Oct-2012  yamt sync with head
 1.13.34.1 17-Apr-2012  yamt sync with head
 1.14.2.1 18-Feb-2012  mrg merge to -current.
 1.15.6.3 03-Dec-2017  jdolecek update from HEAD
 1.15.6.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.15.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.16.2.1 18-May-2014  rmind sync with head
 1.17.6.1 06-Jun-2015  skrll Sync with HEAD
 1.22 14-Jul-2016  msaitoh - Use aprint*() more in xxx_attach().
- Add missing aprint_naive("\n").
- Remove extra spaces and tabs.
- KNF.
 1.21 23-Nov-2009  rmind branches: 1.21.22; 1.21.40;
Remove some unecessary includes sys/user.h header.
 1.20 20-Jan-2009  christos Fix obvious errors in conversion to device_t from Wojciech Galazka
Please compile-test at least!
 1.19 28-Apr-2008  martin branches: 1.19.8; 1.19.10;
Remove clause 3 and 4 from TNF licenses
 1.18 13-Apr-2008  tsutsui branches: 1.18.2; 1.18.4;
Split device_t/softc for MI ncr53c9x and some related devices,
with various cleanup.
 1.17 08-Apr-2008  cegger use aprint_*_dev and device_xname
 1.16 19-Oct-2007  ad branches: 1.16.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.15 04-Mar-2007  christos branches: 1.15.2; 1.15.14; 1.15.16; 1.15.20;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.14 16-Nov-2006  christos branches: 1.14.4;
__unused removal on arguments; approved by core.
 1.13 13-Oct-2006  dogcow More -Wunused fallout. sprinkle __unused when possible; otherwise, use the
do { if (&x) {} } while (/* CONSTCOND */ 0);
construct as suggested by uwe in <20061012224845.GA9449@snark.ptc.spbu.ru>.
 1.12 29-Mar-2006  thorpej branches: 1.12.8; 1.12.10;
Use device_private().
 1.11 08-Mar-2006  lukem branches: 1.11.2;
Use the SI capitalization for "Hz", "kHz", and "MHz" in comments and strings.
Add a space between numbers and Hz unit.
 1.10 11-Dec-2005  christos branches: 1.10.4; 1.10.6; 1.10.8; 1.10.10;
merge ktrace-lwp.
 1.9 27-Feb-2005  perry branches: 1.9.4;
nuke trailing whitespace
 1.8 04-Feb-2005  perry de-__P
 1.7 14-Jul-2003  lukem branches: 1.7.8; 1.7.10;
add missing __KERNEL_RCSID()
 1.6 02-Oct-2002  thorpej branches: 1.6.6;
Add trailing ; to CFATTACH_DECL.
 1.5 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.4 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.3 04-Dec-2001  jdolecek branches: 1.3.2; 1.3.4;
clarify copyright - this is all freshly written, no older code used
 1.2 04-Dec-2001  jdolecek Make this NCR 53C90 driver work, using the chip information from
Tymm Twillman's Linux mca_53c9x driver.
Tested with external ZIP100 only.
 1.1 01-Dec-2001  jdolecek Nonworking NCR 53c90 attachment. I don't get any interrupts from
the device yet, need to find real NCR53c90 docs to figure out what's wrong.
 1.3.4.3 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.3.4.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.4.1 04-Dec-2001  thorpej file esp_mca.c was added on branch kqueue on 2002-01-10 19:55:59 +0000
 1.3.2.3 18-Oct-2002  nathanw Catch up to -current.
 1.3.2.2 08-Jan-2002  nathanw Catch up to -current.
 1.3.2.1 04-Dec-2001  nathanw file esp_mca.c was added on branch nathanw_sa on 2002-01-08 00:30:42 +0000
 1.6.6.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.6.6.4 04-Feb-2005  skrll Sync with HEAD.
 1.6.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.6.1 03-Aug-2004  skrll Sync with HEAD
 1.7.10.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.7.10.1 12-Feb-2005  yamt sync with head.
 1.7.8.1 29-Apr-2005  kent sync with -current
 1.9.4.4 27-Oct-2007  yamt sync with head.
 1.9.4.3 03-Sep-2007  yamt sync with head.
 1.9.4.2 30-Dec-2006  yamt sync with head.
 1.9.4.1 21-Jun-2006  yamt sync with head.
 1.10.10.1 19-Apr-2006  elad sync with head.
 1.10.8.2 01-Apr-2006  yamt sync with head.
 1.10.8.1 13-Mar-2006  yamt sync with head.
 1.10.6.1 22-Apr-2006  simonb Sync with head.
 1.10.4.1 09-Sep-2006  rpaulo sync with head
 1.11.2.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.12.10.2 10-Dec-2006  yamt sync with head.
 1.12.10.1 22-Oct-2006  yamt sync with head
 1.12.8.1 18-Nov-2006  ad Sync with head.
 1.14.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.15.20.1 25-Oct-2007  bouyer Sync with HEAD.
 1.15.16.1 06-Nov-2007  matt sync with HEAD
 1.15.14.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.15.2.1 23-Oct-2007  ad Sync with head.
 1.16.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.18.4.3 11-Mar-2010  yamt sync with head
 1.18.4.2 04-May-2009  yamt sync with head.
 1.18.4.1 16-May-2008  yamt sync with head.
 1.18.2.1 18-May-2008  yamt sync with head.
 1.19.10.1 26-Jan-2009  snj Pull up following revision(s) (requested by tsutsui in ticket #310):
sys/dev/mca/esp_mca.c: revision 1.20
Fix obvious errors in conversion to device_t from Wojciech Galazka
Please compile-test at least!
 1.19.8.1 03-Mar-2009  skrll Sync with HEAD.
 1.21.40.1 05-Oct-2016  skrll Sync with HEAD
 1.21.22.1 03-Dec-2017  jdolecek update from HEAD
 1.3 02-Jun-2024  andvar fix various typos in word `interrupt', mainly in comments.
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 04-Dec-2001  jdolecek branches: 1.1.2; 1.1.4; 1.1.118; 1.1.120; 1.1.122;
Make this NCR 53C90 driver work, using the chip information from
Tymm Twillman's Linux mca_53c9x driver.
Tested with external ZIP100 only.
 1.1.122.1 16-May-2008  yamt sync with head.
 1.1.120.1 18-May-2008  yamt sync with head.
 1.1.118.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.4.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.4.1 04-Dec-2001  thorpej file espreg.h was added on branch kqueue on 2002-01-10 19:55:59 +0000
 1.1.2.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.2.1 04-Dec-2001  nathanw file espreg.h was added on branch nathanw_sa on 2002-01-08 00:30:43 +0000
 1.5 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4 13-Apr-2008  tsutsui branches: 1.4.2; 1.4.4;
Split device_t/softc for MI ncr53c9x and some related devices,
with various cleanup.
 1.3 04-Mar-2007  christos branches: 1.3.36;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.2 04-Dec-2001  jdolecek branches: 1.2.2; 1.2.4; 1.2.36; 1.2.74;
Make this NCR 53C90 driver work, using the chip information from
Tymm Twillman's Linux mca_53c9x driver.
Tested with external ZIP100 only.
 1.1 01-Dec-2001  jdolecek Nonworking NCR 53c90 attachment. I don't get any interrupts from
the device yet, need to find real NCR53c90 docs to figure out what's wrong.
 1.2.74.1 12-Mar-2007  rmind Sync with HEAD.
 1.2.36.1 03-Sep-2007  yamt sync with head.
 1.2.4.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.4.1 04-Dec-2001  thorpej file espvar.h was added on branch kqueue on 2002-01-10 19:55:59 +0000
 1.2.2.2 08-Jan-2002  nathanw Catch up to -current.
 1.2.2.1 04-Dec-2001  nathanw file espvar.h was added on branch nathanw_sa on 2002-01-08 00:30:43 +0000
 1.3.36.1 02-Jun-2008  mjf Sync with HEAD.
 1.4.4.1 16-May-2008  yamt sync with head.
 1.4.2.1 18-May-2008  yamt sync with head.
 1.23 19-Jan-2020  thorpej Remove Token Ring support.
 1.22 11-Dec-2005  christos branches: 1.22.164; 1.22.172;
merge ktrace-lwp.
 1.21 03-Apr-2005  jdolecek Add driver for MCA Tiara LANCard / Fujitsu mb86950 EtherStar. Driver provided
in PR kern/26899 by Dave Barnes.
 1.20 27-Feb-2005  perry nuke trailing whitespace
 1.19 30-Aug-2004  drochner branches: 1.19.4; 1.19.6;
add centralized {eisa,isa,pci,agp,mca}busprint() functions which do
what tens of the bus' parents foo{...}bridge_print()s scattered around do
 1.18 24-Mar-2002  jdolecek branches: 1.18.10;
drop the isadma attribute for aha, aha at mca? doesn't use that
 1.17 04-Dec-2001  jdolecek Make this NCR 53C90 driver work, using the chip information from
Tymm Twillman's Linux mca_53c9x driver.
Tested with external ZIP100 only.
 1.16 01-Dec-2001  jdolecek Nonworking NCR 53c90 attachment. I don't get any interrupts from
the device yet, need to find real NCR53c90 docs to figure out what's wrong.
 1.15 28-Nov-2001  lukem - convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups
 1.14 23-Nov-2001  jdolecek add 'drive' locator to mca edc
 1.13 27-Apr-2001  jdolecek branches: 1.13.2;
Add driver for SKNET Personal and MC+ - AMD Lance 7990 based ethernet cards.
Both models tested and seem to be quite stable and fast.

Thanks to:
- Hans Hubner <hans@Huebner.org> for giving me the cards for testing
- Georg Klug of Syskonnect, who provided me with hw docs for these cards,
very promptly and willingly - I wish all vendors would be like this
- Alfred Arnold, Linux SKNET driver author, for giving me valuable Syskonnect
contact :)
 1.12 23-Apr-2001  jdolecek Compact autoconf info by printing the IRQ number together
with 'at mca0 slot foo' info.
 1.11 20-Apr-2001  jdolecek Add MCA ne(4) attachment for Novell NE/2 Ethernet adapter and clones.
Tested with NE/2 card provided to me by Hans Hubner <hans@Huebner.ORG>.

The Compex and Arco cards were not tested. According to Linux ne2 driver,
they should work same way as NE/2.
 1.10 19-Apr-2001  jdolecek Use "edc" instead of "dasd". As pointed out by Soren, dasd doesn't
mean anything special in IBM-talk. And edc better matches prior art, too.
 1.9 19-Apr-2001  jdolecek Add a driver for IBM ESDI disk controllers. Tested with IBM Integ. ESDI Fixed
Disk & Controller only at the moment.

This driver still needs some touchup (error recovery is not quite
good, MCA DMA controller goo should be moved to driver independant
location), but is working enough to be usable for others. And I
want this under CVS control :)

Thanks to Scott Telford <st@epcc.ed.ac.uk> for providing me docs for
these devices (IBM DASD Storage Interface Specification for MCA rev. 2.2).
 1.8 31-Mar-2001  jdolecek Add driver for AT1720 MCA cards. This uses generic MB86960 support code,
and shares some bits with ISA AT1700 driver. Gee, this one was really
easy :)

This card turned out to be quite good performer - I get about 360KB/s
on 386DX PS/2 machine, which is best of all supported cards so far.
Tested with AT1720T, card donated by David Brownlee.
 1.7 23-Mar-2001  jdolecek Add MCA we(4) attachment for WD80x3 cards and clones. Tested with
WD8003W/A, card provided by David Brownlee (thanks!). The SMC Elite stuff not
tested since I don't have any; hopefully it's correct, should match
information in ADF files.

The MCA-specific init quirk taken from Linux smc-mca.c driver.
I don't quite grok why it works, but it does *cross fingers*.

The WD8003W/A seems to be quite a good choice. I get like 340KB/s on my
machine, where 3c523 does only like 310KB/s. The numbers would be probably
even better with faster CPU than 386DX :)
 1.6 22-Mar-2001  jdolecek Add MCA ep(4) attachment, for 3Com 3c529-type cards. Tested with 3c529-TP,
provided to me by David Brownlee (thanks!).

Performance of this card is quite poor on my PS/2 with 386DX, like 100KB/s
at best, but as low as 5KB/s when transferring bigger files due to
packet overruns. It would be good to revisit this later, probably by
teaching the ic code to use RX Early.
 1.5 19-Mar-2001  jdolecek remove bogus ef entry
 1.4 19-Mar-2001  jdolecek Provide MCA com(4) attachment. Tested with IBM Internal modem, kindly
donated to me by David Brownlee <abs@anim.dreamworks.com>.
 1.3 16-Mar-2001  jdolecek Add driver for 3Com EtherLink/MC (3c523) Ethernet MCA card. This beast uses
i82586-based controller, similarily to e.g. ai(4), el(4) or ix(4).
The driver was modelled after the ai(4) driver.

Due to lack of better documentation, Linux 3c523 driver was used
to find out 3c523-specific quirks. Of course, the necessary work was greatly
reduced by our decend generic ic/i82586 code :)

Finally, NetBSD supports an ethernet card on IBM PS/2!
 1.2 24-Feb-2001  lukem branches: 1.2.2;
whitespace police
 1.1 11-May-2000  jdolecek branches: 1.1.6;
MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.1.6.6 23-Apr-2001  bouyer Sync with HEAD.
 1.1.6.5 21-Apr-2001  bouyer Sync with HEAD
 1.1.6.4 27-Mar-2001  bouyer Sync with HEAD.
 1.1.6.3 12-Mar-2001  bouyer Sync with HEAD.
 1.1.6.2 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.1.6.1 11-May-2000  bouyer file files.mca was added on branch thorpej_scsipi on 2000-11-20 11:41:29 +0000
 1.2.2.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.2.3 08-Jan-2002  nathanw Catch up to -current.
 1.2.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.2.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.13.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.13.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.18.10.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.18.10.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.18.10.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.18.10.2 18-Sep-2004  skrll Sync with HEAD.
 1.18.10.1 03-Sep-2004  skrll Sync with HEAD
 1.19.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.19.4.1 29-Apr-2005  kent sync with -current
 1.22.172.1 25-Jan-2020  ad Sync with head.
 1.22.164.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.21 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.20 12-Apr-2008  tsutsui branches: 1.20.2; 1.20.4;
Split device_t/softc for MI mb86960, with misc cosmetics.
 1.19 08-Apr-2008  cegger use aprint_*_dev and device_xname
 1.18 19-Oct-2007  ad branches: 1.18.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.17 16-Nov-2006  christos branches: 1.17.8; 1.17.22; 1.17.24; 1.17.28;
__unused removal on arguments; approved by core.
 1.16 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.15 30-Aug-2006  christos branches: 1.15.2; 1.15.4;
fix initializer.
 1.14 29-Mar-2006  thorpej Use device_private().
 1.13 11-Dec-2005  christos branches: 1.13.4; 1.13.6; 1.13.8; 1.13.10; 1.13.12;
merge ktrace-lwp.
 1.12 27-Feb-2005  perry branches: 1.12.4;
nuke trailing whitespace
 1.11 04-Feb-2005  perry de-__P
 1.10 23-Feb-2003  simonb branches: 1.10.2; 1.10.10; 1.10.12;
Remove assigned-to but not used variable.
 1.9 30-Nov-2002  tsutsui More cleanup of MI mb86960 driver:
- Add support for byte system bus mode. Based on patch in kern/17193 by
Christian Groessler, with some improvements by me.
- Rename sc_flags in mb86960_softc to sc_stat, rename "type" to sc_flags
to specify controller quirks and remove enum mb86960_type.
- Pass controller type via new sc_flags in mb86960_softc rather than
via an mb86960_attach() arg.
- Handle unaligned mbufs properly in mb86960_write_mbufs(). (from ne2000.c)
- Fix a signed/unsigned comparision warning.
- Add definitions of status bits in the RX packed header.
- Change types of some members in mb86960_softc.
 1.8 04-Oct-2002  tsutsui - Merge dev/ic/ate_subr.c into dev/ic/mb86960.c since it only has EEPROM
read function which can also be used for other MB86965 based boards.
- Rewrite EEPROM read function as per 93C06 EEPROM datasheet.
- Misc cleanup.
 1.7 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.6 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.5 28-Sep-2002  tsutsui Move AT1700/RE2000 EEPROM definitions from isa/if_fereg.h to ic/ate_subr.h.

XXX Maybe all stuff in ate_subr.* should be merged into ic/mb86960*.[ch].
 1.4 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.3 13-Nov-2001  lukem add RCSID
 1.2 23-Apr-2001  jdolecek branches: 1.2.2;
Compact autoconf info by printing the IRQ number together
with 'at mca0 slot foo' info.
 1.1 31-Mar-2001  jdolecek branches: 1.1.2; 1.1.4;
Add driver for AT1720 MCA cards. This uses generic MB86960 support code,
and shares some bits with ISA AT1700 driver. Gee, this one was really
easy :)

This card turned out to be quite good performer - I get about 360KB/s
on 386DX PS/2 machine, which is best of all supported cards so far.
Tested with AT1720T, card donated by David Brownlee.
 1.1.4.3 23-Apr-2001  bouyer Sync with HEAD.
 1.1.4.2 21-Apr-2001  bouyer Sync with HEAD
 1.1.4.1 31-Mar-2001  bouyer file if_ate_mca.c was added on branch thorpej_scsipi on 2001-04-21 17:48:53 +0000
 1.1.2.6 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.5 18-Oct-2002  nathanw Catch up to -current.
 1.1.2.4 14-Nov-2001  nathanw Catch up to -current.
 1.1.2.3 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.2 09-Apr-2001  nathanw Catch up with -current.
 1.1.2.1 31-Mar-2001  nathanw file if_ate_mca.c was added on branch nathanw_sa on 2001-04-09 01:56:46 +0000
 1.2.2.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.2.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.10.12.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.10.12.1 12-Feb-2005  yamt sync with head.
 1.10.10.1 29-Apr-2005  kent sync with -current
 1.10.2.2 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.10.2.1 04-Feb-2005  skrll Sync with HEAD.
 1.12.4.3 27-Oct-2007  yamt sync with head.
 1.12.4.2 30-Dec-2006  yamt sync with head.
 1.12.4.1 21-Jun-2006  yamt sync with head.
 1.13.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.13.10.1 19-Apr-2006  elad sync with head.
 1.13.8.2 03-Sep-2006  yamt sync with head.
 1.13.8.1 01-Apr-2006  yamt sync with head.
 1.13.6.1 22-Apr-2006  simonb Sync with head.
 1.13.4.1 09-Sep-2006  rpaulo sync with head
 1.15.4.2 10-Dec-2006  yamt sync with head.
 1.15.4.1 22-Oct-2006  yamt sync with head
 1.15.2.1 18-Nov-2006  ad Sync with head.
 1.17.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.17.24.1 06-Nov-2007  matt sync with HEAD
 1.17.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.17.8.1 23-Oct-2007  ad Sync with head.
 1.18.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.20.4.1 16-May-2008  yamt sync with head.
 1.20.2.1 18-May-2008  yamt sync with head.
 1.33 12-Jul-2022  thorpej Remove uneeded bus_space_barrier() calls.
 1.32 14-Jul-2016  msaitoh - Use aprint*() instead of printf() in xxx_attach().
- Add missing aprint_naive("\n");
- KNF
 1.31 11-Jul-2016  msaitoh KNF. No functional change.
 1.30 03-Jun-2011  tsutsui branches: 1.30.12; 1.30.30;
Split device_t/softc of i82586. No crash on TME emulating sun2.
 1.29 12-May-2009  cegger branches: 1.29.4; 1.29.6; 1.29.10;
struct device * -> device_t, no functional changes intended.
 1.28 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.27 14-Mar-2009  dsl ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.26 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.25 28-Apr-2008  martin branches: 1.25.8; 1.25.14;
Remove clause 3 and 4 from TNF licenses
 1.24 08-Apr-2008  cegger branches: 1.24.2; 1.24.4;
use aprint_*_dev and device_xname
 1.23 19-Oct-2007  ad branches: 1.23.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.22 16-Nov-2006  christos branches: 1.22.8; 1.22.22; 1.22.24; 1.22.28;
__unused removal on arguments; approved by core.
 1.21 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.20 29-Mar-2006  thorpej branches: 1.20.8; 1.20.10;
Use device_private().
 1.19 11-Dec-2005  christos branches: 1.19.4; 1.19.6; 1.19.8; 1.19.10; 1.19.12;
merge ktrace-lwp.
 1.18 30-May-2005  christos branches: 1.18.2;
add const to a cast.
 1.17 27-Feb-2005  perry nuke trailing whitespace
 1.16 04-Feb-2005  perry de-__P
 1.15 29-Dec-2004  jdolecek branches: 1.15.2; 1.15.4;
fix error printf()

change one mask to use hexadecimal number instead of decimal, so it's easier
to verify
 1.14 25-Oct-2003  mycroft break -> return in previous.
 1.13 25-Oct-2003  christos Fix uninitialized variable warnings
 1.12 23-Feb-2003  simonb branches: 1.12.2;
Remove assigned-to but not used variable (including nice little switch
statement to set said variable).
 1.11 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.10 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.9 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.8 26-Nov-2001  fredette Added macros for the bits in the SYSBUS byte, and macros
for the i82596 PORT access interface, from the documentation
for that chip. These help clarify writes to the SYSBUS
part of the SCP, and PORT usage by i82596-aware drivers.
 1.7 13-Nov-2001  lukem add RCSID
 1.6 03-May-2001  jdolecek branches: 1.6.2;
Well, 16us is certainly more than 500 nanoseconds, but 1us is too, right?

This change improves elmc performance to ~350KB/s on my 386DX,
which is better than even WD8003.
 1.5 23-Apr-2001  jdolecek Compact autoconf info by printing the IRQ number together
with 'at mca0 slot foo' info.
 1.4 29-Mar-2001  jdolecek branches: 1.4.2;
Remove unneeded #includes
 1.3 19-Mar-2001  jdolecek branches: 1.3.2;
Stylistic nit - don't use mca_devinfo(), print the info directly, we know
what we are attaching.
 1.2 17-Mar-2001  jdolecek Move the code to write the interrupt number info back before the first card
reset (same place as in the Linux driver). Hopefully this would fix
the initialization problem I've seen previously (cannot repeat it
even without this change no matter how I play with the card).
Remove the comment about the initialization problem now.
 1.1 16-Mar-2001  jdolecek Add driver for 3Com EtherLink/MC (3c523) Ethernet MCA card. This beast uses
i82586-based controller, similarily to e.g. ai(4), el(4) or ix(4).
The driver was modelled after the ai(4) driver.

Due to lack of better documentation, Linux 3c523 driver was used
to find out 3c523-specific quirks. Of course, the necessary work was greatly
reduced by our decend generic ic/i82586 code :)

Finally, NetBSD supports an ethernet card on IBM PS/2!
 1.3.2.4 23-Apr-2001  bouyer Sync with HEAD.
 1.3.2.3 21-Apr-2001  bouyer Sync with HEAD
 1.3.2.2 27-Mar-2001  bouyer Sync with HEAD.
 1.3.2.1 19-Mar-2001  bouyer file if_elmc_mca.c was added on branch thorpej_scsipi on 2001-03-27 15:32:05 +0000
 1.4.2.6 18-Oct-2002  nathanw Catch up to -current.
 1.4.2.5 08-Jan-2002  nathanw Catch up to -current.
 1.4.2.4 14-Nov-2001  nathanw Catch up to -current.
 1.4.2.3 21-Jun-2001  nathanw Catch up to -current.
 1.4.2.2 09-Apr-2001  nathanw Catch up with -current.
 1.4.2.1 29-Mar-2001  nathanw file if_elmc_mca.c was added on branch nathanw_sa on 2001-04-09 01:56:46 +0000
 1.6.2.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.6.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.12.2.7 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.12.2.6 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.12.2.5 04-Feb-2005  skrll Sync with HEAD.
 1.12.2.4 17-Jan-2005  skrll Sync with HEAD.
 1.12.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.12.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.12.2.1 03-Aug-2004  skrll Sync with HEAD
 1.15.4.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.15.4.1 12-Feb-2005  yamt sync with head.
 1.15.2.1 29-Apr-2005  kent sync with -current
 1.18.2.3 27-Oct-2007  yamt sync with head.
 1.18.2.2 30-Dec-2006  yamt sync with head.
 1.18.2.1 21-Jun-2006  yamt sync with head.
 1.19.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.19.10.1 19-Apr-2006  elad sync with head.
 1.19.8.1 01-Apr-2006  yamt sync with head.
 1.19.6.1 22-Apr-2006  simonb Sync with head.
 1.19.4.1 09-Sep-2006  rpaulo sync with head
 1.20.10.2 10-Dec-2006  yamt sync with head.
 1.20.10.1 22-Oct-2006  yamt sync with head
 1.20.8.1 18-Nov-2006  ad Sync with head.
 1.22.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.22.24.1 06-Nov-2007  matt sync with HEAD
 1.22.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.22.8.1 23-Oct-2007  ad Sync with head.
 1.23.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.24.4.3 16-May-2009  yamt sync with head
 1.24.4.2 04-May-2009  yamt sync with head.
 1.24.4.1 16-May-2008  yamt sync with head.
 1.24.2.1 18-May-2008  yamt sync with head.
 1.25.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.25.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.29.10.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.29.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.29.4.1 12-Jun-2011  rmind sync with head
 1.30.30.1 05-Oct-2016  skrll Sync with HEAD
 1.30.12.1 03-Dec-2017  jdolecek update from HEAD
 1.24 08-Apr-2020  msaitoh Correctly spell "count".
 1.23 11-Jul-2016  msaitoh branches: 1.23.18;
KNF. No functional change.
 1.22 14-Mar-2009  dsl branches: 1.22.22; 1.22.40;
Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.21 27-Aug-2008  christos branches: 1.21.2; 1.21.8;
device_t changes, pmf, minor knf.
 1.20 28-Apr-2008  martin branches: 1.20.2; 1.20.6;
Remove clause 3 and 4 from TNF licenses
 1.19 08-Apr-2008  cegger branches: 1.19.2; 1.19.4;
use aprint_*_dev and device_xname
 1.18 19-Oct-2007  ad branches: 1.18.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.17 16-Nov-2006  christos branches: 1.17.8; 1.17.22; 1.17.24; 1.17.28;
__unused removal on arguments; approved by core.
 1.16 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.15 29-Mar-2006  thorpej branches: 1.15.8; 1.15.10;
Use device_private().
 1.14 11-Dec-2005  christos branches: 1.14.4; 1.14.6; 1.14.8; 1.14.10; 1.14.12;
merge ktrace-lwp.
 1.13 27-Feb-2005  perry branches: 1.13.4;
nuke trailing whitespace
 1.12 04-Feb-2005  perry de-__P
 1.11 25-Oct-2003  christos branches: 1.11.8; 1.11.10;
Fix uninitialized variable warnings
 1.10 02-Oct-2002  thorpej branches: 1.10.6;
Add trailing ; to CFATTACH_DECL.
 1.9 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.8 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.7 28-Nov-2001  jdolecek Match also product id 0x627c, it was omitted by mistake.
Problem pointed out by Carl Drougge on tech-kern, thanks!
 1.6 13-Nov-2001  lukem add RCSID
 1.5 18-Aug-2001  chs make this compile.
 1.4 13-May-2001  jdolecek branches: 1.4.2;
Change the comment about sucky performance to recommendation to remove
DIAGNOSTIC/DEBUG from the kernel. This helped to boost the performance
on my test machine from ~5KB/s to like 800KB/s for ftp test, and
to like 700KB/s for netio test. I wouldn't have imagined the options
are THAT costly ....
 1.3 23-Apr-2001  jdolecek Compact autoconf info by printing the IRQ number together
with 'at mca0 slot foo' info.
 1.2 29-Mar-2001  jdolecek branches: 1.2.2;
Remove unneeded #includes
 1.1 22-Mar-2001  jdolecek branches: 1.1.2;
Add MCA ep(4) attachment, for 3Com 3c529-type cards. Tested with 3c529-TP,
provided to me by David Brownlee (thanks!).

Performance of this card is quite poor on my PS/2 with 386DX, like 100KB/s
at best, but as low as 5KB/s when transferring bigger files due to
packet overruns. It would be good to revisit this later, probably by
teaching the ic code to use RX Early.
 1.1.2.4 23-Apr-2001  bouyer Sync with HEAD.
 1.1.2.3 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.2 27-Mar-2001  bouyer Sync with HEAD.
 1.1.2.1 22-Mar-2001  bouyer file if_ep_mca.c was added on branch thorpej_scsipi on 2001-03-27 15:32:06 +0000
 1.2.2.7 18-Oct-2002  nathanw Catch up to -current.
 1.2.2.6 08-Jan-2002  nathanw Catch up to -current.
 1.2.2.5 14-Nov-2001  nathanw Catch up to -current.
 1.2.2.4 24-Aug-2001  nathanw Catch up with -current.
 1.2.2.3 21-Jun-2001  nathanw Catch up to -current.
 1.2.2.2 09-Apr-2001  nathanw Catch up with -current.
 1.2.2.1 29-Mar-2001  nathanw file if_ep_mca.c was added on branch nathanw_sa on 2001-04-09 01:56:47 +0000
 1.4.2.3 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.4.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.10.6.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.10.6.4 04-Feb-2005  skrll Sync with HEAD.
 1.10.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.10.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.10.6.1 03-Aug-2004  skrll Sync with HEAD
 1.11.10.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.11.10.1 12-Feb-2005  yamt sync with head.
 1.11.8.1 29-Apr-2005  kent sync with -current
 1.13.4.3 27-Oct-2007  yamt sync with head.
 1.13.4.2 30-Dec-2006  yamt sync with head.
 1.13.4.1 21-Jun-2006  yamt sync with head.
 1.14.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.14.10.1 19-Apr-2006  elad sync with head.
 1.14.8.1 01-Apr-2006  yamt sync with head.
 1.14.6.1 22-Apr-2006  simonb Sync with head.
 1.14.4.1 09-Sep-2006  rpaulo sync with head
 1.15.10.2 10-Dec-2006  yamt sync with head.
 1.15.10.1 22-Oct-2006  yamt sync with head
 1.15.8.1 18-Nov-2006  ad Sync with head.
 1.17.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.17.24.1 06-Nov-2007  matt sync with HEAD
 1.17.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.17.8.1 23-Oct-2007  ad Sync with head.
 1.18.16.2 28-Sep-2008  mjf Sync with HEAD.
 1.18.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.19.4.2 04-May-2009  yamt sync with head.
 1.19.4.1 16-May-2008  yamt sync with head.
 1.19.2.1 18-May-2008  yamt sync with head.
 1.20.6.1 19-Oct-2008  haad Sync with HEAD.
 1.20.2.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.21.8.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.21.2.1 28-Apr-2009  skrll Sync with HEAD.
 1.22.40.1 05-Oct-2016  skrll Sync with HEAD
 1.22.22.1 03-Dec-2017  jdolecek update from HEAD
 1.23.18.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.21 09-Apr-2019  msaitoh Fix a bug that the supported media can't passed correctly. Not tested.
 1.20 09-Apr-2019  msaitoh KNF. No functional change.
 1.19 13-Nov-2010  uebayasi branches: 1.19.60;
Don't pull in the whole uvm(9) API to access only PAGE_SIZE and
some other constants. These are provided by sys/param.h now.
 1.18 28-Apr-2008  martin branches: 1.18.22;
Remove clause 3 and 4 from TNF licenses
 1.17 04-Apr-2008  tsutsui branches: 1.17.2; 1.17.4;
Split device_t/softc for le(4) and variants and misc cosmetic changes.
 1.16 19-Oct-2007  ad branches: 1.16.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.15 16-Nov-2006  christos branches: 1.15.8; 1.15.22; 1.15.24; 1.15.28;
__unused removal on arguments; approved by core.
 1.14 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.13 29-Mar-2006  thorpej branches: 1.13.8; 1.13.10;
Use device_private().
 1.12 24-Dec-2005  perry branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.11 11-Dec-2005  christos merge ktrace-lwp.
 1.10 28-Feb-2005  jdolecek branches: 1.10.4;
le_mca_intredge(): g/c error semicolon, found by Simon Burge
 1.9 27-Feb-2005  perry nuke trailing whitespace
 1.8 04-Feb-2005  perry de-__P
 1.7 25-Oct-2003  christos branches: 1.7.8; 1.7.10;
Fix uninitialized variable warnings
 1.6 02-Oct-2002  thorpej branches: 1.6.6;
Add trailing ; to CFATTACH_DECL.
 1.5 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.4 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.3 13-Nov-2001  lukem add RCSID
 1.2 18-Aug-2001  chs make this compile.
 1.1 27-Apr-2001  jdolecek branches: 1.1.2; 1.1.4;
Add driver for SKNET Personal and MC+ - AMD Lance 7990 based ethernet cards.
Both models tested and seem to be quite stable and fast.

Thanks to:
- Hans Hubner <hans@Huebner.org> for giving me the cards for testing
- Georg Klug of Syskonnect, who provided me with hw docs for these cards,
very promptly and willingly - I wish all vendors would be like this
- Alfred Arnold, Linux SKNET driver author, for giving me valuable Syskonnect
contact :)
 1.1.4.3 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.1.4.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.4.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.1.2.5 18-Oct-2002  nathanw Catch up to -current.
 1.1.2.4 14-Nov-2001  nathanw Catch up to -current.
 1.1.2.3 24-Aug-2001  nathanw Catch up with -current.
 1.1.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.1 27-Apr-2001  nathanw file if_le_mca.c was added on branch nathanw_sa on 2001-06-21 20:04:05 +0000
 1.6.6.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.6.6.4 04-Feb-2005  skrll Sync with HEAD.
 1.6.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.6.1 03-Aug-2004  skrll Sync with HEAD
 1.7.10.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.7.10.1 12-Feb-2005  yamt sync with head.
 1.7.8.1 29-Apr-2005  kent sync with -current
 1.10.4.3 27-Oct-2007  yamt sync with head.
 1.10.4.2 30-Dec-2006  yamt sync with head.
 1.10.4.1 21-Jun-2006  yamt sync with head.
 1.12.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.12.10.1 19-Apr-2006  elad sync with head.
 1.12.8.1 01-Apr-2006  yamt sync with head.
 1.12.6.1 22-Apr-2006  simonb Sync with head.
 1.12.4.1 09-Sep-2006  rpaulo sync with head
 1.13.10.2 10-Dec-2006  yamt sync with head.
 1.13.10.1 22-Oct-2006  yamt sync with head
 1.13.8.1 18-Nov-2006  ad Sync with head.
 1.15.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.15.24.1 06-Nov-2007  matt sync with HEAD
 1.15.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.15.8.1 23-Oct-2007  ad Sync with head.
 1.16.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.17.4.1 16-May-2008  yamt sync with head.
 1.17.2.1 18-May-2008  yamt sync with head.
 1.18.22.1 05-Mar-2011  rmind sync with head
 1.19.60.1 10-Jun-2019  christos Sync with HEAD
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 27-Apr-2001  jdolecek branches: 1.1.2; 1.1.122; 1.1.124; 1.1.126;
Add driver for SKNET Personal and MC+ - AMD Lance 7990 based ethernet cards.
Both models tested and seem to be quite stable and fast.

Thanks to:
- Hans Hubner <hans@Huebner.org> for giving me the cards for testing
- Georg Klug of Syskonnect, who provided me with hw docs for these cards,
very promptly and willingly - I wish all vendors would be like this
- Alfred Arnold, Linux SKNET driver author, for giving me valuable Syskonnect
contact :)
 1.1.126.1 16-May-2008  yamt sync with head.
 1.1.124.1 18-May-2008  yamt sync with head.
 1.1.122.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.1 27-Apr-2001  nathanw file if_lereg.h was added on branch nathanw_sa on 2001-06-21 20:04:05 +0000
 1.15 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.14 12-Mar-2008  cube branches: 1.14.2; 1.14.4;
Split device_t and softc for the NE2000 Ethernet chip and all its variants
and attachments. Use device_t accessors, correct types, and ANSIfy when
appropriate.
 1.13 19-Oct-2007  ad branches: 1.13.12; 1.13.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.12 16-Nov-2006  christos branches: 1.12.8; 1.12.22; 1.12.24; 1.12.28;
__unused removal on arguments; approved by core.
 1.11 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.10 29-Mar-2006  thorpej branches: 1.10.8; 1.10.10;
Use device_private().
 1.9 11-Dec-2005  christos branches: 1.9.4; 1.9.6; 1.9.8; 1.9.10; 1.9.12;
merge ktrace-lwp.
 1.8 27-Feb-2005  perry branches: 1.8.4;
nuke trailing whitespace
 1.7 04-Feb-2005  perry de-__P
 1.6 02-Oct-2002  thorpej branches: 1.6.6; 1.6.14; 1.6.16;
Add trailing ; to CFATTACH_DECL.
 1.5 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.4 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.3 13-Nov-2001  lukem add RCSID
 1.2 23-Apr-2001  jdolecek branches: 1.2.2; 1.2.4; 1.2.6;
Compact autoconf info by printing the IRQ number together
with 'at mca0 slot foo' info.
 1.1 20-Apr-2001  jdolecek Add MCA ne(4) attachment for Novell NE/2 Ethernet adapter and clones.
Tested with NE/2 card provided to me by Hans Hubner <hans@Huebner.ORG>.

The Compex and Arco cards were not tested. According to Linux ne2 driver,
they should work same way as NE/2.
 1.2.6.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.2.6.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.4.4 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.3 14-Nov-2001  nathanw Catch up to -current.
 1.2.4.2 21-Jun-2001  nathanw Catch up to -current.
 1.2.4.1 23-Apr-2001  nathanw file if_ne_mca.c was added on branch nathanw_sa on 2001-06-21 20:04:06 +0000
 1.2.2.2 23-Apr-2001  bouyer Sync with HEAD.
 1.2.2.1 23-Apr-2001  bouyer file if_ne_mca.c was added on branch thorpej_scsipi on 2001-04-23 09:42:25 +0000
 1.6.16.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.6.16.1 12-Feb-2005  yamt sync with head.
 1.6.14.1 29-Apr-2005  kent sync with -current
 1.6.6.2 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.6.6.1 04-Feb-2005  skrll Sync with HEAD.
 1.8.4.4 17-Mar-2008  yamt sync with head.
 1.8.4.3 27-Oct-2007  yamt sync with head.
 1.8.4.2 30-Dec-2006  yamt sync with head.
 1.8.4.1 21-Jun-2006  yamt sync with head.
 1.9.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.9.10.1 19-Apr-2006  elad sync with head.
 1.9.8.1 01-Apr-2006  yamt sync with head.
 1.9.6.1 22-Apr-2006  simonb Sync with head.
 1.9.4.1 09-Sep-2006  rpaulo sync with head
 1.10.10.2 10-Dec-2006  yamt sync with head.
 1.10.10.1 22-Oct-2006  yamt sync with head
 1.10.8.1 18-Nov-2006  ad Sync with head.
 1.12.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.12.24.2 23-Mar-2008  matt sync with HEAD
 1.12.24.1 06-Nov-2007  matt sync with HEAD
 1.12.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.12.8.1 23-Oct-2007  ad Sync with head.
 1.13.16.2 02-Jun-2008  mjf Sync with HEAD.
 1.13.16.1 03-Apr-2008  mjf Sync with HEAD.
 1.13.12.1 24-Mar-2008  keiichi sync with head.
 1.14.4.1 16-May-2008  yamt sync with head.
 1.14.2.1 18-May-2008  yamt sync with head.
 1.25 19-Jan-2020  thorpej Remove Token Ring support.
 1.24 14-Jul-2016  msaitoh branches: 1.24.18; 1.24.26;
KNF. No functional change.
 1.23 08-Nov-2013  christos branches: 1.23.6;
fix unused variable warnings
 1.22 27-Oct-2012  chs branches: 1.22.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.21 12-May-2009  cegger branches: 1.21.12; 1.21.22;
struct device * -> device_t, no functional changes intended.
 1.20 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.19 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.18 04-May-2008  martin branches: 1.18.8; 1.18.14;
Move to standard TNF 2 clause license
 1.17 08-Apr-2008  cegger branches: 1.17.2; 1.17.4;
use aprint_*_dev and device_xname
 1.16 16-Nov-2006  christos branches: 1.16.48;
__unused removal on arguments; approved by core.
 1.15 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.14 29-Mar-2006  thorpej branches: 1.14.8; 1.14.10;
Use device_private().
 1.13 11-Dec-2005  christos branches: 1.13.4; 1.13.6; 1.13.8; 1.13.10; 1.13.12;
merge ktrace-lwp.
 1.12 27-Feb-2005  perry branches: 1.12.4;
nuke trailing whitespace
 1.11 04-Feb-2005  perry de-__P
 1.10 02-Oct-2002  thorpej branches: 1.10.6; 1.10.14; 1.10.16;
Add trailing ; to CFATTACH_DECL.
 1.9 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.8 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.7 13-Nov-2001  lukem add RCSID
 1.6 23-Apr-2001  jdolecek branches: 1.6.2;
Compact autoconf info by printing the IRQ number together
with 'at mca0 slot foo' info.
 1.5 05-Apr-2001  jdolecek convert to table-based product lookup
change the attach message to conform to other MCA drivers - print slot
number and product name
 1.4 29-Mar-2001  jdolecek Remove unneeded #includes
 1.3 06-Jun-2000  jdolecek branches: 1.3.4; 1.3.6;
Make the frontend print a newline (follows similar change for isa and pcmcia front-ends)
 1.2 28-May-2000  gmcgarry Fixup copyright.
 1.1 11-May-2000  jdolecek branches: 1.1.2;
MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.1.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.3.6.4 18-Oct-2002  nathanw Catch up to -current.
 1.3.6.3 14-Nov-2001  nathanw Catch up to -current.
 1.3.6.2 21-Jun-2001  nathanw Catch up to -current.
 1.3.6.1 09-Apr-2001  nathanw Catch up with -current.
 1.3.4.4 23-Apr-2001  bouyer Sync with HEAD.
 1.3.4.3 21-Apr-2001  bouyer Sync with HEAD
 1.3.4.2 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.3.4.1 06-Jun-2000  bouyer file if_tr_mca.c was added on branch thorpej_scsipi on 2000-11-20 11:41:29 +0000
 1.6.2.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.6.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.10.16.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.10.16.1 12-Feb-2005  yamt sync with head.
 1.10.14.1 29-Apr-2005  kent sync with -current
 1.10.6.2 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.10.6.1 04-Feb-2005  skrll Sync with HEAD.
 1.12.4.2 30-Dec-2006  yamt sync with head.
 1.12.4.1 21-Jun-2006  yamt sync with head.
 1.13.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.13.10.1 19-Apr-2006  elad sync with head.
 1.13.8.1 01-Apr-2006  yamt sync with head.
 1.13.6.1 22-Apr-2006  simonb Sync with head.
 1.13.4.1 09-Sep-2006  rpaulo sync with head
 1.14.10.2 10-Dec-2006  yamt sync with head.
 1.14.10.1 22-Oct-2006  yamt sync with head
 1.14.8.1 18-Nov-2006  ad Sync with head.
 1.16.48.1 02-Jun-2008  mjf Sync with HEAD.
 1.17.4.3 16-May-2009  yamt sync with head
 1.17.4.2 04-May-2009  yamt sync with head.
 1.17.4.1 16-May-2008  yamt sync with head.
 1.17.2.1 18-May-2008  yamt sync with head.
 1.18.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.18.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.21.22.3 03-Dec-2017  jdolecek update from HEAD
 1.21.22.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.21.22.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.21.12.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.21.12.1 30-Oct-2012  yamt sync with head
 1.22.2.1 18-May-2014  rmind sync with head
 1.23.6.1 05-Oct-2016  skrll Sync with HEAD
 1.24.26.1 25-Jan-2020  ad Sync with head.
 1.24.18.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.18 11-Jul-2016  msaitoh KNF. No functional change.
 1.17 13-Apr-2015  riastradh Convert sys/dev to use <sys/rndsource.h>.
 1.16 27-Oct-2012  chs branches: 1.16.14;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.15 03-Feb-2012  tls branches: 1.15.6;
Fix missed inclusion from my previous commit.
 1.14 12-May-2009  cegger branches: 1.14.12; 1.14.16;
struct device * -> device_t, no functional changes intended.
 1.13 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.12 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.11 14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.10 28-Apr-2008  martin branches: 1.10.8; 1.10.14;
Remove clause 3 and 4 from TNF licenses
 1.9 08-Apr-2008  cegger branches: 1.9.2; 1.9.4;
use aprint_*_dev and device_xname
 1.8 19-Oct-2007  ad branches: 1.8.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.7 16-Nov-2006  christos branches: 1.7.8; 1.7.22; 1.7.24; 1.7.28;
__unused removal on arguments; approved by core.
 1.6 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.5 30-Aug-2006  christos branches: 1.5.2; 1.5.4;
fix initializers
 1.4 29-Mar-2006  thorpej Use device_private().
 1.3 11-Dec-2005  christos branches: 1.3.4; 1.3.6; 1.3.8; 1.3.10; 1.3.12;
merge ktrace-lwp.
 1.2 03-Apr-2005  jdolecek branches: 1.2.2; 1.2.4; 1.2.10;
white space cleanup, some KNF, long line wrapup
 1.1 03-Apr-2005  jdolecek Add driver for MCA Tiara LANCard / Fujitsu mb86950 EtherStar. Driver provided
in PR kern/26899 by Dave Barnes.
 1.2.10.2 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.2.10.1 03-Apr-2005  skrll file if_tra_mca.c was added on branch ktrace-lwp on 2005-11-10 14:05:42 +0000
 1.2.4.3 27-Oct-2007  yamt sync with head.
 1.2.4.2 30-Dec-2006  yamt sync with head.
 1.2.4.1 21-Jun-2006  yamt sync with head.
 1.2.2.2 29-Apr-2005  kent sync with -current
 1.2.2.1 03-Apr-2005  kent file if_tra_mca.c was added on branch kent-audio2 on 2005-04-29 11:28:56 +0000
 1.3.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.3.10.1 19-Apr-2006  elad sync with head.
 1.3.8.2 03-Sep-2006  yamt sync with head.
 1.3.8.1 01-Apr-2006  yamt sync with head.
 1.3.6.1 22-Apr-2006  simonb Sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.5.4.2 10-Dec-2006  yamt sync with head.
 1.5.4.1 22-Oct-2006  yamt sync with head
 1.5.2.1 18-Nov-2006  ad Sync with head.
 1.7.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.7.24.1 06-Nov-2007  matt sync with HEAD
 1.7.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.7.8.1 23-Oct-2007  ad Sync with head.
 1.8.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.9.4.3 16-May-2009  yamt sync with head
 1.9.4.2 04-May-2009  yamt sync with head.
 1.9.4.1 16-May-2008  yamt sync with head.
 1.9.2.1 18-May-2008  yamt sync with head.
 1.10.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.10.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.14.16.1 18-Feb-2012  mrg merge to -current.
 1.14.12.2 30-Oct-2012  yamt sync with head
 1.14.12.1 17-Apr-2012  yamt sync with head
 1.15.6.2 03-Dec-2017  jdolecek update from HEAD
 1.15.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.16.14.2 05-Oct-2016  skrll Sync with HEAD
 1.16.14.1 06-Jun-2015  skrll Sync with HEAD
 1.22 08-Apr-2021  jdolecek update comment about the 'quirk' in we_mca_init_hook() - actually that is
just interrupt enable bit, so not a quirk at all; NFCI

info passed by Valery Ushakov from a guy running https://www.os2museum.com/wp/
 1.21 28-Apr-2008  martin branches: 1.21.104;
Remove clause 3 and 4 from TNF licenses
 1.20 12-Mar-2008  cube branches: 1.20.2; 1.20.4;
Split device_t and softc for the NE2000 Ethernet chip and all its variants
and attachments. Use device_t accessors, correct types, and ANSIfy when
appropriate.
 1.19 19-Oct-2007  ad branches: 1.19.12; 1.19.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.18 16-Nov-2006  christos branches: 1.18.8; 1.18.22; 1.18.24; 1.18.28;
__unused removal on arguments; approved by core.
 1.17 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.16 30-Aug-2006  christos branches: 1.16.2; 1.16.4;
fix initializer
 1.15 29-Mar-2006  thorpej Use device_private().
 1.14 11-Dec-2005  christos branches: 1.14.4; 1.14.6; 1.14.8; 1.14.10; 1.14.12;
merge ktrace-lwp.
 1.13 03-Apr-2005  jdolecek branches: 1.13.2;
Make it possible for attachment to specify that the 16bit access shouldn't
be toggled in WE_MEM_{ENABLE|DISABLE} when receiving or transmitting packets.
Use this to switch the toggle off for MCA cards, since it causes NIC resets
there.

Fixes PR kern/26895 by Dave Barnes.
 1.12 04-Feb-2005  perry de-__P
 1.11 08-Sep-2004  jdolecek branches: 1.11.4; 1.11.6;
compute the shared memory location instead of hardcoding list of 'known'
pos3 values for 8013 variants; fixes attachment for some variants

patch provided in PR port-i386/26877 by Dave Barnes
 1.10 08-Sep-2004  jdolecek fix mask for getting WD8003 I/O address location, so it works even
for 0x300-0x3E0 bases; also miscellaneous white-space and comment fixes

patch provided by in PR port-i386/26871 by Dave Barnes
 1.9 20-Jan-2004  jdolecek branches: 1.9.2;
fixup code for Elite card attachments, and adjust autoconfig messages
a little
 1.8 02-Oct-2002  thorpej branches: 1.8.6;
Add trailing ; to CFATTACH_DECL.
 1.7 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.6 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.5 13-Nov-2001  lukem add RCSID
 1.4 23-Apr-2001  jdolecek branches: 1.4.2;
Compact autoconf info by printing the IRQ number together
with 'at mca0 slot foo' info.
 1.3 31-Mar-2001  jdolecek branches: 1.3.2;
add year 2001 to copyright for NetBSD
 1.2 29-Mar-2001  jdolecek Remove unneeded #includes
 1.1 23-Mar-2001  jdolecek branches: 1.1.2;
Add MCA we(4) attachment for WD80x3 cards and clones. Tested with
WD8003W/A, card provided by David Brownlee (thanks!). The SMC Elite stuff not
tested since I don't have any; hopefully it's correct, should match
information in ADF files.

The MCA-specific init quirk taken from Linux smc-mca.c driver.
I don't quite grok why it works, but it does *cross fingers*.

The WD8003W/A seems to be quite a good choice. I get like 340KB/s on my
machine, where 3c523 does only like 310KB/s. The numbers would be probably
even better with faster CPU than 386DX :)
 1.1.2.4 23-Apr-2001  bouyer Sync with HEAD.
 1.1.2.3 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.2 27-Mar-2001  bouyer Sync with HEAD.
 1.1.2.1 23-Mar-2001  bouyer file if_we_mca.c was added on branch thorpej_scsipi on 2001-03-27 15:32:06 +0000
 1.3.2.5 18-Oct-2002  nathanw Catch up to -current.
 1.3.2.4 14-Nov-2001  nathanw Catch up to -current.
 1.3.2.3 21-Jun-2001  nathanw Catch up to -current.
 1.3.2.2 09-Apr-2001  nathanw Catch up with -current.
 1.3.2.1 31-Mar-2001  nathanw file if_we_mca.c was added on branch nathanw_sa on 2001-04-09 01:56:48 +0000
 1.4.2.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.4.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.6.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.8.6.4 04-Feb-2005  skrll Sync with HEAD.
 1.8.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.8.6.1 03-Aug-2004  skrll Sync with HEAD
 1.9.2.2 10-Sep-2004  jmc Pullup rev 1.11 (requested by jdolecek in ticket #822)

Compute the shared memory location instead of hardcoding list of "known"
pos3 values for 8013 variants. PR#26877
 1.9.2.1 10-Sep-2004  jmc Pullup rev 1.10 (requested by jdolecek in ticket #821)

Fix mask for getting WD8003 I/O address location, so it works even
for 0x300-0x3E0 bases. PR#26871
 1.11.6.1 12-Feb-2005  yamt sync with head.
 1.11.4.1 29-Apr-2005  kent sync with -current
 1.13.2.4 17-Mar-2008  yamt sync with head.
 1.13.2.3 27-Oct-2007  yamt sync with head.
 1.13.2.2 30-Dec-2006  yamt sync with head.
 1.13.2.1 21-Jun-2006  yamt sync with head.
 1.14.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.14.10.1 19-Apr-2006  elad sync with head.
 1.14.8.2 03-Sep-2006  yamt sync with head.
 1.14.8.1 01-Apr-2006  yamt sync with head.
 1.14.6.1 22-Apr-2006  simonb Sync with head.
 1.14.4.1 09-Sep-2006  rpaulo sync with head
 1.16.4.2 10-Dec-2006  yamt sync with head.
 1.16.4.1 22-Oct-2006  yamt sync with head
 1.16.2.1 18-Nov-2006  ad Sync with head.
 1.18.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.18.24.2 23-Mar-2008  matt sync with HEAD
 1.18.24.1 06-Nov-2007  matt sync with HEAD
 1.18.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.18.8.1 23-Oct-2007  ad Sync with head.
 1.19.16.2 02-Jun-2008  mjf Sync with HEAD.
 1.19.16.1 03-Apr-2008  mjf Sync with HEAD.
 1.19.12.1 24-Mar-2008  keiichi sync with head.
 1.20.4.1 16-May-2008  yamt sync with head.
 1.20.2.1 18-May-2008  yamt sync with head.
 1.21.104.1 17-Apr-2021  thorpej Sync with HEAD.
 1.34 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.33 24-Apr-2021  thorpej branches: 1.33.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.32 14-Jul-2016  msaitoh branches: 1.32.34;
- Use aprint*() more in xxx_attach().
- Add missing aprint_naive("\n").
- Remove extra spaces and tabs.
- KNF.
 1.31 03-Jun-2011  matt branches: 1.31.12; 1.31.30;
-CFATTACH_DECL(foo, sizeof(struct device),
+CFATTACH_DECL_NEW(foo, 0,
 1.30 12-May-2009  cegger branches: 1.30.4; 1.30.6; 1.30.10;
struct device * -> device_t, no functional changes intended.
 1.29 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.28 14-Mar-2009  dsl ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.27 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.26 28-Apr-2008  martin branches: 1.26.8; 1.26.14;
Remove clause 3 and 4 from TNF licenses
 1.25 08-Apr-2008  cegger branches: 1.25.2; 1.25.4;
use aprint_*_dev and device_xname
 1.24 19-Oct-2007  ad branches: 1.24.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.23 11-Apr-2007  garbled branches: 1.23.8; 1.23.10; 1.23.14;
Remove the define of MCA_MAX_SLOTS from mcareg.h, and include
mca_machdep.h, because the maximum number of slots is inherently MD.
 1.22 16-Nov-2006  christos branches: 1.22.4; 1.22.8; 1.22.10;
__unused removal on arguments; approved by core.
 1.21 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.20 11-Dec-2005  christos branches: 1.20.20; 1.20.22;
merge ktrace-lwp.
 1.19 25-Aug-2005  drochner kill a number of autoconf submatch functions which follow the
standard scheme:
if (<configured> != <wildcard> && <configured> != <real>)
then fail
else
ask device match function

This is handled by config_stdsubmatch() now.
 1.18 25-Aug-2005  drochner replace the "locdesc_t" structure carrying the number of locators
explicitely by a plain integer array
the length in now known to all relevant parties, so this avoids
duplication of information, and we can allocate that thing in
drivers without hacks
 1.17 04-Feb-2005  perry branches: 1.17.6;
de-__P
 1.16 30-Aug-2004  drochner branches: 1.16.4; 1.16.6;
use the locator-passing variant of autoconf submatch and use constants
from locators.h
 1.15 30-Aug-2004  drochner Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
 1.14 22-Apr-2004  itojun sprintf -> snprintf
 1.13 01-Jan-2003  thorpej branches: 1.13.2;
Use aprint_normal() in cfprint routines.
 1.12 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.11 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.10 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.9 27-Sep-2002  thorpej Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
 1.8 27-Sep-2002  thorpej Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
 1.7 24-Nov-2001  jdolecek don't need opt_mcaverbose.h here
print 'memory configured' instead of just 'configured' for memory expansion
cards
 1.6 13-Nov-2001  lukem add RCSID
 1.5 27-Apr-2001  jdolecek branches: 1.5.2;
Introduce mca_match_disabled() - this returns true if cards with particular
id should be handled even through it's marked as disabled in POS registers.
There are some cards which need this due to nonstandard hw design.
 1.4 31-Mar-2001  jdolecek add year 2001 to copyright for NetBSD
 1.3 23-Mar-2001  jdolecek cosmetic change for autoconf printing: for memory extension cards,
just print ": configured" if they are enabled; they don't need any
special driver to work, printing "not configured" might be confusing
 1.2 14-Feb-2001  jdolecek branches: 1.2.2;
remove mca_issupp() and just use UNCONF for unknown devices, like other
buses do - array of 'supported' peripheals makes addition of new stuff
unnecessarily harder
 1.1 11-May-2000  jdolecek branches: 1.1.6;
MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.1.6.5 21-Apr-2001  bouyer Sync with HEAD
 1.1.6.4 27-Mar-2001  bouyer Sync with HEAD.
 1.1.6.3 12-Mar-2001  bouyer Sync with HEAD.
 1.1.6.2 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.1.6.1 11-May-2000  bouyer file mca.c was added on branch thorpej_scsipi on 2000-11-20 11:41:30 +0000
 1.2.2.6 03-Jan-2003  thorpej Sync with HEAD.
 1.2.2.5 18-Oct-2002  nathanw Catch up to -current.
 1.2.2.4 08-Jan-2002  nathanw Catch up to -current.
 1.2.2.3 14-Nov-2001  nathanw Catch up to -current.
 1.2.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.2.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.5.2.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.5.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.13.2.6 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.13.2.5 04-Feb-2005  skrll Sync with HEAD.
 1.13.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.13.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.13.2.2 03-Sep-2004  skrll Sync with HEAD
 1.13.2.1 03-Aug-2004  skrll Sync with HEAD
 1.16.6.1 12-Feb-2005  yamt sync with head.
 1.16.4.1 29-Apr-2005  kent sync with -current
 1.17.6.4 27-Oct-2007  yamt sync with head.
 1.17.6.3 03-Sep-2007  yamt sync with head.
 1.17.6.2 30-Dec-2006  yamt sync with head.
 1.17.6.1 21-Jun-2006  yamt sync with head.
 1.20.22.2 10-Dec-2006  yamt sync with head.
 1.20.22.1 22-Oct-2006  yamt sync with head
 1.20.20.1 18-Nov-2006  ad Sync with head.
 1.22.10.1 11-Jul-2007  mjf Sync with head.
 1.22.8.2 23-Oct-2007  ad Sync with head.
 1.22.8.1 27-May-2007  ad Sync with head.
 1.22.4.1 15-Apr-2007  yamt sync with head.
 1.23.14.1 25-Oct-2007  bouyer Sync with HEAD.
 1.23.10.1 06-Nov-2007  matt sync with HEAD
 1.23.8.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.24.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.25.4.3 16-May-2009  yamt sync with head
 1.25.4.2 04-May-2009  yamt sync with head.
 1.25.4.1 16-May-2008  yamt sync with head.
 1.25.2.1 18-May-2008  yamt sync with head.
 1.26.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.26.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.30.10.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.30.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.30.4.1 12-Jun-2011  rmind sync with head
 1.31.30.1 05-Oct-2016  skrll Sync with HEAD
 1.31.12.1 03-Dec-2017  jdolecek update from HEAD
 1.32.34.2 22-Mar-2021  thorpej Audit CFARG_IATTR in config_found() calls, and remove it in situations
where the interface attribute is not ambiguous.
 1.32.34.1 22-Mar-2021  thorpej Mechanical conversion of config_found_sm_loc() -> config_found().
CFARG_IATTR usage needs to be audited.
 1.33.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.11 13-May-2024  msaitoh s/of of/of/ in comment.
 1.10 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.9 28-Apr-2008  martin branches: 1.9.8; 1.9.14;
Remove clause 3 and 4 from TNF licenses
 1.8 11-Dec-2005  christos branches: 1.8.70; 1.8.72; 1.8.74;
merge ktrace-lwp.
 1.7 27-Feb-2005  perry nuke trailing whitespace
 1.6 22-Apr-2004  itojun branches: 1.6.4; 1.6.6;
sprintf -> snprintf
 1.5 13-Nov-2001  lukem branches: 1.5.16;
add RCSID
 1.4 27-Apr-2001  jdolecek branches: 1.4.2;
Add driver for SKNET Personal and MC+ - AMD Lance 7990 based ethernet cards.
Both models tested and seem to be quite stable and fast.

Thanks to:
- Hans Hubner <hans@Huebner.org> for giving me the cards for testing
- Georg Klug of Syskonnect, who provided me with hw docs for these cards,
very promptly and willingly - I wish all vendors would be like this
- Alfred Arnold, Linux SKNET driver author, for giving me valuable Syskonnect
contact :)
 1.3 27-Apr-2001  jdolecek Introduce mca_match_disabled() - this returns true if cards with particular
id should be handled even through it's marked as disabled in POS registers.
There are some cards which need this due to nonstandard hw design.
 1.2 14-Feb-2001  jdolecek branches: 1.2.2;
remove mca_issupp() and just use UNCONF for unknown devices, like other
buses do - array of 'supported' peripheals makes addition of new stuff
unnecessarily harder
 1.1 11-May-2000  jdolecek branches: 1.1.6;
MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.1.6.3 12-Mar-2001  bouyer Sync with HEAD.
 1.1.6.2 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.1.6.1 11-May-2000  bouyer file mca_subr.c was added on branch thorpej_scsipi on 2000-11-20 11:41:30 +0000
 1.2.2.2 14-Nov-2001  nathanw Catch up to -current.
 1.2.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.4.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.5.16.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.5.16.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.16.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.16.1 03-Aug-2004  skrll Sync with HEAD
 1.6.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.6.4.1 29-Apr-2005  kent sync with -current
 1.8.74.2 04-May-2009  yamt sync with head.
 1.8.74.1 16-May-2008  yamt sync with head.
 1.8.72.1 18-May-2008  yamt sync with head.
 1.8.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.9.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.9.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.5 16-Nov-2006  christos __unused removal on arguments; approved by core.
 1.4 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.3 11-Dec-2005  christos branches: 1.3.20; 1.3.22;
merge ktrace-lwp.
 1.2 24-May-2005  lukem branches: 1.2.2;
add __KERNEL_RCSID
 1.1 30-Aug-2004  drochner branches: 1.1.2;
add centralized {eisa,isa,pci,agp,mca}busprint() functions which do
what tens of the bus' parents foo{...}bridge_print()s scattered around do
 1.1.2.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.2.2 03-Sep-2004  skrll Sync with HEAD
 1.1.2.1 30-Aug-2004  skrll file mcabusprint.c was added on branch ktrace-lwp on 2004-09-03 12:45:27 +0000
 1.2.2.1 21-Jun-2006  yamt sync with head.
 1.3.22.2 10-Dec-2006  yamt sync with head.
 1.3.22.1 22-Oct-2006  yamt sync with head
 1.3.20.1 18-Nov-2006  ad Sync with head.
 1.24 21-Jan-2009  jnemeth add a comment explaining how to regenerate mcadevs.h and mcadevs_data.h
 1.23 28-Apr-2008  martin branches: 1.23.8;
Remove clause 3 and 4 from TNF licenses
 1.22 12-Apr-2007  garbled branches: 1.22.28; 1.22.30; 1.22.32;
Add the product defines for the cards I intend to write support for. It
seems like we should just add the product defines to all of them.
 1.21 11-Apr-2007  garbled Add a bunch of adapters from my rs6000 to this file
 1.20 11-Dec-2005  christos branches: 1.20.26; 1.20.30; 1.20.32;
merge ktrace-lwp.
 1.19 03-Apr-2005  jdolecek branches: 1.19.2;
add one more Tiara ID and Standard MicroSystems 3016/MC ID
 1.18 29-Jun-2003  jdolecek branches: 1.18.2; 1.18.10;
allocate identifier for BusTek BT-640A adapter
 1.17 04-Dec-2002  jdolecek add 0x90EE - IBM SVGA Adapter/A
 1.16 01-Dec-2001  jdolecek allocate identifier for NCR 53C90
 1.15 27-Apr-2001  jdolecek branches: 1.15.2;
Add driver for SKNET Personal and MC+ - AMD Lance 7990 based ethernet cards.
Both models tested and seem to be quite stable and fast.

Thanks to:
- Hans Hubner <hans@Huebner.org> for giving me the cards for testing
- Georg Klug of Syskonnect, who provided me with hw docs for these cards,
very promptly and willingly - I wish all vendors would be like this
- Alfred Arnold, Linux SKNET driver author, for giving me valuable Syskonnect
contact :)
 1.14 23-Apr-2001  jdolecek Add constant for SKNET Ethernet Card
 1.13 20-Apr-2001  jdolecek Add support for IBM Multi-Protocol Communications Adapter. Card provided
by Hans Hubner <hans@huebner.org>.
We only support the card in "serial" mode. BISYNC nor SDLC modes are
not supported.
 1.12 20-Apr-2001  jdolecek Add support for NeoTecH Single RS-232 Async. Adapter, SM110. Tested
with card provided by Hans Hubner <hans@huebner.org>.

Also pretty the autoconf attach messages a little.
 1.11 20-Apr-2001  jdolecek Add MCA ne(4) attachment for Novell NE/2 Ethernet adapter and clones.
Tested with NE/2 card provided to me by Hans Hubner <hans@Huebner.ORG>.

The Compex and Arco cards were not tested. According to Linux ne2 driver,
they should work same way as NE/2.
 1.10 20-Apr-2001  jdolecek add two Novell NE/2 compatible products
 1.9 19-Apr-2001  jdolecek Add couple cards I got from Hans Hubner <hans@Huebner.ORG>
 1.8 19-Apr-2001  jdolecek Add a driver for IBM ESDI disk controllers. Tested with IBM Integ. ESDI Fixed
Disk & Controller only at the moment.

This driver still needs some touchup (error recovery is not quite
good, MCA DMA controller goo should be moved to driver independant
location), but is working enough to be usable for others. And I
want this under CVS control :)

Thanks to Scott Telford <st@epcc.ed.ac.uk> for providing me docs for
these devices (IBM DASD Storage Interface Specification for MCA rev. 2.2).
 1.7 24-Mar-2001  jdolecek Add couple AT1720 entries
 1.6 23-Mar-2001  jdolecek cosmetic change for autoconf printing: for memory extension cards,
just print ": configured" if they are enabled; they don't need any
special driver to work, printing "not configured" might be confusing
 1.5 23-Mar-2001  jdolecek Change names of WD80x3x cards to what is in ADF's at
http://members.aol.com/mcapage1/adflist1.htm
Add couple IBM WD80x3x clones
Arrange so that appropriate defines are generated for WD80x3x cards
 1.4 19-Mar-2001  jdolecek Add entry for ATI AT1720T, another card I've got from David Brownlee.
 1.3 19-Mar-2001  jdolecek Add couple of Computone products; I looked up ADF for 0x61f3 (which
I am owner of) and found couple others as well.
Mark 3c529-type cards and IBM Internal modem for inclusion in mcadevs.h.
 1.2 17-Mar-2001  jdolecek adjust the 3c523 entry to fit the actual product name
 1.1 11-May-2000  jdolecek branches: 1.1.6; 1.1.8;
MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.1.8.4 11-Dec-2002  thorpej Sync with HEAD.
 1.1.8.3 08-Jan-2002  nathanw Catch up to -current.
 1.1.8.2 21-Jun-2001  nathanw Catch up to -current.
 1.1.8.1 09-Apr-2001  nathanw Catch up with -current.
 1.1.6.5 23-Apr-2001  bouyer Sync with HEAD.
 1.1.6.4 21-Apr-2001  bouyer Sync with HEAD
 1.1.6.3 27-Mar-2001  bouyer Sync with HEAD.
 1.1.6.2 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.1.6.1 11-May-2000  bouyer file mcadevs was added on branch thorpej_scsipi on 2000-11-20 11:41:30 +0000
 1.15.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.18.10.1 29-Apr-2005  kent sync with -current
 1.18.2.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.19.2.1 03-Sep-2007  yamt sync with head.
 1.20.32.1 11-Jul-2007  mjf Sync with head.
 1.20.30.1 27-May-2007  ad Sync with head.
 1.20.26.1 15-Apr-2007  yamt sync with head.
 1.22.32.2 04-May-2009  yamt sync with head.
 1.22.32.1 16-May-2008  yamt sync with head.
 1.22.30.1 18-May-2008  yamt sync with head.
 1.22.28.1 02-Jun-2008  mjf Sync with HEAD.
 1.23.8.1 03-Mar-2009  skrll Sync with HEAD.
 1.25 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.24 12-Apr-2007  garbled branches: 1.24.28; 1.24.30; 1.24.32;
regen
 1.23 11-Apr-2007  garbled Regen
 1.22 11-Dec-2005  christos branches: 1.22.26; 1.22.30; 1.22.32;
merge ktrace-lwp.
 1.21 03-Apr-2005  jdolecek branches: 1.21.2;
regen: add one more Tiara ID and Standard MicroSystems 3016/MC ID
 1.20 27-Feb-2005  perry regen
 1.19 29-Jun-2003  jdolecek branches: 1.19.2; 1.19.10; 1.19.12;
regen: allocate identifier for BusTek BT-640A adapter
 1.18 04-Dec-2002  jdolecek regen - addition of 0x90EE, IBM SVGA Adapter/A
 1.17 01-Dec-2001  jdolecek regenerate (allocate identifier for NCR 53c90)
 1.16 27-Apr-2001  jdolecek branches: 1.16.2;
regen - SKNET cards
 1.15 23-Apr-2001  jdolecek Add constant for SKNET Ethernet Card
 1.14 20-Apr-2001  jdolecek regen
 1.13 20-Apr-2001  jdolecek regen
 1.12 20-Apr-2001  jdolecek regen
 1.11 20-Apr-2001  jdolecek regen
 1.10 19-Apr-2001  jdolecek regen
 1.9 19-Apr-2001  jdolecek regen
 1.8 24-Mar-2001  jdolecek regen
 1.7 23-Mar-2001  jdolecek regen
 1.6 23-Mar-2001  jdolecek regen
 1.5 19-Mar-2001  jdolecek regen
 1.4 19-Mar-2001  jdolecek regen
 1.3 17-Mar-2001  jdolecek regen - 3c523 entry change
 1.2 13-May-2000  jdolecek branches: 1.2.6; 1.2.8;
regenerate from mcadevs, to get proper 'generated from' info
 1.1 11-May-2000  jdolecek MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.2.8.4 11-Dec-2002  thorpej Sync with HEAD.
 1.2.8.3 08-Jan-2002  nathanw Catch up to -current.
 1.2.8.2 21-Jun-2001  nathanw Catch up to -current.
 1.2.8.1 09-Apr-2001  nathanw Catch up with -current.
 1.2.6.5 23-Apr-2001  bouyer Sync with HEAD.
 1.2.6.4 21-Apr-2001  bouyer Sync with HEAD
 1.2.6.3 27-Mar-2001  bouyer Sync with HEAD.
 1.2.6.2 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.2.6.1 13-May-2000  bouyer file mcadevs.h was added on branch thorpej_scsipi on 2000-11-20 11:41:31 +0000
 1.16.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.19.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.19.10.1 29-Apr-2005  kent sync with -current
 1.19.2.2 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.19.2.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.21.2.1 03-Sep-2007  yamt sync with head.
 1.22.32.1 11-Jul-2007  mjf Sync with head.
 1.22.30.1 27-May-2007  ad Sync with head.
 1.22.26.1 15-Apr-2007  yamt sync with head.
 1.24.32.1 16-May-2008  yamt sync with head.
 1.24.30.1 18-May-2008  yamt sync with head.
 1.24.28.1 02-Jun-2008  mjf Sync with HEAD.
 1.25 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.24 12-Apr-2007  garbled branches: 1.24.28; 1.24.30; 1.24.32;
regen
 1.23 11-Apr-2007  garbled Regen
 1.22 11-Dec-2005  christos branches: 1.22.26; 1.22.30; 1.22.32;
merge ktrace-lwp.
 1.21 03-Apr-2005  jdolecek branches: 1.21.2;
regen: add one more Tiara ID and Standard MicroSystems 3016/MC ID
 1.20 27-Feb-2005  perry regen
 1.19 29-Jun-2003  jdolecek branches: 1.19.2; 1.19.10; 1.19.12;
regen: allocate identifier for BusTek BT-640A adapter
 1.18 04-Dec-2002  jdolecek regen - addition of 0x90EE, IBM SVGA Adapter/A
 1.17 01-Dec-2001  jdolecek regenerate (allocate identifier for NCR 53c90)
 1.16 27-Apr-2001  jdolecek branches: 1.16.2;
regen - SKNET cards
 1.15 23-Apr-2001  jdolecek Add constant for SKNET Ethernet Card
 1.14 20-Apr-2001  jdolecek regen
 1.13 20-Apr-2001  jdolecek regen
 1.12 20-Apr-2001  jdolecek regen
 1.11 20-Apr-2001  jdolecek regen
 1.10 19-Apr-2001  jdolecek regen
 1.9 19-Apr-2001  jdolecek regen
 1.8 24-Mar-2001  jdolecek regen
 1.7 23-Mar-2001  jdolecek regen
 1.6 23-Mar-2001  jdolecek regen
 1.5 19-Mar-2001  jdolecek regen
 1.4 19-Mar-2001  jdolecek regen
 1.3 17-Mar-2001  jdolecek regen - 3c523 entry change
 1.2 13-May-2000  jdolecek branches: 1.2.6; 1.2.8;
regenerate from mcadevs, to get proper 'generated from' info
 1.1 11-May-2000  jdolecek MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.2.8.4 11-Dec-2002  thorpej Sync with HEAD.
 1.2.8.3 08-Jan-2002  nathanw Catch up to -current.
 1.2.8.2 21-Jun-2001  nathanw Catch up to -current.
 1.2.8.1 09-Apr-2001  nathanw Catch up with -current.
 1.2.6.5 23-Apr-2001  bouyer Sync with HEAD.
 1.2.6.4 21-Apr-2001  bouyer Sync with HEAD
 1.2.6.3 27-Mar-2001  bouyer Sync with HEAD.
 1.2.6.2 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.2.6.1 13-May-2000  bouyer file mcadevs_data.h was added on branch thorpej_scsipi on 2000-11-20 11:41:31 +0000
 1.16.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.19.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.19.10.1 29-Apr-2005  kent sync with -current
 1.19.2.2 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.19.2.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.21.2.1 03-Sep-2007  yamt sync with head.
 1.22.32.1 11-Jul-2007  mjf Sync with head.
 1.22.30.1 27-May-2007  ad Sync with head.
 1.22.26.1 15-Apr-2007  yamt sync with head.
 1.24.32.1 16-May-2008  yamt sync with head.
 1.24.30.1 18-May-2008  yamt sync with head.
 1.24.28.1 02-Jun-2008  mjf Sync with HEAD.
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 11-Apr-2007  garbled branches: 1.2.30; 1.2.32; 1.2.34;
Remove the define of MCA_MAX_SLOTS from mcareg.h, and include
mca_machdep.h, because the maximum number of slots is inherently MD.
 1.1 11-May-2000  jdolecek branches: 1.1.6; 1.1.46; 1.1.84; 1.1.88; 1.1.90;
MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.1.90.1 11-Jul-2007  mjf Sync with head.
 1.1.88.1 27-May-2007  ad Sync with head.
 1.1.84.1 15-Apr-2007  yamt sync with head.
 1.1.46.1 03-Sep-2007  yamt sync with head.
 1.1.6.2 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.1.6.1 11-May-2000  bouyer file mcareg.h was added on branch thorpej_scsipi on 2000-11-20 11:41:31 +0000
 1.2.34.1 16-May-2008  yamt sync with head.
 1.2.32.1 18-May-2008  yamt sync with head.
 1.2.30.1 02-Jun-2008  mjf Sync with HEAD.
 1.13 19-Oct-2025  thorpej Encapsulate MCA bus attach logic into mcabus_attach().
 1.12 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.11 28-Apr-2008  martin branches: 1.11.34; 1.11.44;
Remove clause 3 and 4 from TNF licenses
 1.10 19-Oct-2007  ad branches: 1.10.16; 1.10.18; 1.10.20;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.9 11-Dec-2005  christos branches: 1.9.30; 1.9.44; 1.9.46; 1.9.50;
merge ktrace-lwp.
 1.8 04-Feb-2005  perry branches: 1.8.6;
de-__P
 1.7 30-Aug-2004  drochner branches: 1.7.4; 1.7.6;
use the locator-passing variant of autoconf submatch and use constants
from locators.h
 1.6 30-Aug-2004  drochner Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
 1.5 30-Aug-2004  drochner add centralized {eisa,isa,pci,agp,mca}busprint() functions which do
what tens of the bus' parents foo{...}bridge_print()s scattered around do
 1.4 22-Apr-2004  itojun sprintf -> snprintf
 1.3 27-Apr-2001  jdolecek branches: 1.3.22;
Introduce mca_match_disabled() - this returns true if cards with particular
id should be handled even through it's marked as disabled in POS registers.
There are some cards which need this due to nonstandard hw design.
 1.2 14-Feb-2001  jdolecek branches: 1.2.2;
remove mca_issupp() and just use UNCONF for unknown devices, like other
buses do - array of 'supported' peripheals makes addition of new stuff
unnecessarily harder
 1.1 11-May-2000  jdolecek branches: 1.1.6;
MI part of MicroChannel Architecture bus support

This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.

XXX this is still very experimental and development version; use at your
XXX own risk
 1.1.6.3 12-Mar-2001  bouyer Sync with HEAD.
 1.1.6.2 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.1.6.1 11-May-2000  bouyer file mcavar.h was added on branch thorpej_scsipi on 2000-11-20 11:41:31 +0000
 1.2.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.3.22.5 04-Feb-2005  skrll Sync with HEAD.
 1.3.22.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.22.3 18-Sep-2004  skrll Sync with HEAD.
 1.3.22.2 03-Sep-2004  skrll Sync with HEAD
 1.3.22.1 03-Aug-2004  skrll Sync with HEAD
 1.7.6.1 12-Feb-2005  yamt sync with head.
 1.7.4.1 29-Apr-2005  kent sync with -current
 1.8.6.1 27-Oct-2007  yamt sync with head.
 1.9.50.1 25-Oct-2007  bouyer Sync with HEAD.
 1.9.46.1 06-Nov-2007  matt sync with HEAD
 1.9.44.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.9.30.1 23-Oct-2007  ad Sync with head.
 1.10.20.1 16-May-2008  yamt sync with head.
 1.10.18.1 18-May-2008  yamt sync with head.
 1.10.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.11.44.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.11.34.1 30-Oct-2012  yamt sync with head

RSS XML Feed