Home | History | Annotate | Download | only in isa
History log of /src/sys/dev/isa/isa.c
RevisionDateAuthorComments
 1.140  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.139  24-Apr-2021  thorpej branches: 1.139.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.138  21-Aug-2010  jmcneill branches: 1.138.18; 1.138.76;
If the 'no-legacy-devices' property is present and true, skip device
enumeration.
 1.137  19-Aug-2009  cegger branches: 1.137.2; 1.137.4;
build fix: isa_detach_hook() needs isa_chipset_tag_t as first argument.
 1.136  18-Aug-2009  dyoung Let us safely detach the ISA bus and devices attaching to the ISA
bus:

1 Add isadetach() for detaching the ISA bus, and add some helper
routines that release resources held for ISA DMA.

2 In isachilddetached(), forget references to child devices.

While I am here, change ISA_DMA_DRQ_ISFREE(...) == 0 to the simpler
expression, !ISA_DMA_DRQ_ISFREE(...).
 1.135  07-Apr-2009  dyoung Fix spelling: indrect -> indirect.
 1.134  28-Apr-2008  martin branches: 1.134.8; 1.134.14;
Remove clause 3 and 4 from TNF licenses
 1.133  30-Mar-2008  ad branches: 1.133.2; 1.133.4;
Add isa_get_slotcount/isa_set_slotcount to get/set the number of ISA
compatible expansion slots in a system.
 1.132  15-Mar-2008  cube Split device_t and softc for isa(4).
 1.131  09-Dec-2007  jmcneill branches: 1.131.6; 1.131.10;
Merge jmcneill-pm branch.
 1.130  01-Dec-2007  jmcneill branches: 1.130.2; 1.130.4;
aprint-ify isaattach, removes a hard-to-find newline on a boot -z
 1.129  19-Oct-2007  ad branches: 1.129.2;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.128  02-Jan-2007  isaki branches: 1.128.6; 1.128.18; 1.128.20; 1.128.24;
Correct indent.
 1.127  24-Nov-2006  wiz s/independant/independent/, from Zafer.
 1.126  16-Nov-2006  christos __unused removal on arguments; approved by core.
 1.125  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.124  11-Dec-2005  christos branches: 1.124.20; 1.124.22;
merge ktrace-lwp.
 1.123  26-Aug-2005  drochner s/locdesc_t/int/g
 1.122  25-Aug-2005  drochner oops, too much mechanical renaming -- clearly separate searched and
found locators
 1.121  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.120  29-May-2005  christos branches: 1.120.2;
sprinkle const.
 1.119  14-Sep-2004  drochner include "locators.h" explicitely where it is needed, so that
it can be removed in the isavar.h header eventually
 1.118  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.117  18-Aug-2004  drochner allow to detach child devices and (optional selectively) bus rescans,
using the new autoconf functions
 1.116  01-Jan-2003  thorpej branches: 1.116.2;
Use aprint_normal() in cfprint routines.
 1.115  02-Oct-2002  thorpej Fix sizeof and whitespace bug from the script I'm using to do the
CFATTACH_DECL conversion. (Grumble.)
 1.114  02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.113  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.112  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.111  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.110  07-Jan-2002  thorpej branches: 1.110.6;
Overhaul of the ISA autoconfiguration code to support direct
configuration of devices logically attached to the ISA bus:

* Change the isa_attach_args to have arrays of io, mem, irq, drq
resources.
* Add a "pnpnames" and a linked list of "pnpcompatnames" to the
isa_attach_args. If either of these members are non-NULL,
direct configuration of the bus is being performed. Add an
ISA_DIRECT_CONFIG() macro to test for this.
* Drivers are not allowed to modify the isa_attach_args unless
direct configuration is not being performed and the probe fucntion
is returning success.
* Adapt device drivers -- currently, all driver probe routines return
"no match" if ISA_DIRECT_CONFIG() evaluates to true.
 1.109  13-Nov-2001  lukem add RCSID
 1.108  19-Jun-2001  fvdl branches: 1.108.2;
