History log of /src/sys/dev/qbus/uba.c |
Revision | | Date | Author | Comments |
1.83 |
| 07-Aug-2021 |
thorpej | Merge thorpej-cfargs2.
|
1.82 |
| 24-Apr-2021 |
thorpej | branches: 1.82.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.81 |
| 10-Nov-2019 |
chs | branches: 1.81.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.80 |
| 22-May-2017 |
ragge | branches: 1.80.10; Update copyright notice for Ludd (remove clause 3 & 4).
|
1.79 |
| 13-Nov-2010 |
uebayasi | branches: 1.79.18; 1.79.36; 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.78 |
| 23-Nov-2009 |
rmind | branches: 1.78.4; Remove some unecessary includes sys/user.h header.
|
1.77 |
| 11-Mar-2008 |
matt | branches: 1.77.4; Rototill the vax code. Switch to devicet/PRIV_ALLOC. Cleanup vax autoconf code. Move to prototype definitions. staticfy, constify, avoid casting. Use device_* accessors.
|
1.76 |
| 19-Oct-2007 |
ad | branches: 1.76.12; 1.76.16; machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
|
1.75 |
| 04-Mar-2007 |
christos | branches: 1.75.2; 1.75.14; 1.75.16; 1.75.20; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.74 |
| 25-Mar-2006 |
thorpej | branches: 1.74.14; Use device_parent().
|
1.73 |
| 11-Dec-2005 |
christos | branches: 1.73.4; 1.73.6; 1.73.8; 1.73.10; 1.73.12; merge ktrace-lwp.
|
1.72 |
| 26-Aug-2005 |
drochner | s/locdesc_t/int/g
|
1.71 |
| 26-Feb-2005 |
simonb | branches: 1.71.4; White space nits.
|
1.70 |
| 14-Dec-2004 |
chs | branches: 1.70.2; 1.70.4; use the generated macros in locators.h rather than hard-coded numbers to index the cf_loc[] array. reviewed by allen briggs.
|
1.69 |
| 08-Sep-2004 |
drochner | use interface attribute / locator passing versions of config_search()
|
1.68 |
| 28-Aug-2003 |
ragge | Keep track of which addresses that are used by devices, so that probing do not fiddle with registers on already found devices.
|
1.67 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
1.66 |
| 18-Jun-2003 |
drochner | branches: 1.66.2; don't #include <sys/dkstat.h> where it is (appearently) unused
|
1.65 |
| 01-Apr-2003 |
thorpej | Use PAGE_SIZE rather than NBPG.
|
1.64 |
| 01-Jan-2003 |
thorpej | Use aprint_normal() in cfprint routines.
|
1.63 |
| 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.62 |
| 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.61 |
| 25-Sep-2002 |
thorpej | Don't include <sys/map.h>.
|
1.60 |
| 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.59 |
| 15-Nov-2001 |
lukem | branches: 1.59.8; don't need <sys/types.h> when including <sys/param.h>
|
1.58 |
| 13-Nov-2001 |
lukem | add RCSIDs
|
1.57 |
| 26-Apr-2001 |
ragge | branches: 1.57.2; Add functions to allocate mapped-in qbus memory.
|
1.56 |
| 12-Apr-2001 |
thorpej | splimp -> spluba.
|
1.55 |
| 28-Jun-2000 |
mrg | branches: 1.55.2; remove include of <vm/vm.h>
|
1.54 |
| 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.53 |
| 05-Jun-2000 |
matt | Adjust to new evcnt stuff.
|
1.52 |
| 04-Jun-2000 |
matt | Start couting interrupts.
|
1.51 |
| 30-Apr-2000 |
ragge | branches: 1.51.2; Add function uba_reset_establish() to register reset functions like uba_intr_establish(). Basic framework for resource (BDP) allocation, not yet finished.
|
1.50 |
| 30-Mar-2000 |
augustss | Remove register declarations.
|
1.49 |
| 24-Jan-2000 |
matt | Revamp the VAX interrupt handling code. Make it compatible with all the other ports. Clean up some things.
|
1.48 |
| 20-Jun-1999 |
ragge | branches: 1.48.2; 1.48.4; Fix a erroneous malloc.
|
1.47 |
| 06-Jun-1999 |
ragge | Fix map register/DMA wait queues. Still to do: BDP handling. Currently missing. Ubareset's won't work at all.
|
1.46 |
| 27-May-1999 |
ragge | Moved from ../dec/qbus/uba.c,v
|
1.45 |
| 27-May-1999 |
ragge | Directory called qbus instead of uba, per request from Matt/Jason/... (More describing name actually)
|
1.44 |
| 26-May-1999 |
ragge | DZ-11 routines bus'ified. Small fixes to uba routines.
|
1.43 |
| 24-May-1999 |
ragge | First step towards MI Unibus/Q22 bus code.
|
1.42 |
| 02-Feb-1999 |
ragge | Another giant change: Allocate register space dynamic instead of compiled-in. This is done on a physical page size basis, instead of virtual (as the (on vax yet non-existing) bus_* routines does). This is similar to the way uba allocation is done.
|
1.41 |
| 19-Jan-1999 |
ragge | Fix some void pointers.
|
1.40 |
| 19-Jan-1999 |
ragge | Allocate (almost) all interrupt vectors dynamically. Simplifies much work when adding support for new machines and devices.
|
1.39 |
| 01-Jan-1999 |
ragge | Giant change: NBPG now set to 4k and CLSIZE == 1 for vax. This change made a whole bunch of annoying bugs disappear; mostly depending on bad use of NBPG in non-MD code. The VAX port was the only port that used this historical "feature".
The CL* macros should probably go away totally, there is no reason at all to keep them.
|
1.38 |
| 29-Nov-1998 |
ragge | the btoc/ctob/btop macros must use CLBYTES, not NBPG. How this should work in the long run is an open issue; some parts must be reworked in a MI way.
|
1.37 |
| 05-Nov-1998 |
ragge | EGCS fixes.
|
1.36 |
| 18-Oct-1998 |
ragge | Support for DWBUA (BI to Unibus adapter) and KLESI-B (TMSCP tape ctlr) added.
|
1.35 |
| 06-Oct-1998 |
matt | Change backplace0 to mainbus0 (for consistency with other ports). Remove unused function protocols from ka410.h and ka43.h Fix some ka46 missing references
|
1.34 |
| 21-Mar-1998 |
ragge | ubasetup() must be non-static. (used by QDSS)
|
1.33 |
| 02-Mar-1998 |
ragge | Support for UVM on VAXen.
|
1.32 |
| 24-Jan-1998 |
ragge | Remove __BROKEN_INDIRECT_CONFIG and change all drivers to use config_search instead.
|
1.31 |
| 18-Jan-1998 |
ragge | Make kernel compile & run again after latest config changes.
|
1.30 |
| 12-Jan-1998 |
thorpej | Update for changes to config.
|
1.29 |
| 13-Oct-1996 |
christos | backout previous kprintf change
|
1.28 |
| 11-Oct-1996 |
christos | printf -> kprintf, sprintf -> ksprintf
|
1.27 |
| 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.26 |
| 20-Aug-1996 |
ragge | Modified to get cleaner match/attach code for different parent buses. Fix so that resource wait queueing works. Changed all functions to take a pointer to uba_softc instead of unit number, except for ubareset(). This must be done later.
|
1.25 |
| 20-Jul-1996 |
ragge | CPU determine code. ts driver converted to new config. May work, untested.
|
1.24 |
| 11-Jul-1996 |
ragge | Automatic changing of root device after boot now works.
|
1.23 |
| 01-Jul-1996 |
ragge | Remove code that took care of old config devices. Don't support old config anymore, all devices should use new config by now. Add structures to handle DMA devices using new config. Fixed bug that caused unwanted ubareset's on 11/780.
|
1.22 |
| 08-Apr-1996 |
ragge | Added prototypes to everything. Made all files compile with -Wall.
|
1.21 |
| 18-Mar-1996 |
ragge | Ubareset are now possible, devices that wants it now set it up during autoconfig. ifubareset (if_reset) no longer used, actually it's just a normal ubareset and is now handled like that.
|
1.20 |
| 17-Mar-1996 |
ragge | Convert all devices according to the changes to config.
|
1.19 |
| 09-Mar-1996 |
ragge | Check on which SBI we are frobbing, not always 0.
|
1.18 |
| 07-Mar-1996 |
ragge | Support for VAX 8600/8650 added. Works with lots of Unibus adapters, and will probably work with Massbus adapters as well. (Not tested, but it's the same code as for 11/780). Ubareset's may cause crashes on 8600 also like 11/780, but they are more uncommon. No support for console RL02 yet, but it's likely to come.
|
1.17 |
| 02-Mar-1996 |
ragge | Add support for DW780. Note that ubareset's don't work properly. This is not a problem on other Unibus adapters, but DW780's do ubareset's more often. This needs to be fixed by someone someday.
|
1.16 |
| 11-Feb-1996 |
ragge | Remove csralloc(), not usable anymore. Add ubasetvec() to steal interrupt vectors for device drivers that need more than one vector. Add prototype for it.
|
1.15 |
| 02-Feb-1996 |
mycroft | Fix type errors.
|
1.14 |
| 02-Feb-1996 |
mycroft | Fix #includes.
|
1.13 |
| 02-Feb-1996 |
mycroft | Fix #includes.
|
1.12 |
| 28-Dec-1995 |
thorpej | Move the old-style disk instrumentation "structures" to a central location (sys/kern/subr_disk.c) and note that they should/will be deperecated.
|
1.11 |
| 13-Dec-1995 |
ragge | MicroVAX III support added. Dummy match/attach routines for tmscp. Conversion of uda.c towards new config.
|
1.10 |
| 01-Dec-1995 |
ragge | UBA converted to new config. (uba's now can be *'ed). Bug causing DMA writes to nonexistent memory pages fixed. Code for old config of non-mass-storage devices removed. (they now must use new config).
|
1.9 |
| 10-Nov-1995 |
ragge | Dynamic allocate uba_softc and interrupt vectors. Allow for more that one uba.
|
1.8 |
| 16-Jun-1995 |
ragge | d_reset reference removed. Calling of ubareset must be solved.
|
1.7 |
| 30-Mar-1995 |
ragge | Bug fixes of interrupt handlers.
|
1.6 |
| 23-Feb-1995 |
ragge | Support for uVAXII, new tmscp driver added.
|
1.5 |
| 13-Feb-1995 |
ragge | Fixes for new config.
|
1.4 |
| 25-Nov-1994 |
ragge | New handling of pte:s for physio.
|
1.3 |
| 26-Oct-1994 |
cgd | new RCS ID format.
|
1.2 |
| 08-Oct-1994 |
ragge | Fixed bugs according to old memory system.
|
1.1 |
| 02-Aug-1994 |
ragge | Initial VAX port merging.
|
1.48.4.2 |
| 21-Apr-2001 |
bouyer | Sync with HEAD
|
1.48.4.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.48.2.3 |
| 01-Jul-1999 |
thorpej | Sync w/ -current.
|
1.48.2.2 |
| 21-Jun-1999 |
thorpej | Sync w/ -current.
|
1.48.2.1 |
| 20-Jun-1999 |
thorpej | file uba.c was added on branch chs-ubc2 on 1999-06-21 01:18:55 +0000
|
1.51.2.1 |
| 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
1.55.2.6 |
| 03-Jan-2003 |
thorpej | Sync with HEAD.
|
1.55.2.5 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.55.2.4 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
1.55.2.3 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.55.2.2 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.55.2.1 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.57.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.57.2.2 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.57.2.1 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.59.8.1 |
| 20-Jun-2002 |
gehenna | catch up with -current.
|
1.66.2.6 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.66.2.5 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.66.2.4 |
| 18-Dec-2004 |
skrll | Sync with HEAD.
|
1.66.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.66.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.66.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.70.4.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.70.2.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.71.4.4 |
| 17-Mar-2008 |
yamt | sync with head.
|
1.71.4.3 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.71.4.2 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.71.4.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.73.12.1 |
| 28-Mar-2006 |
tron | Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
|
1.73.10.1 |
| 19-Apr-2006 |
elad | sync with head.
|
1.73.8.1 |
| 01-Apr-2006 |
yamt | sync with head.
|
1.73.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.73.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.74.14.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.75.20.1 |
| 25-Oct-2007 |
bouyer | Sync with HEAD.
|
1.75.16.2 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.75.16.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.75.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.75.2.1 |
| 23-Oct-2007 |
ad | Sync with head.
|
1.76.16.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.76.12.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.77.4.1 |
| 11-Mar-2010 |
yamt | sync with head
|
1.78.4.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.79.36.1 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.79.18.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.80.10.1 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.81.10.5 |
| 05-Apr-2021 |
thorpej | config_match() -> config_probe() for the straight-forward indirect config cases. There are still a few odd balls using config_match() which should be sorted out later.
|
1.81.10.4 |
| 04-Apr-2021 |
thorpej | CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
|
1.81.10.3 |
| 03-Apr-2021 |
thorpej | Give config_attach() the tagged variadic argument treatment and mechanically convert all call sites.
|
1.81.10.2 |
| 21-Mar-2021 |
thorpej | CFARG_IATTR usage audit:
If a device carries only one interface attribute, there is no need to specify it when calling config_search(); that specification is meant only to disambiguate which interface attribute (which is a proxy for "what kind of attach args are being used") is having children attached. cfparent_match() will take care of ensuring that any potential children can attach to one of the parent's iterface attributes, and if the parent only carries one, no disambiguation is necessary.
|
1.81.10.1 |
| 20-Mar-2021 |
thorpej | The proliferation if config_search_*() and config_found_*() combinations is a little absurd, so begin to tidy this up:
- Introduce a new cfarg_t enumerated type, that defines the types of tag-value variadic arguments that can be passed to the various config_*() functions (CFARG_SUBMATCH, CFARG_IATTR, and CFARG_LOCATORS, for now, plus a CFARG_EOL sentinel). - Collapse config_search_*() into config_search() that takes these variadic arguments. - Convert all call sites of config_search_*() to the new signature. Noticed several incorrect usages along the way, which will be audited in a future commit.
|
1.82.8.1 |
| 04-Aug-2021 |
thorpej | Adapt to CFARGS().
|