Home | History | Annotate | Download | only in pci
History log of /src/sys/dev/pci/twe.c
RevisionDateAuthorComments
 1.111  02-Feb-2024  andvar s/mangement/management/ in comments.
 1.110  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.109  24-Apr-2021  thorpej branches: 1.109.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.108  10-Nov-2019  chs branches: 1.108.10;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.107  09-Dec-2018  jdolecek use pci_intr_establish_xname() everywhere
 1.106  27-Sep-2016  pgoyette branches: 1.106.6; 1.106.14; 1.106.16;
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.105  14-Jul-2016  msaitoh branches: 1.105.2;
KNF. No functional change.
 1.104  07-Jul-2016  msaitoh KNF. Remove extra spaces. No functional change.
 1.103  25-Jul-2014  dholland branches: 1.103.4;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.102  29-Mar-2014  christos branches: 1.102.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.101  16-Mar-2014  dholland Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.100  25-Feb-2014  pooka Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before
the sysctl link sets are processed, and remove redundancy.

Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate
lines of code.
 1.99  15-Sep-2013  martin Remove unused variable
 1.98  02-Dec-2012  chs branches: 1.98.2;
fix device/softc split: initialize sc->sc_dev.
 1.97  27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.96  27-Jan-2012  para branches: 1.96.6;
extending vmem(9) to be able to allocated resources for it's own needs.
simplifying uvm_map handling (no special kernel entries anymore no relocking)
make malloc(9) a thin wrapper around kmem(9)
(with private interface for interrupt safety reasons)

releng@ acknowledged
 1.95  30-Jun-2011  wiz branches: 1.95.2; 1.95.6;
dependant -> dependent
 1.94  24-May-2011  joerg Explicitly get rid of constness.
 1.93  14-Nov-2010  uebayasi branches: 1.93.2;
Avoid pointless use of a sysctl definition, CTL_NAMES. Clean up whitespace.
 1.92  13-Nov-2010  uebayasi 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.91  27-Jul-2010  jakllsch printf() size_t with 'z' format modifier in debug code.
 1.90  12-May-2009  cegger branches: 1.90.2; 1.90.4;
use device_private().
"looks good" ad@
XXX for the device_t/softc split, please check the driver that no cases have been missed.
 1.89  06-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.88  06-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.87  08-Jun-2008  tsutsui branches: 1.87.12;
Replace device_lookup() with device_lookup_private() on getting softc
for future device_t/softc spilt.
 1.86  28-Apr-2008  martin branches: 1.86.2;
Remove clause 3 and 4 from TNF licenses
 1.85  10-Apr-2008  cegger branches: 1.85.2; 1.85.4;
use aprint_*_dev and device_xname
 1.84  19-Oct-2007  ad branches: 1.84.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.83  04-Mar-2007  christos branches: 1.83.2; 1.83.14; 1.83.16; 1.83.20;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.82  02-Dec-2006  elad branches: 1.82.2;
Change kauth(9) KPI for kauth_authorize_device_passthru() to add another
argument, u_long, serving as a bit-mask of generic requests for the
passthru request.

Discussed on tech-security@ and tech-kern@. Okay tls@.
 1.81  16-Nov-2006  christos branches: 1.81.2;
__unused removal on arguments; approved by core.
 1.80  08-Nov-2006  elad Replace securelevel checks with kauth(9) calls.
 1.79  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.78  03-Sep-2006  christos branches: 1.78.2; 1.78.4;
- add missing initializer
- add missing function decl
 1.77  27-Aug-2006  xtraeme Initialize a variable to 0 to appease gcc4 with -O3.
 1.76  23-Aug-2006  christos Acting as Elad's keyboard:

Place the securelevel checks in their logical locations.
This will be clearer in the future when code changes to use kauth(9) calls.

input and okay ad@
 1.75  11-Apr-2006  rpaulo Coverity ID 2859: Don't leak ccb, move the allocation a few lines
lower next to where it'll be used for the first time.
 1.74  23-Feb-2006  simonb branches: 1.74.2; 1.74.4; 1.74.6;
Fix memory leak in the TWEIO_GET_PARAM ioctl.
Tested by gendalia@.
 1.73  29-Jan-2006  dsl branches: 1.73.2; 1.73.4;