ifdef NISAPNP -> if NISAPNP > 0
 1.107  29-Mar-2000  simonb branches: 1.107.6;
Don't need to include <sys/conf.h> here.
 1.106  19-Feb-1999  mycroft branches: 1.106.8;
Kill vestiges of isa_establish().
 1.105  15-Aug-1998  mycroft Assign copyrights to TNF.
 1.104  15-Aug-1998  mycroft Make copyright notices with my name consistent.
 1.103  30-Jul-1998  christos Use the previously committed pnp hook.
 1.102  11-Jun-1998  leo branches: 1.102.2;
Don't call isa_dmainit() when NISADMA == 0.
 1.101  09-Jun-1998  thorpej Change the ISA DMA API to take an isa_chipset_tag_t rather than
a struct device * corresponding to the ISA bus device. The ISA DMA
controller driver functions have been renamed and now take a struct
isa_dma_state *, and are called indirectly by machine-dependent code
which provides the DMA state.

These changes allow e.g. `ofisa' (the OpenFirmware configuration
mechanism for the ISA bus, used by e.g. Sharks) to use the MI ISA
DMA controller code.
 1.100  05-May-1998  drochner Remove BROKEN_INDIRECT_CONFIG relicts.
 1.99  15-Apr-1998  thorpej Remove the `delay port' stuff since nothing uses it anymore (can't reliably
use it on modern chipsets).
 1.98  12-Jan-1998  thorpej Update for config changes.
 1.97  26-Aug-1997  augustss XXX Add a drq2 locator for the ISA bus. Many sound cards need
two DMA channels to do e.g. full-duplex. This allows
a way of specifying the second channel in a sane way.
THIS IS TEMPORARY. The drq2 locator will go away when
the locator system has been changed to allow multiple
values per locator.
 1.96  17-Jul-1997  jtk branches: 1.96.2;
use locator defines in "locators.h" to index cf_loc[]

still to be done and/or decided not to be done: replace all *UNK uses in
isa code with the native names from locators.h
 1.95  06-Jun-1997  thorpej Pull thorpej-bus-dma branch into mainline.
 1.94  26-Jan-1997  cgd branches: 1.94.6;
split isasearch (!__BROKEN_INDIRECT_CONFIG) completely off of
isascan (__BROKEN_INDIRECT_CONFIG), and attempt multiple match/attach
of cloning devices in isasearch(). (If a match/attach succeeds for
a cloning device, try it again.)
 1.93  08-Dec-1996  cgd The last change fixed a last-minute goof in the __BROKEN_INDIRECT_CONFIG
case, but added a typo (extra parenthesis) in the !__BROKEN_INDIRECT_CONFIG
case. fix it.
 1.92  05-Dec-1996  cgd fix a (fatal) bug in the __BROKEN_INDIRECT_CONFIG changes checked
in yesterday. (got a little bit careless with #ifdef'd variables.)
 1.91  05-Dec-1996  cgd update these so they compile whether or not __BROKEN_INDIRECT_CONFIG
is defined.
 1.90  23-Nov-1996  cgd restrict the FSTATE_STAR prohibition (and panic) to the i386 only. Cloning
devices actually do make sense on indirect-config busses, because you
might be able to have more than one of the busses! In addition, they're
useful because they don't require unit numbers to be wired down, so you
could e.g. have vga* at indirect? and vga* at direct?, and have the first
one found be unit number zero. Finally, devices which can divine their
own ports numbers, etc., actually should be cloning, even if you know you'll
only have one bus that they can live on.
 1.89  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.88  13-Oct-1996  christos backout kprintf changes
 1.87  10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.86  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.85  14-May-1996  thorpej #include <machine/intr.h> to get IST_* definitions.
 1.84  12-May-1996  mycroft Use intr.h.
 1.83  08-May-1996  thorpej Correct a couple of comments ... port 0x84 produces a 1.25us delay when
read, not 2.5us. (I must have been confused; thanks Charles, for
correcting me.)
 1.82  05-May-1996  thorpej Map port 0x84 (which is used to generate a 2.6us delay) in isaattach().
Since this port is needed by at least a few drivers, export its i/o handle
via isa_attach_args.
 1.81  29-Apr-1996  christos - prototype fixes
 1.80  11-Apr-1996  cgd on non-i386 systems, include <machine/intr.h> (per charles's proposal on
tech-kern (?)), to get the IPL_* and IST_* types. pass the machine-dependent
cookie given at attach time on to sub-devices, so they can use it to access
the interrupt functions properly.
 1.79  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.78  08-Mar-1996  cgd remember the bus_chipset_tag_t given by our parent, and pass it on to
children.
 1.77  28-Feb-1996  cgd make ISA bus match/attach, and sub-device configuration machine-independent.
 1.76  16-Jan-1996  mycroft Make the panic message for ISA clone devices more informative.
 1.75  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.74  07-Jun-1995  cgd make match/attach routines and cfdriver struct mi
 1.73  17-May-1995  cgd isa softc structs are larger than 'struct device'
 1.72  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.71  16-Jan-1995  mycroft Remove outdated comment.
 1.70  02-Jan-1995  mycroft Don't assume ia_maddr is in the hole.
 1.69  18-Nov-1994  mycroft Stylistic changes.
 1.68  18-Nov-1994  mycroft Convert port, IRQ, and DRQ numbers to ints.
 1.67  14-Nov-1994  mycroft Map IRQ 2 to IRQ 9.
 1.66  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.65  04-Nov-1994  mycroft Use kvtop() rather than address arithmetic in a couple of places.
 1.64  04-Nov-1994  mycroft Add a new function config_scan(), which just calls a particular function
with each plausibly cfdata, ignoring the priority mechanism completely.
 1.63  04-Nov-1994  mycroft Commit incest with the config system for this one specific case.
 1.62  04-Nov-1994  mycroft Set ia_irq correctly.
 1.61  04-Nov-1994  mycroft Correct an oversight.
 1.60  04-Nov-1994  mycroft Oops; forgot isacd.
 1.59  03-Nov-1994  mycroft New version using standard config_*() functions.
 1.58  27-Oct-1994  cgd new RCS ID format.
 1.57  09-Oct-1994  mycroft Remove unneeded #includes.
 1.56  07-Oct-1994  mycroft Fix initial allocation of dev array, and simplify the code
slightly.
 1.55  05-May-1994  cgd branches: 1.55.2;
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.54  03-May-1994  mycroft Forgot to munge the #includes in last commit.
 1.53  03-May-1994  mycroft Move beep junk to clock.c.
 1.52  24-Apr-1994  mycroft Rename two files.
 1.51  22-Apr-1994  mycroft Separate DMA functions.
 1.50  21-Apr-1994  mycroft Fix typo.
 1.49  07-Apr-1994  mycroft Implement dynamic IRQ configuration and IRQ sharing. Inline spl*() calls.
Reorganize and clean up the relevant code.
 1.48  03-Apr-1994  mycroft Clean up #includes.
 1.47  31-Mar-1994  mycroft Remove an old hack that now just causes a small memory leak during autoconfig.
 1.46  29-Mar-1994  mycroft New autoconfig mechanism. Hacked at the moment to use old config(8), but
look mostly like config.new to drivers.
 1.45  12-Mar-1994  mycroft Rearrange top-level configuration to be more consistent.
 1.44  10-Mar-1994  mycroft Update for new config; handles subdevices differently.
 1.43  10-Mar-1994  mycroft Add isa_dmaabort().
 1.42  09-Mar-1994  mycroft Back out previous change for now.
 1.41  08-Mar-1994  mycroft Inline spl*() calls.
 1.40  06-Mar-1994  mycroft Better delay() from magnum branch.
 1.39  06-Mar-1994  mycroft DELAY() --> delay(). This is not a macro.
 1.38  01-Mar-1994  mycroft Remove some dead code.
 1.37  01-Mar-1994  mycroft Clean up DMA code. Mask and unmask channels. Warn if terminal count not
reached.
 1.36  22-Feb-1994  mycroft Add clockmask.
 1.35  22-Feb-1994  mycroft Add clockmask.
 1.34  16-Feb-1994  mycroft Move elink_reset() into a separate file, and add a generic elink_idseq().
 1.33  16-Feb-1994  hpeyerl Add common reset function so if_ep and if_ie don't reset each-other.
(this is a 3commonality)
 1.32  20-Dec-1993  mycroft Use cpufunc.h only where (currently) needed.
 1.31  20-Dec-1993  mycroft Canonicalize all #includes, and add pio.h where appropriate.
 1.30  17-Dec-1993  mycroft From magnum branch:
Remove Jolitz's netisr kluge. Make sure cpl == 0 really means base priority.
Other minor cleanup.
 1.29  05-Nov-1993  cgd note that use of splnone() is prolly bogus; splnone() itself is bogus,
so it's use is. 8-)
 1.28  28-Aug-1993  brezak branches: 1.28.2;
Add find_isadev() and have sysbeep() use common defines.
 1.27  08-Aug-1993  cgd there are some devices out there which use... NO I/O PORTS!
 1.26  11-Jul-1993  mycroft Make splimp = splnet | spltty, and get rid of SLIP kluge for splnet and
spltty.
 1.25  07-Jul-1993  cgd delete inclusion of rlist.h again. grr.
 1.24  06-Jul-1993  deraadt clean up code for timeout/untimeout/wakeup prototypes.
 1.23  06-Jul-1993  cgd get rid of extraneous inclusion of rlist.h
 1.22  30-Jun-1993  andrew Updated comments.
 1.21  27-Jun-1993  andrew ANSIfications.
 1.20  20-Jun-1993  deraadt print "maddr 0xd0000 msize 65536" as "maddr 0xd0000-0xdffff" instead.
 1.19  16-Jun-1993  mycroft Fix typo.
 1.18  16-Jun-1993  mycroft Make sysbeep() take a frequency, not a timer count, and add constants
BEEP_FREQ and BEEP_TIME which can be overridden in the config file.
 1.17  15-Jun-1993  mycroft Move definitions of TIMER_FREQ to timerreg.h, and fix value of CF for DELAY().
 1.16  15-Jun-1993  mycroft Clean up beep code a miniscule amount, add interrupt protection, and
make multiple beeps generate a continuous tone.
 1.15  06-Jun-1993  cgd incorporate Bruce Evans' interrupt changes, as hacked by Rod grimes,
for patchkit patch 158. it appears to work well.
 1.14  28-May-1993  deraadt 1. It is now possible to build a kernel that does not have a pc0 device driver.
2. "press any key to reboot" reads the key from the console.
3. wddump() still needs a non-blocking getc() routine (or flush)
 1.13  22-May-1993  cgd add rcsids to everything and clean up headers
 1.12  11-May-1993  deraadt Whoops. One more 0x0ffff to expunge..
 1.11  11-May-1993  deraadt 1. id_irq is a u_short
2. "irq ?" sets it to (u_short)-1
3. "irq #" sets it to (1<<#)
4. not specifying an interrupt sets it to 0.

Until someone else comes up with a better scheme, that's the way it is.
If you have a driver that turns the interrupt off, set it to ZERO.

If, after calling XXprobe(), id_irq is still (u_short)-1, that is the same
as if probe() failed.
 1.10  08-May-1993  deraadt multiple master controllers would probe tthe first one N times instead of
once each. never mind not worth worrying about what i;m talking about.
 1.9  07-May-1993  cgd no irq == -1, or, actually, 0x0ffff (f*ing unsigned short...).
this would break devices w/o interrupts (like lpa).
 1.8  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.7  04-May-1993  cgd fixed loopback == nuke problem.
This fix is probably not optimal, but it works.
 1.6  15-Apr-1993  deraadt ioconf changes, see previous cvs's that dumped core
 1.5  09-Apr-1993  cgd make printing of i/o addresses a bit prettier, and fix off-by-one error.
 1.4  09-Apr-1993  cgd from Rodney W. Grimes (rgrimes@agora.rain.com) (patchkit patch 117):

This patch adds the symbol names to icu.s that vmstat expects
the interrupt counters to be called. It also adds code to config
so that the names of the interrupts are written at the end of vectors.s
so vmstat can report real device names. It also cleans up and enables
the logging of stray interrupts. The counters for false interrupts
are added but the fix for them is not (the fix I have is not done
very good.) A false interrupt is when a device asserts it's interrupt
signal, then removes it before the 8259 can latch it. This is the number
one cause of stray IRQ7's and IRQ15's.

Additional device probe information is now printed. This includes
ending I/O address (many drivers do not return the correct value from a
probe this still needs to be fixed), memory address and size, driver
flags passed in by config.
 1.3  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.2  21-Mar-1993  cgd after 0.2.2 "stable" patches applied
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.28.2.22  01-Dec-1993  mycroft Remove silly hack to force a delay between beeps.
 1.28.2.21  08-Nov-1993  mycroft Minor cleanup.
 1.28.2.20  31-Oct-1993  mycroft IRQ_SLAVE should not be enabled here.
 1.28.2.19  27-Oct-1993  mycroft Arrange that IF is on but we are at splhigh() during autoconfig. Clear
ipending in isa_flushintrs().
 1.28.2.18  22-Oct-1993  mycroft Remove isa_nmi().
 1.28.2.17  22-Oct-1993  mycroft Remove interrupt handling code.
 1.28.2.16  18-Oct-1993  mycroft Preserve the order in which interrupt handlers on a particular are registered.
 1.28.2.15  17-Oct-1993  mycroft Minor cleanup.
 1.28.2.14  16-Oct-1993  mycroft Add isa_establish(), for all it's worth (which is to say, nothing).
 1.28.2.13  16-Oct-1993  mycroft Don't forget to enable the interrupt line when registering a handler.
Change the first argument to isa_mem{check,alloc}() to a caddr_t.
 1.28.2.12  16-Oct-1993  mycroft Add intr_establish(), and isa_intrmaskwickedness() to set up interrupt masks
after device configuration.
 1.28.2.11  15-Oct-1993  mycroft Rename some functions to match BSDI.
 1.28.2.10  15-Oct-1993  mycroft isa_discoverintr(): Ignore IRQ_SLAVE bit in ICU1.
 1.28.2.9  15-Oct-1993  mycroft Flush any pending interrupts at the end of autoconfig. Make isa_defaultirq
static.
 1.28.2.8  15-Oct-1993  mycroft Add isa_discoverintr().
 1.28.2.7  14-Oct-1993  mycroft Remove DMA gunk. Rewrite IDT initialization to use a table from locore.
Remove some defunct configuration code. Don't splhigh() in sysbeep() and
sysbeepstop().
 1.28.2.6  11-Oct-1993  mycroft #include pio.h where needed, and remove cpufunc.h.
 1.28.2.5  09-Oct-1993  mycroft Remove netmask kluge.
 1.28.2.4  06-Oct-1993  mycroft Announce quite clearly if ia_irq is still IRQUNK in isaprint() (if DIAGNOSTIC).
 1.28.2.3  30-Sep-1993  mycroft Print a warning if probe function leaves irq as IRQUNK with option DIAGNOSTIC.
 1.28.2.2  24-Sep-1993  mycroft clock.c: Finish conversion. Make rtcput() work if VRT bit not set. Speed up
time conversion in delay().
fd.c: Minor changes to autoconfig. Use dv_parent rather than storing another
pointer to the fdc_softc in each fd_softc. Change disk label stuff for our
kernel.
icu.s: Make splx() and splnone() return previous cpl for now.
isa.c: Minor autoconfig changes.
isa.h: rtcin() is now nvram() and is declare in nvram.h. Make isaphysmem a
caddr_t.
pccons.c: XXXX: Maybe we should insist they open /dev/io now.
timerreg.h: #define TIMER_NPORTS.
wd.c: Delete unused wdnoreloc() and wddospart(), and use remaining two bits in
unit number. struct disk --> struct wd_softc. struct board --> struct
wdc_softc. Still needs much work.
 1.28.2.1  14-Sep-1993  mycroft New i386 code.
 1.55.2.2  11-Oct-1994  mycroft Update from trunk.
 1.55.2.1  07-Oct-1994  mycroft Update from trunk.
 1.94.6.1  13-May-1997  thorpej - Pass the bus dma tag to children.
- Map the on-board ISA DMA controller registers and the DMA page registers.
The "delay port" lives in this range, so subregion it.
 1.96.2.1  27-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.102.2.1  08-Aug-1998  eeh Revert cdevsw mmap routines to return int.
 1.106.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.107.6.6  03-Jan-2003  thorpej Sync with HEAD.
 1.107.6.5  18-Oct-2002  nathanw Catch up to -current.
 1.107.6.4  28-Feb-2002  nathanw Catch up to -current.
 1.107.6.3  11-Jan-2002  nathanw More catchup.
 1.107.6.2  14-Nov-2001  nathanw Catch up to -current.
 1.107.6.1  21-Jun-2001  nathanw Catch up to -current.
 1.108.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.108.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.110.6.1  06-Apr-2002  eeh Convert to support attachment through devprops as well.
 1.116.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.116.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.116.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.116.2.2  03-Sep-2004  skrll Sync with HEAD
 1.116.2.1  25-Aug-2004  skrll Sync with HEAD.
 1.120.2.7  17-Mar-2008  yamt sync with head.
 1.120.2.6  21-Jan-2008  yamt sync with head
 1.120.2.5  07-Dec-2007  yamt sync with head
 1.120.2.4  27-Oct-2007  yamt sync with head.
 1.120.2.3  26-Feb-2007  yamt sync with head.
 1.120.2.2  30-Dec-2006  yamt sync with head.
 1.120.2.1  21-Jun-2006  yamt sync with head.
 1.124.22.2  10-Dec-2006  yamt sync with head.
 1.124.22.1  22-Oct-2006  yamt sync with head
 1.124.20.2  12-Jan-2007  ad Sync with head.
 1.124.20.1  18-Nov-2006  ad Sync with head.
 1.128.24.1  25-Oct-2007  bouyer Sync with HEAD.
 1.128.20.3  23-Mar-2008  matt sync with HEAD
 1.128.20.2  09-Jan-2008  matt sync with HEAD
 1.128.20.1  06-Nov-2007  matt sync with HEAD
 1.128.18.6  08-Dec-2007  jmcneill Rename pnp(9) -> pmf(9), as requested by many.
 1.128.18.5  01-Dec-2007  jmcneill Sync with HEAD.
 1.128.18.4  06-Nov-2007  joerg Refactor PNP API:
- Make suspend/resume directly a device functionality. It consists of
three layers (class logic, device logic, bus logic), all of them being
optional. This replaces D0/D3 transitions.
- device_is_active returns true if the device was not disabled and was
not suspended (even partially), device_is_enabled returns true if the
device was enabled.
- Change pnp_global_transition into pnp_system_suspend and
pnp_system_resume. Before running any suspend/resume handlers, check
that all currently attached devices support power management and bail
out otherwise. The latter is not done for the shutdown/panic case.
- Make the former bus-specific generic network handlers a class handler.
- Make PNP message like volume up/down/toogle PNP events. Each device
can register what events they are interested in and whether the handler
should be global or not.
- Introduce device_active API for devices to mark themselve in use from
either the system or the device. Use this to implement the idle handling
for audio and input devices. This is intended to replace most ad-hoc
watchdogs as well.
- Fix somes situations in which audio resume would lose mixer settings.
- Make USB host controllers better deal with suspend in the light of
shared interrupts.
- Flush filesystem cache on suspend.
- Flush disk caches on suspend. Put ATA disks into standby on suspend as
well.
- Adopt drivers to use the new PNP API.
- Fix a critical bug in the generic cardbus layer that made D0->D3
break.
- Fix ral(4) to set if_stop.
- Convert cbb(4) to the new PNP API.
- Apply the PCI Express SCI fix on resume again.
 1.128.18.3  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.128.18.2  05-Oct-2007  joerg Add generic ISA power handler.
 1.128.18.1  07-Aug-2007  jmcneill Use pnp_generic_power
 1.128.6.1  23-Oct-2007  ad Sync with head.
 1.129.2.2  27-Dec-2007  mjf Sync with HEAD.
 1.129.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.130.4.1  11-Dec-2007  yamt sync with head.
 1.130.2.1  26-Dec-2007  ad Sync with head.
 1.131.10.2  02-Jun-2008  mjf Sync with HEAD.
 1.131.10.1  03-Apr-2008  mjf Sync with HEAD.
 1.131.6.1  24-Mar-2008  keiichi sync with head.
 1.133.4.5  09-Oct-2010  yamt sync with head
 1.133.4.4  16-Sep-2009  yamt sync with head
 1.133.4.3  19-Aug-2009  yamt sync with head.
 1.133.4.2  04-May-2009  yamt sync with head.
 1.133.4.1  16-May-2008  yamt sync with head.
 1.133.2.1  18-May-2008  yamt sync with head.
 1.134.14.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.134.8.1  28-Apr-2009  skrll Sync with HEAD.
 1.137.4.1  05-Mar-2011  rmind sync with head
 1.137.2.1  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.138.76.8  05-Apr-2021  thorpej Treat config_probe() as if it were a boolean function; don't compare
return value > 0... except for the odd balls, which are now really easy
to spot.
 1.138.76.7  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.138.76.6  04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.138.76.5  03-Apr-2021  thorpej config_attach_loc() -> config_attach() with CFARG_LOCATORS argument.
 1.138.76.4  28-Mar-2021  thorpej - Use designated initializers for the wildcard[] array in isaattach().
- No need to be explicit about interface attribute.
 1.138.76.3  22-Mar-2021  thorpej Audit CFARG_IATTR in config_found() calls, and remove it in situations
where the interface attribute is not ambiguous.
 1.138.76.2  22-Mar-2021  thorpej Mechanical conversion of config_found_sm_loc() -> config_found().
CFARG_IATTR usage needs to be audited.
 1.138.76.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.138.18.1  12-Sep-2012  tls Initial snapshot of work to eliminate 64K MAXPHYS. Basically works for
physio (I/O to raw devices); needs more doing to get it going with the
filesystems, but it shouldn't damage data.

All work's been done on amd64 so far. Not hard to add support to other
ports. If others want to pitch in, one very helpful thing would be to
sort out when and how IDE disks can do 128K or larger transfers, and
adjust the various PCI IDE (or at least ahcisata) drivers and wd.c
accordingly -- it would make testing much easier. Another very helpful
thing would be to implement a smart minphys() for RAIDframe along the
lines detailed in the MAXPHYS-NOTES file.
 1.139.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed