Home | History | Annotate | only in /src/sys/dev/eisa
History log of /src/sys/dev/eisa
RevisionDateAuthorComments
 1.4 11-Apr-2001  jdolecek Only install headers which are actually used by our userland. This
saves about 2.2MB under /usr/include/dev/. Discussed on tech-kern@
recently.

I HOPE to get the list right. The headers I left in are ones
used for MI tools and those whose usage I discovered by grep over tree sources.
Feel free to put needed includes back in if you encounter anything which
should not be removed from lists.
 1.3 16-Jun-1998  cgd branches: 1.3.14; 1.3.26;
Point people to the correct Makefiles to build generated headers.
(Suggested by Manuel Bouyer.)
 1.2 12-Jun-1998  cgd Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install. (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.) The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change. Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
 1.1 26-Feb-1996  cgd list of all EISA devices that we know about (for smarter 'unconfigured'
printing if 'options EISAVERBOSE'), and files to turn the list into c source.
From my PR (1959).
 1.3.26.1 28-Feb-2002  nathanw Catch up to -current.
 1.3.14.1 21-Apr-2001  bouyer Sync with HEAD
 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 12-Jun-1998  cgd branches: 1.1.146; 1.1.150; 1.1.156;
Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install. (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.) The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change. Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
 1.1.156.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.1.150.1 04-May-2009  yamt sync with head.
 1.1.146.1 17-Jan-2009  mjf Sync with HEAD.
 1.63 09-Sep-1996  thorpej This file is obsolete; the ahb driver now lives in ahb.c
 1.62 28-Aug-1996  cgd (1) set scsi_link channel to either the appropriate channel (if a
multi-channel driver), or to SCSI_CHANNEL_ONLY_ONE if a
single-channel driver.
(2) use scsiprint() rather than a locally-defined autoconfig print
function, and kill any locally-defined print function.
 1.61 12-May-1996  mycroft branches: 1.61.4;
Use intr.h.
 1.60 05-May-1996  mycroft ahb -> sc
 1.59 09-Apr-1996  cgd use the new interfaces for interrupt attachment, etc.
 1.58 17-Mar-1996  thorpej New device attachment scheme:

- split softc size and match/attach out from cfdriver into
a new struct cfattach.

- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.
 1.57 08-Mar-1996  cgd convert to use I/O mapping/access macros in <machine/bus.h>.
Mostly mechanical changes, except for probe/attach, which have
to map (and, in the case of probe, unmap) the I/O space that the board
will use.
 1.56 28-Feb-1996  cgd fix arguments to ahbmatch to properly reflect reality. provide prototyped
declarations for ahbmatch and ahbattach.
 1.55 27-Feb-1996  cgd be consistent when talking about eisa_attach_args
 1.54 27-Feb-1996  cgd Better EISA autoconfiguration, per PR 1959.
 1.53 24-Dec-1995  mycroft The IST_* and IPL_* constants are not bus-specific; don't treat them as such.
Change splimp -> splnet in Ethernet, ARCnet, and FDDI drivers.
 1.52 04-Oct-1995  mycroft Fix typo.
 1.51 03-Oct-1995  mycroft Modularize the CCB/MSCP/ACB/ECB handling a little. No functional changes.
 1.50 26-Sep-1995  thorpej Don't declare Debugger(). It's handled in <sys/systm.h>
 1.49 12-Aug-1995  mycroft opri --> s
 1.48 12-Aug-1995  mycroft minphys() functions really should return void.
 1.47 24-Jul-1995  cgd update SCSI minphys routines' definitions to match standard minphys()
definition and usage.
 1.46 17-Apr-1995  cgd clean up several ISA device interfaces: autoconfiguration, header
inclusion, and interrupt configuration. more work still needs to be done,
but it's getting better...
 1.45 13-Apr-1995  cgd cast pointer to long when converting to integer type
 1.44 18-Jan-1995  mycroft Initialize host_stat and target_stat properly.
 1.43 13-Jan-1995  mycroft Simplify some sanity checks.
 1.42 03-Jan-1995  mycroft Add interrupt sharing types.
 1.41 28-Dec-1994  mycroft Numerous changes. Many bugs fixed, better autoconfig, a few new features.
 1.40 04-Nov-1994  mycroft No longer needs icu.h.
 1.39 04-Nov-1994  mycroft Change all of the uses of IRQ{0-15} and bit masks to use plain numbers
rather than bit shifting.
 1.38 27-Oct-1994  cgd new RCS ID format.
 1.37 22-Aug-1994  mycroft Disable EISA reset, for now.
 1.36 07-Aug-1994  mycroft Remove diagnostic.
 1.35 28-Jul-1994  mycroft Redo some of the EISA config stuff.
 1.34 27-Jul-1994  mycroft Normalize.
 1.33 27-Jul-1994  mycroft Enable IRQ probing.
 1.32 05-May-1994  mycroft branches: 1.32.2;
Remove now-bogus cast.
 1.31 05-May-1994  cgd lots of changes: prototype migration, move lots of variables, definitions,
and structure elements around. kill some unnecessary type and macro
definitions. standardize clock handling. More changes than you'd want.
 1.30 29-Apr-1994  cgd change timeout/untimeout/wakeup/sleep/tsleep args to void *
 1.29 20-Apr-1994  mycroft Change structure member names.
 1.28 08-Apr-1994  mycroft Fix return values from some interrupt routines.
 1.27 07-Apr-1994  mycroft Implement dynamic IRQ configuration and IRQ sharing. Inline spl*() calls.
Reorganize and clean up the relevant code.
 1.26 05-Apr-1994  mycroft Increase ahb_send_mbox timeout.
 1.25 02-Apr-1994  mycroft Minor code cleanup.
 1.24 30-Mar-1994  mycroft Print out board revision info.
 1.23 29-Mar-1994  mycroft New SCSI system, based on Julian's more recent work.
 1.22 25-Mar-1994  mycroft Put controller target in scsi_switch.
 1.21 12-Mar-1994  mycroft Fix bug in last change.
 1.20 12-Mar-1994  mycroft Update to match config(8).
 1.19 10-Mar-1994  mycroft Updates to match config(8).
 1.18 08-Mar-1994  mycroft #include cpu.h in all files which use spl*().
 1.17 03-Jan-1994  mycroft Use KERNBASE, not 0xfe000000.
 1.16 20-Dec-1993  davidb Fixed bug where with two or more SCSI controllers of the same type, you
could not have devices at the same ID on each bus.
This patch not directly applicable to magnum branch, which is using Julian's
new SCSI code.
 1.15 20-Dec-1993  mycroft Canonicalize all #includes, and add pio.h where appropriate.
 1.14 28-Jul-1993  cgd branches: 1.14.2;
incorporate changes from 0-9-base to 0-9-ALPHA
 1.13 17-Jul-1993  mycroft branches: 1.13.2;
Make these files GCC 2 happy.
 1.12 09-Jun-1993  deraadt minor silliness related to two or more controllers
 1.11 22-May-1993  cgd add rcsids to everything and clean up headers
 1.10 04-May-1993  deraadt support for making dev->id_alive be set, this is for iostat to
find disk devices. wee bit of a kludge. sub-device attach()
routines must now return 1 for successful attach(), 0 otherwise.
Other bsd's do this too..
 1.9 02-May-1993  deraadt fixed silly typo.
 1.8 26-Apr-1993  cgd id for scsi_attach must be an int.
 1.7 15-Apr-1993  deraadt ioconf changes, see previous cvs's that dumped core
 1.6 15-Apr-1993  glass NDDB made a re-appearance....
 1.5 12-Apr-1993  deraadt new scsi subsystem.
changes also in config/mkioconf.c & sys/scsi/*
 1.4 10-Apr-1993  glass fixed to be compliant, subservient, and to take advantage of the newly
hacked config(8)
 1.3 09-Apr-1993  cgd have probe return size of io space on successful return, rather
than simply 1.
 1.2 08-Apr-1993  deraadt dmesg output at boottime now tries to print out information as
soon as it is available. The output looks much more like Sunos.
 1.1 21-Mar-1993  cgd after 0.2.2 "stable" patches applied
 1.13.2.1 27-Jul-1993  deraadt two extra splx()'s noticed by <hd@world.std.com> go away.
 1.14.2.7 25-Mar-1994  mycroft Stylistic changes.
 1.14.2.6 02-Feb-1994  mycroft Change some structure names.
 1.14.2.5 02-Feb-1994  mycroft Change second arg of probe to self.
 1.14.2.4 02-Feb-1994  mycroft Fix potential bogon if card is in last slot.
 1.14.2.3 29-Nov-1993  mycroft Add some bzero()s before it bites me.
 1.14.2.2 29-Nov-1993  mycroft Converted. Needs testing.
 1.14.2.1 25-Nov-1993  mycroft New code from Julian, not yet converted.
 1.32.2.4 22-Aug-1994  mycroft update from trunk
 1.32.2.3 07-Aug-1994  mycroft update from trunk
 1.32.2.2 28-Jul-1994  cgd from trunk.
 1.32.2.1 27-Jul-1994  cgd from trunk, per mycroft
 1.61.4.1 11-Dec-1996  mycroft From trunk:
General cleanup; fixes several bugs.
 1.70 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.69 27-Jul-2021  thorpej branches: 1.69.2;
- Remove unused <sys/malloc.h> include.
- Rename ahb_ecb_phys_kv() to ahb_ecb_lookup().
- Remove a bogus comment.
 1.68 26-Jul-2021  thorpej - Type hygiene.
- Rename ahb_ecb::hashkey to ahb_ecb::ecb_dma_addr, and use that value
rather than recomputing it all the time.
 1.67 24-Jul-2021  thorpej Don't blindly establish our interrupt handler as IST_LEVEL. If the INTDEF
register has the INTHIGH bit set, the controller is going to keep the
line low when *not* asserting an interrupt, and since EISA level-tiggered
interrupts are active-low, this would result in a forever-interrupt-storm.

So, if INTHIGH is set in INTDEF, establish our interrupt handler as
IST_EDGE, which will program the EISA PIC to detect the interrupt on
the rising edge of the IRQ line.
 1.66 24-Apr-2021  thorpej branches: 1.66.2;
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.65 27-Jan-2021  thorpej branches: 1.65.2;
Use eisa_compatible_{match,lookup}().
 1.64 14-Jul-2016  msaitoh branches: 1.64.32;
- Use aprint*() instead of printf() in xxx_attach().
- Add missing aprint_naive("\n");
- KNF
 1.63 11-Jul-2016  msaitoh KNF. No functional change.
 1.62 18-Oct-2014  snj branches: 1.62.2;
src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
 1.61 29-Mar-2014  christos make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.60 27-Oct-2012  chs branches: 1.60.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.59 13-Nov-2010  uebayasi branches: 1.59.8; 1.59.18;
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.58 04-Dec-2009  njoly branches: 1.58.4;
Cleanup interrupt establish error messages. Do not mix
aprint_error/aprint_normal/printf calls for a single line.
 1.57 23-Nov-2009  rmind Remove some unecessary includes sys/user.h header.
 1.56 12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.55 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.54 18-Apr-2009  tsutsui Remove extra whitespace added by a stupid tool.
XXX: more in src/sys/arch
 1.53 18-Mar-2009  cegger bcopy -> memcpy
 1.52 18-Mar-2009  cegger bzero -> memset
 1.51 28-Apr-2008  martin branches: 1.51.8; 1.51.14;
Remove clause 3 and 4 from TNF licenses
 1.50 06-Apr-2008  cegger branches: 1.50.2; 1.50.4;
use aprint_*_dev and device_xname
 1.49 19-Oct-2007  ad branches: 1.49.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.48 04-Mar-2007  christos branches: 1.48.2; 1.48.14; 1.48.16; 1.48.20;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.47 16-Nov-2006  christos branches: 1.47.4;
__unused removal on arguments; approved by core.
 1.46 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.45 29-Mar-2006  thorpej branches: 1.45.8; 1.45.10;
Use device_private().
 1.44 24-Dec-2005  perry branches: 1.44.4; 1.44.6; 1.44.8; 1.44.10; 1.44.12;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.43 11-Dec-2005  christos merge ktrace-lwp.
 1.42 21-Feb-2005  thorpej branches: 1.42.4;
Part 1 of a cleanup pass over the SCSI subsystem. The aim is to name
everything "scsi_*", since we really are talking about the SCSI command
set, ATAPI transport not withstanding. Improve the names of many structures,
and prepend "SCSI_" onto all SCSI command opcodes. Place items described
by the SCSI Primary Commands document into scsi_spc.h.
 1.41 07-Dec-2004  thorpej branches: 1.41.2; 1.41.4;
Don't use "struct scsi_generic" in a hardware-defined structure. Instead,
use an array of 12 bytes. Check the incoming CDB to see that it will fit,
and print and error and fail the command if it won't.
 1.40 23-Aug-2004  thorpej - Use ANSI function decls and make use of static.
 1.39 02-Nov-2003  wiz branches: 1.39.4;
Fix some typos. From Tom Cosgrove via jmc@openbsd.
 1.38 02-Oct-2002  thorpej branches: 1.38.6;
Add trailing ; to CFATTACH_DECL.
 1.37 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.36 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.35 05-Apr-2002  bouyer Implement mstohz() as discussed on tech-kern, and use it in SCSI drivers
to convert xs->timeout to callout() parameter.
 1.34 15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.33 13-Nov-2001  lukem add RCSID
 1.32 25-Apr-2001  bouyer branches: 1.32.2;
Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
(no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
 1.31 14-Nov-2000  thorpej branches: 1.31.2;
NBPG -> PAGE_SIZE
 1.30 12-Jul-2000  thorpej Fix a couple of LP64 problems (long -> int32_t).
 1.29 23-Mar-2000  thorpej branches: 1.29.4;
New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
 1.28 30-Sep-1999  thorpej branches: 1.28.2;
Update for SCSPI changes.
 1.27 09-Dec-1998  thorpej Update for changed scsipi_xfer struct.
 1.26 05-Dec-1998  mjacob Update HBAs to incorporate the new max_lun property.
 1.25 19-Nov-1998  thorpej Adapt to the new scsipi_adapter interface.
 1.24 10-Oct-1998  thorpej Garbage-collect the open_target_lu and close_target_lu entry points from
struct scsipi_adapter; they were not used.

Add a scsipi_ioctl entry point to struct scsipi_adapter. This will be
used to issue ioctl commands to the host adapters.

Inspired by PR #6090, from Matt Jacob.
 1.23 17-Aug-1998  mycroft Assign my copyrights to TNF.
 1.22 15-Aug-1998  mycroft Name some constants consistently between drivers.
 1.21 15-Aug-1998  thorpej Only map the amount of space the device actually occupies.

Part of PR #5279, Martin Musemann.
 1.20 04-Jul-1998  jonathan defopt DDB.
 1.19 08-Jun-1998  thorpej Nuke __BROKEN_INDIRECT_CONFIG.
 1.18 17-Feb-1998  thorpej - Perform all necessary bus_dmamap_sync() operations.
- Greatly simplify allocation and DMA mapping of the mailbox and ccbs.
- Be more robust against resource shortage errors, and report errors better.
 1.17 04-Feb-1998  thorpej Add offset and length parameters to bus_dmamap_sync(), used for specifiying
partial syncs of a DMA mapping.
 1.16 04-Feb-1998  thorpej Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC to
BUS_DMA_COHERENT.
 1.15 28-Jan-1998  thorpej Use offsetof() from libkern.h
 1.14 12-Jan-1998  thorpej Slight change to previous.
 1.13 12-Jan-1998  thorpej Adjust for config changes.
 1.12 04-Nov-1997  thorpej Implement a simple queueing mechanism that makes these drivers much
more robust in resource shortage situations, basically identical to
code I added to the "ahc" driver some time ago.

Thanks to Brad Spencer for the testing help.
 1.11 29-Oct-1997  thorpej When creating ecbs, be a little more informative about why we couldn't
should creation/initialization of a ecb fail. Also, don't panic in
these situations. Instead, simply return an error condition and allow
the caller to deal with it. It may be the case that we were able to
create one ecb what we can grab, and continue to hobble along.
 1.10 27-Aug-1997  bouyer branches: 1.10.4;
Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
 1.9 06-Jun-1997  thorpej branches: 1.9.2; 1.9.4;
Pull thorpej-bus-dma branch into mainline.
 1.8 28-Mar-1997  mycroft branches: 1.8.2;
Use a temporary data structure for holding probe information, rather than a
full softc.
 1.7 10-Dec-1996  thorpej branches: 1.7.2;
Fill in sc_link.max_target
 1.6 21-Oct-1996  thorpej New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.5 13-Oct-1996  christos backout kprintf changes
 1.4 10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.3 19-Sep-1996  thorpej Correct two prototypes so that this compiles without DDB defined.
 1.2 07-Sep-1996  mycroft Oops. Copy out the right number of command bytes.
 1.1 01-Sep-1996  mycroft General cleanup, like other drivers.
 1.7.2.2 11-Dec-1996  mycroft From trunk:
General cleanup; fixes several bugs.
 1.7.2.1 10-Dec-1996  mycroft file ahb.c was added on branch netbsd-1-2 on 1996-12-11 05:06:56 +0000
 1.8.2.3 18-May-1997  thorpej Do the __BROKEN_INDIRECT_CONFIG dance.
 1.8.2.2 17-May-1997  thorpej Update for bus_dmamem_alloc() changes.
 1.8.2.1 13-May-1997  thorpej Convert to use bus dma.
 1.9.4.1 27-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.9.2.1 01-Jul-1997  bouyer Updates for new scsipi subsystem. Actally known to work on i386 and sparc.
 1.10.4.2 04-Nov-1997  thorpej Pull up from trunk: add a queueing mechanism to make this much more
robust in resource shortage conditions.
 1.10.4.1 29-Oct-1997  thorpej Pull up from trunk: be more verbose/robust about ecb allocation failure.
 1.28.2.6 22-Nov-2000  bouyer Sync with HEAD.
 1.28.2.5 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.28.2.4 01-Nov-1999  thorpej Fixup the SC_DEBUG() stuff for the new world order.
 1.28.2.3 26-Oct-1999  thorpej Update for:

Deal a little more gracefully with the fact that xfer mode parameters
are for the I_T Nexus, and make all xfer mode updates `async events'.
 1.28.2.2 20-Oct-1999  thorpej Eliminate sleeping from adapter routines.
 1.28.2.1 19-Oct-1999  thorpej Adapt to scsipi API changes.
 1.29.4.1 12-Jul-2000  thorpej Update from trunk:
Fix a couple of LP64 problems (long -> int32_t).
 1.31.2.5 18-Oct-2002  nathanw Catch up to -current.
 1.31.2.4 17-Apr-2002  nathanw Catch up to -current.
 1.31.2.3 08-Jan-2002  nathanw Catch up to -current.
 1.31.2.2 14-Nov-2001  nathanw Catch up to -current.
 1.31.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.32.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.32.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.32.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.38.6.6 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.38.6.5 18-Dec-2004  skrll Sync with HEAD.
 1.38.6.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.38.6.3 18-Sep-2004  skrll Sync with HEAD.
 1.38.6.2 25-Aug-2004  skrll Sync with HEAD.
 1.38.6.1 03-Aug-2004  skrll Sync with HEAD
 1.39.4.1 02-Apr-2005  he Pull up revision 1.41 (requested by thorpej in ticket #1022):
Don't use "struct scsi_generic" in a hardware-defined structure.
Instead, use an array of 12 bytes. Check the incoming CDB to see
that it will fit, and print and error and fail the command if it
won't.
 1.41.4.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.41.2.1 29-Apr-2005  kent sync with -current
 1.42.4.4 27-Oct-2007  yamt sync with head.
 1.42.4.3 03-Sep-2007  yamt sync with head.
 1.42.4.2 30-Dec-2006  yamt sync with head.
 1.42.4.1 21-Jun-2006  yamt sync with head.
 1.44.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.44.10.1 19-Apr-2006  elad sync with head.
 1.44.8.1 01-Apr-2006  yamt sync with head.
 1.44.6.1 22-Apr-2006  simonb Sync with head.
 1.44.4.1 09-Sep-2006  rpaulo sync with head
 1.45.10.2 10-Dec-2006  yamt sync with head.
 1.45.10.1 22-Oct-2006  yamt sync with head
 1.45.8.1 18-Nov-2006  ad Sync with head.
 1.47.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.48.20.1 25-Oct-2007  bouyer Sync with HEAD.
 1.48.16.1 06-Nov-2007  matt sync with HEAD
 1.48.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.48.2.1 23-Oct-2007  ad Sync with head.
 1.49.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.50.4.4 11-Mar-2010  yamt sync with head
 1.50.4.3 16-May-2009  yamt sync with head
 1.50.4.2 04-May-2009  yamt sync with head.
 1.50.4.1 16-May-2008  yamt sync with head.
 1.50.2.1 18-May-2008  yamt sync with head.
 1.51.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.51.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.58.4.1 05-Mar-2011  rmind sync with head
 1.59.18.3 03-Dec-2017  jdolecek update from HEAD
 1.59.18.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.59.18.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.59.8.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.59.8.1 30-Oct-2012  yamt sync with head
 1.60.2.1 18-May-2014  rmind sync with head
 1.62.2.1 05-Oct-2016  skrll Sync with HEAD
 1.64.32.1 03-Apr-2021  thorpej Sync with HEAD.
 1.65.2.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.66.2.1 01-Aug-2021  thorpej Sync with HEAD.
 1.69.2.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.1 20-Nov-2000  bouyer branches: 1.1.2;
file ahb.c.orig was initially added on branch thorpej_scsipi.
 1.1.2.2 20-Nov-2000  bouyer Remove files that should not have been added
 1.1.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.19 23-Feb-2022  andvar fix various typos in comments, mainly immediatly/immediately/,
as well shared and recently fixed typos in OpenBSD code by Jonathan Grey.
 1.18 26-Jul-2021  thorpej - Type hygiene.
- Rename ahb_ecb::hashkey to ahb_ecb::ecb_dma_addr, and use that value
rather than recomputing it all the time.
 1.17 24-Jul-2021  thorpej Correct the comment about the INTHIGH bit in the INTDEF register. It
does indeed mean "IRQ signal is active-high", but "else edge" is not
correct; level-triggered EISA interrupt are active-low, and edge-triggered
EISA interrupts are rising-edge, so INTHIGH would in fact mean "edge".
 1.16 28-Apr-2008  martin branches: 1.16.106;
Remove clause 3 and 4 from TNF licenses
 1.15 11-Dec-2005  christos branches: 1.15.70; 1.15.72; 1.15.74;
merge ktrace-lwp.
 1.14 21-Feb-2005  thorpej Part 1 of a cleanup pass over the SCSI subsystem. The aim is to name
everything "scsi_*", since we really are talking about the SCSI command
set, ATAPI transport not withstanding. Improve the names of many structures,
and prepend "SCSI_" onto all SCSI command opcodes. Place items described
by the SCSI Primary Commands document into scsi_spc.h.
 1.13 07-Dec-2004  thorpej branches: 1.13.2; 1.13.4;
Move a comment to indicate the true "end of hardware supported fields".
 1.12 07-Dec-2004  thorpej Don't use "struct scsi_generic" in a hardware-defined structure. Instead,
use an array of 12 bytes. Check the incoming CDB to see that it will fit,
and print and error and fail the command if it won't.
 1.11 03-May-2003  wiz branches: 1.11.2; 1.11.8;
DMA, not dma nor Dma.
 1.10 12-Jul-2000  thorpej Fix a couple of LP64 problems (long -> int32_t).
 1.9 17-Aug-1998  mycroft branches: 1.9.12; 1.9.22;
Assign my copyrights to TNF.
 1.8 15-Aug-1998  mycroft Name some constants consistently between drivers.
 1.7 15-Aug-1998  mycroft Always map the EISA configuration registers.
 1.6 15-Aug-1998  thorpej Only map the amount of space the device actually occupies.

Part of PR #5279, Martin Musemann.
 1.5 17-Feb-1998  thorpej - Perform all necessary bus_dmamap_sync() operations.
- Greatly simplify allocation and DMA mapping of the mailbox and ccbs.
- Be more robust against resource shortage errors, and report errors better.
 1.4 27-Aug-1997  bouyer Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
 1.3 06-Jun-1997  thorpej branches: 1.3.2; 1.3.4;
Pull thorpej-bus-dma branch into mainline.
 1.2 01-Sep-1996  mycroft branches: 1.2.2; 1.2.10;
Minor changes.
 1.1 01-Sep-1996  mycroft General cleanup, like other drivers.
 1.2.10.1 13-May-1997  thorpej Convert to use bus dma.
 1.2.2.2 11-Dec-1996  mycroft From trunk:
General cleanup; fixes several bugs.
 1.2.2.1 01-Sep-1996  mycroft file ahbreg.h was added on branch netbsd-1-2 on 1996-12-11 05:06:57 +0000
 1.3.4.1 27-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.3.2.1 01-Jul-1997  bouyer Updates for new scsipi subsystem. Actally known to work on i386 and sparc.
 1.9.22.1 12-Jul-2000  thorpej Update from trunk:
Fix a couple of LP64 problems (long -> int32_t).
 1.9.12.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.11.8.1 02-Apr-2005  he Pull up revision 1.12 (requested by thorpej in ticket #1022):
Don't use "struct scsi_generic" in a hardware-defined structure.
Instead, use an array of 12 bytes. Check the incoming CDB to see
that it will fit, and print and error and fail the command if it
won't.
 1.11.2.2 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.11.2.1 18-Dec-2004  skrll Sync with HEAD.
 1.13.4.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.13.2.1 29-Apr-2005  kent sync with -current
 1.15.74.1 16-May-2008  yamt sync with head.
 1.15.72.1 18-May-2008  yamt sync with head.
 1.15.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.16.106.1 01-Aug-2021  thorpej Sync with HEAD.
 1.42 27-Jan-2021  thorpej Use eisa_compatible_{match,lookup}().
 1.41 11-Jul-2016  msaitoh branches: 1.41.32;
KNF. No functional change.
 1.40 18-Oct-2014  snj branches: 1.40.2;
src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
 1.39 29-Mar-2014  christos make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.38 04-Dec-2009  njoly branches: 1.38.12; 1.38.22; 1.38.26;
Cleanup interrupt establish error messages. Do not mix
aprint_error/aprint_normal/printf calls for a single line.
 1.37 05-May-2009  cegger device_t/softc split
 1.36 06-Apr-2008  cegger branches: 1.36.4; 1.36.18;
use aprint_*_dev and device_xname
 1.35 18-Feb-2008  dyoung branches: 1.35.6;
Use device_xname().
 1.34 19-Oct-2007  ad branches: 1.34.2;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.33 16-Nov-2006  christos branches: 1.33.8; 1.33.22; 1.33.24; 1.33.28;
__unused removal on arguments; approved by core.
 1.32 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.31 29-Mar-2006  thorpej branches: 1.31.8; 1.31.10;
Use device_private().
 1.30 11-Dec-2005  christos branches: 1.30.4; 1.30.6; 1.30.8; 1.30.10; 1.30.12;
merge ktrace-lwp.
 1.29 23-Aug-2004  thorpej branches: 1.29.12;
- Use ANSI function decls and make use of static.
 1.28 22-Apr-2003  tsutsui branches: 1.28.2;
- #ifdef DEBUG, #if DEBUG -> #ifdef AHC_DEBUG
- TAB/space cosmetics
 1.27 20-Apr-2003  fvdl Initialize ahc->name. From Izumi Tsutsui.
Set ahc->parent_dmat correctly.
 1.26 20-Apr-2003  fvdl Call ahc_softc_init in attach function.
 1.25 19-Apr-2003  fvdl Adapt to newer backend. Needs testing.
 1.24 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.23 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.22 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.21 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.20 13-Nov-2001  lukem add RCSID
 1.19 24-Sep-2000  jdolecek branches: 1.19.2; 1.19.4;
use new generic bootverbose instead of local definition
 1.18 15-Mar-2000  fvdl Update EISA frontend for new ahc driver (done by Noriyuki Soda).
 1.17 26-Jan-2000  thorpej Remove the FreeBSD support from this file. It hasn't worked in FreeBSD
for some time, and only made the code harder to read.
 1.16 08-Jun-1998  thorpej branches: 1.16.14;
Nuke __BROKEN_INDIRECT_CONFIG.
 1.15 17-Mar-1998  thorpej Fix a typo in the bus_dma changes.
 1.14 16-Mar-1998  leo Use bus-dma functions.
 1.13 27-Aug-1997  bouyer Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
 1.12 08-May-1997  thorpej branches: 1.12.2; 1.12.4;
Garbage-collect an unneeded #ifdef.
 1.11 13-Mar-1997  cgd make these compile (and hopefully run; they're untested) on the Alpha
 1.10 21-Oct-1996  thorpej New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.9 13-Oct-1996  christos backout kprintf changes
 1.8 10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.7 28-Aug-1996  thorpej Quiet the ahc driver down a bit by only enabling some of less useful
messages #if defined(DEBUG) in the NetBSD case.
 1.6 05-Aug-1996  soda disable AHA-284x product ID, because it is now handled by ahc_isa.c.
 1.5 10-Jul-1996  explorer Updates to aic7xxx driver ; from pr port-i386/2600
 1.4 20-May-1996  thorpej branches: 1.4.4;
RCD Id police.
 1.3 16-May-1996  mycroft Fix bogus argument to bus_io_unmap().
 1.2 16-May-1996  mycroft Slight redux of EISA crap.
 1.1 16-May-1996  mycroft New version, with changes from Justin Gibbs and Noriyuki Soda.
 1.4.4.2 25-Aug-1996  thorpej Fix support for the Adaptec 284x VLbus SCSI cards, massaged for the
NetBSD-1.2 release branch by Noriyuki Soda <soda@sra.co.jp>.
(`sys/arch/i386/isa/ahc_isa.c' tagged separately.)
 1.4.4.1 18-Jul-1996  jtc Pulled up from rev 1.5, ahc fixes
 1.12.4.1 27-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.12.2.1 01-Jul-1997  bouyer Updates for new scsipi subsystem. Actally known to work on i386 and sparc.
 1.16.14.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.19.4.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.19.4.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.19.2.2 18-Oct-2002  nathanw Catch up to -current.
 1.19.2.1 14-Nov-2001  nathanw Catch up to -current.
 1.28.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.28.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.28.2.1 25-Aug-2004  skrll Sync with HEAD.
 1.29.12.4 27-Feb-2008  yamt sync with head.
 1.29.12.3 27-Oct-2007  yamt sync with head.
 1.29.12.2 30-Dec-2006  yamt sync with head.
 1.29.12.1 21-Jun-2006  yamt sync with head.
 1.30.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.30.10.1 19-Apr-2006  elad sync with head.
 1.30.8.1 01-Apr-2006  yamt sync with head.
 1.30.6.1 22-Apr-2006  simonb Sync with head.
 1.30.4.1 09-Sep-2006  rpaulo sync with head
 1.31.10.2 10-Dec-2006  yamt sync with head.
 1.31.10.1 22-Oct-2006  yamt sync with head
 1.31.8.1 18-Nov-2006  ad Sync with head.
 1.33.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.33.24.2 23-Mar-2008  matt sync with HEAD
 1.33.24.1 06-Nov-2007  matt sync with HEAD
 1.33.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.33.8.1 23-Oct-2007  ad Sync with head.
 1.34.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.35.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.36.18.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.36.4.2 11-Mar-2010  yamt sync with head
 1.36.4.1 16-May-2009  yamt sync with head
 1.38.26.1 18-May-2014  rmind sync with head
 1.38.22.2 03-Dec-2017  jdolecek update from HEAD
 1.38.22.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.38.12.1 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.40.2.1 05-Oct-2016  skrll Sync with HEAD
 1.41.32.1 03-Apr-2021  thorpej Sync with HEAD.
 1.38 27-Jan-2021  thorpej Use eisa_compatible_{match,lookup}().
 1.37 18-Oct-2014  snj branches: 1.37.34;
src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
 1.36 29-Mar-2014  christos make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.35 27-Oct-2012  chs branches: 1.35.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.34 04-Dec-2009  njoly branches: 1.34.12; 1.34.22;
Cleanup interrupt establish error messages. Do not mix
aprint_error/aprint_normal/printf calls for a single line.
 1.33 12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.32 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.31 28-Apr-2008  martin branches: 1.31.14;
Remove clause 3 and 4 from TNF licenses
 1.30 06-Apr-2008  cegger branches: 1.30.2; 1.30.4;
use aprint_*_dev and device_xname
 1.29 19-Oct-2007  ad branches: 1.29.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.28 16-Nov-2006  christos branches: 1.28.8; 1.28.22; 1.28.24; 1.28.28;
__unused removal on arguments; approved by core.
 1.27 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.26 29-Mar-2006  thorpej branches: 1.26.8; 1.26.10;
Use device_private().
 1.25 11-Dec-2005  christos branches: 1.25.4; 1.25.6; 1.25.8; 1.25.10; 1.25.12;
merge ktrace-lwp.
 1.24 23-Aug-2004  thorpej branches: 1.24.12;
- Use ANSI function decls and make use of static.
 1.23 02-Oct-2002  thorpej branches: 1.23.6;
Add trailing ; to CFATTACH_DECL.
 1.22 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.21 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.20 15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.19 13-Nov-2001  lukem add RCSID
 1.18 03-May-2001  ross branches: 1.18.2;
Split pci and eisa/isa attachment calls, plus misc cleanup.
 1.17 25-Apr-2001  bouyer Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
(no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
 1.16 15-Aug-1998  mycroft branches: 1.16.12; 1.16.24;
Assign my copyrights to TNF.
 1.15 15-Aug-1998  mycroft Name some constants consistently between drivers.
 1.14 15-Aug-1998  mycroft Map the EISA registers correctly!
 1.13 15-Aug-1998  thorpej Only map the amount of space the device actually occupies.

Part of PR #5279, Martin Musemann.
 1.12 08-Jun-1998  thorpej Nuke __BROKEN_INDIRECT_CONFIG.
 1.11 09-Jan-1998  mycroft Update copyright.
 1.10 09-Jan-1998  mycroft Map the I/O region correctly, but reading its address from the EISA config
space.
 1.9 27-Aug-1997  bouyer branches: 1.9.4;
Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
 1.8 06-Jun-1997  thorpej branches: 1.8.2; 1.8.4;
Pull thorpej-bus-dma branch into mainline.
 1.7 28-Mar-1997  mycroft branches: 1.7.2;
Use a temporary data structure for holding probe information, rather than a
full softc.
 1.6 13-Mar-1997  cgd make these compile (and hopefully run; they're untested) on the Alpha
 1.5 21-Oct-1996  thorpej New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.4 13-Oct-1996  christos backout kprintf changes
 1.3 10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.2 01-Sep-1996  mycroft Minor changes.
 1.1 31-Aug-1996  mycroft Split the BusLogic driver apart, and rename it to `bha (like BSDi).
 1.7.2.1 13-May-1997  thorpej Stash the bus dma tag and bus-specific DMA flags in the softc.
 1.8.4.1 27-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.8.2.1 01-Jul-1997  bouyer Updates for new scsipi subsystem. Actally known to work on i386 and sparc.
 1.9.4.1 29-Jan-1998  mellon Pull up 1.10 and 1.11 (mycroft)
 1.16.24.4 18-Oct-2002  nathanw Catch up to -current.
 1.16.24.3 08-Jan-2002  nathanw Catch up to -current.
 1.16.24.2 14-Nov-2001  nathanw Catch up to -current.
 1.16.24.1 21-Jun-2001  nathanw Catch up to -current.
 1.16.12.1 27-Mar-2001  bouyer Convert these drivers to thorpej_scsipi (untested).
 1.18.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.18.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.23.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.23.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.23.6.1 25-Aug-2004  skrll Sync with HEAD.
 1.24.12.3 27-Oct-2007  yamt sync with head.
 1.24.12.2 30-Dec-2006  yamt sync with head.
 1.24.12.1 21-Jun-2006  yamt sync with head.
 1.25.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.25.10.1 19-Apr-2006  elad sync with head.
 1.25.8.1 01-Apr-2006  yamt sync with head.
 1.25.6.1 22-Apr-2006  simonb Sync with head.
 1.25.4.1 09-Sep-2006  rpaulo sync with head
 1.26.10.2 10-Dec-2006  yamt sync with head.
 1.26.10.1 22-Oct-2006  yamt sync with head
 1.26.8.1 18-Nov-2006  ad Sync with head.
 1.28.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.28.24.1 06-Nov-2007  matt sync with HEAD
 1.28.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.28.8.1 23-Oct-2007  ad Sync with head.
 1.29.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.30.4.3 11-Mar-2010  yamt sync with head
 1.30.4.2 16-May-2009  yamt sync with head
 1.30.4.1 16-May-2008  yamt sync with head.
 1.30.2.1 18-May-2008  yamt sync with head.
 1.31.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.34.22.3 03-Dec-2017  jdolecek update from HEAD
 1.34.22.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.34.22.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.34.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.34.12.1 30-Oct-2012  yamt sync with head
 1.35.2.1 18-May-2014  rmind sync with head
 1.37.34.1 03-Apr-2021  thorpej Sync with HEAD.
 1.26 27-Jan-2021  thorpej Use eisa_compatible_{match,lookup}().
 1.25 27-Sep-2016  pgoyette branches: 1.25.30;
Modularize the ld driver and all of its attachments. Ensure that all
parents are capable of rescan (or otherwise provide a means of attaching
children post-initialization).
 1.24 14-Jul-2016  msaitoh branches: 1.24.2;
- Use aprint*() more in xxx_attach().
- Add missing aprint_naive("\n").
- Remove extra spaces and tabs.
- KNF.
 1.23 29-Mar-2014  christos branches: 1.23.6;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 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 28-Apr-2008  martin branches: 1.19.14;
Remove clause 3 and 4 from TNF licenses
 1.18 19-Oct-2007  ad branches: 1.18.16; 1.18.18; 1.18.20;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.17 04-Mar-2007  christos branches: 1.17.2; 1.17.14; 1.17.16; 1.17.20;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.16 28-Nov-2006  ad branches: 1.16.4;
Improve error handling. Related to PR/21900.
 1.15 16-Nov-2006  christos __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 28-Aug-2006  christos branches: 1.13.2; 1.13.4;
static goes first.
 1.12 29-Mar-2006  thorpej Use device_private().
 1.11 11-Dec-2005  christos branches: 1.11.4; 1.11.6; 1.11.8; 1.11.10; 1.11.12;
merge ktrace-lwp.
 1.10 27-Feb-2005  perry branches: 1.10.4;
nuke trailing whitespace
 1.9 23-Aug-2004  thorpej branches: 1.9.4; 1.9.6;
- Use ANSI function decls and make use of static.
 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 25-Jan-2002  ad - Always validate the return value read from the outbound FIFO.
- Copy access method info into the softc so we don't double dereference.
- Remove static on functions.
 1.4 15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.3 13-Nov-2001  lukem add RCSID
 1.2 19-Oct-2000  ad branches: 1.2.2; 1.2.4; 1.2.6; 1.2.12;
Nuke unused includes, sort decls.
 1.1 01-Sep-2000  ad Add an EISA bus front-end for the `cac' driver.
 1.2.12.3 29-Jan-2002  he Puill up revision 1.5 (requested by ad):
Some fixes:
o Always validate return value read from outbound FIFO
o Copy access method into to softc to avoid double dereference
o Remove static on functions
Fixes PR#14453.
 1.2.12.2 25-Oct-2001  he Pull up revisions 1.1-1.2 (requested by ad):
Add Mylex DACC960, CAC-EISA, and I2O block/SCSI drivers.
 1.2.12.1 19-Oct-2000  he file cac_eisa.c was added on branch netbsd-1-5 on 2001-10-25 17:53:47 +0000
 1.2.6.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.2.6.2 11-Feb-2002  jdolecek Sync w/ -current.
 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 28-Feb-2002  nathanw Catch up to -current.
 1.2.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.2.4.1 14-Nov-2001  nathanw Catch up to -current.
 1.2.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.2.2.1 19-Oct-2000  bouyer file cac_eisa.c was added on branch thorpej_scsipi on 2000-11-20 11:39:56 +0000
 1.8.6.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 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 25-Aug-2004  skrll Sync with HEAD.
 1.9.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.9.4.1 29-Apr-2005  kent sync with -current
 1.10.4.4 27-Oct-2007  yamt sync with head.
 1.10.4.3 03-Sep-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.11.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.11.10.1 19-Apr-2006  elad sync with head.
 1.11.8.2 03-Sep-2006  yamt sync with head.
 1.11.8.1 01-Apr-2006  yamt sync with head.
 1.11.6.1 22-Apr-2006  simonb Sync with head.
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.13.4.2 10-Dec-2006  yamt sync with head.
 1.13.4.1 22-Oct-2006  yamt sync with head
 1.13.2.2 12-Jan-2007  ad Sync with head.
 1.13.2.1 18-Nov-2006  ad Sync with head.
 1.16.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.17.20.1 25-Oct-2007  bouyer Sync with HEAD.
 1.17.16.1 06-Nov-2007  matt sync with HEAD
 1.17.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.17.2.1 23-Oct-2007  ad Sync with head.
 1.18.20.2 16-May-2009  yamt sync with head
 1.18.20.1 16-May-2008  yamt sync with head.
 1.18.18.1 18-May-2008  yamt sync with head.
 1.18.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.19.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 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.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.25.30.1 03-Apr-2021  thorpej Sync with HEAD.
 1.17 24-Jul-2021  thorpej Report our interrupt trigger type.
 1.16 12-Jul-2021  thorpej Printing out our model name is not considered an error message.
 1.15 29-Mar-2014  christos branches: 1.15.48;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.14 27-Oct-2012  chs branches: 1.14.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.13 19-Jan-2010  pooka branches: 1.13.12; 1.13.22;
Redefine bpf linkage through an always present op vector, i.e.
#if NBPFILTER is no longer required in the client. This change
doesn't yet add support for loading bpf as a module, since drivers
can register before bpf is attached. However, callers of bpf can
now be modularized.

Dynamically loadable bpf could probably be done fairly easily with
coordination from the stub driver and the real driver by registering
attachments in the stub before the real driver is loaded and doing
a handoff. ... and I'm not going to ponder the depths of unload
here.

Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
 1.12 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.11 04-Apr-2008  tsutsui branches: 1.11.2; 1.11.4;
Split device_t/softc for le(4) and variants and misc cosmetic changes.
 1.10 19-Oct-2007  ad branches: 1.10.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.9 29-Mar-2006  thorpej branches: 1.9.18; 1.9.32; 1.9.34; 1.9.38;
Use device_private().
 1.8 11-Dec-2005  christos branches: 1.8.4; 1.8.6; 1.8.8; 1.8.10; 1.8.12;
merge ktrace-lwp.
 1.7 27-Feb-2005  perry branches: 1.7.4;
nuke trailing whitespace
 1.6 23-Aug-2004  thorpej branches: 1.6.4; 1.6.6;
- Use ANSI function decls.
- Sprinkle some static around.
- Sprinkle some const around.
 1.5 02-Oct-2002  thorpej branches: 1.5.6;
Add trailing ; to CFATTACH_DECL.
 1.4 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.3 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.2 13-Nov-2001  lukem add RCSID
 1.1 11-Aug-2000  thorpej branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
Add support for the DEC DE422 Ethernet, which is a DEPCA
attached to the EISA bus. This board is commonly found
on Alpha Jensen systems.
 1.1.8.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.8.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.6.1 14-Nov-2001  nathanw Catch up to -current.
 1.1.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.1.4.1 11-Aug-2000  bouyer file depca_eisa.c was added on branch thorpej_scsipi on 2000-11-20 11:39:56 +0000
 1.1.2.2 11-Aug-2000  thorpej Pullup from trunk:
Add support for the DEC DE422 Ethernet, which is a DEPCA
attached to the EISA bus. This board is commonly found
on Alpha Jensen systems.
 1.1.2.1 11-Aug-2000  thorpej file depca_eisa.c was added on branch netbsd-1-5 on 2000-08-11 18:16:48 +0000
 1.5.6.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.5.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.6.1 25-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.7.4.2 27-Oct-2007  yamt sync with head.
 1.7.4.1 21-Jun-2006  yamt sync with head.
 1.8.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.8.10.1 19-Apr-2006  elad sync with head.
 1.8.8.1 01-Apr-2006  yamt sync with head.
 1.8.6.1 22-Apr-2006  simonb Sync with head.
 1.8.4.1 09-Sep-2006  rpaulo sync with head
 1.9.38.1 25-Oct-2007  bouyer Sync with HEAD.
 1.9.34.1 06-Nov-2007  matt sync with HEAD
 1.9.32.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.18.1 23-Oct-2007  ad Sync with head.
 1.10.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.11.4.2 11-Mar-2010  yamt sync with head
 1.11.4.1 16-May-2008  yamt sync with head.
 1.11.2.1 18-May-2008  yamt sync with head.
 1.13.22.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.13.22.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.13.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.13.12.1 30-Oct-2012  yamt sync with head
 1.14.2.1 18-May-2014  rmind sync with head
 1.15.48.1 01-Aug-2021  thorpej Sync with HEAD.
 1.9 11-Dec-2005  christos merge ktrace-lwp.
 1.8 27-Feb-2005  perry remove trailing whitespace from the stripped RCS Id
 1.7 15-Dec-2003  jmc branches: 1.7.8; 1.7.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.6 18-Jan-2001  jdolecek branches: 1.6.24;
constify
 1.5 09-Jan-1998  thorpej branches: 1.5.14;
Put RCS IDs into the generated files, in the correct place.
 1.4 08-Jan-1998  thorpej Back out RCS ID related changes.
 1.3 05-Jan-1998  perry make script insert RCS ids into generated files
 1.2 09-Apr-1996  cgd spaces vs. tabs
 1.1 26-Feb-1996  cgd list of all EISA devices that we know about (for smarter 'unconfigured'
printing if 'options EISAVERBOSE'), and files to turn the list into c source.
From my PR (1959).
 1.5.14.1 11-Feb-2001  bouyer Sync with HEAD.
 1.6.24.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.6.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.24.1 03-Aug-2004  skrll Sync with HEAD
 1.7.10.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.7.8.1 29-Apr-2005  kent sync with -current
 1.24 27-Jan-2021  thorpej Use eisa_compatible_{match,lookup}().
 1.23 14-Jul-2016  msaitoh branches: 1.23.32;
- Use aprint*() instead of printf() in xxx_attach().
- Add missing aprint_naive("\n");
- KNF
 1.22 29-Mar-2014  christos branches: 1.22.6;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.21 27-Oct-2012  chs branches: 1.21.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.20 12-May-2009  cegger branches: 1.20.12; 1.20.22;
struct device * -> device_t, no functional changes intended.
 1.19 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.18 06-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-Dec-2003  keihan branches: 1.11.8; 1.11.10;
netbsd.org -> NetBSD.org

This was the last commit of this kind to src/sys, which is now totally
"NetBSD.org clean". Thanks for the patiance, and sorry for all the commits.
 1.10 07-Dec-2002  ad branches: 1.10.6;
Implement the DPT EATA ioctl() interface.
 1.9 02-Oct-2002  thorpej 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 13-Nov-2001  lukem branches: 1.6.10;
add RCSID
 1.5 25-Apr-2001  bouyer branches: 1.5.2;
Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
(no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
 1.4 30-Jun-2000  ad branches: 1.4.2;
Use my proper name in copyrights.
 1.3 05-Jan-2000  ad branches: 1.3.2; 1.3.6;
Spelling.
 1.2 18-Oct-1999  ad branches: 1.2.2;
Don't panic so easily on failure; just issue notification.
 1.1 29-Sep-1999  ad branches: 1.1.2;
EISA frontend for DPT driver (as yet untested).
 1.1.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.2.2.2 01-Apr-2001  ad - Make this work.
- Restructure a bit.
- KNF, const.
 1.2.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.6.1 06-Jul-2000  ad Pull-up revision 1.4: use my proper name in copyrights.

Approved by releng.
 1.3.2.2 17-Jan-2000  he Pull up revisions 1.1-1.3 (requested by ad):
Add driver for DPT SmartCache and SmartRAID III or IV SCSI
adapters.
 1.3.2.1 05-Jan-2000  he file dpt_eisa.c was added on branch netbsd-1-4 on 2000-01-17 18:35:17 +0000
 1.4.2.4 11-Dec-2002  thorpej Sync with HEAD.
 1.4.2.3 18-Oct-2002  nathanw Catch up to -current.
 1.4.2.2 14-Nov-2001  nathanw Catch up to -current.
 1.4.2.1 21-Jun-2001  nathanw Catch up to -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.6.10.1 12-Dec-2002  he Pull up revision 1.10 (requested by ad in ticket #1031):
Implement DPT EATA ioctl interface.
 1.10.6.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 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.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.11.8.1 29-Apr-2005  kent sync with -current
 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.1 16-May-2009  yamt sync with head
 1.20.22.3 03-Dec-2017  jdolecek update from HEAD
 1.20.22.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.20.22.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.20.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.20.12.1 30-Oct-2012  yamt sync with head
 1.21.2.1 18-May-2014  rmind sync with head
 1.22.6.1 05-Oct-2016  skrll Sync with HEAD
 1.23.32.1 03-Apr-2021  thorpej Sync with HEAD.
 1.50 13-May-2024  msaitoh s/of of/of/ in comment.
 1.49 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.48 24-Apr-2021  thorpej branches: 1.48.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.47 27-Jan-2021  thorpej branches: 1.47.2;
Add eisa_compatible_match() and eisa_compatible_lookup().
 1.46 11-Jul-2016  msaitoh branches: 1.46.32;
KNF. No functional change.
 1.45 06-Apr-2008  cegger branches: 1.45.48; 1.45.68;
use aprint_*_dev and device_xname
 1.44 26-Mar-2008  matt use device_t & cfdata_t
 1.43 26-Mar-2008  matt "split" softc/device_t. (since softc was a struct device, use a split softc
size of 0).
 1.42 19-Oct-2007  ad branches: 1.42.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.41 16-Nov-2006  christos branches: 1.41.8; 1.41.22; 1.41.24; 1.41.28;
__unused removal on arguments; approved by core.
 1.40 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.39 11-Dec-2005  christos branches: 1.39.20; 1.39.22;
merge ktrace-lwp.
 1.38 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.37 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.36 27-Feb-2005  perry branches: 1.36.4;
nuke trailing whitespace
 1.35 01-Sep-2004  drochner branches: 1.35.4; 1.35.6;
use the locator passing config_found/submatch, and limit use of the
"locators.h" header to the .c file
 1.34 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.33 23-Aug-2004  thorpej - Use ANSI function decls.
- Sprinkle some static around.
- Sprinkle some const around.
 1.32 22-Apr-2004  itojun sprintf -> snprintf
 1.31 01-Jan-2003  thorpej branches: 1.31.2;
Use aprint_normal() in cfprint routines.
 1.30 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.29 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.28 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.27 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.26 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.25 13-Nov-2001  lukem add RCSID
 1.24 18-Jan-2001  jdolecek branches: 1.24.2; 1.24.4;
constify
 1.23 01-Sep-2000  ad - Simplify eisa_devinfo().
- New KNF.
 1.22 30-Mar-2000  augustss Remove register declarations.
 1.21 08-Jun-1998  thorpej branches: 1.21.14;
Nuke __BROKEN_INDIRECT_CONFIG.
 1.20 12-Jan-1998  thorpej Slight change to previous.
 1.19 12-Jan-1998  thorpej Adjust for config changes.
 1.18 13-Sep-1997  enami Declare EISAVERBOSE by defopt in files.eisa. Include opt_eisaverbose.h
in eisa.c.
 1.17 06-Jun-1997  thorpej branches: 1.17.4;
Pull thorpej-bus-dma branch into mainline.
 1.16 05-Dec-1996  cgd branches: 1.16.8;
update these so they compile whether or not __BROKEN_INDIRECT_CONFIG
is defined.
 1.15 21-Oct-1996  thorpej New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.14 13-Oct-1996  christos backout kprintf changes
 1.13 10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.12 27-Aug-1996  cgd change cfprint_t type definition to take a const char *, rather than
a char *, because that's what was really intended, and because
if the print function modifies the string, various things could become
unhappy (so the string should _not_ be modified).
 1.11 09-Apr-1996  cgd make the EISA code look a bit more like the PCI code, in the way
the bus is configured, interrupts are handled, etc. machine-dependent
header (machine/eisa/eisa_machdep.h) defines eisa_chipset_tag_t and
eisa_intr_handle_t types, and the following functions:
eisa_attach_hook()
eisa_maxslots()
eisa_intr_map()
eisa_intr_string()
eisa_intr_establish()
eisa_intr_disestablish()
Don't define the interrupt establish/disestablish functions directly
in terms of the ISA functions any more (on some wacked out systems,
there can be a difference).
 1.10 06-Apr-1996  cgd kill some pasted spaces.
 1.9 30-Mar-1996  christos - remove unused variable
- add missing argument to printf statement
 1.8 17-Mar-1996  thorpej New device attachment scheme:

- split softc size and match/attach out from cfdriver into
a new struct cfattach.

- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.
 1.7 14-Mar-1996  cgd These devices don't actually need softc's that are supersets of 'struct
device.' No point in adding that complexity + space if they're not needed,
so axe them.
 1.6 08-Mar-1996  cgd remember the bus_chipset_tag_t given by our parent, and pass it on to
children. use I/O space access routines defined in <machine/bus.h>
when examining I/O space for slot ID information.
 1.5 02-Mar-1996  cgd change printing of unknown device names when not (BUS)VERBOSE slightly
 1.4 02-Mar-1996  cgd clean up some diagnostic printfs
 1.3 02-Mar-1996  cgd if not EISAVERBOSE, don't say that vendor/product is "unknown," just say
what it is.
 1.2 27-Feb-1996  cgd use config_found_sm(), rather than config_search+config_attach()+glue, to
attach subdevices.
 1.1 27-Feb-1996  cgd Better EISA autoconfiguration, per PR 1959.
 1.16.8.1 13-May-1997  thorpej Pass the EISA bus dma tag to children.
 1.17.4.1 16-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.21.14.2 11-Feb-2001  bouyer Sync with HEAD.
 1.21.14.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.24.4.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.24.4.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.24.2.3 03-Jan-2003  thorpej Sync with HEAD.
 1.24.2.2 18-Oct-2002  nathanw Catch up to -current.
 1.24.2.1 14-Nov-2001  nathanw Catch up to -current.
 1.31.2.7 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.31.2.6 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.31.2.5 21-Sep-2004  skrll Fix the sync with head I botched.
 1.31.2.4 18-Sep-2004  skrll Sync with HEAD.
 1.31.2.3 03-Sep-2004  skrll Sync with HEAD
 1.31.2.2 25-Aug-2004  skrll Sync with HEAD.
 1.31.2.1 03-Aug-2004  skrll Sync with HEAD
 1.35.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.35.4.1 29-Apr-2005  kent sync with -current
 1.36.4.3 27-Oct-2007  yamt sync with head.
 1.36.4.2 30-Dec-2006  yamt sync with head.
 1.36.4.1 21-Jun-2006  yamt sync with head.
 1.39.22.2 10-Dec-2006  yamt sync with head.
 1.39.22.1 22-Oct-2006  yamt sync with head
 1.39.20.1 18-Nov-2006  ad Sync with head.
 1.41.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.41.24.1 06-Nov-2007  matt sync with HEAD
 1.41.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.41.8.1 23-Oct-2007  ad Sync with head.
 1.42.16.2 02-Jun-2008  mjf Sync with HEAD.
 1.42.16.1 03-Apr-2008  mjf Sync with HEAD.
 1.45.68.1 05-Oct-2016  skrll Sync with HEAD
 1.45.48.1 03-Dec-2017  jdolecek update from HEAD
 1.46.32.1 03-Apr-2021  thorpej Sync with HEAD.
 1.47.2.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.47.2.1 22-Mar-2021  thorpej Mechanical conversion of config_found_sm_loc() -> config_found().
CFARG_IATTR usage needs to be audited.
 1.48.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 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 eisabusprint.c was added on branch ktrace-lwp on 2004-09-03 12:45:18 +0000
 1.2.2.2 30-Dec-2006  yamt sync with head.
 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.30 24-Jul-2021  thorpej Add some Compaq display controllers.
 1.29 21-Jan-2009  jnemeth branches: 1.29.84;
add a comment explaining how to regenerate eisadevs.h and eisadevs_data.h
 1.28 11-Dec-2005  christos branches: 1.28.74; 1.28.84;
merge ktrace-lwp.
 1.27 27-Feb-2005  perry nuke trailing whitespace
 1.26 22-Mar-2003  jdolecek branches: 1.26.2; 1.26.10; 1.26.12;
add TCM6790 entry
 1.25 16-Nov-2002  tsutsui Add SMC 9232DST Ether 10/100 Fast Ethernet EISA Adapter.
 1.24 14-Sep-2001  martin Add product IDs for 3com 3C509 TP cards.
From Christian Groessler in PR 13948.
 1.23 06-May-2001  ad branches: 1.23.2; 1.23.4;
Add some Mylex products.
 1.22 17-Apr-2001  ad Add Bt760 Ethernet.
 1.21 19-Oct-2000  ad branches: 1.21.2;
Add Compaq IEAS.
 1.20 01-Sep-2000  ad Et763 -> Bt763
 1.19 21-Aug-2000  ad - Add vendor and product codes for Compaq array controllers.
- Pull in entries from OpenBSD that we don't already have.
 1.18 12-Jul-2000  thorpej Add DEC DE422 Ethernet.
 1.17 29-Sep-1999  ad branches: 1.17.2; 1.17.12;
- Add vendors: DPT, NEC, AT&T
- Add products: DPT, NEC and AT&T EATA SCSI adapters
 1.16 19-Aug-1999  tron Recognize a 3Com 3c509 Combo configured in EISA mode. Fixes PR kern/8234
by Thomas Pfaff.
 1.15 01-Jul-1998  kleink branches: 1.15.8;
Add vendor IDs for Hewlett-Packard, Interphase and Mylex; add a product ID
for the Interphase Seahawk 4811 FDDI Controller.
 1.14 12-Jul-1997  perry add a couple of new device codes (from Jason Wright, pr 3853)
 1.13 17-Feb-1997  jonathan branches: 1.13.2;
Correct low-order product code digits for 3Com 3c597 family.
 1.12 16-Feb-1997  jonathan fix typo in 3Com 3c597 product description.
 1.11 16-Feb-1997  jonathan Add product entries entries for 3c592, 3c597 (Demon).
(Assume revision zero until proof to the contrary.)
 1.10 06-Sep-1996  thorpej Add the ETI NE3300 Ethernet card to the list of known EISA devices.
From Andrew Gillham <gillhaa@ghost.whirlpool.com>.
 1.9 25-Jul-1996  thorpej Add two vendor definitions:

FSI Fore Systems, Inc.
INT Intel

Add product definitions for the FORE Systems EISA ATM cards and the
Intel EtherExpress 32 Flash ethernet card.
 1.8 20-May-1996  thorpej Sure sign that Jason needs more coffee; fix ommision in my last correction.
 1.7 20-May-1996  thorpej Ooops, restore the UltraStor 24f entry I accidentally deleted in the last
commit.
 1.6 20-May-1996  thorpej Add Digital Equipment DEFEA cards.
 1.5 17-May-1996  mycroft Add entries for UltraStor 24f.
 1.4 25-Apr-1996  thorpej Break up the ep driver into isa, eisa, and pci front-ends and a
bus-independent core driver. Tested on all three bus types, including
an isa 3c509 masquerading as an eisa device (use ep* at eisa? slot ? in
your kernel config file to catch this one).
XXX Driver still needs to be converted to <machine/bus.h>
 1.3 17-Mar-1996  cgd clean up descriptions a bit
 1.2 17-Mar-1996  cgd add entries for the AMI 4801 SCSI controller, and add product numbers/names
for the BusLogic 74x[BC] SCSI controllers.
 1.1 26-Feb-1996  cgd list of all EISA devices that we know about (for smarter 'unconfigured'
printing if 'options EISAVERBOSE'), and files to turn the list into c source.
From my PR (1959).
 1.13.2.2 17-Feb-1997  jonathan Correct low-order product code digits for 3Com 3c597 family.
 1.13.2.1 17-Feb-1997  jonathan file eisadevs was added on branch is-newarp on 1997-02-17 00:06:18 +0000
 1.15.8.2 15-Jan-2000  he Pull up revision 1.17 (requested by ad):
Add vendor entries for AT&T, NEC and DPT. Add product entries
for various EATA SCSI adapters.
 1.15.8.1 22-Aug-1999  he Pullup eisadevs 1.16 and if_ep_eisa.c 1.20-1.21 to recognize a 3Com
3c509 Combo configured in EISA mode, fixing PR8234. From tron.
 1.17.12.2 25-Oct-2001  he Pull up revisions 1.19-1.24 (requested by ad):
Add Mylex DACC960, CAC-EISA, and I2O block/SCSI drivers.
 1.17.12.1 12-Jul-2000  thorpej Pull up rev. 1.18:
Add DEC DE422 Ethernet.
 1.17.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.17.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.21.2.3 11-Dec-2002  thorpej Sync with HEAD.
 1.21.2.2 21-Sep-2001  nathanw Catch up to -current.
 1.21.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.23.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.23.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.26.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.26.10.1 29-Apr-2005  kent sync with -current
 1.26.2.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.28.84.1 03-Mar-2009  skrll Sync with HEAD.
 1.28.74.1 04-May-2009  yamt sync with head.
 1.29.84.1 01-Aug-2021  thorpej Sync with HEAD.
 1.31 24-Jul-2021  thorpej Regen: Add some Compaq display controllers.
 1.30 11-Dec-2005  christos branches: 1.30.182;
merge ktrace-lwp.
 1.29 27-Feb-2005  perry regen
 1.28 22-Mar-2003  jdolecek branches: 1.28.2; 1.28.10; 1.28.12;
regen - add 3Com TCM6790 entry
 1.27 16-Nov-2002  tsutsui Regen: Add SMC 9232DST Ether 10/100 Fast Ethernet EISA Adapter.
 1.26 14-Sep-2001  martin Give the cards a bit more time for initialization (closes PR 13947)
and add product IDs for two 3C509 TP variants (closes PR 13948).
Both changes from Christian Groessler.
 1.25 06-May-2001  ad branches: 1.25.2; 1.25.4;
Regen.
 1.24 17-Apr-2001  ad Regen.
 1.23 19-Oct-2000  ad branches: 1.23.2;
Regen.
 1.22 01-Sep-2000  ad Regen.
 1.21 21-Aug-2000  ad Regen.
 1.20 12-Jul-2000  thorpej Regen.
 1.19 29-Sep-1999  ad branches: 1.19.2; 1.19.12;
Regen.
 1.18 19-Aug-1999  tron Regen.
 1.17 01-Jul-1998  kleink branches: 1.17.8;
Regen.
 1.16 09-Jan-1998  thorpej Regen.
 1.15 08-Jan-1998  thorpej Regen: back out RCS ID related changes.
 1.14 05-Jan-1998  perry regened with RCSIDs in place
 1.13 12-Jul-1997  perry regen
 1.12 17-Feb-1997  jonathan branches: 1.12.2;
Correct low-order product code digits for 3Com 3c597 family.
 1.11 16-Feb-1997  jonathan fix typo in 3Com 3c597 product description.
 1.10 16-Feb-1997  jonathan Add product entries entries for 3c592, 3c597 (Demon).
(Assume revision zero until proof to the contrary.)
 1.9 06-Sep-1996  thorpej Regen.
 1.8 25-Jul-1996  thorpej Regen.
 1.7 20-May-1996  thorpej Regen (again; sigh)
 1.6 20-May-1996  thorpej Regen.
 1.5 17-May-1996  mycroft Regen.
 1.4 25-Apr-1996  thorpej Break up the ep driver into isa, eisa, and pci front-ends and a
bus-independent core driver. Tested on all three bus types, including
an isa 3c509 masquerading as an eisa device (use ep* at eisa? slot ? in
your kernel config file to catch this one).
XXX Driver still needs to be converted to <machine/bus.h>
 1.3 17-Mar-1996  cgd update for changes eisadevs contents
 1.2 17-Mar-1996  cgd update for changes eisadevs contents
 1.1 26-Feb-1996  cgd machine-generated files
 1.12.2.2 17-Feb-1997  jonathan Correct low-order product code digits for 3Com 3c597 family.
 1.12.2.1 17-Feb-1997  jonathan file eisadevs.h was added on branch is-newarp on 1997-02-17 00:06:19 +0000
 1.17.8.3 15-Jan-2000  he Regenerate after adding entries for AT&T, NEC and DPT + EATA SCSI devs.
 1.17.8.2 24-Sep-1999  cgd regenerate _after_ eisadevs is checked in
 1.17.8.1 22-Aug-1999  he Pullup eisadevs 1.16 and if_ep_eisa.c 1.20-1.21 to recognize a 3Com
3c509 Combo configured in EISA mode, fixing PR8234. From tron.
 1.19.12.2 25-Oct-2001  he Pull up regenerated files (requested by ad):
Add Mylex DACC960, CAC-EISA, and I2O block/SCSI drivers.
 1.19.12.1 12-Jul-2000  thorpej Regen.
 1.19.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.19.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.23.2.3 11-Dec-2002  thorpej Sync with HEAD.
 1.23.2.2 21-Sep-2001  nathanw Catch up to -current.
 1.23.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.25.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.25.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.28.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.28.10.1 29-Apr-2005  kent sync with -current
 1.28.2.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.30.182.1 01-Aug-2021  thorpej Sync with HEAD.
 1.32 24-Jul-2021  thorpej Regen: Add some Compaq display controllers.
 1.31 11-Dec-2005  christos branches: 1.31.182;
merge ktrace-lwp.
 1.30 27-Feb-2005  perry regen
 1.29 22-Mar-2003  jdolecek branches: 1.29.2; 1.29.10; 1.29.12;
regen - add 3Com TCM6790 entry
 1.28 16-Nov-2002  tsutsui Regen: Add SMC 9232DST Ether 10/100 Fast Ethernet EISA Adapter.
 1.27 14-Sep-2001  martin Give the cards a bit more time for initialization (closes PR 13947)
and add product IDs for two 3C509 TP variants (closes PR 13948).
Both changes from Christian Groessler.
 1.26 06-May-2001  ad branches: 1.26.2; 1.26.4;
Regen.
 1.25 17-Apr-2001  ad Regen.
 1.24 18-Jan-2001  jdolecek branches: 1.24.2;
constify
 1.23 19-Oct-2000  ad Regen.
 1.22 01-Sep-2000  ad Regen.
 1.21 21-Aug-2000  ad Regen.
 1.20 12-Jul-2000  thorpej Regen.
 1.19 29-Sep-1999  ad branches: 1.19.2; 1.19.12;
Regen.
 1.18 19-Aug-1999  tron Regen.
 1.17 01-Jul-1998  kleink branches: 1.17.8;
Regen.
 1.16 09-Jan-1998  thorpej Regen.
 1.15 08-Jan-1998  thorpej Regen: back out RCS ID related changes.
 1.14 05-Jan-1998  perry regened with RCSIDs in place
 1.13 12-Jul-1997  perry regen
 1.12 17-Feb-1997  jonathan branches: 1.12.2;
Correct low-order product code digits for 3Com 3c597 family.
 1.11 16-Feb-1997  jonathan fix typo in 3Com 3c597 product description.
 1.10 16-Feb-1997  jonathan Add product entries entries for 3c592, 3c597 (Demon).
(Assume revision zero until proof to the contrary.)
 1.9 06-Sep-1996  thorpej Regen.
 1.8 25-Jul-1996  thorpej Regen.
 1.7 20-May-1996  thorpej Regen (again; sigh)
 1.6 20-May-1996  thorpej Regen.
 1.5 17-May-1996  mycroft Regen.
 1.4 25-Apr-1996  thorpej Break up the ep driver into isa, eisa, and pci front-ends and a
bus-independent core driver. Tested on all three bus types, including
an isa 3c509 masquerading as an eisa device (use ep* at eisa? slot ? in
your kernel config file to catch this one).
XXX Driver still needs to be converted to <machine/bus.h>
 1.3 17-Mar-1996  cgd update for changes eisadevs contents
 1.2 17-Mar-1996  cgd update for changes eisadevs contents
 1.1 26-Feb-1996  cgd machine-generated files
 1.12.2.2 17-Feb-1997  jonathan Correct low-order product code digits for 3Com 3c597 family.
 1.12.2.1 17-Feb-1997  jonathan file eisadevs_data.h was added on branch is-newarp on 1997-02-17 00:06:19 +0000
 1.17.8.3 15-Jan-2000  he Regenerate after adding entries for AT&T, NEC and DPT + EATA SCSI devs.
 1.17.8.2 24-Sep-1999  cgd regenerate _after_ eisadevs is checked in
 1.17.8.1 22-Aug-1999  he Pullup eisadevs 1.16 and if_ep_eisa.c 1.20-1.21 to recognize a 3Com
3c509 Combo configured in EISA mode, fixing PR8234. From tron.
 1.19.12.2 25-Oct-2001  he Pull up regenerated files (requested by ad):
Add Mylex DACC960, CAC-EISA, and I2O block/SCSI drivers.
 1.19.12.1 12-Jul-2000  thorpej Regen.
 1.19.2.3 21-Apr-2001  bouyer Sync with HEAD
 1.19.2.2 11-Feb-2001  bouyer Sync with HEAD.
 1.19.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.24.2.3 11-Dec-2002  thorpej Sync with HEAD.
 1.24.2.2 21-Sep-2001  nathanw Catch up to -current.
 1.24.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.26.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.26.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.29.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.29.10.1 29-Apr-2005  kent sync with -current
 1.29.2.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.31.182.1 01-Aug-2021  thorpej Sync with HEAD.
 1.8 29-Mar-2014  christos make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.7 11-Dec-2005  christos branches: 1.7.110; 1.7.120; 1.7.126;
merge ktrace-lwp.
 1.6 17-May-2005  christos Yes, it was a cool trick >20 years ago to use "0123456789abcdef"[a] to
implement, xtoa(), but I think defining the samestring 50 times is a bit
too much. Defined HEXDIGITS and hexdigits in subr_prf.c and use it...
 1.5 11-Aug-2000  thorpej branches: 1.5.24;
Oops, back out previous. It wasn't intended.
 1.4 11-Aug-2000  thorpej Add functions to read EISA configuration data for MEM, IRQ, DMA, and IO.

XXX Just error stubs on the i386 right now -- someone needs to write
XXX EISA BIOS code for i386.
 1.3 09-Apr-1996  cgd branches: 1.3.30; 1.3.40;
make the EISA code look a bit more like the PCI code, in the way
the bus is configured, interrupts are handled, etc. machine-dependent
header (machine/eisa/eisa_machdep.h) defines eisa_chipset_tag_t and
eisa_intr_handle_t types, and the following functions:
eisa_attach_hook()
eisa_maxslots()
eisa_intr_map()
eisa_intr_string()
eisa_intr_establish()
eisa_intr_disestablish()
Don't define the interrupt establish/disestablish functions directly
in terms of the ISA functions any more (on some wacked out systems,
there can be a difference).
 1.2 27-Feb-1996  cgd Better EISA autoconfiguration, per PR 1959.
 1.1 17-Apr-1995  cgd clean up several ISA device interfaces: autoconfiguration, header
inclusion, and interrupt configuration. more work still needs to be done,
but it's getting better...
 1.3.40.1 11-Aug-2000  thorpej Pullup from trunk:
Add EISA configuration readining infrastructure.
 1.3.30.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.24.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.7.126.1 18-May-2014  rmind sync with head
 1.7.120.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.110.1 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.27 20-Oct-2025  thorpej Fix a paste-o that was previously fixed in one source tree (but, critcally,
not the important one).
 1.26 19-Oct-2025  thorpej Encapsulate attaching EISA / ISA busses into eisabus_attach() and
isabus_attach(), respectively. Consistently uses the correct interface
attribute.
 1.25 27-Jan-2021  thorpej Add eisa_compatible_match() and eisa_compatible_lookup().
 1.24 28-Apr-2008  martin branches: 1.24.102;
Remove clause 3 and 4 from TNF licenses
 1.23 19-Oct-2007  ad branches: 1.23.16; 1.23.18; 1.23.20;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.22 11-Dec-2005  christos branches: 1.22.30; 1.22.44; 1.22.46; 1.22.50;
merge ktrace-lwp.
 1.21 27-Feb-2005  perry branches: 1.21.4;
nuke trailing whitespace
 1.20 01-Sep-2004  drochner branches: 1.20.4; 1.20.6;
use the locator passing config_found/submatch, and limit use of the
"locators.h" header to the .c file
 1.19 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.18 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.17 11-Aug-2000  thorpej branches: 1.17.24;
Add missing copyright noticed (it ended up in eisareg.h by mistake).
 1.16 11-Aug-2000  thorpej Add functions to read EISA configuration data for MEM, IRQ, DMA, and IO.

XXX Just error stubs on the i386 right now -- someone needs to write
XXX EISA BIOS code for i386.
 1.15 10-Aug-2000  thorpej Declare the ECU data in an MI location, so that drivers can
use it.
 1.14 12-Feb-2000  thorpej branches: 1.14.4;
Const poison.
 1.13 19-Mar-1999  cgd branches: 1.13.8;
pull eisa_machdep.h in from machine/
 1.12 17-Jul-1997  jtk use locator defines in "locators.h" to index cf_loc[]

still to be done and/or decided not to be done: replace all
EISA_UNKNOWN_SLOT uses in eisa code with the native names from
locators.h
 1.11 06-Jun-1997  thorpej Pull thorpej-bus-dma branch into mainline.
 1.10 21-Oct-1996  thorpej branches: 1.10.8;
New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.9 12-Apr-1996  cgd add support for the alpha
 1.8 09-Apr-1996  cgd make the EISA code look a bit more like the PCI code, in the way
the bus is configured, interrupts are handled, etc. machine-dependent
header (machine/eisa/eisa_machdep.h) defines eisa_chipset_tag_t and
eisa_intr_handle_t types, and the following functions:
eisa_attach_hook()
eisa_maxslots()
eisa_intr_map()
eisa_intr_string()
eisa_intr_establish()
eisa_intr_disestablish()
Don't define the interrupt establish/disestablish functions directly
in terms of the ISA functions any more (on some wacked out systems,
there can be a difference).
 1.7 22-Mar-1996  cgd make this a little bit closer to the pcivar.h header; no reason to
be gratuitously different in some places. (just cosmetic changes.)
 1.6 22-Mar-1996  cgd don't export eisa_cd. Drivers shouldn't need it, and, indeed, if they
do, they're probably doing thing the Wrong Way.
 1.5 17-Mar-1996  thorpej New device attachment scheme:

- split softc size and match/attach out from cfdriver into
a new struct cfattach.

- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.
 1.4 08-Mar-1996  cgd pass a bus_chipset_tag_t (defined in <machine/bus.h>) to the bus when
attaching, and to the devices when attaching them. #include <machine/bus.h>
to make this backward compatible with old #include requirements.
Also, clean up idempotency so that isa/eisa/pci "var.h" headers are
consistent (make them all idempotent).
 1.3 27-Feb-1996  cgd Better EISA autoconfiguration, per PR 1959.
 1.2 24-Dec-1995  mycroft The IST_* and IPL_* constants are not bus-specific; don't treat them as such.
Change splimp -> splnet in Ethernet, ARCnet, and FDDI drivers.
 1.1 17-Apr-1995  cgd clean up several ISA device interfaces: autoconfiguration, header
inclusion, and interrupt configuration. more work still needs to be done,
but it's getting better...
 1.10.8.1 13-May-1997  thorpej Pass the EISA bus dma tag to children.
 1.13.8.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.14.4.1 11-Aug-2000  thorpej Pullup from trunk:
Add EISA configuration readining infrastructure.
 1.17.24.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.17.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.17.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.17.24.1 03-Sep-2004  skrll Sync with HEAD
 1.20.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.20.4.1 29-Apr-2005  kent sync with -current
 1.21.4.1 27-Oct-2007  yamt sync with head.
 1.22.50.1 25-Oct-2007  bouyer Sync with HEAD.
 1.22.46.1 06-Nov-2007  matt sync with HEAD
 1.22.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.22.30.1 23-Oct-2007  ad Sync with head.
 1.23.20.1 16-May-2008  yamt sync with head.
 1.23.18.1 18-May-2008  yamt sync with head.
 1.23.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.24.102.1 03-Apr-2021  thorpej Sync with HEAD.
 1.28 20-Jan-2020  thorpej Remove FDDI support.
 1.27 11-Dec-2005  christos branches: 1.27.164; 1.27.172;
merge ktrace-lwp.
 1.26 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.25 28-Nov-2001  lukem branches: 1.25.16;
- 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.24 06-May-2001  ad branches: 1.24.2;
Add an (untested) EISA front-end for the `mlx' driver.
 1.23 24-Feb-2001  lukem branches: 1.23.2;
whitespace police
 1.22 01-Sep-2000  ad Add an EISA bus front-end for the `cac' driver.
 1.21 11-Aug-2000  thorpej Add support for the DEC DE422 Ethernet, which is a DEPCA
attached to the EISA bus. This board is commonly found
on Alpha Jensen systems.
 1.20 15-Mar-2000  fvdl branches: 1.20.4;
Update EISA frontend for new ahc driver (done by Noriyuki Soda).
 1.19 29-Sep-1999  ad branches: 1.19.2;
EISA frontend for DPT driver (as yet untested).
 1.18 14-Sep-1999  thorpej EISA bus front-end for the New Tulip Driver, for the DEC DE425 EISA
board. The DE425 is basically a DECchip 21040 on an EISA board, plus
a Cool Address Decoder Hack which maps the PCI configuration
space registers into EISA I/O space, interleaved with the Tulip CSRs,
which are spaced further apart than on the PCI versoin.

This is currently *untested* until the DE425 boards that folks have
promised me arrive. But, it should work, since the 21040 works.
 1.17 16-Feb-1998  thorpej branches: 1.17.8;
Remove "class" declarations, and add "devclass" declarations where
appropriate. Fix several inconsistencies between device class and
attributes. Mostly from Chris Demetriou.
 1.16 12-Jan-1998  thorpej Add device classes.
 1.15 13-Sep-1997  enami Declare EISAVERBOSE by defopt in files.eisa. Include opt_eisaverbose.h
in eisa.c.
 1.14 20-Jul-1997  pk branches: 1.14.2;
config.new => config
 1.13 15-Mar-1997  is New ARP system, supports IPv4 over any hardware link.

Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.

For the detailed change history, look at the commit log entries for
the is-newarp branch.
 1.12 01-Sep-1996  mycroft branches: 1.12.6;
Update.
 1.11 05-Aug-1996  soda disable AHA-284x product ID, because it is now handled by ahc_isa.c.
 1.10 20-May-1996  thorpej branches: 1.10.4;
Add the DEFEA FDDI controller.
 1.9 16-May-1996  mycroft New version, with changes from Justin Gibbs and Noriyuki Soda.
 1.8 25-Apr-1996  thorpej Break up the ep driver into isa, eisa, and pci front-ends and a
bus-independent core driver. Tested on all three bus types, including
an isa 3c509 masquerading as an eisa device (use ep* at eisa? slot ? in
your kernel config file to catch this one).
XXX Driver still needs to be converted to <machine/bus.h>
 1.7 17-Mar-1996  thorpej New device attachment scheme:

- split softc size and match/attach out from cfdriver into
a new struct cfattach.

- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.
 1.6 04-Mar-1996  cgd the i386 port no longer attaches isa, eisa, and pci at root.
 1.5 27-Feb-1996  cgd add a comment (XXX) about eisa's attachment.
 1.4 27-Feb-1996  cgd eisabus attribute moved to conf/files
 1.3 27-Feb-1996  cgd Better EISA autoconfiguration, per PR 1959.
 1.2 17-Apr-1995  cgd try to actually (gasp!) describe the drivers.
 1.1 17-Apr-1995  cgd MI EISA config.new file lists
 1.10.4.2 11-Dec-1996  mycroft From trunk:
General cleanup; fixes several bugs.
 1.10.4.1 25-Aug-1996  thorpej Fix support for the Adaptec 284x VLbus SCSI cards, massaged for the
NetBSD-1.2 release branch by Noriyuki Soda <soda@sra.co.jp>.
(`sys/arch/i386/isa/ahc_isa.c' tagged separately.)
 1.12.6.1 09-Mar-1997  is netinet/if_ether.h -> netinet/if_inarp.h
 1.14.2.1 16-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.17.8.1 17-Jan-2000  he Pull up revision 1.19 (requested by ad):
Add driver for DPT SmartCache and SmartRAID III or IV SCSI
adapters.
 1.19.2.2 12-Mar-2001  bouyer Sync with HEAD.
 1.19.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.20.4.2 25-Oct-2001  he Pull up revision 1.22 (requested by ad):
Add Mylex DACC960, CAC-EISA, and I2O block/SCSI drivers.
 1.20.4.1 11-Aug-2000  thorpej Pullup from trunk:
Add support for the DEC DE422 Ethernet, which is a DEPCA
attached to the EISA bus. This board is commonly found
on Alpha Jensen systems.
 1.23.2.2 08-Jan-2002  nathanw Catch up to -current.
 1.23.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.24.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.25.16.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.25.16.2 18-Sep-2004  skrll Sync with HEAD.
 1.25.16.1 03-Sep-2004  skrll Sync with HEAD
 1.27.172.1 25-Jan-2020  ad Sync with head.
 1.27.164.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.44 27-Jan-2021  thorpej Use eisa_compatible_{match,lookup}().
 1.43 29-Mar-2014  christos branches: 1.43.44;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.42 18-Jan-2010  pooka branches: 1.42.12; 1.42.22; 1.42.26;
nuke unused bpf inclusions
 1.41 04-Dec-2009  njoly Cleanup interrupt establish error messages. Do not mix
aprint_error/aprint_normal/printf calls for a single line.
 1.40 31-Jan-2009  martin Add id for 5090 variant - reported in PR kern/40524 by Andrew Daugherity.
 1.39 27-Aug-2008  christos branches: 1.39.2; 1.39.4;
device_t changes, pmf, minor knf.
 1.38 28-Apr-2008  martin branches: 1.38.2; 1.38.6;
Remove clause 3 and 4 from TNF licenses
 1.37 06-Apr-2008  cegger branches: 1.37.2; 1.37.4;
use aprint_*_dev and device_xname
 1.36 19-Oct-2007  ad branches: 1.36.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.35 16-Nov-2006  christos branches: 1.35.2; 1.35.8; 1.35.22; 1.35.24; 1.35.28;
__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 07-Sep-2006  dogcow branches: 1.33.2; 1.33.4;
remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
 1.32 29-Mar-2006  thorpej 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 27-Feb-2005  perry branches: 1.30.4;
nuke trailing whitespace
 1.29 23-Aug-2004  thorpej branches: 1.29.4; 1.29.6;
- Use ANSI function decls.
- Sprinkle some static around.
- Sprinkle some const around.
 1.28 08-Feb-2003  jdolecek branches: 1.28.2;
Don't do EISA reset on attach. This made the card reset to use default irq, rather
than to use the one configured by EISA, and perhaps had some other side
effects - according to Pavel Cahyna, NOT doing the reset improved receive
performance significantly.
This also resolves old thread on current-users regarding this EISA card.
 1.27 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.26 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.25 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.24 13-Nov-2001  lukem add RCSID
 1.23 14-Sep-2001  martin Give the cards a bit more time for initialization (closes PR 13947)
and add product IDs for two 3C509 TP variants (closes PR 13948).
Both changes from Christian Groessler.
 1.22 07-May-2000  martin branches: 1.22.6; 1.22.8; 1.22.10;
Minimized io ports reserved by this driver to the ports actually needed.
Fixes PR kern/5279 for this driver.
 1.21 19-Aug-1999  tron branches: 1.21.2;
Recognize a 3Com 3c509 Combo configured in EISA mode. Fixes PR kern/8234
by Thomas Pfaff.
 1.20 13-Apr-1999  jonathan Fix duplicate "3com" from attach, as noted in PR#7607.
 1.19 04-Nov-1998  fvdl branches: 1.19.6; 1.19.8;
Add the 'ex' driver, a DMA driver for 3Com 90x and 90xB cards. Rename
constants from EP_ to ELINK_ since they're now used in the ex driver as well.
 1.18 12-Aug-1998  thorpej Completely rewrite media selection. Add support for the MII/PHY on
the 3Com 3c905-TX and 3c905-T4. Fix handling of the MII on the
3c595-MII and 3c597-MII (can't talk to the PHYs on these cards; just
use "manual" for the external MII port).

Fixes kern/4782 (Chris Demetriou).
 1.17 05-Jul-1998  jonathan defopt NS, NSIP.
 1.16 05-Jul-1998  jonathan defopt INET, NETATALK.
 1.15 08-Jun-1998  thorpej Nuke __BROKEN_INDIRECT_CONFIG.
 1.14 14-Oct-1997  thorpej Pull down from marc-pcmcia branch:

Minor tweaks to deal with PCMCIA differences, and support for power
management.
 1.13 18-Apr-1997  cgd branches: 1.13.4;
compile when __BROKEN_INDIRECT_CONFIG isn't defined.
 1.12 30-Mar-1997  jonathan Add ifmedia hooks: include <ifmedia.h> and add sc_media to softc.
 1.11 15-Mar-1997  is New ARP system, supports IPv4 over any hardware link.

Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.

For the detailed change history, look at the commit log entries for
the is-newarp branch.
 1.10 18-Feb-1997  jonathan branches: 1.10.2;
Move if_ep media-sense code from front ends to inside back end,
to prepare for if_media, and to support EISA 3c59x cards:

* change epconfig() to take a short that encodes the chipset
type (3c509, or Demon/Vortex/Boomerang).
* add distinct 3c509 and Demon/Vortex/Boomerang media-sense
functions to back end.
* Add EISA match/attach support for the 3c592 and 3c597
(Demon) cards as well as the 3c509-comatibl EISA 3c509/3c579.

* Assume that ISA and ISA PnP cards are 3c509-style, until
proof to the contrary (e.g. large packet support).

Tested on 3c595, 3c590, and 3c509b. Not tested on 3c515 or Demon.
 1.9 21-Oct-1996  thorpej New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.8 13-Oct-1996  christos backout kprintf changes
 1.7 10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.6 14-May-1996  thorpej Be more careful with types.
 1.5 12-May-1996  mycroft Use intr.h.
 1.4 10-May-1996  thorpej Update Herb's e-mail address; beer.org feels a lot more friendly.
 1.3 03-May-1996  christos - include <sys/systm.h>
- remove unused variables
 1.2 30-Apr-1996  thorpej Convert the Etherlink III (ep) driver to use <machine/bus.h>.
 1.1 25-Apr-1996  thorpej Break up the ep driver into isa, eisa, and pci front-ends and a
bus-independent core driver. Tested on all three bus types, including
an isa 3c509 masquerading as an eisa device (use ep* at eisa? slot ? in
your kernel config file to catch this one).
XXX Driver still needs to be converted to <machine/bus.h>
 1.10.2.5 10-Mar-1997  is Fix glitches in the =>if_inarp.h change.
 1.10.2.4 09-Mar-1997  is netinet/if_ether.h -> netinet/if_inarp.h
 1.10.2.3 27-Feb-1997  is Removed #include <route.h> and #include <netisr.h>. They're not needed, and
the latter will go away soon.
 1.10.2.2 20-Feb-1997  is Change the EISA elink3 and pdq devices to the new world order.
 1.10.2.1 18-Feb-1997  is file if_ep_eisa.c was added on branch is-newarp on 1997-02-20 16:45:31 +0000
 1.13.4.2 27-Sep-1997  marc initialize enable/disable hooks to NULL so the bus independent code
dtrt.
 1.13.4.1 30-Jul-1997  marc added pcmcia infrastructure and a few devices
 1.19.8.1 21-Jun-1999  thorpej Sync w/ -current.
 1.19.6.2 11-May-2000  he Pull up revision 1.22 (requested by martin):
Only allocate the I/O space required. This permits an ISDN4BSD kernel
with e.g. an AVM Fritz! card to work with an ep0 card in EISA slot 1.
Fixes PR#5279.
 1.19.6.1 22-Aug-1999  he Pullup eisadevs 1.16 and if_ep_eisa.c 1.20-1.21 to recognize a 3Com
3c509 Combo configured in EISA mode, fixing PR8234. From tron.
 1.21.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.22.10.1 01-Oct-2001  fvdl Catch up with -current.
 1.22.8.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.22.8.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.22.6.3 18-Oct-2002  nathanw Catch up to -current.
 1.22.6.2 14-Nov-2001  nathanw Catch up to -current.
 1.22.6.1 21-Sep-2001  nathanw Catch up to -current.
 1.28.2.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.28.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.28.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.28.2.1 25-Aug-2004  skrll Sync with HEAD.
 1.29.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.29.4.1 29-Apr-2005  kent sync with -current
 1.30.4.3 27-Oct-2007  yamt sync with head.
 1.30.4.2 30-Dec-2006  yamt sync with head.
 1.30.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.2 14-Sep-2006  yamt 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.33.4.2 10-Dec-2006  yamt sync with head.
 1.33.4.1 22-Oct-2006  yamt sync with head
 1.33.2.1 18-Nov-2006  ad Sync with head.
 1.35.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.35.24.1 06-Nov-2007  matt sync with HEAD
 1.35.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.35.8.1 23-Oct-2007  ad Sync with head.
 1.35.2.1 31-Jan-2009  bouyer Pull up following revision(s) (requested by martin in ticket #1271):
sys/dev/eisa/if_ep_eisa.c: revision 1.40
Add id for 5090 variant - reported in PR kern/40524 by Andrew Daugherity.
 1.36.16.2 28-Sep-2008  mjf Sync with HEAD.
 1.36.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.37.4.3 11-Mar-2010  yamt sync with head
 1.37.4.2 04-May-2009  yamt sync with head.
 1.37.4.1 16-May-2008  yamt sync with head.
 1.37.2.1 18-May-2008  yamt sync with head.
 1.38.6.1 19-Oct-2008  haad Sync with HEAD.
 1.38.2.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.39.4.1 02-Feb-2009  snj Pull up following revision(s) (requested by martin in ticket #387):
sys/dev/eisa/if_ep_eisa.c: revision 1.40
Add id for 5090 variant - reported in PR kern/40524 by Andrew Daugherity.
 1.39.2.1 03-Mar-2009  skrll Sync with HEAD.
 1.42.26.1 18-May-2014  rmind sync with head
 1.42.22.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.42.12.1 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.43.44.1 03-Apr-2021  thorpej Sync with HEAD.
 1.49 20-Jan-2020  thorpej Remove FDDI support.
 1.48 30-Aug-2019  riastradh branches: 1.48.2;
Delete dead null test after malloc(M_WAITOK).

Reported as a possible null pointer dereference by Dr Silvio Cesare
of InfoSect, but the branch is dead code anyway.
 1.47 14-Jul-2016  msaitoh branches: 1.47.18;
- Use aprint*() more in xxx_attach().
- Add missing aprint_naive("\n").
- Remove extra spaces and tabs.
- KNF.
 1.46 29-Mar-2014  christos branches: 1.46.6;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.45 27-Oct-2012  chs branches: 1.45.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.44 22-Mar-2010  dyoung branches: 1.44.8; 1.44.18;
Set/test sc_csr_memmapped instead of comparing bus_space_tag_t's.
 1.43 18-Jan-2010  pooka branches: 1.43.2; 1.43.4;
nuke unused bpf inclusions
 1.42 04-Dec-2009  njoly Cleanup interrupt establish error messages. Do not mix
aprint_error/aprint_normal/printf calls for a single line.
 1.41 12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.40 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.39 18-Apr-2009  tsutsui Remove extra whitespace added by a stupid tool.
XXX: more in src/sys/arch
 1.38 18-Mar-2009  cegger bcopy -> memcpy
 1.37 12-Jun-2008  cegger branches: 1.37.4; 1.37.10;
use device_lookup_private to get softc
 1.36 06-Apr-2008  cegger branches: 1.36.2; 1.36.4; 1.36.6; 1.36.8;
use aprint_*_dev and device_xname
 1.35 19-Oct-2007  ad branches: 1.35.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.34 04-Mar-2007  christos branches: 1.34.2; 1.34.14; 1.34.16; 1.34.20;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.33 16-Nov-2006  christos branches: 1.33.4;
__unused removal on arguments; approved by core.
 1.32 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.31 29-Mar-2006  thorpej branches: 1.31.8; 1.31.10;
Use device_private().
 1.30 11-Dec-2005  christos branches: 1.30.4; 1.30.6; 1.30.8; 1.30.10; 1.30.12;
merge ktrace-lwp.
 1.29 30-May-2005  christos branches: 1.29.2;
avoid variable shadowing.
 1.28 02-Oct-2002  thorpej branches: 1.28.6;
Add trailing ; to CFATTACH_DECL.
 1.27 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.26 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.25 14-Jan-2002  tsutsui Call malloc(9) with M_ZERO flag instead of bzero() after malloc().

XXX It seems these attachments need to be rewritten for modern config(9)..
 1.24 13-Nov-2001  lukem add RCSID
 1.23 13-Jun-2001  wiz branches: 1.23.2;
withough -> without
 1.22 28-Jun-2000  mrg branches: 1.22.2;
remove include of <vm/vm.h>
 1.21 26-Jun-2000  mrg remove/move more mach vm header files:

<vm/pglist.h> -> <uvm/uvm_pglist.h>
<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
<vm/vm_object.h> -> nothing
<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
 1.20 30-Mar-2000  augustss Remove register declarations.
 1.19 05-Jul-1998  jonathan branches: 1.19.6; 1.19.14;
defopt INET, NETATALK.
 1.18 08-Jun-1998  thorpej Nuke __BROKEN_INDIRECT_CONFIG.
 1.17 21-May-1998  matt Add bus_dma(9) support for the DEFxA FDDI driver
 1.16 12-Jan-1998  thorpej Slight change to previous.
 1.15 12-Jan-1998  thorpej Adjust for config changes.
 1.14 24-Mar-1997  thorpej Resolve conflicts from merge.
 1.13 15-Mar-1997  is New ARP system, supports IPv4 over any hardware link.

Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.

For the detailed change history, look at the commit log entries for
the is-newarp branch.
 1.12 05-Mar-1997  mikel don't forget the bus_space tag; from Azuma Okamoto in PR kern/3290.
 1.11 13-Feb-1997  thorpej branches: 1.11.2;
Pass the bus PA (i/o address) to pdq_eisa_init() to avoid doing
arithmetic on bus space handles (which is strictly forbitten.
Pointed out by Matthias Drochner <drochner@zelz28.zel.kfa-juelich.de>
in PR #3216.
 1.10 05-Dec-1996  cgd update these so they compile whether or not __BROKEN_INDIRECT_CONFIG
is defined.
 1.9 21-Oct-1996  thorpej New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.8 13-Oct-1996  christos backout kprintf changes
 1.7 10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.6 09-Jun-1996  cgd add missing newline in printf. pointed out by Matt Thomas
 1.5 08-Jun-1996  cgd print the note about what iomem is being used in a more appropriate place.
 1.4 07-Jun-1996  cgd clean up import of new revision (June 7, 1996) from Matt Thomas.
 1.3 20-May-1996  thorpej branches: 1.3.2;
Remove some extra printfs, now that Matt has lessened my confusion.
 1.2 20-May-1996  thorpej Use eisadevs data to display model string.
 1.1 20-May-1996  thorpej branches: 1.1.1;
Initial revision
 1.1.1.3 24-Mar-1997  thorpej Update from Matt Thomas <matt@3am-software.com>. Notable highlight:
the DEFTA (TurboChannel) card now works on the Alpha!
 1.1.1.2 07-Jun-1996  cgd New rev. from Matt Thomas (June 7, 1996), which prints out ISA hole I/O
memory range used by the card.
 1.1.1.1 20-May-1996  thorpej Update to the Digital Equipment PDQ-based FDDI controllers, from
Matt Thomas. Now includes support for EISA (DEFEA) and first-cut of
support for TurboChannel (DEFTA) cards.
 1.3.2.2 09-Jun-1996  cgd pull up from trunk:
>add missing newline in printf. pointed out by Matt Thomas
 1.3.2.1 08-Jun-1996  cgd pull up from trunk:
>New rev. from Matt Thomas (June 7, 1996), which prints out ISA hole I/O
>memory range used by the card.
and:
>print the note about what iomem is being used in a more appropriate place.
 1.11.2.6 10-Mar-1997  is Fix glitches in the =>if_inarp.h change.
 1.11.2.5 09-Mar-1997  is netinet/if_ether.h -> netinet/if_inarp.h
 1.11.2.4 06-Mar-1997  is Merge in bug fix from trunk.
 1.11.2.3 27-Feb-1997  is Removed #include <route.h> and #include <netisr.h>. They're not needed, and
the latter will go away soon.
 1.11.2.2 20-Feb-1997  is Change the EISA elink3 and pdq devices to the new world order.
 1.11.2.1 13-Feb-1997  is file if_fea.c was added on branch is-newarp on 1997-02-20 16:45:32 +0000
 1.19.14.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.19.6.1 11-Dec-1998  kenh The beginnings of interface detach support. Still some bugs, but mostly
works for me.

This work was originally by Bill Studenmund, and cleaned up by me.
 1.22.2.4 18-Oct-2002  nathanw Catch up to -current.
 1.22.2.3 28-Feb-2002  nathanw Catch up to -current.
 1.22.2.2 14-Nov-2001  nathanw Catch up to -current.
 1.22.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.23.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.23.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.23.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.28.6.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.29.2.3 27-Oct-2007  yamt sync with head.
 1.29.2.2 03-Sep-2007  yamt sync with head.
 1.29.2.1 21-Jun-2006  yamt sync with head.
 1.30.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.30.10.1 19-Apr-2006  elad sync with head.
 1.30.8.1 01-Apr-2006  yamt sync with head.
 1.30.6.1 22-Apr-2006  simonb Sync with head.
 1.30.4.1 09-Sep-2006  rpaulo sync with head
 1.31.10.2 10-Dec-2006  yamt sync with head.
 1.31.10.1 22-Oct-2006  yamt sync with head
 1.31.8.1 18-Nov-2006  ad Sync with head.
 1.33.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.34.20.1 25-Oct-2007  bouyer Sync with HEAD.
 1.34.16.1 06-Nov-2007  matt sync with HEAD
 1.34.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.34.2.1 23-Oct-2007  ad Sync with head.
 1.35.16.2 29-Jun-2008  mjf Sync with HEAD.
 1.35.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.36.8.1 18-Jun-2008  simonb Sync with head.
 1.36.6.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.36.4.4 11-Aug-2010  yamt sync with head.
 1.36.4.3 11-Mar-2010  yamt sync with head
 1.36.4.2 16-May-2009  yamt sync with head
 1.36.4.1 04-May-2009  yamt sync with head.
 1.36.2.1 17-Jun-2008  yamt sync with head.
 1.37.10.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.37.4.1 28-Apr-2009  skrll Sync with HEAD.
 1.43.4.1 30-May-2010  rmind sync with head
 1.43.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.44.18.3 03-Dec-2017  jdolecek update from HEAD
 1.44.18.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.44.18.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.44.8.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.44.8.1 30-Oct-2012  yamt sync with head
 1.45.2.1 18-May-2014  rmind sync with head
 1.46.6.1 05-Oct-2016  skrll Sync with HEAD
 1.47.18.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.48.2.1 25-Jan-2020  ad Sync with head.
 1.30 20-Dec-2023  thorpej malloc(9) -> kmem(9), and plug a memory leak on detach while I'm here.
 1.29 24-Jul-2021  thorpej Report which trigger type we're using for our interrupt.
 1.28 27-Jan-2021  thorpej branches: 1.28.4;
Use eisa_compatible_{match,lookup}().
 1.27 14-Jul-2016  msaitoh branches: 1.27.32;
- Use aprint*() instead of printf() in xxx_attach().
- Add missing aprint_naive("\n");
- KNF
 1.26 17-Oct-2014  snj branches: 1.26.2;
Fix typo in comment.
 1.25 29-Mar-2014  christos make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.24 18-Jan-2010  pooka branches: 1.24.12; 1.24.22; 1.24.26;
nuke unused bpf inclusions
 1.23 04-Dec-2009  njoly Cleanup interrupt establish error messages. Do not mix
aprint_error/aprint_normal/printf calls for a single line.
 1.22 17-Apr-2009  cegger device_t/softc split. Tested with tlp at pci
 1.21 28-Apr-2008  martin branches: 1.21.8; 1.21.14;
Remove clause 3 and 4 from TNF licenses
 1.20 06-Apr-2008  cegger branches: 1.20.2; 1.20.4;
use aprint_*_dev and device_xname
 1.19 19-Oct-2007  ad branches: 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 07-Sep-2006  dogcow branches: 1.16.2; 1.16.4;
remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
 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 27-Feb-2005  perry branches: 1.13.4;
nuke trailing whitespace
 1.12 23-Aug-2004  thorpej branches: 1.12.4; 1.12.6;
- Use ANSI function decls.
- Sprinkle some static around.
- Sprinkle some const around.
 1.11 02-Oct-2002  thorpej branches: 1.11.6;
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 12-Jan-2002  tsutsui Call malloc(9) with M_ZERO flag instead of memset() after malloc().
 1.7 13-Nov-2001  lukem add RCSID
 1.6 14-Aug-2000  thorpej branches: 1.6.2; 1.6.4;
Account for changes to how the SROM is read made some time
ago to the PCI and CardBus front-ends. Sigh, DE425, the
bastard child, no one pays enough attention...
 1.5 15-Mar-2000  thorpej branches: 1.5.4;
Add power management support to the `tlp' driver. The battery on my
laptop lasts a whole lot longer now.
 1.4 11-Dec-1999  thorpej - Don't try to run the chip in big-endian mode. Not all chips support
this consistently, and it doesn't always work even when the chip
supports it.
- Make sure things DMA'd to the chip that the chip interprets are in
little-endian mode.
 1.3 19-Nov-1999  thorpej - Use the common MII bit-bang module.
- Add support other than 128-byte SROMs.
- Add support for the 21142/21143 MII.
 1.2 14-Sep-1999  thorpej branches: 1.2.2; 1.2.8;
First crack at shared ROM/shared interrupts on 21040 multi-port boards,
plus quirk identification for non-multiple-port boards.
 1.1 14-Sep-1999  thorpej EISA bus front-end for the New Tulip Driver, for the DEC DE425 EISA
board. The DE425 is basically a DECchip 21040 on an EISA board, plus
a Cool Address Decoder Hack which maps the PCI configuration
space registers into EISA I/O space, interleaved with the Tulip CSRs,
which are spaced further apart than on the PCI versoin.

This is currently *untested* until the DE425 boards that folks have
promised me arrive. But, it should work, since the 21040 works.
 1.2.8.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.2.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.4.1 14-Aug-2000  thorpej Pull up rev. 1.6:
Account for changes to how the SROM is read made some time
ago to the PCI and CardBus front-ends. Sigh, DE425, the
bastard child, no one pays enough attention...
 1.6.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.6.4.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.6.4.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.6.2.3 18-Oct-2002  nathanw Catch up to -current.
 1.6.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.6.2.1 14-Nov-2001  nathanw Catch up to -current.
 1.11.6.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.11.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.11.6.1 25-Aug-2004  skrll Sync with HEAD.
 1.12.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.12.4.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.2 14-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.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.1 02-Jun-2008  mjf Sync with HEAD.
 1.20.4.3 11-Mar-2010  yamt sync with head
 1.20.4.2 04-May-2009  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.21.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.21.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.24.26.1 18-May-2014  rmind sync with head
 1.24.22.2 03-Dec-2017  jdolecek update from HEAD
 1.24.22.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.24.12.1 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.26.2.1 05-Oct-2016  skrll Sync with HEAD
 1.27.32.1 03-Apr-2021  thorpej Sync with HEAD.
 1.28.4.1 01-Aug-2021  thorpej Sync with HEAD.
 1.30 12-Jul-2022  thorpej Remove unneeded bus_space_barrier() calls.
 1.29 24-Jul-2021  thorpej Noralize autoconfiguration messages, and report interrupt trigger type.
 1.28 24-Apr-2021  thorpej branches: 1.28.2;
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.27 27-Jan-2021  thorpej branches: 1.27.2;
Use eisa_compatible_{match,lookup}().
 1.26 27-Sep-2016  pgoyette branches: 1.26.30;
Modularize the ld driver and all of its attachments. Ensure that all
parents are capable of rescan (or otherwise provide a means of attaching
children post-initialization).
 1.25 14-Jul-2016  msaitoh branches: 1.25.2;
- Use aprint*() more in xxx_attach().
- Add missing aprint_naive("\n").
- Remove extra spaces and tabs.
- KNF.
 1.24 29-Mar-2014  christos branches: 1.24.6;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.23 27-Oct-2012  chs branches: 1.23.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.22 12-May-2009  cegger branches: 1.22.12; 1.22.22;
struct device * -> device_t, no functional changes intended.
 1.21 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.20 28-Apr-2008  martin branches: 1.20.14;
Remove clause 3 and 4 from TNF licenses
 1.19 19-Oct-2007  ad branches: 1.19.16; 1.19.18; 1.19.20;
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 02-Sep-2006  christos branches: 1.16.2; 1.16.4;
static goes first
 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 27-Feb-2005  perry branches: 1.13.4;
nuke trailing whitespace
 1.12 03-May-2003  ad branches: 1.12.2; 1.12.10; 1.12.12;
Get the interrupt config from the correct register.
 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 31-Aug-2002  ad Nuke incorrect mailbox length defines and just use 13 everywhere. May help
with PR/14266.
 1.7 26-Aug-2002  ad Handle aincent firmware as found on EISA/MCA boards. Untested.
 1.6 18-Dec-2001  ad branches: 1.6.8; 1.6.10;
Couple more tweaks, probably still not working.
 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 10-May-2001  ad branches: 1.3.2; 1.3.4;
Add missing printf().
 1.2 06-May-2001  ad We map in by MLX_EISA_SLOT_OFFSET, so remember that when accessing the
IOCONF registers. Pointed out by thorpej.
 1.1 06-May-2001  ad Add an (untested) EISA front-end for the `mlx' driver.
 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 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.3.4.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.7 18-Oct-2002  nathanw Catch up to -current.
 1.3.2.6 17-Sep-2002  nathanw Catch up to -current.
 1.3.2.5 27-Aug-2002  nathanw Catch up to -current.
 1.3.2.4 08-Jan-2002  nathanw Catch up to -current.
 1.3.2.3 14-Nov-2001  nathanw Catch up to -current.
 1.3.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.3.2.1 10-May-2001  nathanw file mlx_eisa.c was added on branch nathanw_sa on 2001-06-21 20:01:32 +0000
 1.6.10.1 28-Jul-2003  he Pull up revisions 1.7-1.8 (requested by ad in ticket #1128):
Improve stability of the mlx driver.
o Better handling of old firmware
o Use correct mailbox length, fixes PR#14266
 1.6.8.2 31-Aug-2002  gehenna catch up with -current.
 1.6.8.1 29-Aug-2002  gehenna catch up with -current.
 1.12.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.12.10.1 29-Apr-2005  kent sync with -current
 1.12.2.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 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.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.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.20.2 16-May-2009  yamt sync with head
 1.19.20.1 16-May-2008  yamt sync with head.
 1.19.18.1 18-May-2008  yamt sync with head.
 1.19.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.20.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.22.22.3 03-Dec-2017  jdolecek update from HEAD
 1.22.22.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.22.22.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.22.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.22.12.1 30-Oct-2012  yamt sync with head
 1.23.2.1 18-May-2014  rmind sync with head
 1.24.6.1 05-Oct-2016  skrll Sync with HEAD
 1.25.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.26.30.1 03-Apr-2021  thorpej Sync with HEAD.
 1.27.2.1 28-Mar-2021  thorpej Correct names of arguments passed to rescan function.
 1.28.2.1 01-Aug-2021  thorpej Sync with HEAD.
 1.39 27-Jan-2021  thorpej Use eisa_compatible_{match,lookup}().
 1.38 11-Jul-2016  msaitoh branches: 1.38.32;
KNF. No functional change.
 1.37 18-Oct-2014  snj branches: 1.37.2;
src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
 1.36 29-Mar-2014  christos make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.35 04-Nov-2013  christos use __USE
 1.34 27-Oct-2012  chs branches: 1.34.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.33 04-Dec-2009  njoly branches: 1.33.12; 1.33.22;
Cleanup interrupt establish error messages. Do not mix
aprint_error/aprint_normal/printf calls for a single line.
 1.32 23-Nov-2009  rmind Remove some unecessary includes sys/user.h header.
 1.31 12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.30 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.29 28-Apr-2008  martin branches: 1.29.14;
Remove clause 3 and 4 from TNF licenses
 1.28 06-Apr-2008  cegger branches: 1.28.2; 1.28.4;
use aprint_*_dev and device_xname
 1.27 19-Oct-2007  ad branches: 1.27.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.26 16-Nov-2006  christos branches: 1.26.8; 1.26.22; 1.26.24; 1.26.28;
__unused removal on arguments; approved by core.
 1.25 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.24 29-Mar-2006  thorpej branches: 1.24.8; 1.24.10;
Use device_private().
 1.23 11-Dec-2005  christos branches: 1.23.4; 1.23.6; 1.23.8; 1.23.10; 1.23.12;
merge ktrace-lwp.
 1.22 23-Aug-2004  thorpej branches: 1.22.12;
- Use ANSI function decls and make use of static.
 1.21 02-Oct-2002  thorpej branches: 1.21.6;
Add trailing ; to CFATTACH_DECL.
 1.20 30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.19 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.18 05-Apr-2002  bouyer Implement mstohz() as discussed on tech-kern, and use it in SCSI drivers
to convert xs->timeout to callout() parameter.
 1.17 15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.16 13-Nov-2001  lukem add RCSID
 1.15 23-Mar-2000  thorpej branches: 1.15.6; 1.15.8;
New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
 1.14 30-Sep-1999  thorpej branches: 1.14.2;
Update for SCSPI changes.
 1.13 15-Aug-1998  mycroft Assign my copyrights to TNF.
 1.12 04-Jul-1998  jonathan defopt DDB.
 1.11 08-Jun-1998  thorpej Nuke __BROKEN_INDIRECT_CONFIG.
 1.10 17-Feb-1998  thorpej - Perform all necessary bus_dmamap_sync() operations.
- Greatly simplify allocation and DMA mapping of the mailbox and ccbs.
- Be more robust against resource shortage errors, and report errors better.
 1.9 27-Aug-1997  bouyer Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
 1.8 06-Jun-1997  thorpej branches: 1.8.2; 1.8.4;
Pull thorpej-bus-dma branch into mainline.
 1.7 29-Mar-1997  mycroft branches: 1.7.2;
Use a temporary data structure for holding probe information, rather than a
full softc.
 1.6 15-Nov-1996  jonathan Fix front-ends of split uha driver to compile when DDB is not configured:
Propagate Debugger() macro from uha.c to uha_{eisa,isa}.c.
update file names accordingly.
 1.5 21-Oct-1996  thorpej New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.4 13-Oct-1996  christos backout kprintf changes
 1.3 10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.2 01-Sep-1996  mycroft Minor changes.
 1.1 31-Aug-1996  mycroft Split the UltraStor driver apart.
 1.7.2.2 18-May-1997  thorpej Do the __BROKEN_INDIRECT_CONFIG dance.
 1.7.2.1 13-May-1997  thorpej Convert to use bus dma.
 1.8.4.1 27-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.8.2.1 01-Jul-1997  bouyer Updates for new scsipi subsystem. Actally known to work on i386 and sparc.
 1.14.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.15.8.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.15.8.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.15.8.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.15.6.4 18-Oct-2002  nathanw Catch up to -current.
 1.15.6.3 17-Apr-2002  nathanw Catch up to -current.
 1.15.6.2 08-Jan-2002  nathanw Catch up to -current.
 1.15.6.1 14-Nov-2001  nathanw Catch up to -current.
 1.21.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.21.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.21.6.1 25-Aug-2004  skrll Sync with HEAD.
 1.22.12.3 27-Oct-2007  yamt sync with head.
 1.22.12.2 30-Dec-2006  yamt sync with head.
 1.22.12.1 21-Jun-2006  yamt sync with head.
 1.23.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.23.10.1 19-Apr-2006  elad sync with head.
 1.23.8.1 01-Apr-2006  yamt sync with head.
 1.23.6.1 22-Apr-2006  simonb Sync with head.
 1.23.4.1 09-Sep-2006  rpaulo sync with head
 1.24.10.2 10-Dec-2006  yamt sync with head.
 1.24.10.1 22-Oct-2006  yamt sync with head
 1.24.8.1 18-Nov-2006  ad Sync with head.
 1.26.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.26.24.1 06-Nov-2007  matt sync with HEAD
 1.26.22.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.26.8.1 23-Oct-2007  ad Sync with head.
 1.27.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.28.4.3 11-Mar-2010  yamt sync with head
 1.28.4.2 16-May-2009  yamt sync with head
 1.28.4.1 16-May-2008  yamt sync with head.
 1.28.2.1 18-May-2008  yamt sync with head.
 1.29.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.33.22.3 03-Dec-2017  jdolecek update from HEAD
 1.33.22.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.33.22.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.33.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.33.12.1 30-Oct-2012  yamt sync with head
 1.34.2.1 18-May-2014  rmind sync with head
 1.37.2.1 05-Oct-2016  skrll Sync with HEAD
 1.38.32.1 03-Apr-2021  thorpej Sync with HEAD.

RSS XML Feed