Make almost everything #include <sys/bswap.h> instead of <machine/bswap.h>
The bswap.h and endian.h files are all rather incestuous, but I want to
get the constant folding stuff into one place - sys/bswap.h
 1.72  24-Dec-2005  perry branches: 1.72.2;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.71  11-Dec-2005  christos merge ktrace-lwp.
 1.70  26-Aug-2005  drochner kill some more simple submatch() functions, use config_stdsubmatch()
 1.69  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.68  28-Jun-2005  thorpej branches: 1.68.2;
Use ANSI function decls and static.
 1.67  20-Jun-2005  atatat Change the rest of the sysctl subsystem to use const consistently.
The __UNCONST macro is now used only where necessary and the RW macros
are gone. Most of the changes here are consumers of the
sysctl_createv(9) interface that now takes a pair of const pointers
which used not to be.
 1.66  30-May-2005  christos - const poisoning
- avoid variable shadowing.
 1.65  01-Apr-2005  yamt merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
save some resources like pv_entry. also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.
 1.64  16-Mar-2005  erh branches: 1.64.2; 1.64.4;
Fix PR#24302. Clear PCI abort and parity errors to give the card a chance at
working. Patch provided by Jean-Luc Wasmer, based on the FreeBSD driver.
 1.63  27-Feb-2005  perry nuke trailing whitespace
 1.62  20-Feb-2005  heas Add sysctl node hw.tweN.driver_version whose value is FreeBSD's driver version
number for now. This is used by 3ware's FreeBSD version of their CLI to find
controllers and check the driver version.
 1.61  15-Feb-2005  lukem Add some more stripe sizes observed in the field.
Add "JBOD" to twe_table_unittype[].
 1.60  23-Sep-2004  heas branches: 1.60.4; 1.60.6;
Take the modulus of the AEN queue tail number rather than the mask of. Now
the tail pointer advances properly.
 1.59  13-Sep-2004  drochner a round of autoconf cleanup:
-convert submatch() style functions (passed to config_search() or
config_found_sm()) to the locator passing variants
-pass interface attributes in some cases
-make submatch() functions look uniformly as far as possible
-avoid macros which just hide cfdata members, and reduce dependencies
on "locators.h"
 1.58  04-Jun-2004  thorpej twe_ccb_map(): Remove the DEBUG panic case of "unknown" S/G list offset.
In all likelihood, this is a command passed from userspace management
tools where no S/G list is needed because no data is being passed.
 1.57  03-Jun-2004  heas Double the time we wait for the attention bit following a soft reset (and make
the timeout message just a bit clearer), as the latest firmware appears to be
a bit slower.
OK from Jason Thorpe.
 1.56  27-May-2004  thorpej Rename twe_tweio_command_handler() to twe_ccb_wait_handler() and expose it.
 1.55  15-Apr-2004  thorpej Assign a syslog priority to the AEN codes and use that priority when
logging the error message. Potentially allows critical messages to be
noticed much more quickly.
 1.54  04-Dec-2003  thorpej branches: 1.54.2;
When performing command pass-through for management tools, don't poll
for CCB completion. Instead, sleep, and use a CCB callback to wake the
sleeper.
 1.53  10-Nov-2003  thorpej Correct the size passed to a malloc() call when performing command
passthrough for userland management tools.
 1.52  30-Oct-2003  simonb Remove some assigned-to but otherwise unused variables.
 1.51  25-Sep-2003  thorpej Fix up the TWEIO_COMMAND code to actually work. The 3ware management API
library can now communicate with the card.
 1.50  25-Sep-2003  thorpej - Fix a bug I introduced in a previous commit (oops).
- Add the twe_drivecommand ioctl structure.
 1.49  23-Sep-2003  thorpej - Make CCB allocation slightly more efficient by changing how the
CCB is returned to the caller.
- Make code paths that can use twe_ccb_alloc_wait() use it, and assert
that a CCB is always returned from that function.
- Assert that a CCB is always returned when allocating the reserved CCB
for an AEN fetch.
 1.48  23-Sep-2003  thorpej Add a comment clarifying why we clear TWEF_AEN in twe_reset() now.
 1.47  23-Sep-2003  thorpej Separate the AEN fetching path into its own special path that uses the
reserved CCB. This means that all remaining callers of twe_param_get*()
are called from a valid thread context, and thus have no need to use a
reserved CCB. This will allow for further cleanup in a future commit.
 1.46  22-Sep-2003  thorpej Add support for dynamically attaching and detaching RAID array units.
 1.45  22-Sep-2003  thorpej Improve AEN handling:
- Make AENs use the generic code table stuff.
- Add a few more AEN codes (from FreeBSD).
- Correct the context of a few AEN codes (some were listed as
"unit context" when they're really "port context").
- Add a queue of AENs that management tools in userspace can poll
(from FreeBSD).
 1.44  21-Sep-2003  thorpej Fetch info about the drives during attach, and inject that info
into the msgbuf using aprint_verbose().
 1.43  21-Sep-2003  thorpej Expose the "param get" functions.
 1.42  21-Sep-2003  thorpej - Record more information about the array unit, including array
type and stripe depth.
- Report array type and stripe depth when attaching the logical drive.
 1.41  21-Sep-2003  thorpej Add some helper routines to fetch 1, 2, and 4 byte parameter values.

Modeled after code in FreeBSD.
 1.40  21-Sep-2003  thorpej Add some additional code -> description tables, and add a generic
routine to translate code -> description. AENs will be converted
to this mechanism in a future commit.

Partially from FreeBSD.
 1.39  03-Aug-2003  jdolecek tweioctl(): store the result of twe_param_get() directly to the right
variable rather than using (void *) temporary
should fix strict aliasing warning of gcc 3.3
 1.38  25-Jul-2003  jdolecek print some additional information about the controller on boot (from FreeBSD)

use aprint_* as appropriate
change some debug #ifdef DIAGNOSTIC messages into #ifdef DEBUG
make aenfmt[] more const
change twe_param_get() signature to take (struct twe_param **) last arg, and
remove now unnecessary casts
 1.37  29-Jun-2003  fvdl branches: 1.37.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.36  28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.35  01-Jan-2003  thorpej Use aprint_normal() in cfprint routines.
 1.34  16-Dec-2002  fvdl Remove comparison of u_int8_t value to (512 - a few bytes), since it's
always false. As found by gcc-current.
 1.33  13-Dec-2002  christos Add /dev/twex support. To be used with FreeBSD's 3dmd.
Initial port from Masaru OKI <oki@netbsd.org>, with KNF, memory leak fixes,
denial of service problems, and null pointer fixes from me.
 1.32  25-Nov-2002  thorpej Avoid strict-alias warnings.
 1.31  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.30  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.29  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.28  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.27  06-Aug-2002  kim Missing comma in aenfmt array initialization.
 1.26  10-Jul-2002  christos Add missing messages from FreeBSD's driver. Re-organize a bit how the
message is formatted and printed.
 1.25  01-Jun-2002  lukem SIMPLEQ rototill:
- implement SIMPLEQ_REMOVE(head, elm, type, field). whilst it's O(n),
this mirrors the functionality of SLIST_REMOVE() (the other
singly-linked list type) and FreeBSD's STAILQ_REMOVE()
- remove the unnecessary elm arg from SIMPLEQ_REMOVE_HEAD().
this mirrors the functionality of SLIST_REMOVE_HEAD() (the other
singly-linked list type) and FreeBSD's STAILQ_REMOVE_HEAD()
- remove notes about SIMPLEQ not supporting arbitrary element removal
- use SIMPLEQ_FOREACH() instead of home-grown for loops
- use SIMPLEQ_EMPTY() appropriately
- use SIMPLEQ_*() instead of accessing sqh_first,sqh_last,sqe_next directly
- reorder manual page; be consistent about how the types are listed
- other minor cleanups
 1.24  24-May-2002  christos NBPG is not constant on the sparc, so don't use CPP tricks.
 1.23  24-May-2002  christos Deal with the NBPG problem in a better way.
 1.22  18-May-2002  ad branches: 1.22.2;
- Use write barriers.
- NBPG -> PAGE_SIZE.
 1.21  13-Nov-2001  lukem branches: 1.21.8;
add RCSID
 1.20  10-Oct-2001  ad branches: 1.20.4;
Back out previous - it causes panics.
 1.19  20-Sep-2001  ad Use bus_dma to get temporary I/O buffers.
 1.18  16-Sep-2001  wiz Spell 'occurred' with two 'r's.
 1.17  15-Sep-2001  chs a whole bunch of changes to improve performance and robustness under load:

- remove special treatment of pager_map mappings in pmaps. this is
required now, since I've removed the globals that expose the address range.
pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's
no longer any need to special-case it.
- eliminate struct uvm_vnode by moving its fields into struct vnode.
- rewrite the pageout path. the pager is now responsible for handling the
high-level requests instead of only getting control after a bunch of work
has already been done on its behalf. this will allow us to UBCify LFS,
which needs tighter control over its pages than other filesystems do.
writing a page to disk no longer requires making it read-only, which
allows us to write wired pages without causing all kinds of havoc.
- use a new PG_PAGEOUT flag to indicate that a page should be freed
on behalf of the pagedaemon when it's unlocked. this flag is very similar
to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the
pageout fails due to eg. an indirect-block buffer being locked.
this allows us to remove the "version" field from struct vm_page,
and together with shrinking "loan_count" from 32 bits to 16,
struct vm_page is now 4 bytes smaller.
- no longer use PG_RELEASED for swap-backed pages. if the page is busy
because it's being paged out, we can't release the swap slot to be
reallocated until that write is complete, but unlike with vnodes we
don't keep a count of in-progress writes so there's no good way to
know when the write is done. instead, when we need to free a busy
swap-backed page, just sleep until we can get it busy ourselves.
- implement a fast-path for extending writes which allows us to avoid
zeroing new pages. this substantially reduces cpu usage.
- encapsulate the data used by the genfs code in a struct genfs_node,
which must be the first element of the filesystem-specific vnode data
for filesystems which use genfs_{get,put}pages().
- eliminate many of the UVM pagerops, since they aren't needed anymore
now that the pager "put" operation is a higher-level operation.
- enhance the genfs code to allow NFS to use the genfs_{get,put}pages
instead of a modified copy.
- clean up struct vnode by removing all the fields that used to be used by
the vfs_cluster.c code (which we don't use anymore with UBC).
- remove kmem_object and mb_object since they were useless.
instead of allocating pages to these objects, we now just allocate
pages with no object. such pages are mapped in the kernel until they
are freed, so we can use the mapping to find the page to free it.
this allows us to remove splvm() protection in several places.

The sum of all these changes improves write throughput on my
decstation 5000/200 to within 1% of the rate of NetBSD 1.5
and reduces the elapsed time for "make release" of a NetBSD 1.5
source tree on my 128MB pc to 10% less than a 1.5 kernel took.
 1.16  19-Jul-2001  thorpej branches: 1.16.2;
Use BUS_DMA_READ and BUS_DMA_WRITE in some obvious places.
 1.15  31-May-2001  ad branches: 1.15.2;
Reduce the delay when polling so that dumps go faster.
 1.14  30-Mar-2001  ad AEN 0x000c appears to mean `init started'. From lukem.
 1.13  07-Mar-2001  thorpej Add BUS_DMA_STREAMING to data transfer maps.
 1.12  04-Mar-2001  ad branches: 1.12.2;
Don't choke when we get lots of AENs all at once.
 1.11  25-Feb-2001  ad Wait 10x longer for status bits.
 1.10  11-Feb-2001  ad Match an upcoming product.
 1.9  23-Jan-2001  ad Oops, be sure to clear the ATTN interrupt on error.
 1.8  22-Jan-2001  ad opt_twe.h isn't needed any more.
 1.7  22-Jan-2001  ad - Complain if interrupt-driven retrieval of AENs fails somehow.
- Clamp the number of outstanding commands to 129.
- Other tweaks.
 1.6  14-Jan-2001  thorpej splimp() -> splvm()
 1.5  28-Dec-2000  sommerfeld Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.

Tested on alpha and i386; welcome to 1.5Q
 1.4  14-Nov-2000  thorpej branches: 1.4.2;
NBPG -> PAGE_SIZE
 1.3  08-Nov-2000  ad - Pull in some updates from FreeBSD - mainly clarifications. Thanks to
Mike Smith <msmith@freebsd.org> for pointing these out.
- Ensure that we get AENs: reserve one CCB/command block for parameter
retrieval, and chain AEN retrievals that are the result of an interrupt.
 1.2  20-Oct-2000  ad - tsleep()/wakeup_one() will hurt when under load, so use a queue instead.
- Don't copy to or from the aligned buffer unless there's a need to.
 1.1  19-Oct-2000  ad Driver for the 3ware Escalade family of RAID controllers.
 1.4.2.8  21-Apr-2001  bouyer Sync with HEAD
 1.4.2.7  12-Mar-2001  bouyer Sync with HEAD.
 1.4.2.6  11-Feb-2001  bouyer Sync with HEAD.
 1.4.2.5  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.4.2.4  05-Jan-2001  bouyer Sync with HEAD
 1.4.2.3  22-Nov-2000  bouyer Sync with HEAD.
 1.4.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.4.2.1  14-Nov-2000  bouyer file twe.c was added on branch thorpej_scsipi on 2000-11-20 11:42:38 +0000
 1.12.2.14  03-Jan-2003  thorpej Sync with HEAD.
 1.12.2.13  19-Dec-2002  thorpej Sync with HEAD.
 1.12.2.12  11-Dec-2002  thorpej Sync with HEAD.
 1.12.2.11  18-Oct-2002  nathanw Catch up to -current.
 1.12.2.10  13-Aug-2002  nathanw Catch up to -current.
 1.12.2.9  01-Aug-2002  nathanw Catch up to -current.
 1.12.2.8  20-Jun-2002  nathanw Catch up to -current.
 1.12.2.7  09-Jan-2002  nathanw Fix merge botch.
 1.12.2.6  14-Nov-2001  nathanw Catch up to -current.
 1.12.2.5  22-Oct-2001  nathanw Catch up to -current.
 1.12.2.4  21-Sep-2001  nathanw Catch up to -current.
 1.12.2.3  24-Aug-2001  nathanw Catch up with -current.
 1.12.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.12.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.15.2.5  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.15.2.4  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.15.2.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.15.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.15.2.1  03-Aug-2001  lukem update to -current
 1.16.2.2  11-Oct-2001  fvdl Catch up with -current. Fix some bogons in the sparc64 kbd/ms
attach code. cd18xx conversion provided by mrg.
 1.16.2.1  01-Oct-2001  fvdl Catch up with -current.
 1.20.4.3  24-Nov-2001  he Pull up revision 1.20 (via patch, requested by lukem):
Improve stability of this driver by un-applying some earlier
changes.
 1.20.4.2  25-Oct-2001  he Pull up revisions 1.1-1.19 (new, via patch, requested by ad):
Add Mylex DACC960, CAC-EISA, and I2O block/SCSI drivers.
 1.20.4.1  10-Oct-2001  he file twe.c was added on branch netbsd-1-5 on 2001-10-25 18:03:02 +0000
 1.21.8.4  29-Aug-2002  gehenna catch up with -current.
 1.21.8.3  15-Jul-2002  gehenna catch up with -current.
 1.21.8.2  20-Jun-2002  gehenna catch up with -current.
 1.21.8.1  30-May-2002  gehenna Catch up with -current.
 1.22.2.1  26-May-2002  perry partially resolve 1.6 pullup ticket #29 from grant
pulls up revisions 1.23, 1.24
Original commit messages:

> Deal with the NBPG problem in a better way.

> NBPG is not constant on the sparc, so don't use CPP tricks.

Note that grant erroneously requested a pullup of only 1.24, which
would not apply cleanly. Normally I would have rejected the entire
request, but this is needed to make the sparc & sparc64 ports compile.
 1.37.2.9  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.37.2.8  01-Apr-2005  skrll Sync with HEAD.
 1.37.2.7  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.37.2.6  15-Feb-2005  skrll Sync with HEAD.
 1.37.2.5  24-Sep-2004  skrll Sync with HEAD.
 1.37.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.37.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.37.2.2  03-Aug-2004  skrll Sync with HEAD
 1.37.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.54.2.2  05-Jun-2004  jmc Pullup rev 1.58 (requested by thorpej in ticket #441)

twe_ccb_map(): Remove the DEBUG panic case of "unknown" S/G list
offset.
 1.54.2.1  30-May-2004  tron Pull up revision 1.56 (requested by thorpej in ticket #410):
Rename twe_tweio_command_handler() to twe_ccb_wait_handler() and
expose it.
 1.60.6.2  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.60.6.1  25-Jan-2005  yamt convert to new apis.
 1.60.4.1  29-Apr-2005  kent sync with -current
 1.64.4.1  26-Feb-2006  riz Pull up following revision(s) (requested by simonb in ticket #1182):
sys/dev/pci/twe.c: revision 1.74
Fix memory leak in the TWEIO_GET_PARAM ioctl.
Tested by gendalia@.
--
 1.64.2.1  26-Feb-2006  riz Pull up following revision(s) (requested by simonb in ticket #1182):
sys/dev/pci/twe.c: revision 1.74
Fix memory leak in the TWEIO_GET_PARAM ioctl.
Tested by gendalia@.
--
 1.68.2.4  27-Oct-2007  yamt sync with head.
 1.68.2.3  03-Sep-2007  yamt sync with head.
 1.68.2.2  30-Dec-2006  yamt sync with head.
 1.68.2.1  21-Jun-2006  yamt sync with head.
 1.72.2.2  01-Mar-2006  yamt sync with head.
 1.72.2.1  01-Feb-2006  yamt sync with head.
 1.73.4.1  22-Apr-2006  simonb Sync with head.
 1.73.2.1  09-Sep-2006  rpaulo sync with head
 1.74.6.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.74.4.1  19-Apr-2006  elad sync with head.
 1.74.2.2  03-Sep-2006  yamt sync with head.
 1.74.2.1  24-May-2006  yamt sync with head.
 1.78.4.2  10-Dec-2006  yamt sync with head.
 1.78.4.1  22-Oct-2006  yamt sync with head
 1.78.2.2  12-Jan-2007  ad Sync with head.
 1.78.2.1  18-Nov-2006  ad Sync with head.
 1.81.2.1  04-Dec-2006  tron Pull up following revision(s) (requested by elad in ticket #247):
sys/dev/ic/dpt.c: revision 1.55
sys/dev/pci/amr.c: revision 1.43
sys/secmodel/bsd44/secmodel_bsd44_securelevel.c: revision 1.19
sys/dev/pci/mly.c: revision 1.33
share/man/man9/kauth.9: revision 1.37
sys/dev/ic/mlx.c: revision 1.49
sys/dev/ic/icp_ioctl.c: revision 1.14
sys/dev/i2o/iop.c: revision 1.62
sys/dev/pci/twe.c: revision 1.82
sys/sys/kauth.h: revision 1.25
sys/dev/i2o/dpti.c: revision 1.31
sys/kern/kern_auth.c: revision 1.33
sys/dev/tc/stic.c: revision 1.37
Change kauth(9) KPI for kauth_authorize_device_passthru() to add another
argument, u_long, serving as a bit-mask of generic requests for the
passthru request.
Discussed on tech-security@ and tech-kern@. Okay tls@.
 1.82.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.83.20.1  25-Oct-2007  bouyer Sync with HEAD.
 1.83.16.1  06-Nov-2007  matt sync with HEAD
 1.83.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.83.2.1  23-Oct-2007  ad Sync with head.
 1.84.16.3  29-Jun-2008  mjf Sync with HEAD.
 1.84.16.2  02-Jun-2008  mjf Sync with HEAD.
 1.84.16.1  05-Apr-2008  mjf - add "file-system DEVFS" and "pseudo-device devfsctl" to conf/std seeing
as these are always needed.

- convert many, many drivers over to the New Devfs World Order. For a
list of device drivers yet to be converted see,
http://www.netbsd.org/~mjf/devfs-todo.html.

- add a new device_unregister_all(device_t) function to remove all device
names associated with a device_t, which saves us having to construct
device names when the driver is detached.

- add a DEV_AUDIO type for devices.
 1.85.4.4  11-Aug-2010  yamt sync with head.
 1.85.4.3  16-May-2009  yamt sync with head
 1.85.4.2  04-May-2009  yamt sync with head.
 1.85.4.1  16-May-2008  yamt sync with head.
 1.85.2.2  17-Jun-2008  yamt sync with head.
 1.85.2.1  18-May-2008  yamt sync with head.
 1.86.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.87.12.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.90.4.2  31-May-2011  rmind sync with head
 1.90.4.1  05-Mar-2011  rmind sync with head
 1.90.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.93.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.95.6.1  18-Feb-2012  mrg merge to -current.
 1.95.2.4  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.95.2.3  16-Jan-2013  yamt sync with (a bit old) head
 1.95.2.2  30-Oct-2012  yamt sync with head
 1.95.2.1  17-Apr-2012  yamt sync with head
 1.96.6.4  03-Dec-2017  jdolecek update from HEAD
 1.96.6.3  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.96.6.2  25-Feb-2013  tls resync with head
 1.96.6.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.98.2.1  18-May-2014  rmind sync with head
 1.102.2.1  10-Aug-2014  tls Rebase.
 1.103.4.2  05-Oct-2016  skrll Sync with HEAD
 1.103.4.1  09-Jul-2016  skrll Sync with HEAD
 1.105.2.1  04-Nov-2016  pgoyette Sync with HEAD
 1.106.16.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.106.16.1  10-Jun-2019  christos Sync with HEAD
 1.106.14.1  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.106.6.1  30-Apr-2017  pgoyette More DEVSW_MODULE_INIT for modular drivers
 1.108.10.3  28-Mar-2021  thorpej Correct the names of the arguments passed to the rescan function.
 1.108.10.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.108.10.1  22-Mar-2021  thorpej Mechanical conversion of config_found_sm_loc() -> config_found().
CFARG_IATTR usage needs to be audited.
 1.109.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed