Home | History | Annotate | only in /src/sys/arch/arm/iomd
History log of /src/sys/arch/arm/iomd
RevisionDateAuthorComments
 1.3 17-Aug-2006  bjh21 There's no need to expose arm/iomd/vidc.h to userland any more, since
<machine/vconsole.h> has gone now.
 1.2 26-Nov-2002  lukem branches: 1.2.22; 1.2.36; 1.2.40;
Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more.
 1.1 17-Dec-2001  bjh21 branches: 1.1.2; 1.1.4;
Ensure that vidc.h gets installed somewhere -- Xarm32vidc needs it to compile.
 1.1.4.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.4.1 17-Dec-2001  thorpej file Makefile was added on branch kqueue on 2002-01-10 19:37:57 +0000
 1.1.2.3 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.2.1 17-Dec-2001  nathanw file Makefile was added on branch nathanw_sa on 2002-01-08 00:23:13 +0000
 1.2.40.1 03-Sep-2006  yamt sync with head.
 1.2.36.1 09-Sep-2006  rpaulo sync with head
 1.2.22.1 30-Dec-2006  yamt sync with head.
 1.23 25-Jan-2004  bjh21 Remove the "beep" driver. Its function is largely subsumed by a
combination of audio(4), wskbd(4) and audiobell(). Proposed a week
ago on port-acorn32 with no reaction whatever.
 1.22 17-Jan-2004  bjh21 Adjust vt(4) (WHICH MUST DIE) to the new way of handling bells on
NetBSD/acorn32.
 1.21 17-Jan-2004  bjh21 Use audiobell for system beeps on acorn32 when vidcaudio(4) is compiled in.
Remove the vestigal sysbeep device and replace it with the same kind of
mechanism that pckbd(4) uses to find the bell, which is just as ugly, but
more standard. Adapt beep(4) to the new world (though I'm not sure it
deserves to live).
 1.20 17-Jan-2004  bjh21 More light KNF.
 1.19 17-Jan-2004  bjh21 Light KNF.
 1.18 03-May-2003  wiz branches: 1.18.2;
DMA, not dma nor Dma.
 1.17 01-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.16 23-Oct-2002  jdolecek merge kqueue branch into -current

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

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

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.15 02-Oct-2002  thorpej branches: 1.15.2;
Add trailing ; to CFATTACH_DECL
 1.14 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.13 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.12 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.11 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.10 16-Jun-2002  bjh21 Un-__P, ANSIfy and light KNF.
 1.9 16-Jun-2002  bjh21 sc_iobase wasn't used, except to initialiase it at attach time. Kill it.
Hence remove all uses of "aux".
 1.8 10-Apr-2002  thorpej branches: 1.8.2;
vm_offset_t -> vaddr_t,paddr_t
 1.7 04-Apr-2002  thorpej Don't need to mask w/ PG_FRAME.
 1.6 10-Mar-2002  bjh21 __RCSID -> __KERNEL_RCSID
 1.5 18-Feb-2002  bjh21 Include <arch/arm/iomd/beepvar.h> for beep_generate() prototype.
Include <machine/conf.h> for cdevsw function prototypes.
Correct argument types of beepioctl().
Add in-core RCSID.
 1.4 27-Nov-2001  thorpej branches: 1.4.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.3 22-Nov-2001  thorpej Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
 1.2 17-Oct-2001  reinoud branches: 1.2.4;
Sad point .... remove RC7500 support from the iomd directory in the
arch/arm/iomd/* .... the RC7500 isnt really an iomd/vidc machine but has
different video/audio chip and was kind of hardwired/hacked into the other
chip drivers.
 1.1 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.2.4.9 11-Nov-2002  nathanw Catch up to -current
 1.2.4.8 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.7 17-Sep-2002  nathanw Catch up to -current.
 1.2.4.6 20-Jun-2002  nathanw Catch up to -current.
 1.2.4.5 17-Apr-2002  nathanw Catch up to -current.
 1.2.4.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 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 17-Oct-2001  nathanw file beep.c was added on branch nathanw_sa on 2002-01-08 00:23:13 +0000
 1.4.2.6 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.4.2.5 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.4.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.4.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.4.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.2.1 27-Nov-2001  thorpej file beep.c was added on branch kqueue on 2002-01-10 19:37:58 +0000
 1.8.2.2 14-Jul-2002  gehenna catch up with -current.
 1.8.2.1 17-May-2002  gehenna Add device switch.
 1.15.2.1 24-Oct-2002  bjh21 Sync with trunk.
 1.18.2.2 03-Aug-2004  skrll Sync with HEAD
 1.18.2.1 03-Jul-2003  wrstuden lwp-ify a lot of the arm drivers. Needed to get acorn32/GENERIC compiling.
 1.2 25-Jan-2004  bjh21 Remove the "beep" driver. Its function is largely subsumed by a
combination of audio(4), wskbd(4) and audiobell(). Proposed a week
ago on port-acorn32 with no reaction whatever.
 1.1 18-Feb-2002  bjh21 branches: 1.1.2; 1.1.8; 1.1.22;
Add beepvar.h, to hold a prototype for beep_generate().
 1.1.22.1 03-Aug-2004  skrll Sync with HEAD
 1.1.8.2 16-Mar-2002  jdolecek Catch up with -current.
 1.1.8.1 18-Feb-2002  jdolecek file beepvar.h was added on branch kqueue on 2002-03-16 15:56:10 +0000
 1.1.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.2.1 18-Feb-2002  nathanw file beepvar.h was added on branch nathanw_sa on 2002-02-28 04:07:35 +0000
 1.20 08-May-2019  isaki Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c
 1.19 29-Feb-2008  chris branches: 1.19.92; 1.19.94;
Misc updates to hopefully improve vidcvideo console usability:
* add virtual consoles by using wsdisplay_vcons
* make use of generic scrollback support for consoles
* enable colour support for vidcvideo consoles
* use the default NetBSD font, rather than picking a sony one
* make kernel output green, so it's obvious.

This was tested at 800x600 in 8bpp on an A7000+ and 2MB VRAM RiscPC.

To actually benefit from these changes wscons=YES needs to be added to
your rc.conf
 1.18 19-Aug-2006  bjh21 branches: 1.18.32; 1.18.34; 1.18.54; 1.18.58;
Arrange things so that if MONITOR isn't defined in the kernel configration,
we use the standard mode list from videomode.c rather than one generated
by makemodes.awk. This is less useful than it might be since without a useful
frame rate from the bootloader we're likely to end up choosing a screen mode
that's either flickery or too fast for the monitor (or DRAM bandwidth).
 1.17 14-Aug-2006  bjh21 Nothing in the tree uses NVIDCAUDIO or NVIDC, so stop generating them.
 1.16 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.15 11-Dec-2005  christos branches: 1.15.4; 1.15.8;
merge ktrace-lwp.
 1.14 10-Jan-2005  kent branches: 1.14.10;
merge kent-audio1 branch, which introduces audio filter pipeline to the MI
audio framework


Summary of changes:

* struct audio_params
- remove sw_code, factor, factor_denom, hw_sample_rate,
hw_encoding ,hw_precision, and hw_channels. Conversion information
is conveyed by stream_filter_list_t.
- change the type of sample_rate: u_long -> u_int
- add `validbits,' which represents the valid data size in
precision bits. It is required in order to distinguish 24/32bit
from 24/24bit or 32/32bit.

* audio_hw_if
- add two parameters to set_params()
stream_filter_list_t *pfil, stream_filter_list *rfil
A HW driver should set filter recipes for requested formats
- constify audio_params parameters of trigger_output() and
trigger_input(). They represent audio formats for the hardware.
- make open() and close() optional
- add int (AUMODE_PLAY or AUMODE_RECORD) and audio_params_t parameters
to round_blocksize()

* sw_code is replaced with stream_filter_t.
stream_filer_t converts audio data in an input buffer and writes
into another output buffer unlike sw_code, which converts data in
single buffer.
converters in dev/auconv.c, dev/mulaw.c, dev/aurateconv.c,
dev/tc/bba.c, dev/ic/msm6258.c, and arch/arm/iomd/vidcaudio.c are
reimplemented as stream_filter_t

* MI audio
- audiosetinfo() builds filter pipelines from stream_filter_list_t
filled by audio_hw_if::set_params()
- audiosetinfo() returns with EINVAL if mmapped and set_params()
requests filters
- audio_write(), audio_pint(), and audio_rint() invoke a filter
pipeline.
- ioctl() for FIONREAD, AUDIO_WSEEK, AUDIO_GETIOFFS,
AUDIO_GETOOFFS, and audio_prinfo::{seek,samples} for
AUDIO_GETINFO handle values for a buffer nearest to userland.

* add `struct device *' parameter to ac97_attach()

* all of audio HW drivers follow audio_hw_if and ac97 changes
 1.13 13-Mar-2004  bjh21 branches: 1.13.4;
Rename arch/acorn32/dev/wskbdmap_mfii.c to arch/acorn32/dev/wskbdmap_mfii_rpc.c
to avoid config(8) confusion with dev/pckbport/wskbdmap_mfii.c.
 1.12 13-Mar-2004  bjh21 Remove busmouse(4) drivers. Everyone should be using wsmouse(4) these days.
 1.11 13-Mar-2004  bjh21 Remove pointless comments
 1.10 13-Mar-2004  bjh21 Add support for using the MI pckbd and pms drivers with the IOMD keyboard
and mouse ports, with a new driver, iomdkbc(4).
 1.9 25-Jan-2004  bjh21 Remove another mention of "beep".
 1.8 25-Jan-2004  bjh21 Remove mentions of "beep" driver.
 1.7 17-Jan-2004  bjh21 Use audiobell for system beeps on acorn32 when vidcaudio(4) is compiled in.
Remove the vestigal sysbeep device and replace it with the same kind of
mechanism that pckbd(4) uses to find the bell, which is just as ugly, but
more standard. Adapt beep(4) to the new world (though I'm not sure it
deserves to live).
 1.6 03-Jan-2004  chris Add conf framework support for riscstation. Add a rsbus as this allows
acccesses with addresses shifted by the amount specified in the cookie.

Also make the inclusion of the wscons file the resposibility of whoever
includes files.iomd. (found while attempting to checking riscstation
support into evbarm)
 1.5 01-Jan-2004  bjh21 The lmcaudio driver was only ever used on the RC7500, which we don't support
these days. Let the CVS history be its only memorial.
 1.4 31-Dec-2003  bjh21 vidcaudio(4) now needs mulaw and aurateconv.
 1.3 06-Oct-2003  thorpej New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.2 16-Jun-2002  bjh21 branches: 1.2.2; 1.2.4; 1.2.6; 1.2.14;
None of the children of vidc now use their aux pointer, so there's no need
to set it, and vidcprint isn't needed to print it. G/C all that code, and
most of the rest of vidcsearch too.
This also means that the locators on vidc's children are unused, so G/C them
as well.
 1.1 16-Jun-2002  bjh21 Pull out config(8) input for arch/arm/iomd code into files.iomd, since that's
clearly where it belongs. Normalise the whitespace in the moved text.
 1.2.14.4 17-Jan-2005  skrll Sync with HEAD.
 1.2.14.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.14.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.14.1 03-Aug-2004  skrll Sync with HEAD
 1.2.6.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.6.1 16-Jun-2002  jdolecek file files.iomd was added on branch kqueue on 2002-09-06 08:32:42 +0000
 1.2.4.2 14-Jul-2002  gehenna catch up with -current.
 1.2.4.1 16-Jun-2002  gehenna file files.iomd was added on branch gehenna-devsw on 2002-07-14 17:45:55 +0000
 1.2.2.2 20-Jun-2002  nathanw Catch up to -current.
 1.2.2.1 16-Jun-2002  nathanw file files.iomd was added on branch nathanw_sa on 2002-06-20 03:38:10 +0000
 1.13.4.1 03-Jan-2005  kent adopt the filter pipeline framework
 1.14.10.2 17-Mar-2008  yamt sync with head.
 1.14.10.1 30-Dec-2006  yamt sync with head.
 1.15.8.1 03-Sep-2006  yamt sync with head.
 1.15.4.1 09-Sep-2006  rpaulo sync with head
 1.18.58.1 03-Apr-2008  mjf Sync with HEAD.
 1.18.54.1 24-Mar-2008  keiichi sync with head.
 1.18.34.1 23-Mar-2008  matt sync with HEAD
 1.18.32.2 21-Mar-2008  chris Sync with head.
 1.18.32.1 09-Feb-2008  chris Add initial reworking of acorn32 to use new interrupt code.

Note that cats probably won't work currently as acorn32 changed the way
that the pic is registered, it has to provide the irq lines as on acorn32
we attach the iomd after we need to register irqs for the pioc. So we
setup the irqs for iomd before malloc etc are available. This needs
to be fixed.

More work is still needed to update most of the podulebus drivers.
First I need to add podulebus wrapper for interrupts that handles the
maskaddr and maskbits. Exposing them to the common irq code is wrong.
 1.19.94.1 05-May-2019  isaki Remove obsoleted au{,rate,vol}conv and mulaw attributes.
audio provides the equivalent of them inseparably.
 1.19.92.1 10-Jun-2019  christos Sync with HEAD
 1.9 06-Oct-2003  thorpej New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.8 15-Jul-2003  lukem __KERNEL_RCSID()
 1.7 01-Jan-2003  thorpej branches: 1.7.2;
Use aprint_normal() for cfprint routines.
 1.6 23-Oct-2002  jdolecek merge kqueue branch into -current

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

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

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.5 27-Sep-2002  thorpej branches: 1.5.2;
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.4 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.3 18-Feb-2002  bjh21 branches: 1.3.8;
Pull in <machine/conf.h> to get prototypes for cdevsw functions, and correct
the signature of iicioctl() appropriately.
 1.2 23-Nov-2001  thorpej branches: 1.2.2;
Use <arm/cpufunc.h>, not <machine/cpufunc.h>.
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.7 03-Jan-2003  thorpej Sync with HEAD.
 1.1.4.6 11-Nov-2002  nathanw Catch up to -current
 1.1.4.5 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.4 17-Sep-2002  nathanw Catch up to -current.
 1.1.4.3 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file iic.c was added on branch nathanw_sa on 2002-01-08 00:23:13 +0000
 1.2.2.4 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 23-Nov-2001  thorpej file iic.c was added on branch kqueue on 2002-01-10 19:37:59 +0000
 1.3.8.1 17-May-2002  gehenna Add device switch.
 1.5.2.1 24-Oct-2002  bjh21 Sync with trunk.
 1.7.2.2 03-Aug-2004  skrll Sync with HEAD
 1.7.2.1 03-Jul-2003  wrstuden lwp-ify a lot of the arm drivers. Needed to get acorn32/GENERIC compiling.
 1.2 06-Oct-2003  thorpej New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.24;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file iic.h was added on branch kqueue on 2002-01-10 19:37:59 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file iic.h was added on branch nathanw_sa on 2001-10-05 22:27:41 +0000
 1.7 06-Oct-2003  thorpej New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.6 15-Jul-2003  lukem __KERNEL_RCSID()
 1.5 02-Oct-2002  thorpej branches: 1.5.8;
Add trailing ; to CFATTACH_DECL
 1.4 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.3 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.2 27-Nov-2001  thorpej branches: 1.2.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.3 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file iic_iomd.c was added on branch nathanw_sa on 2002-01-08 00:23:13 +0000
 1.2.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.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file iic_iomd.c was added on branch kqueue on 2002-01-10 19:37:59 +0000
 1.5.8.1 03-Aug-2004  skrll Sync with HEAD
 1.2 05-Aug-2006  bjh21 This file seems to be unused, left behind by the last I^2C overhaul.
Remove it.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.40; 1.1.54; 1.1.58;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.58.1 11-Aug-2006  yamt sync with head
 1.1.54.1 09-Sep-2006  rpaulo sync with head
 1.1.40.1 30-Dec-2006  yamt sync with head.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file iicvar.h was added on branch kqueue on 2002-01-10 19:38:00 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file iicvar.h was added on branch nathanw_sa on 2001-10-05 22:27:41 +0000
 1.24 27-Sep-2022  skrll Remove unnecessary sys/malloc.h include
 1.23 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.22 24-Apr-2021  thorpej branches: 1.22.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.21 10-Oct-2012  skrll branches: 1.21.52;
Use device_xname.

From chuq.
 1.20 14-May-2012  skrll branches: 1.20.2;
Whitespace in previous.
 1.19 14-May-2012  skrll device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t
Use aprint*
 1.18 10-May-2012  skrll u_int*_t -> uint*_t
 1.17 01-Jul-2011  dyoung branches: 1.17.2; 1.17.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.16 30-Jun-2011  wiz dependant -> dependent
 1.15 05-Aug-2006  bjh21 ANSIfy, un-__P, and generally KNF.
 1.14 11-Dec-2005  christos branches: 1.14.4; 1.14.8;
merge ktrace-lwp.
 1.13 08-Feb-2004  bjh21 branches: 1.13.16;
Attach rpckbd(4) and kbd(4) in the same place, so that only one of them can
attach at a time, and so that either of them can prevent the forthcoming
iomdkbd(4) attaching to the keyboard slot.
 1.12 06-Dec-2003  bjh21 Undo last change: The "iomd" driver has its own bus_space tag, so it didn't
rely on the brokenness of the mainbus one.
 1.11 06-Dec-2003  bjh21 Fix the ARM mainbus version of bus_space_subregion() to correctly shift the
base offset before using it. This makes it work the same as every other
implementation, and makes wdc at pioc on acorn32 work again. Fix the only
caller I found which depended on the old behaviour.
 1.10 15-Jul-2003  lukem __KERNEL_RCSID()
 1.9 13-Oct-2002  bjh21 branches: 1.9.8;
Rework (#ifdef'ed out) code to print I/O timings so as to give more
information (I was curious).
 1.8 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL
 1.7 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.6 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.5 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.4 19-Jun-2002  bjh21 More wsqms cleanups:
sc_flags was never read. G/C it.
wsqms_attach() took two arguments that pointed to the same structure. G/C one
of them
Since wsqms controls the same device as qms, have it match the same attach
args.
 1.3 19-Apr-2002  wiz branches: 1.3.2;
Complete renaming of opms to opms (was partly named pms, externally and
internally). Move arm/iomd/pms* to arm/iomd/opms*. Mechanical change,
tested by cross-compiling a kernel from i386.

Approved by christos.

XXX: What are arm/arm32/conf.c and arm/include/conf.h good for?
 1.2 27-Nov-2001  thorpej branches: 1.2.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.5 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.4 01-Aug-2002  nathanw Catch up to -current.
 1.1.4.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file iomd.c was added on branch nathanw_sa on 2002-01-08 00:23:15 +0000
 1.2.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.2.2.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file iomd.c was added on branch kqueue on 2002-01-10 19:38:01 +0000
 1.3.2.1 16-Jul-2002  gehenna catch up with -current.
 1.9.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.9.8.1 03-Aug-2004  skrll Sync with HEAD
 1.13.16.1 30-Dec-2006  yamt sync with head.
 1.14.8.1 11-Aug-2006  yamt sync with head
 1.14.4.1 09-Sep-2006  rpaulo sync with head
 1.17.6.1 02-Jun-2012  mrg sync to latest -current.
 1.17.2.2 30-Oct-2012  yamt sync with head
 1.17.2.1 23-May-2012  yamt sync with head.
 1.20.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.21.52.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.22.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.30 29-May-2020  rin For struct timecounter, use C99 initializers.
Compile tested. No functional changes intended.
 1.29 18-May-2012  skrll Replace a __cpu_simple_lock_t with a kmutex_t.
 1.28 15-May-2012  skrll Typos in a comment.
 1.27 14-May-2012  skrll device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t
Use aprint*
 1.26 18-Feb-2012  rmind Replace few simple_lock(9) cases.
 1.25 17-Jan-2009  mjf branches: 1.25.14; 1.25.18;
Fix printf format for suseconds_t
 1.24 08-Jan-2008  matt branches: 1.24.10; 1.24.18;
As of this commit, all arm32 kernel now build.
 1.23 05-Jan-2008  ad Fix includes.
 1.22 22-Feb-2007  thorpej branches: 1.22.18; 1.22.22; 1.22.24; 1.22.30; 1.22.36;
TRUE -> true, FALSE -> false
 1.21 03-Sep-2006  bjh21 branches: 1.21.8;
Switch acorn32 to MI inittodr() etc.
 1.20 05-Aug-2006  bjh21 ANSIfy, un-__P, light KNF.
 1.19 03-Aug-2006  bjh21 Support for timecounters on acorn32, supplied by Mike Pumford. Only
compile-tested by me, but he promises it works.
 1.18 25-Jun-2006  christos GCC4 fixes from Mike Pumford
 1.17 11-Dec-2005  christos branches: 1.17.4; 1.17.8; 1.17.16;
merge ktrace-lwp.
 1.16 19-Aug-2005  skrll Fix RCSID.
 1.15 04-Jun-2005  he branches: 1.15.2;
Fix the various todr_gettime() and todr_settime() fallouts from
-Wcast-qual differently, by instead changing the signatore of those
"functions" to take a "volatile struct timeval*" instead of a
"struct timeval*". Many places, these functions are called with
&time, and time is declared as volatile in <sys/kernel.h>. This
way we can get rid of all the ugly casts which now also triggered
warnings, and caused more code to be added to work around the
problem.

Reviewed by thorpej.
 1.14 04-Jun-2005  chris Fixes for -Wshadow and -Wcast-qual
 1.13 26-Feb-2005  simonb Watch out for those unexpected tains.
 1.12 06-Oct-2003  thorpej branches: 1.12.8; 1.12.10;
New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.11 14-Jul-2003  lukem use __KERNEL_RCSID(0, instead of RCSID( in the kernel
 1.10 02-Oct-2002  thorpej branches: 1.10.8;
Add trailing ; to CFATTACH_DECL
 1.9 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.8 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.7 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.6 02-May-2002  mycroft Fix off-by-one error in delay().
 1.5 18-Feb-2002  bjh21 Add prototypes for clockhandler() and statclockhandler(), and adjust their
argument types to match other interrupt handlers.
Also minor KNF (add in-core RCSID).
 1.4 27-Nov-2001  thorpej branches: 1.4.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.3 23-Nov-2001  thorpej Use <arm/cpufunc.h>, not <machine/cpufunc.h>.
 1.2 17-Oct-2001  reinoud branches: 1.2.4;
Sad point .... remove RC7500 support from the iomd directory in the
arch/arm/iomd/* .... the RC7500 isnt really an iomd/vidc machine but has
different video/audio chip and was kind of hardwired/hacked into the other
chip drivers.
 1.1 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.2.4.5 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.4 20-Jun-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 17-Oct-2001  nathanw file iomd_clock.c was added on branch nathanw_sa on 2002-01-08 00:23:15 +0000
 1.4.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.4.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.4.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.4.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.2.1 27-Nov-2001  thorpej file iomd_clock.c was added on branch kqueue on 2002-01-10 19:38:01 +0000
 1.10.8.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.10.8.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.10.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.10.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.10.8.1 03-Aug-2004  skrll Sync with HEAD
 1.12.10.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.12.8.1 29-Apr-2005  kent sync with -current
 1.15.2.4 21-Jan-2008  yamt sync with head
 1.15.2.3 26-Feb-2007  yamt sync with head.
 1.15.2.2 30-Dec-2006  yamt sync with head.
 1.15.2.1 21-Jun-2006  yamt sync with head.
 1.17.16.1 13-Jul-2006  gdamore Merge from HEAD.
 1.17.8.3 14-Sep-2006  yamt sync with head.
 1.17.8.2 11-Aug-2006  yamt sync with head
 1.17.8.1 26-Jun-2006  yamt sync with head.
 1.17.4.1 09-Sep-2006  rpaulo sync with head
 1.21.8.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.22.36.1 08-Jan-2008  bouyer Sync with HEAD
 1.22.30.1 18-Feb-2008  mjf Sync with HEAD.
 1.22.24.1 09-Jan-2008  matt sync with HEAD
 1.22.22.1 20-Jan-2008  chris Sync to HEAD.
 1.22.18.1 28-Feb-2008  rjs Sync with HEAD.
 1.24.18.1 19-Jan-2009  skrll Sync with HEAD.
 1.24.10.1 04-May-2009  yamt sync with head.
 1.25.18.2 02-Jun-2012  mrg sync to latest -current.
 1.25.18.1 24-Feb-2012  mrg sync to -current.
 1.25.14.2 23-May-2012  yamt sync with head.
 1.25.14.1 17-Apr-2012  yamt sync with head
 1.10 05-Aug-2006  bjh21 branches: 1.10.34;
ANSIfy, un-__P, and generally KNF.
 1.9 11-Dec-2005  christos branches: 1.9.4; 1.9.8;
merge ktrace-lwp.
 1.8 15-Jul-2003  lukem branches: 1.8.16;
__KERNEL_RCSID()
 1.7 01-Apr-2003  thorpej branches: 1.7.2;
Use PAGE_SIZE rather than NBPG.
 1.6 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.5 10-Apr-2002  thorpej vm_offset_t -> vaddr_t,paddr_t
 1.4 18-Feb-2002  bjh21 Change signature of dma_intr() to match other interrupt handlers.
 1.3 25-Jan-2002  thorpej Overhaul of the ARM cache code. This is mostly a simplification
pass. Rather than providing a whole slew of cache operations that
aren't ever used, distill them down to some useful primitives:

icache_sync_all Synchronize I-cache
icache_sync_range Synchronize I-cache range

dcache_wbinv_all Write-back and Invalidate D-cache
dcache_wbinv_range Write-back and Invalidate D-cache range
dcache_inv_range Invalidate D-cache range
dcache_wb_range Write-back D-cache range

idcache_wbinv_all Write-back and Invalidate D-cache,
Invalidate I-cache
idcache_wbinv_range Write-back and Invalidate D-cache,
Invalidate I-cache range

Note: This does not yet include an overhaul of the actual asm files
that implement the primitives. Instead, we've provided a safe default
for each CPU type, and the individual CPU types can now be optimized
one at a time.
 1.2 27-Nov-2001  thorpej branches: 1.2.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.5 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.4 17-Apr-2002  nathanw Catch up to -current.
 1.1.4.3 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file iomd_dma.c was added on branch nathanw_sa on 2002-01-08 00:23:15 +0000
 1.2.2.6 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.5 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.4 16-Mar-2002  jdolecek Catch up with -current.
 1.2.2.3 11-Feb-2002  jdolecek Sync w/ -current.
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file iomd_dma.c was added on branch kqueue on 2002-01-10 19:38:02 +0000
 1.7.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.7.2.1 03-Aug-2004  skrll Sync with HEAD
 1.8.16.1 30-Dec-2006  yamt sync with head.
 1.9.8.1 11-Aug-2006  yamt sync with head
 1.9.4.1 09-Sep-2006  rpaulo sync with head
 1.10.34.1 09-Feb-2008  chris Add initial reworking of acorn32 to use new interrupt code.

Note that cats probably won't work currently as acorn32 changed the way
that the pic is registered, it has to provide the irq lines as on acorn32
we attach the iomd after we need to register irqs for the pioc. So we
setup the irqs for iomd before malloc etc are available. This needs
to be fixed.

More work is still needed to update most of the podulebus drivers.
First I need to add podulebus wrapper for interrupts that handles the
maskaddr and maskbits. Exposing them to the common irq code is wrong.
 1.3 14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.2 18-Feb-2002  bjh21 branches: 1.2.126; 1.2.134; 1.2.140;
Add prototypes for dma_reset(), dma_setup(), dma_isactive(), dma_isintr() and
dma_intr().
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.3 16-Mar-2002  jdolecek Catch up with -current.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file iomd_dma.h was added on branch kqueue on 2002-01-10 19:38:02 +0000
 1.1.4.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file iomd_dma.h was added on branch nathanw_sa on 2002-02-28 04:07:36 +0000
 1.2.140.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.2.134.1 28-Apr-2009  skrll Sync with HEAD.
 1.2.126.1 04-May-2009  yamt sync with head.
 1.5 18-Aug-2013  matt Fix typo
 1.4 18-Aug-2013  matt Move parts of cpu.h that are not needed by MI code in <arm/locore.h>
Don't include <machine/cpu.h> or <machine/frame.h>, use <arm/locore.h>
Use <arm/asm.h> instead of <machine/arm.h>
 1.3 12-Aug-2013  matt Convert to unified syntax
 1.2 20-Dec-2001  thorpej branches: 1.2.2; 1.2.162; 1.2.172; 1.2.178;
* Share a common vector page between arm26 and arm32.
* Use a common set of exception handlers for all arm32 platforms.
* New FIQ framework based on discussions with Ben Harris, shared
between arm26 and arm32.
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file iomd_fiq.S was added on branch nathanw_sa on 2002-01-08 00:23:15 +0000
 1.2.178.1 28-Aug-2013  rmind sync with head
 1.2.172.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.162.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.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 20-Dec-2001  thorpej file iomd_fiq.S was added on branch kqueue on 2002-01-10 19:38:02 +0000
 1.4 06-Oct-2003  thorpej New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.3 23-Nov-2001  thorpej branches: 1.3.2; 1.3.20;
Pull in assym.h for __PROG32 (needed for IRQenable/IRQdisable macros,
which should probably be pulled out of cpu.h anyway...)
 1.2 17-Oct-2001  reinoud branches: 1.2.4;
Sad point .... remove RC7500 support from the iomd directory in the
arch/arm/iomd/* .... the RC7500 isnt really an iomd/vidc machine but has
different video/audio chip and was kind of hardwired/hacked into the other
chip drivers.
 1.1 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.2.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.2.4.1 17-Oct-2001  nathanw file iomd_iic.S was added on branch nathanw_sa on 2002-01-08 00:23:15 +0000
 1.3.20.1 03-Aug-2004  skrll Sync with HEAD
 1.3.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.1 23-Nov-2001  thorpej file iomd_iic.S was added on branch kqueue on 2002-01-10 19:38:03 +0000
 1.1 09-Feb-2008  chris branches: 1.1.2;
file iomd_intr.h was initially added on branch chris-arm-intr-rework.
 1.1.2.1 09-Feb-2008  chris Add initial reworking of acorn32 to use new interrupt code.

Note that cats probably won't work currently as acorn32 changed the way
that the pic is registered, it has to provide the irq lines as on acorn32
we attach the iomd after we need to register irqs for the pioc. So we
setup the irqs for iomd before malloc etc are available. This needs
to be fixed.

More work is still needed to update most of the podulebus drivers.
First I need to add podulebus wrapper for interrupts that handles the
maskaddr and maskbits. Exposing them to the common irq code is wrong.
 1.7 16-Mar-2018  ryo use designated initializer to make adaptability and flexibility for changing struct bus_space.
no functional change.
 1.6 01-Jul-2011  dyoung branches: 1.6.52;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.5 05-Aug-2006  bjh21 ANSIfy, un-__P, and generally KNF.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.8;
merge ktrace-lwp.
 1.3 15-Jul-2003  lukem branches: 1.3.16;
__KERNEL_RCSID()
 1.2 27-Sep-2002  provos branches: 1.2.8;
remove trailing \n in panic(). approved perry.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.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.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file iomd_io.c was added on branch kqueue on 2002-01-10 19:38:04 +0000
 1.1.4.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file iomd_io.c was added on branch nathanw_sa on 2002-10-18 02:35:30 +0000
 1.2.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.8.1 03-Aug-2004  skrll Sync with HEAD
 1.3.16.1 30-Dec-2006  yamt sync with head.
 1.4.8.1 11-Aug-2006  yamt sync with head
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.6.52.1 22-Mar-2018  pgoyette Synch with HEAD, resolve conflicts
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file iomd_io_asm.S was added on branch kqueue on 2002-01-10 19:38:04 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file iomd_io_asm.S was added on branch nathanw_sa on 2001-10-05 22:27:42 +0000
 1.18 21-Nov-2020  skrll Adjust code and register usage so that r4 and r5 are preserved as
cur{cpu,lwp} respectively as required by the change to make ASTs
operate per-LWP rather than per-CPU. These registers are used by
DO_AST_AND_RESTORE_ALIGNMENT_FAULTS expecting this usage.

XXX untested
 1.17 21-Nov-2020  skrll Trailing whitespace
 1.16 02-Dec-2013  joerg branches: 1.16.42;
Don't use cpsr_all/spsr_all with mrs, it doesn't take a mask.
 1.15 18-Aug-2013  matt Move parts of cpu.h that are not needed by MI code in <arm/locore.h>
Don't include <machine/cpu.h> or <machine/frame.h>, use <arm/locore.h>
Use <arm/asm.h> instead of <machine/arm.h>
 1.14 29-Aug-2012  matt branches: 1.14.2; 1.14.4;
Avoid using r7 (which is being reserved for a different purpose).
 1.13 20-Dec-2010  matt branches: 1.13.8;
Move counting of faults, traps, intrs, soft[intr]s, syscalls, and nswtch
from uvmexp to per-cpu cpu_data and move them to 64bits. Remove unneeded
includes of <uvm/uvm_extern.h> and/or <uvm/uvm.h>.
 1.12 19-Aug-2008  matt branches: 1.12.16;
Re-init r5 at start of loop.
 1.11 27-Apr-2008  matt branches: 1.11.2; 1.11.6;
Merge kernel changes in matt-armv6 to HEAD.
 1.10 08-Jan-2008  matt branches: 1.10.6; 1.10.8; 1.10.10;
As of this commit, all arm32 kernel now build.
 1.9 06-Jan-2008  matt Truly kill current_intr_depth once and for all.
 1.8 17-Oct-2007  garbled branches: 1.8.2; 1.8.8;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.7 13-Aug-2007  tsutsui branches: 1.7.2;
Pull the similar fix from arch/shark/isa/isa_irq.S rev 1.8:

In irq_setmasks(), refer spl_masks[current_spl_level] directly
rather than spl_mask which is a saved value in splraise() and
splx() functions because the latter one is not always sync'ed with
current_spl_level and interrupt state could be mangled.
 1.6 09-Mar-2007  thorpej branches: 1.6.2; 1.6.8; 1.6.10; 1.6.14; 1.6.16; 1.6.18; 1.6.20;
Rewrite the ARM mutex implementation to be of the simple-mutex variety.
Because pre-v6 ARM lacks support for an atomic compare-and-swap, we
implement _lock_cas() as a restartable atomic squence that is checked
in the IRQ handler right before AST processing. (This is safe because,
for all practical purposes, there are no SMP pre-v6 ARM systems.)

This can serve as a model for other non-MP platforms that lack the
necessary atomic operations for mutexes (SuperH, for example).

Upshots of this change:
- kmutex_t is now down to 8 bytes on ARM; about as good as we can get.
- ARM2 systems don't have to trap and emulate SWP or SWPB for mutexes.

The acorn26 port is not updated by this commit to do the LOCK_CAS_CHECK.
That is left as an exercise for the port maintainer.

Reviewed and tested by Matt Thomas.
 1.5 11-Dec-2005  christos branches: 1.5.26;
merge ktrace-lwp.
 1.4 05-Nov-2003  scw branches: 1.4.16;
Enable/Restore alignment fault state on interrupt handler entry/exit.
 1.3 14-Oct-2002  bjh21 branches: 1.3.8;
Continue the " - . - 8" purge. Specifically:

add rd, pc, #foo - . - 8 -> adr rd, foo
ldr rd, [pc, #foo - . - 8] -> ldr rd, foo

Also, when saving the return address for a function pointer call, use
"mov lr, pc" just before the call unless the return address is somewhere
other than just after the call site.

Finally, a few obvious little micro-optimisations like using LDR directly
rather than ADR followed by LDR, and loading directly into PC rather than
bouncing via R0.
 1.2 20-Dec-2001  thorpej branches: 1.2.2;
* Share a common vector page between arm26 and arm32.
* Use a common set of exception handlers for all arm32 platforms.
* New FIQ framework based on discussions with Ben Harris, shared
between arm26 and arm32.
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.3 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file iomd_irq.S was added on branch nathanw_sa on 2002-01-08 00:23:15 +0000
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 20-Dec-2001  thorpej file iomd_irq.S was added on branch kqueue on 2002-01-10 19:38:05 +0000
 1.3.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.8.1 03-Aug-2004  skrll Sync with HEAD
 1.4.16.2 21-Jan-2008  yamt sync with head
 1.4.16.1 03-Sep-2007  yamt sync with head.
 1.5.26.1 12-Mar-2007  rmind Sync with HEAD.
 1.6.20.3 20-Jan-2008  chris Sync to HEAD.
 1.6.20.2 01-Jan-2008  chris Sync with HEAD.
 1.6.20.1 18-Aug-2007  chris Sync with HEAD
 1.6.18.1 16-Aug-2007  jmcneill Sync with HEAD.
 1.6.16.2 28-Feb-2008  rjs Sync with HEAD.
 1.6.16.1 01-Nov-2007  rjs Sync with HEAD.
 1.6.14.1 15-Aug-2007  skrll Sync with HEAD.
 1.6.10.1 03-Oct-2007  garbled Sync with HEAD
 1.6.8.1 18-Apr-2007  thorpej Remove _lock_cas() in favor of atomic_cas_32().
 1.6.2.1 20-Aug-2007  ad Sync with HEAD.
 1.7.2.4 28-Jan-2008  matt Given the that there are only 4 IPLs (ignoring soft IPLs), a number of
cleanups can be done:
Remove _SPL_* aliases.
Don't store irqmasks in ci_cpl, just make it an ipl level.
Add fast softint switching support.
 1.7.2.3 09-Jan-2008  matt sync with HEAD
 1.7.2.2 09-Nov-2007  matt Make all the evbarm kernels build again. Fix lossage from rebase.
 1.7.2.1 06-Nov-2007  matt sync with HEAD
 1.8.8.1 08-Jan-2008  bouyer Sync with HEAD
 1.8.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.10.10.2 04-May-2009  yamt sync with head.
 1.10.10.1 16-May-2008  yamt sync with head.
 1.10.8.1 18-May-2008  yamt sync with head.
 1.10.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.10.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.11.6.1 19-Oct-2008  haad Sync with HEAD.
 1.11.2.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.12.16.1 05-Mar-2011  rmind sync with head
 1.13.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.13.8.1 30-Oct-2012  yamt sync with head
 1.14.4.2 18-May-2014  rmind sync with head
 1.14.4.1 28-Aug-2013  rmind sync with head
 1.14.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.16.42.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.24 20-Nov-2020  thorpej malloc(9) -> kmem(9)
 1.23 10-Nov-2019  chs branches: 1.23.8;
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.22 25-Oct-2014  skrll branches: 1.22.20;
Remove katelib.h and references to it.

{Read,Write}{Word,Byte} macros are provided in the files that still use
them. Someone(tm) should convert them to bus_space(9)
 1.21 21-Sep-2014  christos fix leak.
 1.20 26-Mar-2014  christos branches: 1.20.4;
Add missing ;
 1.19 26-Mar-2014  christos kill sprintf
 1.18 20-Dec-2010  matt branches: 1.18.8; 1.18.18; 1.18.22;
Move counting of faults, traps, intrs, soft[intr]s, syscalls, and nswtch
from uvmexp to per-cpu cpu_data and move them to 64bits. Remove unneeded
includes of <uvm/uvm_extern.h> and/or <uvm/uvm.h>.
 1.17 27-Apr-2008  matt branches: 1.17.22;
Merge kernel changes in matt-armv6 to HEAD.
 1.16 06-Jan-2008  matt branches: 1.16.6; 1.16.8; 1.16.10;
Truly kill current_intr_depth once and for all.
 1.15 17-Oct-2007  garbled branches: 1.15.2; 1.15.8;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.14 13-Aug-2007  tsutsui branches: 1.14.2;
Remove all references to spl_mask. Now it isn't used by any sources.
Discussed on port-arm.
 1.13 19-Feb-2007  matt branches: 1.13.4; 1.13.12; 1.13.16; 1.13.18; 1.13.20; 1.13.22;
Don't do softinit_init from irq_init.
 1.12 18-Feb-2007  matt Don't export spl_smasks or soft_interrupts. They are local to intr.c
Make sure that softintr_init() is called when needed.
Assume __HAVE_GENERIC_SOFT_INTERRUPTS is defined (since newlock2 requires it).
 1.11 05-Aug-2006  bjh21 branches: 1.11.10;
ANSIfy, un-__P, and generally KNF.
 1.10 11-May-2006  yamt remove irqblock[] as no one uses it. reviewed by Ben Harris.
 1.9 11-Dec-2005  christos branches: 1.9.4; 1.9.6; 1.9.8; 1.9.10; 1.9.12;
merge ktrace-lwp.
 1.8 03-Jan-2004  chris branches: 1.8.16;
When adding a new interrupt handler to the iomd, turn off interrupts so
we don't run the risk of an interrupt happening while things are being
updated.
 1.7 15-Jul-2003  lukem __KERNEL_RCSID()
 1.6 27-Sep-2002  provos branches: 1.6.8;
remove trailing \n in panic(). approved perry.
 1.5 03-Apr-2002  thorpej Remove unused extern decls.
 1.4 20-Dec-2001  thorpej branches: 1.4.2;
* Share a common vector page between arm26 and arm32.
* Use a common set of exception handlers for all arm32 platforms.
* New FIQ framework based on discussions with Ben Harris, shared
between arm26 and arm32.
 1.3 27-Nov-2001  thorpej Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.2 22-Nov-2001  thorpej Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.4 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.3 17-Apr-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file iomd_irqhandler.c was added on branch nathanw_sa on 2002-01-08 00:23:15 +0000
 1.4.2.4 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.4.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.4.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.2.1 20-Dec-2001  thorpej file iomd_irqhandler.c was added on branch kqueue on 2002-01-10 19:38:06 +0000
 1.6.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.8.1 03-Aug-2004  skrll Sync with HEAD
 1.8.16.5 21-Jan-2008  yamt sync with head
 1.8.16.4 03-Sep-2007  yamt sync with head.
 1.8.16.3 26-Feb-2007  yamt sync with head.
 1.8.16.2 30-Dec-2006  yamt sync with head.
 1.8.16.1 21-Jun-2006  yamt sync with head.
 1.9.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.9.10.1 11-May-2006  elad sync with head
 1.9.8.2 11-Aug-2006  yamt sync with head
 1.9.8.1 24-May-2006  yamt sync with head.
 1.9.6.1 01-Jun-2006  kardel Sync with head.
 1.9.4.1 09-Sep-2006  rpaulo sync with head
 1.11.10.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.13.22.4 09-Feb-2008  chris Add initial reworking of acorn32 to use new interrupt code.

Note that cats probably won't work currently as acorn32 changed the way
that the pic is registered, it has to provide the irq lines as on acorn32
we attach the iomd after we need to register irqs for the pioc. So we
setup the irqs for iomd before malloc etc are available. This needs
to be fixed.

More work is still needed to update most of the podulebus drivers.
First I need to add podulebus wrapper for interrupts that handles the
maskaddr and maskbits. Exposing them to the common irq code is wrong.
 1.13.22.3 20-Jan-2008  chris Sync to HEAD.
 1.13.22.2 01-Jan-2008  chris Sync with HEAD.
 1.13.22.1 18-Aug-2007  chris Sync with HEAD
 1.13.20.1 16-Aug-2007  jmcneill Sync with HEAD.
 1.13.18.2 28-Feb-2008  rjs Sync with HEAD.
 1.13.18.1 01-Nov-2007  rjs Sync with HEAD.
 1.13.16.1 15-Aug-2007  skrll Sync with HEAD.
 1.13.12.1 03-Oct-2007  garbled Sync with HEAD
 1.13.4.1 20-Aug-2007  ad Sync with HEAD.
 1.14.2.3 28-Jan-2008  matt Given the that there are only 4 IPLs (ignoring soft IPLs), a number of
cleanups can be done:
Remove _SPL_* aliases.
Don't store irqmasks in ci_cpl, just make it an ipl level.
Add fast softint switching support.
 1.14.2.2 09-Jan-2008  matt sync with HEAD
 1.14.2.1 06-Nov-2007  matt sync with HEAD
 1.15.8.1 08-Jan-2008  bouyer Sync with HEAD
 1.15.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.16.10.1 16-May-2008  yamt sync with head.
 1.16.8.1 18-May-2008  yamt sync with head.
 1.16.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.17.22.1 05-Mar-2011  rmind sync with head
 1.18.22.1 18-May-2014  rmind sync with head
 1.18.18.2 03-Dec-2017  jdolecek update from HEAD
 1.18.18.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.18.8.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.20.4.1 10-Nov-2014  snj Pull up following revision(s) (requested by maxv in ticket #195):
sys/arch/arm/iomd/iomd_irqhandler.c: revision 1.21
sys/arch/arm/ofw/ofw_irqhandler.c: revision 1.21
sys/arch/atari/atari/intr.c: revision 1.24-1.25
sys/arch/ews4800mips/sbd/fb_sbdio.c: revision 1.14
sys/arch/hpcmips/tx/tx39icu.c: revision 1.34
sys/arch/shark/isa/isa_irqhandler.c: revision 1.27
sys/arch/sparc/sparc/machdep.c: revision 1.327
sys/arch/sparc64/dev/psycho.c: revision 1.119
sys/arch/sparc64/dev/schizo.c: revision 1.32
sys/arch/sparc64/sparc64/machdep.c: revision 1.279
sys/arch/sun68k/sun68k/bus.c: revision 1.22
sys/arch/x86/x86/ipmi.c: revision 1.58
sys/arch/xen/xen/privcmd.c: revision 1.46-1.49
Fix several memory leaks.
 1.22.20.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.23.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.1 09-Feb-2008  chris branches: 1.1.2;
file iomd_irqhandler.h was initially added on branch chris-arm-intr-rework.
 1.1.2.1 09-Feb-2008  chris Add initial reworking of acorn32 to use new interrupt code.

Note that cats probably won't work currently as acorn32 changed the way
that the pic is registered, it has to provide the irq lines as on acorn32
we attach the iomd after we need to register irqs for the pioc. So we
setup the irqs for iomd before malloc etc are available. This needs
to be fixed.

More work is still needed to update most of the podulebus drivers.
First I need to add podulebus wrapper for interrupts that handles the
maskaddr and maskbits. Exposing them to the common irq code is wrong.
 1.13 15-Sep-2025  thorpej Encapsulate what's needed to attach an I2C bus into a iicbus_attach()
inline.
 1.12 28-Mar-2022  riastradh sys: Split struct device into a private device_impl.h.

Include this only inside autoconf itself, and a few files that abuse
autoconf in ways I can't confidently make easy fixes for.

XXX kernel ABI change requires bump -- no more use of struct device
internals allowed, previously done by some drivers
 1.11 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.10 24-Apr-2021  thorpej branches: 1.10.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.9 22-Dec-2019  thorpej branches: 1.9.10;
Cleanup i2c bus acquire / release, centralizing all of the logic into
iic_acquire_bus() / iic_release_bus(). "acquire" and "release" hooks
no longer need to be provided by back-end controller drivers (only if
they need special handling, e.g. powering on the i2c controller).
This results in the removal of a bunch of rendundant code from each
back-end controller driver.

Assert that we are not in hard interrupt context in iic_acquire_bus(),
iic_exec(), and iic_release_bus().
 1.8 14-Feb-2016  chs branches: 1.8.18;
zero the i2c_attach_args structure before filling it in.
fixes occasional crashes in iic_attach().
 1.7 14-May-2012  skrll branches: 1.7.2; 1.7.16;
device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t
Use aprint*
 1.6 06-Dec-2007  ad branches: 1.6.50; 1.6.54;
lockmgr -> mutex
 1.5 26-Jun-2006  drochner branches: 1.5.18; 1.5.30; 1.5.32; 1.5.34; 1.5.36; 1.5.42; 1.5.46;
use the "i2cbus" interface attribute rather than putting a string name
into the i2cbus attach args
 1.4 24-Dec-2005  perry branches: 1.4.4; 1.4.8; 1.4.16;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.3 11-Dec-2005  christos merge ktrace-lwp.
 1.2 01-Nov-2003  reinoud branches: 1.2.4; 1.2.18;
Fix for PR # 23264 thanks to Mike Pumford; it is only attatching clock once
now.
 1.1 06-Oct-2003  thorpej New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.2.18.3 07-Dec-2007  yamt sync with head
 1.2.18.2 30-Dec-2006  yamt sync with head.
 1.2.18.1 21-Jun-2006  yamt sync with head.
 1.2.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.2.4.2 03-Aug-2004  skrll Sync with HEAD
 1.2.4.1 01-Nov-2003  skrll file iomdiic.c was added on branch ktrace-lwp on 2004-08-03 10:32:38 +0000
 1.4.16.1 13-Jul-2006  gdamore Merge from HEAD.
 1.4.8.1 11-Aug-2006  yamt sync with head
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5.46.1 08-Dec-2007  ad Sync with head.
 1.5.42.1 08-Dec-2007  mjf Sync with HEAD.
 1.5.36.1 09-Jan-2008  matt sync with HEAD
 1.5.34.1 01-Jan-2008  chris Sync with HEAD.
 1.5.32.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.5.30.1 26-Dec-2007  rjs Sync with HEAD.
 1.5.18.1 09-Dec-2007  reinoud Pullup to HEAD
 1.6.54.1 02-Jun-2012  mrg sync to latest -current.
 1.6.50.1 23-May-2012  yamt sync with head.
 1.7.16.1 19-Mar-2016  skrll Sync with HEAD
 1.7.2.1 03-Dec-2017  jdolecek update from HEAD
 1.8.18.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.9.10.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.10.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.2 11-Dec-2005  christos merge ktrace-lwp.
 1.1 06-Oct-2003  thorpej branches: 1.1.4;
New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 06-Oct-2003  skrll file iomdiicvar.h was added on branch ktrace-lwp on 2004-08-03 10:32:38 +0000
 1.7 20-Nov-2020  thorpej malloc(9) -> kmem(9)
 1.6 10-Nov-2019  chs branches: 1.6.8;
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.5 14-May-2012  skrll branches: 1.5.40;
device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t
Use aprint*
 1.4 01-Jul-2011  dyoung branches: 1.4.2; 1.4.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.3 21-Oct-2006  bjh21 Interpret the argument to iomdkbc_set_poll() correctly. Quite how we
got this far with it the wrong way around is beyond me.
 1.2 11-Dec-2005  christos branches: 1.2.20; 1.2.22;
merge ktrace-lwp.
 1.1 13-Mar-2004  bjh21 branches: 1.1.2; 1.1.4; 1.1.8; 1.1.16; 1.1.18; 1.1.24; 1.1.28; 1.1.30;
Add support for using the MI pckbd and pms drivers with the IOMD keyboard
and mouse ports, with a new driver, iomdkbc(4).
 1.1.30.1 11-Nov-2006  bouyer Pull up following revision(s) (requested by bjh21 in ticket #1562):
sys/arch/arm/iomd/iomdkbc.c: revision 1.3
Interpret the argument to iomdkbc_set_poll() correctly. Quite how we
got this far with it the wrong way around is beyond me.
 1.1.28.1 11-Nov-2006  bouyer Pull up following revision(s) (requested by bjh21 in ticket #1562):
sys/arch/arm/iomd/iomdkbc.c: revision 1.3
Interpret the argument to iomdkbc_set_poll() correctly. Quite how we
got this far with it the wrong way around is beyond me.
 1.1.24.1 22-Oct-2006  bouyer Pull up following revision(s) (requested by bjh21 in ticket #10728):
sys/arch/arm/iomd/iomdkbc.c: revision 1.3
Interpret the argument to iomdkbc_set_poll() correctly. Quite how we
got this far with it the wrong way around is beyond me.
 1.1.18.1 30-Dec-2006  yamt sync with head.
 1.1.16.1 11-Nov-2006  bouyer Pull up following revision(s) (requested by bjh21 in ticket #1562):
sys/arch/arm/iomd/iomdkbc.c: revision 1.3
Interpret the argument to iomdkbc_set_poll() correctly. Quite how we
got this far with it the wrong way around is beyond me.
 1.1.8.1 22-Oct-2006  bouyer Pull up following revision(s) (requested by bjh21 in ticket #10728):
sys/arch/arm/iomd/iomdkbc.c: revision 1.3
Interpret the argument to iomdkbc_set_poll() correctly. Quite how we
got this far with it the wrong way around is beyond me.
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 13-Mar-2004  skrll file iomdkbc.c was added on branch ktrace-lwp on 2004-08-03 10:32:38 +0000
 1.1.2.1 22-Oct-2006  bouyer Pull up following revision(s) (requested by bjh21 in ticket #10728):
sys/arch/arm/iomd/iomdkbc.c: revision 1.3
Interpret the argument to iomdkbc_set_poll() correctly. Quite how we
got this far with it the wrong way around is beyond me.
 1.2.22.1 22-Oct-2006  yamt sync with head
 1.2.20.1 18-Nov-2006  ad Sync with head.
 1.4.6.1 02-Jun-2012  mrg sync to latest -current.
 1.4.2.1 23-May-2012  yamt sync with head.
 1.5.40.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.6.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.2 11-Dec-2005  christos merge ktrace-lwp.
 1.1 13-Mar-2004  bjh21 branches: 1.1.4;
Add part of iomdkbc(4) that I missed last time.
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 13-Mar-2004  skrll file iomdkbcvar.h was added on branch ktrace-lwp on 2004-08-03 10:32:38 +0000
 1.5 16-Apr-2022  andvar s/strickly/strictly/
 1.4 11-Dec-2005  christos merge ktrace-lwp.
 1.3 31-Dec-2003  bjh21 Add some useful flag definitions for DMA registers.
 1.2 08-Jan-2002  bjh21 branches: 1.2.2; 1.2.20;
Add a couple of ARM7500 registers I missed last time, and correct a couple
of others to match the names in the data sheet.
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.3 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.2 11-Jan-2002  nathanw More catchup.
 1.1.4.1 05-Oct-2001  nathanw file iomdreg.h was added on branch nathanw_sa on 2002-01-11 23:38:04 +0000
 1.2.20.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.20.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.20.1 03-Aug-2004  skrll Sync with HEAD
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 08-Jan-2002  thorpej file iomdreg.h was added on branch kqueue on 2002-01-10 19:38:07 +0000
 1.4 10-May-2012  skrll u_int*_t -> uint*_t
 1.3 01-Jul-2011  dyoung branches: 1.3.2; 1.3.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.2 19-Apr-2002  wiz Complete renaming of opms to opms (was partly named pms, externally and
internally). Move arm/iomd/pms* to arm/iomd/opms*. Mechanical change,
tested by cross-compiling a kernel from i386.

Approved by christos.

XXX: What are arm/arm32/conf.c and arm/include/conf.h good for?
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file iomdvar.h was added on branch kqueue on 2002-01-10 19:38:08 +0000
 1.1.4.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file iomdvar.h was added on branch nathanw_sa on 2002-06-20 03:38:10 +0000
 1.3.6.1 02-Jun-2012  mrg sync to latest -current.
 1.3.2.1 23-May-2012  yamt sync with head.
 1.8 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.7 11-Dec-2005  christos branches: 1.7.4; 1.7.8;
merge ktrace-lwp.
 1.6 15-Jul-2003  lukem branches: 1.6.16;
__KERNEL_RCSID()
 1.5 23-Oct-2002  jdolecek branches: 1.5.6;
merge kqueue branch into -current

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

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

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.4 22-Oct-2002  jdolecek g/c kbdpoll(), it was replaced with nopoll()
 1.3 05-Oct-2002  chs branches: 1.3.2;
add missing protos, clean up includes.
 1.2 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.14;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.14.1 17-May-2002  gehenna Add device switch.
 1.1.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.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file kbd.c was added on branch kqueue on 2002-01-10 19:38:08 +0000
 1.1.4.4 11-Nov-2002  nathanw Catch up to -current
 1.1.4.3 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.2 17-Sep-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file kbd.c was added on branch nathanw_sa on 2002-09-17 21:13:30 +0000
 1.3.2.1 24-Oct-2002  bjh21 Sync with trunk.
 1.5.6.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.6.3 18-Sep-2004  skrll Sync with HEAD.
 1.5.6.2 03-Aug-2004  skrll Sync with HEAD
 1.5.6.1 03-Jul-2003  wrstuden lwp-ify a lot of the arm drivers. Needed to get acorn32/GENERIC compiling.
 1.6.16.2 30-Dec-2006  yamt sync with head.
 1.6.16.1 21-Jun-2006  yamt sync with head.
 1.7.8.1 03-Sep-2006  yamt sync with head.
 1.7.4.1 09-Sep-2006  rpaulo sync with head
 1.11 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.10 26-Mar-2006  thorpej Use device_unit().
 1.9 11-Dec-2005  christos branches: 1.9.4; 1.9.6; 1.9.8; 1.9.10; 1.9.12;
merge ktrace-lwp.
 1.8 08-Feb-2004  bjh21 branches: 1.8.16;
Increase the attach priority of opms(4) and kbd(4) (also rpckbd(4), but that
slipped into a previous commit) so that they can override the forthcoming
iomdkbc(4) if necessary.
 1.7 15-Jul-2003  lukem __KERNEL_RCSID()
 1.6 02-Oct-2002  thorpej branches: 1.6.8;
Add trailing ; to CFATTACH_DECL
 1.5 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.4 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.3 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.2 27-Nov-2001  thorpej branches: 1.2.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.3 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file kbd_iomd.c was added on branch nathanw_sa on 2002-01-08 00:23:15 +0000
 1.2.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.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file kbd_iomd.c was added on branch kqueue on 2002-01-10 19:38:08 +0000
 1.6.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.8.1 03-Aug-2004  skrll Sync with HEAD
 1.8.16.2 30-Dec-2006  yamt sync with head.
 1.8.16.1 21-Jun-2006  yamt sync with head.
 1.9.12.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.9.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.9.8.2 03-Sep-2006  yamt sync with head.
 1.9.8.1 01-Apr-2006  yamt sync with head.
 1.9.6.1 22-Apr-2006  simonb Sync with head.
 1.9.4.1 09-Sep-2006  rpaulo sync with head
 1.3 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.2 18-Feb-2002  bjh21 branches: 1.2.34; 1.2.48; 1.2.52;
Add prototype for getkey_polled().
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.3 16-Mar-2002  jdolecek Catch up with -current.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file kbdvar.h was added on branch kqueue on 2002-01-10 19:38:09 +0000
 1.1.4.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file kbdvar.h was added on branch nathanw_sa on 2002-02-28 04:07:37 +0000
 1.2.52.1 03-Sep-2006  yamt sync with head.
 1.2.48.1 09-Sep-2006  rpaulo sync with head
 1.2.34.1 30-Dec-2006  yamt sync with head.
 1.2 01-Jan-2004  bjh21 The lmcaudio driver was only ever used on the RC7500, which we don't support
these days. Let the CVS history be its only memorial.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.24;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file lmc1982.S was added on branch kqueue on 2002-01-10 19:38:09 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file lmc1982.S was added on branch nathanw_sa on 2001-10-05 22:27:42 +0000
 1.2 01-Jan-2004  bjh21 The lmcaudio driver was only ever used on the RC7500, which we don't support
these days. Let the CVS history be its only memorial.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.24;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file lmc1982.h was added on branch kqueue on 2002-01-10 19:38:10 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file lmc1982.h was added on branch nathanw_sa on 2001-10-05 22:27:42 +0000
 1.13 01-Jan-2004  bjh21 The lmcaudio driver was only ever used on the RC7500, which we don't support
these days. Let the CVS history be its only memorial.
 1.12 15-Jul-2003  lukem __KERNEL_RCSID()
 1.11 01-Apr-2003  thorpej branches: 1.11.2;
Use PAGE_SIZE rather than NBPG.
 1.10 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL
 1.9 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.8 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.7 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.6 16-Jun-2002  bjh21 struct lmcaudio_softc.iobase was unused other than to initialise it. G/C it.
This also means that the "aux" parameter to lmcaudio_attach is unused.
 1.5 10-Apr-2002  thorpej branches: 1.5.2;
vm_offset_t -> vaddr_t,paddr_t
 1.4 27-Nov-2001  thorpej branches: 1.4.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.3 22-Nov-2001  thorpej Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
 1.2 17-Oct-2001  reinoud branches: 1.2.4;
Sad point .... remove RC7500 support from the iomd directory in the
arch/arm/iomd/* .... the RC7500 isnt really an iomd/vidc machine but has
different video/audio chip and was kind of hardwired/hacked into the other
chip drivers.
 1.1 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.2.4.5 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.4 20-Jun-2002  nathanw Catch up to -current.
 1.2.4.3 17-Apr-2002  nathanw Catch up to -current.
 1.2.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.2.4.1 17-Oct-2001  nathanw file lmcaudio.c was added on branch nathanw_sa on 2002-01-08 00:23:15 +0000
 1.4.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.4.2.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.4.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.4.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.2.1 27-Nov-2001  thorpej file lmcaudio.c was added on branch kqueue on 2002-01-10 19:38:10 +0000
 1.5.2.1 14-Jul-2002  gehenna catch up with -current.
 1.11.2.1 03-Aug-2004  skrll Sync with HEAD
 1.7 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.6 19-Aug-2006  bjh21 branches: 1.6.58; 1.6.60; 1.6.62;
The log2_bpp fields of the mode list generated by makemodes.awk weren't
used for anything. Rearrange things so that it doesn't any more, and
just produces an array of struct videomode. modedefs.c is looking
suspiciously much like videomode.c now.
 1.5 18-Aug-2006  bjh21 Move calculation of a screen mode's frame rate out of makemodes.awk into
the kernel, removing an element from struct vidc_mode. The calculation
is a bit pointless at the moment anyway, since both bootloaders pass in
a constant 56, but that might get fixed one day.
 1.4 17-Aug-2006  bjh21 Switch to using the MI struct videomode for storing VIDC video timings.
struct videomode doesn't have a way to record border widths (though I
wonder if VESA's "margins" are the same thing), so we now just treat them
as zero. Tested on my NC, which still seems to be working.
 1.3 16-Aug-2006  bjh21 Fix an obvious typo.
 1.2 20-Jun-2006  gdamore Use portable | cat 1>&2 instead of > /dev/stderr. This allows this script
to work, and supports building on Solaris 10.

Reviewed/approved by jlam@.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.40; 1.1.54; 1.1.58; 1.1.66;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.66.1 20-Jun-2006  gdamore Use portable | cat 1>&2 instead of > /dev/stderr. This allows this script
to work, and supports building on Solaris.
 1.1.58.2 03-Sep-2006  yamt sync with head.
 1.1.58.1 26-Jun-2006  yamt sync with head.
 1.1.54.1 09-Sep-2006  rpaulo sync with head
 1.1.40.2 30-Dec-2006  yamt sync with head.
 1.1.40.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file makemodes.awk was added on branch kqueue on 2002-01-10 19:38:11 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file makemodes.awk was added on branch nathanw_sa on 2001-10-05 22:27:42 +0000
 1.6.62.1 16-May-2008  yamt sync with head.
 1.6.60.1 18-May-2008  yamt sync with head.
 1.6.58.1 02-Jun-2008  mjf Sync with HEAD.
 1.6 13-Mar-2004  bjh21 Remove busmouse(4) drivers. Everyone should be using wsmouse(4) these days.
 1.5 14-Jul-2003  lukem use __KERNEL_RCSID(0, instead of RCSID( in the kernel
 1.4 26-Nov-2002  christos branches: 1.4.6;
si_ -> sel_
 1.3 23-Oct-2002  jdolecek merge kqueue branch into -current

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

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

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.2 06-Sep-2002  gehenna branches: 1.2.2;
Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.1 19-Apr-2002  wiz branches: 1.1.2; 1.1.6; 1.1.8;
Complete renaming of opms to opms (was partly named pms, externally and
internally). Move arm/iomd/pms* to arm/iomd/opms*. Mechanical change,
tested by cross-compiling a kernel from i386.

Approved by christos.

XXX: What are arm/arm32/conf.c and arm/include/conf.h good for?
 1.1.8.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.1.8.4 02-Oct-2002  jdolecek do not need the (void *) cast for kn_hook anymore
 1.1.8.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.8.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.8.1 19-Apr-2002  jdolecek file opms.c was added on branch kqueue on 2002-06-23 17:34:52 +0000
 1.1.6.5 11-Dec-2002  thorpej Sync with HEAD.
 1.1.6.4 11-Nov-2002  nathanw Catch up to -current
 1.1.6.3 17-Sep-2002  nathanw Catch up to -current.
 1.1.6.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.6.1 19-Apr-2002  nathanw file opms.c was added on branch nathanw_sa on 2002-06-20 03:38:11 +0000
 1.1.2.1 17-May-2002  gehenna Add device switch.
 1.2.2.1 24-Oct-2002  bjh21 Sync with trunk.
 1.4.6.2 03-Aug-2004  skrll Sync with HEAD
 1.4.6.1 03-Jul-2003  wrstuden lwp-ify a lot of the arm drivers. Needed to get acorn32/GENERIC compiling.
 1.8 13-Mar-2004  bjh21 Remove busmouse(4) drivers. Everyone should be using wsmouse(4) these days.
 1.7 08-Feb-2004  bjh21 Increase the attach priority of opms(4) and kbd(4) (also rpckbd(4), but that
slipped into a previous commit) so that they can override the forthcoming
iomdkbc(4) if necessary.
 1.6 15-Jul-2003  lukem __KERNEL_RCSID()
 1.5 02-Oct-2002  thorpej branches: 1.5.8;
Add trailing ; to CFATTACH_DECL
 1.4 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.3 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.2 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.1 19-Apr-2002  wiz branches: 1.1.6; 1.1.8;
Complete renaming of opms to opms (was partly named pms, externally and
internally). Move arm/iomd/pms* to arm/iomd/opms*. Mechanical change,
tested by cross-compiling a kernel from i386.

Approved by christos.

XXX: What are arm/arm32/conf.c and arm/include/conf.h good for?
 1.1.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.1.8.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.8.1 19-Apr-2002  jdolecek file opms_iomd.c was added on branch kqueue on 2002-06-23 17:34:53 +0000
 1.1.6.3 18-Oct-2002  nathanw Catch up to -current.
 1.1.6.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.6.1 19-Apr-2002  nathanw file opms_iomd.c was added on branch nathanw_sa on 2002-06-20 03:38:11 +0000
 1.5.8.1 03-Aug-2004  skrll Sync with HEAD
 1.2 13-Mar-2004  bjh21 Remove busmouse(4) drivers. Everyone should be using wsmouse(4) these days.
 1.1 19-Apr-2002  wiz branches: 1.1.6; 1.1.8; 1.1.16;
Complete renaming of opms to opms (was partly named pms, externally and
internally). Move arm/iomd/pms* to arm/iomd/opms*. Mechanical change,
tested by cross-compiling a kernel from i386.

Approved by christos.

XXX: What are arm/arm32/conf.c and arm/include/conf.h good for?
 1.1.16.1 03-Aug-2004  skrll Sync with HEAD
 1.1.8.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.8.1 19-Apr-2002  jdolecek file opmsvar.h was added on branch kqueue on 2002-06-23 17:34:53 +0000
 1.1.6.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.6.1 19-Apr-2002  nathanw file opmsvar.h was added on branch nathanw_sa on 2002-06-20 03:38:11 +0000
 1.3 19-Apr-2002  wiz Complete renaming of opms to opms (was partly named pms, externally and
internally). Move arm/iomd/pms* to arm/iomd/opms*. Mechanical change,
tested by cross-compiling a kernel from i386.

Approved by christos.

XXX: What are arm/arm32/conf.c and arm/include/conf.h good for?
 1.2 18-Feb-2002  bjh21 Add internal prototype for cmd_mouse().
Also __RCSID() while I'm here.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.5 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.6.4 17-Jun-2002  jdolecek provide kqfilter hooks
XXX not tested
 1.1.6.3 16-Mar-2002  jdolecek Catch up with -current.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file pms.c was added on branch kqueue on 2002-01-10 19:38:12 +0000
 1.1.4.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.4.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file pms.c was added on branch nathanw_sa on 2002-02-28 04:07:38 +0000
 1.3 19-Apr-2002  wiz Complete renaming of opms to opms (was partly named pms, externally and
internally). Move arm/iomd/pms* to arm/iomd/opms*. Mechanical change,
tested by cross-compiling a kernel from i386.

Approved by christos.

XXX: What are arm/arm32/conf.c and arm/include/conf.h good for?
 1.2 27-Nov-2001  thorpej branches: 1.2.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file pms_iomd.c was added on branch nathanw_sa on 2002-01-08 00:23:16 +0000
 1.2.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file pms_iomd.c was added on branch kqueue on 2002-01-10 19:38:13 +0000
 1.2 19-Apr-2002  wiz Complete renaming of opms to opms (was partly named pms, externally and
internally). Move arm/iomd/pms* to arm/iomd/opms*. Mechanical change,
tested by cross-compiling a kernel from i386.

Approved by christos.

XXX: What are arm/arm32/conf.c and arm/include/conf.h good for?
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file pmsvar.h was added on branch kqueue on 2002-01-10 19:38:14 +0000
 1.1.4.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file pmsvar.h was added on branch nathanw_sa on 2002-06-20 03:38:12 +0000
 1.22 27-Sep-2022  skrll Remove unnecessary sys/malloc.h include
 1.21 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.20 24-Apr-2021  thorpej branches: 1.20.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.19 16-Oct-2019  maya branches: 1.19.10;
Switch files copyright Reinoud Zandijk from BSD 4 clause to BSD 2 clause.

OK'd by reinoud in email (from 4 Feb 2019).
 1.18 14-May-2012  skrll branches: 1.18.40;
device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t
Use aprint*
 1.17 10-May-2012  skrll u_int*_t -> uint*_t
 1.16 01-Jul-2011  dyoung branches: 1.16.2; 1.16.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.15 10-May-2008  martin Backout previous: the license sweep touched these files in error, so
restore the old license.
 1.14 28-Apr-2008  martin branches: 1.14.2;
Remove clause 3 and 4 from TNF licenses
 1.13 17-Oct-2007  garbled Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.12 09-Jul-2007  ad branches: 1.12.10; 1.12.12;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.11 04-Mar-2007  christos branches: 1.11.2; 1.11.4; 1.11.10;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.10 12-Nov-2006  plunky branches: 1.10.4;
Tidy away wsmouse_input() abstractions and update
documentation to include the W direction.
 1.9 05-Aug-2006  bjh21 branches: 1.9.4; 1.9.6;
ANSIfy, un-__P, and generally KNF.
 1.8 11-Dec-2005  christos branches: 1.8.4; 1.8.8;
merge ktrace-lwp.
 1.7 13-Mar-2004  bjh21 branches: 1.7.16;
Rename wsqms(4) to qms(4), since the "ws" is redundant now. While I'm here,
bundle it all into a single file, qms.c, replacing wsqms.c, wsqms_iomd.c,
and wsqmsvar.h.
 1.6 13-Mar-2004  bjh21 Remove busmouse(4) drivers. Everyone should be using wsmouse(4) these days.
 1.5 15-Jul-2003  lukem __KERNEL_RCSID()
 1.4 26-Nov-2002  christos branches: 1.4.6;
si_ -> sel_
 1.3 23-Oct-2002  jdolecek merge kqueue branch into -current

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

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

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.2 06-Sep-2002  gehenna branches: 1.2.2;
Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.14;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.14.1 17-May-2002  gehenna Add device switch.
 1.1.6.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.1.6.4 02-Oct-2002  jdolecek do not need the (void *) cast for kn_hook anymore
 1.1.6.3 17-Jun-2002  jdolecek provide kqfilter hooks
XXX not tested
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file qms.c was added on branch kqueue on 2002-01-10 19:38:14 +0000
 1.1.4.4 11-Dec-2002  thorpej Sync with HEAD.
 1.1.4.3 11-Nov-2002  nathanw Catch up to -current
 1.1.4.2 17-Sep-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file qms.c was added on branch nathanw_sa on 2002-09-17 21:13:31 +0000
 1.2.2.1 24-Oct-2002  bjh21 Sync with trunk.
 1.4.6.5 13-Jan-2005  skrll Adapt to branch
 1.4.6.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.6.3 18-Sep-2004  skrll Sync with HEAD.
 1.4.6.2 03-Aug-2004  skrll Sync with HEAD
 1.4.6.1 03-Jul-2003  wrstuden lwp-ify a lot of the arm drivers. Needed to get acorn32/GENERIC compiling.
 1.7.16.3 03-Sep-2007  yamt sync with head.
 1.7.16.2 30-Dec-2006  yamt sync with head.
 1.7.16.1 21-Jun-2006  yamt sync with head.
 1.8.8.1 11-Aug-2006  yamt sync with head
 1.8.4.1 09-Sep-2006  rpaulo sync with head
 1.9.6.1 10-Dec-2006  yamt sync with head.
 1.9.4.1 18-Nov-2006  ad Sync with head.
 1.10.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.11.10.1 03-Oct-2007  garbled Sync with HEAD
 1.11.4.1 11-Jul-2007  mjf Sync with head.
 1.11.2.1 15-Jul-2007  ad Sync with head.
 1.12.12.1 06-Nov-2007  matt sync with HEAD
 1.12.10.1 01-Jan-2008  chris Sync with HEAD.
 1.14.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.16.6.1 02-Jun-2012  mrg sync to latest -current.
 1.16.2.1 23-May-2012  yamt sync with head.
 1.18.40.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.19.10.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.20.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.9 13-Mar-2004  bjh21 Remove busmouse(4) drivers. Everyone should be using wsmouse(4) these days.
 1.8 15-Jul-2003  lukem __KERNEL_RCSID()
 1.7 02-Oct-2002  thorpej branches: 1.7.8;
Add trailing ; to CFATTACH_DECL
 1.6 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.3 27-Nov-2001  thorpej branches: 1.3.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.2 22-Nov-2001  thorpej Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.3 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file qms_iomd.c was added on branch nathanw_sa on 2002-01-08 00:23:16 +0000
 1.3.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.3.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.1 27-Nov-2001  thorpej file qms_iomd.c was added on branch kqueue on 2002-01-10 19:38:15 +0000
 1.7.8.1 03-Aug-2004  skrll Sync with HEAD
 1.3 13-Mar-2004  bjh21 Remove busmouse(4) drivers. Everyone should be using wsmouse(4) these days.
 1.2 18-Feb-2002  bjh21 branches: 1.2.18;
Add a prototype for qms_console_freeze().
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.3 16-Mar-2002  jdolecek Catch up with -current.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file qmsvar.h was added on branch kqueue on 2002-01-10 19:38:16 +0000
 1.1.4.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file qmsvar.h was added on branch nathanw_sa on 2002-02-28 04:07:38 +0000
 1.2.18.1 03-Aug-2004  skrll Sync with HEAD
 1.14 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.13 25-Apr-2006  snj s/allready/already/
 1.12 11-Dec-2005  christos branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12;
merge ktrace-lwp.
 1.11 29-Jan-2004  reinoud branches: 1.11.16;
The `beep' device has been removed but aparently this small reference was
obmitted resulting in a compilation failure in the autobuilds.

It effectively removes the now redundant reference to "beep.h" and removes
an associated prototype that wasn't used.
 1.10 17-Jan-2004  bjh21 Use audiobell for system beeps on acorn32 when vidcaudio(4) is compiled in.
Remove the vestigal sysbeep device and replace it with the same kind of
mechanism that pckbd(4) uses to find the bell, which is just as ugly, but
more standard. Adapt beep(4) to the new world (though I'm not sure it
deserves to live).
 1.9 17-Jan-2004  bjh21 Don't include option headers we're not going to use.
 1.8 17-Jan-2004  bjh21 KNF.
 1.7 17-Jan-2004  bjh21 Un-__P.
 1.6 15-Jul-2003  lukem __KERNEL_RCSID()
 1.5 20-Jan-2003  simonb branches: 1.5.2;
The Double-Semi-Colon Police.
 1.4 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.3 17-Mar-2002  atatat branches: 1.3.4;
Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
 1.2 10-Feb-2002  reinoud Please only return errno values !!! ... also doing a bit of KNF'ing
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.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.1.6.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.6.3 16-Mar-2002  jdolecek Catch up with -current.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file rpckbd.c was added on branch kqueue on 2002-01-10 19:38:16 +0000
 1.1.4.4 17-Sep-2002  nathanw Catch up to -current.
 1.1.4.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.4.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file rpckbd.c was added on branch nathanw_sa on 2002-02-28 04:07:38 +0000
 1.3.4.1 19-May-2002  gehenna Remove unnecessary #include
 1.5.2.4 13-Jan-2005  skrll Adapt to branch
 1.5.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.2.1 03-Aug-2004  skrll Sync with HEAD
 1.11.16.2 30-Dec-2006  yamt sync with head.
 1.11.16.1 21-Jun-2006  yamt sync with head.
 1.12.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.12.10.1 11-May-2006  elad sync with head
 1.12.8.2 03-Sep-2006  yamt sync with head.
 1.12.8.1 24-May-2006  yamt sync with head.
 1.12.6.1 01-Jun-2006  kardel Sync with head.
 1.12.4.1 09-Sep-2006  rpaulo sync with head
 1.11 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.10 11-Dec-2005  christos branches: 1.10.4; 1.10.8;
merge ktrace-lwp.
 1.9 08-Feb-2004  bjh21 branches: 1.9.16;
Attach rpckbd(4) and kbd(4) in the same place, so that they can't both end
up attached at the same time, and so that they can both prevent the forthcoming
iomdkbc(4) attaching to the keyboard slot.
[ file missed in last commit ]
 1.8 15-Jul-2003  lukem __KERNEL_RCSID()
 1.7 02-Oct-2002  thorpej branches: 1.7.8;
Add trailing ; to CFATTACH_DECL
 1.6 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.3 23-Mar-2002  reinoud Allthough this patch doesn't look that much it adds a few things that were
on the port-acorn32's TODO list for quite some time :

- when the serial console is selected, don't exclude the screen
alltogether; currently the keyboard is still not attached but that might be
a configuration problem in the GENERIC console or a failure to explicitly
connect to a wsmux. This needs further investigation.

- create a framework for the display memory writeback on vsync for
StrongARM processors since they don't have a write-trough cache. This is to
solve the lazy screen update that is very evident in single user mode on
these processors; the cache isn't flushed/written back that often and parts
of the screen can thus be resident in the cache but not written out to
memory yet.

- clean up some loose ends in the code.
 1.2 27-Nov-2001  thorpej branches: 1.2.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.4 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file rpckbd_iomd.c was added on branch nathanw_sa on 2002-01-08 00:23:16 +0000
 1.2.2.4 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file rpckbd_iomd.c was added on branch kqueue on 2002-01-10 19:38:16 +0000
 1.7.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.7.8.1 03-Aug-2004  skrll Sync with HEAD
 1.9.16.1 30-Dec-2006  yamt sync with head.
 1.10.8.1 03-Sep-2006  yamt sync with head.
 1.10.4.1 09-Sep-2006  rpaulo sync with head
 1.4 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.3 11-Dec-2005  christos branches: 1.3.4; 1.3.8;
merge ktrace-lwp.
 1.2 17-Jan-2004  bjh21 branches: 1.2.16;
Use audiobell for system beeps on acorn32 when vidcaudio(4) is compiled in.
Remove the vestigal sysbeep device and replace it with the same kind of
mechanism that pckbd(4) uses to find the bell, which is just as ugly, but
more standard. Adapt beep(4) to the new world (though I'm not sure it
deserves to live).
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.24;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file rpckbdvar.h was added on branch kqueue on 2002-01-10 19:38:17 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file rpckbdvar.h was added on branch nathanw_sa on 2001-10-05 22:27:43 +0000
 1.2.16.1 30-Dec-2006  yamt sync with head.
 1.3.8.1 03-Sep-2006  yamt sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.12 06-Oct-2003  thorpej New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.11 15-Jul-2003  lukem __KERNEL_RCSID()
 1.10 06-Jan-2003  wiz branches: 1.10.2;
specified, not specifed.
 1.9 23-Oct-2002  jdolecek merge kqueue branch into -current

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

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

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.8 02-Oct-2002  thorpej branches: 1.8.2;
Add trailing ; to CFATTACH_DECL
 1.7 01-Oct-2002  bjh21 Remove a spurious ']' from the CFATTACH_DECL invokation.
 1.6 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.3 18-Feb-2002  bjh21 branches: 1.3.8;
Include <machine/conf.h> for cdevsw function prototypes.
Add internal prototypes for hexdectodec(), dectohexdec() and twodigits().
Correct signature of rtcioctl().
 1.2 05-Feb-2002  reinoud At last enable the real time clock again on acorn32 !! thanks a lot to Mike
Pumford for the patches.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.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.1.6.4 16-Mar-2002  jdolecek Catch up with -current.
 1.1.6.3 11-Feb-2002  jdolecek Sync w/ -current.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file rtc.c was added on branch kqueue on 2002-01-10 19:38:17 +0000
 1.1.4.6 07-Jan-2003  thorpej Sync with HEAD.
 1.1.4.5 11-Nov-2002  nathanw Catch up to -current
 1.1.4.4 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.3 17-Sep-2002  nathanw Catch up to -current.
 1.1.4.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file rtc.c was added on branch nathanw_sa on 2002-02-28 04:07:38 +0000
 1.3.8.1 17-May-2002  gehenna Add device switch.
 1.8.2.1 24-Oct-2002  bjh21 Sync with trunk.
 1.10.2.2 03-Aug-2004  skrll Sync with HEAD
 1.10.2.1 03-Jul-2003  wrstuden lwp-ify a lot of the arm drivers. Needed to get acorn32/GENERIC compiling.
 1.9 17-Jan-2004  bjh21 Use audiobell for system beeps on acorn32 when vidcaudio(4) is compiled in.
Remove the vestigal sysbeep device and replace it with the same kind of
mechanism that pckbd(4) uses to find the bell, which is just as ugly, but
more standard. Adapt beep(4) to the new world (though I'm not sure it
deserves to live).
 1.8 01-Jan-2004  bjh21 The lmcaudio driver was only ever used on the RC7500, which we don't support
these days. Let the CVS history be its only memorial.
 1.7 02-Oct-2002  thorpej branches: 1.7.8;
Add trailing ; to CFATTACH_DECL
 1.6 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 16-Jun-2002  bjh21 Un-__P, ANSIfy, KNF.
 1.3 10-Mar-2002  bjh21 branches: 1.3.4;
__RCSID -> __KERNEL_RCSID
 1.2 18-Feb-2002  bjh21 Rename prototype from sysbeep_vidc() to sysbeep() to match definition.
Pull in beepvar.h and vidcaudiovar.h for beep_generate() and
vidcaudio_beep_generate() prototypes.
__RCSID().
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.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.1.6.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.6.3 16-Mar-2002  jdolecek Catch up with -current.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file sysbeep_vidc.c was added on branch kqueue on 2002-01-10 19:38:18 +0000
 1.1.4.5 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.4 20-Jun-2002  nathanw Catch up to -current.
 1.1.4.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.4.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file sysbeep_vidc.c was added on branch nathanw_sa on 2002-02-28 04:07:39 +0000
 1.3.4.1 14-Jul-2002  gehenna catch up with -current.
 1.7.8.1 03-Aug-2004  skrll Sync with HEAD
 1.8 06-Oct-2003  thorpej New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.7 02-Oct-2002  thorpej branches: 1.7.8;
Add trailing ; to CFATTACH_DECL
 1.6 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 10-Mar-2002  bjh21 __RCSID -> __KERNEL_RCSID
 1.3 18-Feb-2002  bjh21 Add prototype for yeartoday().
 1.2 05-Feb-2002  reinoud At last enable the real time clock again on acorn32 !! thanks a lot to Mike
Pumford for the patches.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.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.1.6.4 16-Mar-2002  jdolecek Catch up with -current.
 1.1.6.3 11-Feb-2002  jdolecek Sync w/ -current.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file todclock.c was added on branch kqueue on 2002-01-10 19:38:18 +0000
 1.1.4.4 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.4.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file todclock.c was added on branch nathanw_sa on 2002-02-28 04:07:39 +0000
 1.7.8.1 03-Aug-2004  skrll Sync with HEAD
 1.2 06-Oct-2003  thorpej New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.24;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file todclockvar.h was added on branch kqueue on 2002-01-10 19:38:18 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file todclockvar.h was added on branch nathanw_sa on 2001-10-05 22:27:43 +0000
 1.14 05-Feb-2024  andvar s/dependancies/dependencies/ and s/independantly/independently/ in comments and
distrib notes.
 1.13 18-Aug-2006  bjh21 Move calculation of a screen mode's frame rate out of makemodes.awk into
the kernel, removing an element from struct vidc_mode. The calculation
is a bit pointless at the moment anyway, since both bootloaders pass in
a constant 56, but that might get fixed one day.
 1.12 17-Aug-2006  bjh21 This is kernel-only now, so no need to check _KERNEL.
 1.11 17-Aug-2006  bjh21 Switch to using the MI struct videomode for storing VIDC video timings.
struct videomode doesn't have a way to record border widths (though I
wonder if VESA's "margins" are the same thing), so we now just treat them
as zero. Tested on my NC, which still seems to be working.
 1.10 15-Aug-2006  bjh21 Remove some prototypes and macros that aren't used any more.
 1.9 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.8 11-Dec-2005  christos branches: 1.8.4; 1.8.8;
merge ktrace-lwp.
 1.7 31-Dec-2003  bjh21 branches: 1.7.16;
Add definitions of the bits in the Sound Control Register (SCR).
 1.6 05-Oct-2002  chs branches: 1.6.8;
copy over some stuff from the shark version of this file.
(how did this compile before?)
add missing protos.
 1.5 01-Oct-2002  reinoud Remove old unused cruft
 1.4 16-Jun-2002  bjh21 Parenthesise arguments to VIDC_BLUE and VIDC_GREEN correctly.
 1.3 30-Mar-2002  reinoud branches: 1.3.2; 1.3.4;
Only include the vidc_machdep.h file when we're compiling the kernel
 1.2 17-Oct-2001  reinoud branches: 1.2.4; 1.2.6;
Sad point .... remove RC7500 support from the iomd directory in the
arch/arm/iomd/* .... the RC7500 isnt really an iomd/vidc machine but has
different video/audio chip and was kind of hardwired/hacked into the other
chip drivers.
 1.1 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.2.6.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.2.6.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.6.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.6.1 17-Oct-2001  thorpej file vidc.h was added on branch kqueue on 2002-01-10 19:38:19 +0000
 1.2.4.4 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.3 20-Jun-2002  nathanw Catch up to -current.
 1.2.4.2 17-Apr-2002  nathanw Catch up to -current.
 1.2.4.1 17-Oct-2001  nathanw file vidc.h was added on branch nathanw_sa on 2002-04-17 00:02:32 +0000
 1.3.4.1 21-Jun-2002  lukem Pull up revision 1.4 (requested by bjh21 in ticket #328):
Parenthesise arguments to VIDC_BLUE and VIDC_GREEN correctly.
 1.3.2.1 14-Jul-2002  gehenna catch up with -current.
 1.6.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.8.1 03-Aug-2004  skrll Sync with HEAD
 1.7.16.1 30-Dec-2006  yamt sync with head.
 1.8.8.1 03-Sep-2006  yamt sync with head.
 1.8.4.1 09-Sep-2006  rpaulo sync with head
 1.19 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.18 24-Apr-2021  thorpej branches: 1.18.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.17 14-May-2012  skrll branches: 1.17.54;
device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t
Use aprint*
 1.16 01-Jul-2011  dyoung branches: 1.16.2; 1.16.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.15 05-Aug-2006  bjh21 ANSIfy, un-__P, and generally KNF.
 1.14 08-Mar-2006  lukem Use the SI capitalization for "Hz", "kHz", and "MHz" in comments and strings.
Add a space between numbers and Hz unit.
 1.13 11-Dec-2005  christos branches: 1.13.4; 1.13.6; 1.13.8; 1.13.10;
merge ktrace-lwp.
 1.12 26-Aug-2005  drochner s/locdesc_t/int/g
 1.11 03-Jul-2005  he branches: 1.11.2;
Make the vidcsearch() prototype match the function declaration.
 1.10 30-Jun-2005  drochner adaptions to config_search() change, and minor autoconf fixes, mostly from Havard Eidnes
 1.9 15-Jul-2003  lukem __KERNEL_RCSID()
 1.8 02-Oct-2002  thorpej branches: 1.8.8;
Add trailing ; to CFATTACH_DECL
 1.7 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.6 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.5 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.4 16-Jun-2002  bjh21 Un-__P, ANSIfy, clean up comments.
 1.3 16-Jun-2002  bjh21 None of the children of vidc now use their aux pointer, so there's no need
to set it, and vidcprint isn't needed to print it. G/C all that code, and
most of the rest of vidcsearch too.
This also means that the locators on vidc's children are unused, so G/C them
as well.
 1.2 06-Jun-2002  bjh21 Don't identify all VIDCs as "vidc20". Instead, print something appropriate
based on the type of IOMD in the system (which we use anyway to work out
the VCO reference clock frequency).
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.14;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.14.1 14-Jul-2002  gehenna catch up with -current.
 1.1.6.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.1.6.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.6.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file vidc20.c was added on branch kqueue on 2002-01-10 19:38:19 +0000
 1.1.4.3 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file vidc20.c was added on branch nathanw_sa on 2002-06-20 03:38:13 +0000
 1.8.8.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.8.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.8.8.1 03-Aug-2004  skrll Sync with HEAD
 1.11.2.2 30-Dec-2006  yamt sync with head.
 1.11.2.1 21-Jun-2006  yamt sync with head.
 1.13.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.13.8.2 11-Aug-2006  yamt sync with head
 1.13.8.1 13-Mar-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.16.6.1 02-Jun-2012  mrg sync to latest -current.
 1.16.2.1 23-May-2012  yamt sync with head.
 1.17.54.6 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.17.54.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.17.54.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.17.54.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.17.54.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.17.54.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.18.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.37 18-May-2024  andvar s/abou/about/ in comment.
 1.36 24-May-2022  andvar fix various typos in comments, docs and log messages.
 1.35 19-Sep-2021  andvar fix various typos in comments, messages and documentation.
 1.34 25-Oct-2014  skrll Remove katelib.h and references to it.

{Read,Write}{Word,Byte} macros are provided in the files that still use
them. Someone(tm) should convert them to bus_space(9)
 1.33 18-Oct-2014  snj src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
 1.32 15-Mar-2009  cegger branches: 1.32.22;
ansify function definitions
 1.31 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.30 28-Oct-2006  bjh21 branches: 1.30.58; 1.30.66; 1.30.72;
When setting the FIFO preload, chose an entirely safe value rather than
using a completely bogus heuristic to guess at one. This might cause FIFO
underruns in particularly exciting video modes, but it also makes more
boring ones work correctly.
 1.29 21-Oct-2006  bjh21 Program the IOMD flyback size register correctly, or at least the same way
we did before we started using struct videomode. This seems to unbreak
systems with VRAM at least a little.
 1.28 19-Aug-2006  bjh21 branches: 1.28.2; 1.28.4;
When looking for a screen mode at startup, skip any interlaced and
doublescan modes, since vidcvideo doesn't support them.
 1.27 19-Aug-2006  bjh21 If we can't find a screen mode matching the bootloader's frame rate, choose
the nearest one, rather than the first one with the same resolution. This
is likely to be useful when the bootloader finally passes a valid frame rate.
For now, it just favours flickery over non-functional.
 1.26 19-Aug-2006  bjh21 Arrange things so that if MONITOR isn't defined in the kernel configration,
we use the standard mode list from videomode.c rather than one generated
by makemodes.awk. This is less useful than it might be since without a useful
frame rate from the bootloader we're likely to end up choosing a screen mode
that's either flickery or too fast for the monitor (or DRAM bandwidth).
 1.25 19-Aug-2006  bjh21 The log2_bpp fields of the mode list generated by makemodes.awk weren't
used for anything. Rearrange things so that it doesn't any more, and
just produces an array of struct videomode. modedefs.c is looking
suspiciously much like videomode.c now.
 1.24 18-Aug-2006  bjh21 Move calculation of a screen mode's frame rate out of makemodes.awk into
the kernel, removing an element from struct vidc_mode. The calculation
is a bit pointless at the moment anyway, since both bootloaders pass in
a constant 56, but that might get fixed one day.
 1.23 17-Aug-2006  bjh21 Switch to using the MI struct videomode for storing VIDC video timings.
struct videomode doesn't have a way to record border widths (though I
wonder if VESA's "margins" are the same thing), so we now just treat them
as zero. Tested on my NC, which still seems to be working.
 1.22 15-Aug-2006  bjh21 vidc_initialmode seems to be initialised at startup and never touched again.
Lose it.
 1.21 05-Aug-2006  bjh21 ANSIfy, un-__P, and generally KNF.
 1.20 11-Dec-2005  christos branches: 1.20.4; 1.20.8;
merge ktrace-lwp.
 1.19 01-Apr-2005  yamt branches: 1.19.2;
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.18 11-Feb-2005  simonb White space nit- don't put a space before/after increment/decrement
operators.
 1.17 21-Sep-2003  matt branches: 1.17.8; 1.17.10;
Fix GCC 3.3.1 nits
 1.16 01-Apr-2003  thorpej branches: 1.16.2;
Use PAGE_SIZE rather than NBPG.
 1.15 01-Oct-2002  reinoud Fix some small range checks and why weren't we writing the palette in when
we're asked to set the VIDC in a given state! :-D ahum... these are fixed
now. The top palette entry wasn't set.
 1.14 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.13 19-Jun-2002  bjh21 Move over to using a 6:5:5 R:G:B palette in 16-bit display modes, and abstract
the palette generation to work with arbitrary numbers of bits.
This allows X to work after a fashion, since it tries to put the VIDC into
a 6:5:5 mode itself (which we ignore). Anything that actually tries to take
advantage of the DirectColor visual it offers will still be screwed, but I
hope such applications are rare.
 1.12 17-Jun-2002  bjh21 Kill off vidcvideo_textpalette() again, but better.
This time, vidcvideo_stdpalette() uses vidcvideo_write(), as it should, and
correctly initialises the paletter in 16bpp and (I hope) 32 bpp modes.
This fixes the colours on the text console in 16bpp modes. 32bpp seems to be
generally broken anyway.
 1.11 16-Jun-2002  bjh21 Revert last. vidcvideo_textpalette() and vidcvideo_stdpalette set the palette
by different means.
 1.10 16-Jun-2002  bjh21 vidcvideo_stdpalette() and vidcvideo_textpalette() do precisely the same thing.
G/C the latter and change its only caller to use the former.
 1.9 15-Mar-2002  reinoud branches: 1.9.4; 1.9.6;
Some cosmetic changes....
 1.8 10-Mar-2002  bjh21 __RCSID -> __KERNEL_RCSID
 1.7 18-Feb-2002  bjh21 Comment out vidcvideo_setbase() (it's unused).
Remove vidcvideo_mmap() (it's redundant).
Add in-core RCSID.
 1.6 15-Dec-2001  bjh21 branches: 1.6.2;
mod() was unused. g/c it. New code should use abs() anyway.
 1.5 15-Dec-2001  bjh21 Simplify the pixel-clock-rate-setting code, so it always works out the
parameters from first principles rather than using a static table for some
rates. This makes it work correctly on ARM7500, for which the table was
bogus (ARM7500 has a different refclk from VIDC20).
 1.4 27-Nov-2001  thorpej Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.3 22-Nov-2001  thorpej Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
 1.2 17-Oct-2001  reinoud branches: 1.2.4;
Sad point .... remove RC7500 support from the iomd directory in the
arch/arm/iomd/* .... the RC7500 isnt really an iomd/vidc machine but has
different video/audio chip and was kind of hardwired/hacked into the other
chip drivers.
 1.1 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.2.4.7 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.6 01-Aug-2002  nathanw Catch up to -current.
 1.2.4.5 20-Jun-2002  nathanw Catch up to -current.
 1.2.4.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 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 17-Oct-2001  nathanw file vidc20config.c was added on branch nathanw_sa on 2002-01-08 00:23:16 +0000
 1.6.2.6 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.6.2.5 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.6.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.6.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.6.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.6.2.1 15-Dec-2001  thorpej file vidc20config.c was added on branch kqueue on 2002-01-10 19:38:20 +0000
 1.9.6.2 21-Jun-2002  lukem Pull up revision 1.13 (requested by bjh21 in ticket #328):
Move over to using a 6:5:5 R:G:B palette in 16-bit display modes, and abstract
the palette generation to work with arbitrary numbers of bits.
This allows X to work after a fashion, since it tries to put the VIDC into
a 6:5:5 mode itself (which we ignore). Anything that actually tries to take
advantage of the DirectColor visual it offers will still be screwed, but I
hope such applications are rare.
 1.9.6.1 21-Jun-2002  lukem Pull up revision 1.12 (requested by bjh21 in ticket #328):
Kill off vidcvideo_textpalette() again, but better.
This time, vidcvideo_stdpalette() uses vidcvideo_write(), as it should, and
correctly initialises the paletter in 16bpp and (I hope) 32 bpp modes.
This fixes the colours on the text console in 16bpp modes. 32bpp seems to be
generally broken anyway.
 1.9.4.2 16-Jul-2002  gehenna catch up with -current.
 1.9.4.1 14-Jul-2002  gehenna catch up with -current.
 1.16.2.5 01-Apr-2005  skrll Sync with HEAD.
 1.16.2.4 15-Feb-2005  skrll Sync with HEAD.
 1.16.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.16.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.16.2.1 03-Aug-2004  skrll Sync with HEAD
 1.17.10.2 12-Feb-2005  yamt sync with head.
 1.17.10.1 28-Jan-2005  yamt convert arch/arm to new apis.
 1.17.8.1 29-Apr-2005  kent sync with -current
 1.19.2.1 30-Dec-2006  yamt sync with head.
 1.20.8.2 03-Sep-2006  yamt sync with head.
 1.20.8.1 11-Aug-2006  yamt sync with head
 1.20.4.1 09-Sep-2006  rpaulo sync with head
 1.28.4.2 10-Dec-2006  yamt sync with head.
 1.28.4.1 22-Oct-2006  yamt sync with head
 1.28.2.1 18-Nov-2006  ad Sync with head.
 1.30.72.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.30.66.1 28-Apr-2009  skrll Sync with HEAD.
 1.30.58.1 04-May-2009  yamt sync with head.
 1.32.22.1 03-Dec-2017  jdolecek update from HEAD
 1.3 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.2 27-Nov-2001  thorpej branches: 1.2.2; 1.2.36; 1.2.50; 1.2.54;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file vidc20config.c.old-stuff was added on branch nathanw_sa on 2002-01-08 00:23:16 +0000
 1.2.54.1 03-Sep-2006  yamt sync with head.
 1.2.50.1 09-Sep-2006  rpaulo sync with head
 1.2.36.1 30-Dec-2006  yamt sync with head.
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file vidc20config.c.old-stuff was added on branch kqueue on 2002-01-10 19:38:20 +0000
 1.8 28-May-2022  andvar s/heigth/height/ in a function argument name.
 1.7 19-May-2008  reinoud Remove double copyright message by me
 1.6 28-Apr-2008  martin branches: 1.6.2;
Remove clause 3 and 4 from TNF licenses
 1.5 15-Aug-2006  bjh21 branches: 1.5.58; 1.5.60; 1.5.62;
Un-__P
 1.4 17-Jun-2002  bjh21 branches: 1.4.24; 1.4.38; 1.4.42;
Kill off vidcvideo_textpalette() again, but better.
This time, vidcvideo_stdpalette() uses vidcvideo_write(), as it should, and
correctly initialises the paletter in 16bpp and (I hope) 32 bpp modes.
This fixes the colours on the text console in 16bpp modes. 32bpp seems to be
generally broken anyway.
 1.3 16-Jun-2002  bjh21 Revert last. vidcvideo_textpalette() and vidcvideo_stdpalette set the palette
by different means.
 1.2 16-Jun-2002  bjh21 vidcvideo_stdpalette() and vidcvideo_textpalette() do precisely the same thing.
G/C the latter and change its only caller to use the former.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.14; 1.1.16;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.16.1 21-Jun-2002  lukem Pull up revision 1.4 (requested by bjh21 in ticket #328):
Kill off vidcvideo_textpalette() again, but better.
This time, vidcvideo_stdpalette() uses vidcvideo_write(), as it should, and
correctly initialises the paletter in 16bpp and (I hope) 32 bpp modes.
This fixes the colours on the text console in 16bpp modes. 32bpp seems to be
generally broken anyway.
 1.1.14.2 16-Jul-2002  gehenna catch up with -current.
 1.1.14.1 14-Jul-2002  gehenna catch up with -current.
 1.1.6.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file vidc20config.h was added on branch kqueue on 2002-01-10 19:38:21 +0000
 1.1.4.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file vidc20config.h was added on branch nathanw_sa on 2002-06-20 03:38:13 +0000
 1.4.42.1 03-Sep-2006  yamt sync with head.
 1.4.38.1 09-Sep-2006  rpaulo sync with head
 1.4.24.1 30-Dec-2006  yamt sync with head.
 1.5.62.2 04-May-2009  yamt sync with head.
 1.5.62.1 16-May-2008  yamt sync with head.
 1.5.60.2 04-Jun-2008  yamt sync with head
 1.5.60.1 18-May-2008  yamt sync with head.
 1.5.58.1 02-Jun-2008  mjf Sync with HEAD.
 1.6.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.62 27-Sep-2022  skrll malloc -> kmem
 1.61 03-Feb-2021  isaki Remove a comment no longer correct.
Because halt_output is no longer called from an interrupt context,
but that does not mean it's better to put this back to halt_output.
 1.60 23-Feb-2020  isaki branches: 1.60.6;
Make start_input/halt_input optional if the driver has no recording,
make start_output/halt_output optional if the driver has no playback.
And remove such never called functions.
 1.59 08-Jun-2019  isaki branches: 1.59.4;
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
This eliminates need for audio.c to take care of such (old)
drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
It is handled in the audio layer now.
 1.58 08-May-2019  isaki Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c
 1.57 16-Mar-2019  isaki branches: 1.57.2;
Use C99 style struct initializer to audio_hw_if.
 1.56 03-Sep-2018  riastradh Rename min/max -> uimin/uimax for better honesty.

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

HOWEVER! Some subsystems have

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

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

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

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

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

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

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.55 13-Dec-2016  christos branches: 1.55.14; 1.55.16;
back to passing device_t
 1.54 09-Dec-2016  christos audiobell now only needs the unit.
 1.53 25-Oct-2014  skrll branches: 1.53.2; 1.53.4;
Remove katelib.h and references to it.

{Read,Write}{Word,Byte} macros are provided in the files that still use
them. Someone(tm) should convert them to bus_space(9)
 1.52 13-Sep-2014  matt Replace more vm_offset_t, vm_size_t with vaddr_t, vsize_t
Use paddr_t for msgbufphys
 1.51 10-Oct-2012  skrll Use device_xname.

From chuq.
 1.50 14-May-2012  skrll branches: 1.50.2;
device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t
Use aprint*
 1.49 10-May-2012  skrll KNF
 1.48 24-Nov-2011  mrg branches: 1.48.2;
put back IPL_AUDIO and splaudio(), at the request of rmind. they are
aliases and now we can easily revert audio to IPL_VM if necessary,
without having to revert the whole branch.
 1.47 23-Nov-2011  jmcneill Merge jmcneill-audiomp3 branch, which is derived from ad-audiomp2. From
the original ad-audiomp branch notes:

Add MP locking to the audio drivers.

Making the audio drivers MP safe is necessary before efforts
can be made to make the VM system MP safe.

The are two locks per device instance, an ISR lock and
a character device lock. The ISR lock replaces calls to
splaudio()/splx(), and will be held across calls to device
methods which were called at splaudio() before (e.g.
trigger_output). The character device lock is held across
calls to nearly all of the methods, excluding some only
used for initialization, e.g. get_locks.

Welcome to 5.99.57.
 1.46 01-Mar-2008  chris branches: 1.46.38; 1.46.40;
Fix acorn32 console beep to actually beep, rather than the kernel say:
aurateconv_fetch_to: internal error: unsupported encoding: enc=1 prec=8

The issue was that the playback filters for audio were being added to the
list in the wrong order. The first entry in the list is closest to the
hardware, the last is closest to the audio buffer. The code thought it
the other way around, so the incorrect formats were being passed down the
filter list.
 1.45 22-Feb-2007  thorpej branches: 1.45.2; 1.45.22; 1.45.24; 1.45.40; 1.45.44;
TRUE -> true, FALSE -> false
 1.44 14-Aug-2006  bjh21 branches: 1.44.8;
Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.43 11-Dec-2005  christos branches: 1.43.4; 1.43.8;
merge ktrace-lwp.
 1.42 15-Jan-2005  kent branches: 1.42.10;
ansify and KNF
 1.41 10-Jan-2005  kent merge kent-audio1 branch, which introduces audio filter pipeline to the MI
audio framework


Summary of changes:

* struct audio_params
- remove sw_code, factor, factor_denom, hw_sample_rate,
hw_encoding ,hw_precision, and hw_channels. Conversion information
is conveyed by stream_filter_list_t.
- change the type of sample_rate: u_long -> u_int
- add `validbits,' which represents the valid data size in
precision bits. It is required in order to distinguish 24/32bit
from 24/24bit or 32/32bit.

* audio_hw_if
- add two parameters to set_params()
stream_filter_list_t *pfil, stream_filter_list *rfil
A HW driver should set filter recipes for requested formats
- constify audio_params parameters of trigger_output() and
trigger_input(). They represent audio formats for the hardware.
- make open() and close() optional
- add int (AUMODE_PLAY or AUMODE_RECORD) and audio_params_t parameters
to round_blocksize()

* sw_code is replaced with stream_filter_t.
stream_filer_t converts audio data in an input buffer and writes
into another output buffer unlike sw_code, which converts data in
single buffer.
converters in dev/auconv.c, dev/mulaw.c, dev/aurateconv.c,
dev/tc/bba.c, dev/ic/msm6258.c, and arch/arm/iomd/vidcaudio.c are
reimplemented as stream_filter_t

* MI audio
- audiosetinfo() builds filter pipelines from stream_filter_list_t
filled by audio_hw_if::set_params()
- audiosetinfo() returns with EINVAL if mmapped and set_params()
requests filters
- audio_write(), audio_pint(), and audio_rint() invoke a filter
pipeline.
- ioctl() for FIONREAD, AUDIO_WSEEK, AUDIO_GETIOFFS,
AUDIO_GETOOFFS, and audio_prinfo::{seek,samples} for
AUDIO_GETINFO handle values for a buffer nearest to userland.

* add `struct device *' parameter to ac97_attach()

* all of audio HW drivers follow audio_hw_if and ac97 changes
 1.40 29-Oct-2004  yamt branches: 1.40.2;
constify audio_hw_if, midi_hw_if, and radio_hw_if.
 1.39 13-Mar-2004  bjh21 Add support for using the MI pckbd and pms drivers with the IOMD keyboard
and mouse ports, with a new driver, iomdkbc(4).
 1.38 25-Jan-2004  bjh21 Remove spurious inclusion of obsolete <arch/arm/iomd/waveform.h>.
 1.37 18-Jan-2004  bjh21 vidcaudio_set_params() must return a value (oops!).
 1.36 17-Jan-2004  bjh21 Change the control flow in vidcaudio_set_params() so as to make the indentation
less hairy.
 1.35 17-Jan-2004  bjh21 Adjust vt(4) (WHICH MUST DIE) to the new way of handling bells on
NetBSD/acorn32.
 1.34 17-Jan-2004  bjh21 Use audiobell for system beeps on acorn32 when vidcaudio(4) is compiled in.
Remove the vestigal sysbeep device and replace it with the same kind of
mechanism that pckbd(4) uses to find the bell, which is just as ugly, but
more standard. Adapt beep(4) to the new world (though I'm not sure it
deserves to live).
 1.33 10-Jan-2004  bjh21 The VIDC20 data sheet doesn't define the polarity of the sign bit for
8-bit VIDC audio. Both Richard Earnshaw and I had guessed that a set
bit was positive (the same as normal mu-law), but the AudioWorks
manual, and Sound_SoundLog on RISC OS, seem to disagree. Change
MULAW_TO_VIDC to match Sound_SoundLog, since the latter is probably
definitive.
 1.32 03-Jan-2004  chris Currently the eb7500atx doesn't have a cmos_read function, however it also
won't use the RPC600_IOMD_ID code path, so disable that code path for the
eb7500atx.
 1.31 01-Jan-2004  bjh21 No need to #include "vidcaudio.h" here, so don't do it.
 1.30 01-Jan-2004  bjh21 Rather than calling pmap_extract() from an IPL_AUDIO interrupt handler (which
is naughty even if it does work), find out the complete list of physical pages
we'll have to DMA from in vidcaudio_trigger_output() and save it for use by
the interrupt handler.
 1.29 01-Jan-2004  bjh21 Restore a call to vidcaudio_ctrl() that I accidentally deleted.
 1.28 01-Jan-2004  bjh21 Tidy up debugging printfs to use a single #ifdef and a DPRINTF() macro,
rather than #ifdefs scattered all over the code.
 1.27 01-Jan-2004  bjh21 Add possibly-useful support for 16-bit sound on VIDC20 systems, using
RISC OS's "*Configure SoundSystem" setting to decide whether to use 16-bit
mode. Loosely based on parts of Richard Earnshaw's "sound16" patch.
 1.26 31-Dec-2003  bjh21 When returning our actual sample rate to audio(4) in 16-bit mode, use the right
base clock rate.
 1.25 31-Dec-2003  bjh21 Make local functions static.
 1.24 31-Dec-2003  bjh21 Substantial rewrite of vidcaudio(4). I don't know if the old version
had ever worked, but if it had, it had bit-rotted so far that it
almost all needed replacing. The new version support both 8-bit sound
on the VIDC20 and 16-bit sound on the ARM7500 and ARM7500FE.
sysbeep() support has been lost, but I'm not sure whether that belongs
here or in audio(4) anyway. Support for 16-bit sound on the VIDC20
isn't present because I don't have the hardware to test it. Donations
welcome!
 1.23 29-Dec-2003  bjh21 speaker_ctl() is optional, and vidcaudio_speaker_ctl() did nothing, so kill it.
 1.22 29-Dec-2003  bjh21 Control debugging with VIDCAUDIO_DEBUG rather that DEBUG, to avoid confusion
with the global kernel macro called DEBUG.
 1.21 29-Dec-2003  bjh21 Minor KNF.
 1.20 29-Dec-2003  bjh21 Fix a DEBUG printf.
 1.19 29-Dec-2003  bjh21 Use NULL rather than 0 to initialise unused function pointers.
 1.18 29-Dec-2003  bjh21 KNF.
 1.17 29-Dec-2003  bjh21 ANSIfy, un-__P().
 1.16 06-Dec-2003  bjh21 Don't complain if we're asked for != 8 channels. There's no actual support
for fewer channels yet, but this is necessary just to avoid a boot-time panic.
 1.15 26-Oct-2003  jdolecek fix NULL vs. 0 usage
 1.14 01-Apr-2003  thorpej branches: 1.14.2;
Use PAGE_SIZE rather than NBPG.
 1.13 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL
 1.12 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.11 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.10 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.9 16-Jun-2002  bjh21 struct vidcaudio_softc.iobase was unused other than to initialise it. G/C it.
This also means that the "aux" parameter to vidcaudio_attach is unused.
 1.8 10-Apr-2002  thorpej branches: 1.8.2;
vm_offset_t -> vaddr_t,paddr_t
 1.7 05-Apr-2002  thorpej * Rewrite the 32-bit ARM pte.h based on the ARM architecture manual.
Significant cleanup, here, including better PTE bit names.
* Add XScale PTE extensions (ECC enable, write-allocate cache mode).
* Mechanical changes everywhere else to update for new pte.h. While
doing this, two bugs (as a result of typos) were fixed in

arm/arm32/bus_dma.c
evbarm/integrator/int_bus_dma.c
 1.6 10-Mar-2002  bjh21 __RCSID -> __KERNEL_RCSID
 1.5 18-Feb-2002  bjh21 Add prototypes to all declarations of function pointers.
Include <arch/arm/iomd/vidcaudiovar.h> for vidcaudio_beep_generate() prototype.
Add in-core RCSID.
 1.4 27-Nov-2001  thorpej branches: 1.4.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.3 22-Nov-2001  thorpej Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
 1.2 17-Oct-2001  reinoud branches: 1.2.4;
Sad point .... remove RC7500 support from the iomd directory in the
arch/arm/iomd/* .... the RC7500 isnt really an iomd/vidc machine but has
different video/audio chip and was kind of hardwired/hacked into the other
chip drivers.
 1.1 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.2.4.7 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.6 20-Jun-2002  nathanw Catch up to -current.
 1.2.4.5 17-Apr-2002  nathanw Catch up to -current.
 1.2.4.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 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 17-Oct-2001  nathanw file vidcaudio.c was added on branch nathanw_sa on 2002-01-08 00:23:16 +0000
 1.4.2.6 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.4.2.5 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.4.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.4.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.4.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.2.1 27-Nov-2001  thorpej file vidcaudio.c was added on branch kqueue on 2002-01-10 19:38:21 +0000
 1.8.2.1 14-Jul-2002  gehenna catch up with -current.
 1.14.2.5 17-Jan-2005  skrll Sync with HEAD.
 1.14.2.4 02-Nov-2004  skrll Sync with HEAD.
 1.14.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.14.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.14.2.1 03-Aug-2004  skrll Sync with HEAD
 1.40.2.3 09-Jan-2005  kent audio_hw_if change
* make open() and close() optional
* add int (AUMODE_PLAY or AUMODE_RECORD) and audio_params_t parameters
to round_blocksize()
 1.40.2.2 05-Jan-2005  kent introduce FILTER_LOOP_PROLOGUE() and FILTER_LOOP_EPILOGUE() macros, and
simplify filter implementations by the macros.
 1.40.2.1 03-Jan-2005  kent adopt the filter pipeline framework
 1.42.10.3 17-Mar-2008  yamt sync with head.
 1.42.10.2 26-Feb-2007  yamt sync with head.
 1.42.10.1 30-Dec-2006  yamt sync with head.
 1.43.8.1 03-Sep-2006  yamt sync with head.
 1.43.4.1 09-Sep-2006  rpaulo sync with head
 1.44.8.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.45.44.1 03-Apr-2008  mjf Sync with HEAD.
 1.45.40.1 24-Mar-2008  keiichi sync with head.
 1.45.24.1 23-Mar-2008  matt sync with HEAD
 1.45.22.2 21-Mar-2008  chris Sync with head.
 1.45.22.1 09-Feb-2008  chris Add initial reworking of acorn32 to use new interrupt code.

Note that cats probably won't work currently as acorn32 changed the way
that the pic is registered, it has to provide the irq lines as on acorn32
we attach the iomd after we need to register irqs for the pioc. So we
setup the irqs for iomd before malloc etc are available. This needs
to be fixed.

More work is still needed to update most of the podulebus drivers.
First I need to add podulebus wrapper for interrupts that handles the
maskaddr and maskbits. Exposing them to the common irq code is wrong.
 1.45.2.1 27-Feb-2007  ad Add MP locking for audio drivers.
 1.46.40.2 22-Nov-2011  jmcneill get rid of unused 'powerstate' callback in audio_hw_if
 1.46.40.1 20-Nov-2011  mrg port to audiomp: get_locks support, stream filter updates, remove IPL_AUDIO

not run time tested.
 1.46.38.3 30-Oct-2012  yamt sync with head
 1.46.38.2 23-May-2012  yamt sync with head.
 1.46.38.1 17-Apr-2012  yamt sync with head
 1.48.2.1 02-Jun-2012  mrg sync to latest -current.
 1.50.2.2 03-Dec-2017  jdolecek update from HEAD
 1.50.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.53.4.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.53.2.1 05-Feb-2017  skrll Sync with HEAD
 1.55.16.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.55.16.1 10-Jun-2019  christos Sync with HEAD
 1.55.14.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.57.2.3 04-May-2019  isaki Move dev/audio_if.h -> dev/audio/audio_if.h
 1.57.2.2 04-May-2019  isaki Move dev/audiobell* -> dev/audio/audiobell*.
 1.57.2.1 21-Apr-2019  isaki Adapt to audio2.
 1.59.4.1 29-Feb-2020  ad Sync with head.
 1.60.6.1 03-Apr-2021  thorpej Sync with HEAD.
 1.1 18-Feb-2002  bjh21 branches: 1.1.2; 1.1.8;
Add a vidcaudiovar.h to contain a prototype for vidcaudio_beep_generate().
 1.1.8.2 16-Mar-2002  jdolecek Catch up with -current.
 1.1.8.1 18-Feb-2002  jdolecek file vidcaudiovar.h was added on branch kqueue on 2002-03-16 15:56:14 +0000
 1.1.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.2.1 18-Feb-2002  nathanw file vidcaudiovar.h was added on branch nathanw_sa on 2002-02-28 04:07:40 +0000
 1.51 05-Jan-2025  andvar Fix some typos in comments.
 1.50 27-Sep-2022  skrll branches: 1.50.10;
Remove unnecessary sys/malloc.h include
 1.49 26-Dec-2021  andvar fix various typos, mainly in comments.
 1.48 20-Aug-2021  andvar fix various typos in comments and log messages.
 1.47 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.46 24-Apr-2021  thorpej branches: 1.46.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.45 24-Jan-2018  riastradh branches: 1.45.18;
Fix integer overflows noted by Silvio Cesare of InfoSect.

Someone^TM should name these idioms so we can eliminate this class of
copypasta bug.
 1.44 21-Jan-2014  christos tuck in variables that are only used in the #if 0 block
 1.43 14-May-2012  skrll branches: 1.43.2; 1.43.4;
device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t
Use aprint*
 1.42 10-May-2012  skrll u_int*_t -> uint*_t
 1.41 14-Feb-2012  skrll Whitespace in previous.

Ride previous releng OK.
 1.40 14-Feb-2012  skrll Pass RI_NO_AUTO to rasops_init so that rasops doesn't attempt to allocate
memory as we're too early in kernel startup for this.

My A7000 boots now.

OK releng. ack 3 nak 0.
 1.39 01-Jul-2011  dyoung branches: 1.39.2; 1.39.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.38 21-Oct-2009  snj Remove 3rd and 4th clauses. OK'd by Tohru Nishimura and Reinoud Zandijk
(copyright holders).
 1.37 18-Mar-2009  cegger bzero -> memset
 1.36 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.35 29-Apr-2008  matt branches: 1.35.8; 1.35.14;
Change IPL_LEVELS to NIPL.
current_spl_level is dead.
 1.34 29-Feb-2008  chris branches: 1.34.2; 1.34.4;
Misc updates to hopefully improve vidcvideo console usability:
* add virtual consoles by using wsdisplay_vcons
* make use of generic scrollback support for consoles
* enable colour support for vidcvideo consoles
* use the default NetBSD font, rather than picking a sony one
* make kernel output green, so it's obvious.

This was tested at 800x600 in 8bpp on an A7000+ and 2MB VRAM RiscPC.

To actually benefit from these changes wscons=YES needs to be added to
your rc.conf
 1.33 05-Feb-2008  chris branches: 1.33.2; 1.33.6;
Fix up vidcvideo to be useable on a Write-Back processor, IE StrongArm,
during boot and ddb.

This is done by routing all requests for changes to the screen into one
function. The function can then determine if interrupts are enabled or
disabled, and either flush them to screen immediately or set them up for
the next flyback irq.

Also if we have nothing to do, disable the flyback irq, and re-enable when
we have something to do. This avoids taking an interrupt for every vsync,
IE 50-75Hz, just to do nothing.

This makes ddb usable and the boot dmesg visable with an SA.

lmbench now reports that the A7000+ has a 14Mhz CPU, rather than 4Mhz
(it's actually 48Mhz)

Tested on SA Risc-PC and A7000+
 1.32 03-Feb-2008  chris Use memmove rather than memcpy when moving rows around the framebuffer.

This fixes a problem where scrolling down fills the whole screen with the
first line on screen.
 1.31 04-Mar-2007  christos branches: 1.31.16; 1.31.20; 1.31.22; 1.31.28;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.30 24-Jan-2007  hubertf branches: 1.30.2;
Remove duplicate #includes, patch contributed in private mail
by Slava Semushin <slava.semushin@gmail.com>.

To verify that no nasty side effects of duplicate includes (or their
removal) have an effect here, I've compiled an i386/ALL kernel with
and without the patch, and the only difference in the resulting .o
files was in shifted line numbers in some assert() calls.
The comparison of the .o files was based on the output of "objdump -D".

Thanks to martin@ for the input on testing.
 1.29 21-Oct-2006  bjh21 Remove cruft left over from when this code was copied from some TURBOchannel
framebuffer or other.
 1.28 19-Aug-2006  bjh21 branches: 1.28.2; 1.28.4;
Arrange things so that if MONITOR isn't defined in the kernel configration,
we use the standard mode list from videomode.c rather than one generated
by makemodes.awk. This is less useful than it might be since without a useful
frame rate from the bootloader we're likely to end up choosing a screen mode
that's either flickery or too fast for the monitor (or DRAM bandwidth).
 1.27 17-Aug-2006  bjh21 Switch to using the MI struct videomode for storing VIDC video timings.
struct videomode doesn't have a way to record border widths (though I
wonder if VESA's "margins" are the same thing), so we now just treat them
as zero. Tested on my NC, which still seems to be working.
 1.26 05-Aug-2006  bjh21 bcopy -> memcpy
bzero -> memset
 1.25 05-Aug-2006  bjh21 ANSIfy, un-__P, and generally KNF.
 1.24 25-Apr-2006  snj s/allready/already/
 1.23 15-Apr-2006  jmmv Remove the getwschar and putwschar accessops from wsdisplay drivers as
requested by uwe@. These were wrong because they were receiving an
emulcookie yet they were accessops (thus having to receive an accesscookie).
Instead, just handle the WSDISPLAYIO_{GET,PUT}WSCHAR ioctls from the
driver's ioctl accessop.

As this reduces the amount of code needed to handle these operations to
two small functions in each driver, remove the WSDISPLAY_CHARFUNCS kernel
option.

Reviewed by, at least, uwe@ and macallan@. No objections in tech-kern@.
 1.22 12-Apr-2006  jmmv Add an extra cookie to the ioctl and mmap wsdisplay accessops that points
to the screen on which they are being called. The driver cannot guess
this by itself but it is needed to implement, at least, the getwschar and
putwschar functions in the correct place. There are no functional changes
yet.

Tested on i386 (vga, vga_raster, machfb, vesafb), macppc and sparc64.
Suggested and reviewed by macallan@.
 1.21 11-Dec-2005  christos branches: 1.21.4; 1.21.6; 1.21.8; 1.21.10; 1.21.12;
merge ktrace-lwp.
 1.20 13-Nov-2003  chs branches: 1.20.16;
eliminate uvm_useracc() in favor of checking the return value of
copyin() or copyout().

uvm_useracc() tells us whether the mapping permissions allow access to
the desired part of an address space, and many callers assume that
this is the same as knowing whether an attempt to access that part of
the address space will succeed. however, access to user space can
fail for reasons other than insufficient permission, most notably that
paging in any non-resident data can fail due to i/o errors. most of
the callers of uvm_useracc() make the above incorrect assumption. the
rest are all misguided optimizations, which optimize for the case
where an operation will fail. we'd rather optimize for operations
succeeding, in which case we should just attempt the access and handle
failures due to insufficient permissions the same way we handle i/o
errors. since there appear to be no good uses of uvm_useracc(), we'll
just remove it.
 1.19 07-Nov-2003  he Suppress apparently-bogus -Wunitialized warnings, the compiler does
not detect that set / use occur under equal conditions in following
if() statements.
 1.18 24-Oct-2003  chris Don't pass NULL as an integer.
 1.17 06-May-2003  reinoud branches: 1.17.2;
Some entries were missing so i'd better add them for completion.
 1.16 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL
 1.15 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.14 06-Aug-2002  itojun integer overflow. from silvio@qualys.com
 1.13 04-Jul-2002  junyoung alloc_attr -> allocattr

Approved by Matthias Drochner.
 1.12 19-Jun-2002  bjh21 Move over to using a 6:5:5 R:G:B palette in 16-bit display modes, and abstract
the palette generation to work with arbitrary numbers of bits.
This allows X to work after a fashion, since it tries to put the VIDC into
a 6:5:5 mode itself (which we ignore). Anything that actually tries to take
advantage of the DirectColor visual it offers will still be screwed, but I
hope such applications are rare.
 1.11 03-Apr-2002  reinoud branches: 1.11.2; 1.11.4;
Fix the mmap'ing of the screen memory. The way it was implemented
completely sucked... I wonder how it was even working (....)

Thanks to Jason for pointing out the problem.
 1.10 24-Mar-2002  thorpej * arm_byte_to_page() -> arm_btop()
* arm_page_to_byte() -> arm_ptob()
 1.9 23-Mar-2002  reinoud Big rototil of the vidcvideo code to cleanup illogical structures and to
incorporate write back support for processors not having a write through
cache.

The current fb_devconfig structure now really holds the device's
configuration and the softc really only holds the attachment information.
This used to be mixed giving rise to weird stuctures and cross references.

The number of vertical syncs before the video memory writeback is triggered
is configurable ... default is to wait for 5 Vsync .. aprox minumum 10
times a second, but more likely in the order of 12,5 times a second. When
printing is in progress no write back is performed... only after the
waiting time. The reasoning behind this is that as long as the screen is
printed too the cache will be purged of dirty data anyway due to the
processing and new screen memory useage.
 1.8 23-Mar-2002  reinoud Fix up typos.
 1.7 23-Mar-2002  reinoud Fix typo.
 1.6 23-Mar-2002  reinoud Allthough this patch doesn't look that much it adds a few things that were
on the port-acorn32's TODO list for quite some time :

- when the serial console is selected, don't exclude the screen
alltogether; currently the keyboard is still not attached but that might be
a configuration problem in the GENERIC console or a failure to explicitly
connect to a wsmux. This needs further investigation.

- create a framework for the display memory writeback on vsync for
StrongARM processors since they don't have a write-trough cache. This is to
solve the lazy screen update that is very evident in single user mode on
these processors; the cache isn't flushed/written back that often and parts
of the screen can thus be resident in the cache but not written out to
memory yet.

- clean up some loose ends in the code.
 1.5 17-Mar-2002  atatat Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
 1.4 13-Mar-2002  ad Reorganise the wsfont stuff slightly so that multiple display adapters
with different bit/byte order requirements can co-exist happily.
 1.3 18-Feb-2002  bjh21 Add a prototype for vidcvideo_config_wscons().
 1.2 27-Nov-2001  thorpej branches: 1.2.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.8 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.7 13-Aug-2002  nathanw Catch up to -current.
 1.1.4.6 01-Aug-2002  nathanw Catch up to -current.
 1.1.4.5 17-Apr-2002  nathanw Catch up to -current.
 1.1.4.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.4.3 28-Feb-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file vidcvideo.c was added on branch nathanw_sa on 2002-01-08 00:23:16 +0000
 1.2.2.6 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.5 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file vidcvideo.c was added on branch kqueue on 2002-01-10 19:38:21 +0000
 1.11.4.2 07-Aug-2002  lukem Pull up revision 1.14 (requested by itojun in ticket #616):
integer overflow. from silvio@qualys.com
 1.11.4.1 21-Jun-2002  lukem Pull up revision 1.12 (requested by bjh21 in ticket #328):
Move over to using a 6:5:5 R:G:B palette in 16-bit display modes, and abstract
the palette generation to work with arbitrary numbers of bits.
This allows X to work after a fashion, since it tries to put the VIDC into
a 6:5:5 mode itself (which we ignore). Anything that actually tries to take
advantage of the DirectColor visual it offers will still be screwed, but I
hope such applications are rare.
 1.11.2.2 30-Aug-2002  gehenna catch up with -current.
 1.11.2.1 16-Jul-2002  gehenna catch up with -current.
 1.17.2.4 21-Nov-2004  skrll Adapt to branch
 1.17.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.17.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.17.2.1 03-Aug-2004  skrll Sync with HEAD
 1.20.16.7 17-Mar-2008  yamt sync with head.
 1.20.16.6 11-Feb-2008  yamt sync with head.
 1.20.16.5 04-Feb-2008  yamt sync with head.
 1.20.16.4 03-Sep-2007  yamt sync with head.
 1.20.16.3 26-Feb-2007  yamt sync with head.
 1.20.16.2 30-Dec-2006  yamt sync with head.
 1.20.16.1 21-Jun-2006  yamt sync with head.
 1.21.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.21.10.2 11-May-2006  elad sync with head
 1.21.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.21.8.3 03-Sep-2006  yamt sync with head.
 1.21.8.2 11-Aug-2006  yamt sync with head
 1.21.8.1 24-May-2006  yamt sync with head.
 1.21.6.2 01-Jun-2006  kardel Sync with head.
 1.21.6.1 22-Apr-2006  simonb Sync with head.
 1.21.4.1 09-Sep-2006  rpaulo sync with head
 1.28.4.1 22-Oct-2006  yamt sync with head
 1.28.2.2 01-Feb-2007  ad Sync with head.
 1.28.2.1 18-Nov-2006  ad Sync with head.
 1.30.2.1 12-Mar-2007  rmind Sync with HEAD.
 1.31.28.1 18-Feb-2008  mjf Sync with HEAD.
 1.31.22.1 23-Mar-2008  matt sync with HEAD
 1.31.20.4 21-Mar-2008  chris Sync with head.
 1.31.20.3 09-Feb-2008  chris Fixup vidcvideo, current_spl_level is replaced with current_ipl_level.
 1.31.20.2 09-Feb-2008  chris Sync to HEAD.
 1.31.20.1 09-Feb-2008  chris Add initial reworking of acorn32 to use new interrupt code.

Note that cats probably won't work currently as acorn32 changed the way
that the pic is registered, it has to provide the irq lines as on acorn32
we attach the iomd after we need to register irqs for the pioc. So we
setup the irqs for iomd before malloc etc are available. This needs
to be fixed.

More work is still needed to update most of the podulebus drivers.
First I need to add podulebus wrapper for interrupts that handles the
maskaddr and maskbits. Exposing them to the common irq code is wrong.
 1.31.16.1 28-Feb-2008  rjs Sync with HEAD.
 1.33.6.2 02-Jun-2008  mjf Sync with HEAD.
 1.33.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.33.2.1 24-Mar-2008  keiichi sync with head.
 1.34.4.3 11-Mar-2010  yamt sync with head
 1.34.4.2 04-May-2009  yamt sync with head.
 1.34.4.1 16-May-2008  yamt sync with head.
 1.34.2.1 18-May-2008  yamt sync with head.
 1.35.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.35.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.39.6.2 02-Jun-2012  mrg sync to latest -current.
 1.39.6.1 18-Feb-2012  mrg merge to -current.
 1.39.2.3 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.39.2.2 23-May-2012  yamt sync with head.
 1.39.2.1 17-Apr-2012  yamt sync with head
 1.43.4.1 18-May-2014  rmind sync with head
 1.43.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.45.18.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.46.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.50.10.1 02-Aug-2025  perseant Sync with HEAD
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 15-Aug-2006  bjh21 branches: 1.3.58; 1.3.60; 1.3.62;
Un-__P
 1.2 23-Mar-2002  reinoud branches: 1.2.28; 1.2.42; 1.2.46;
Big rototil of the vidcvideo code to cleanup illogical structures and to
incorporate write back support for processors not having a write through
cache.

The current fb_devconfig structure now really holds the device's
configuration and the softc really only holds the attachment information.
This used to be mixed giving rise to weird stuctures and cross references.

The number of vertical syncs before the video memory writeback is triggered
is configurable ... default is to wait for 5 Vsync .. aprox minumum 10
times a second, but more likely in the order of 12,5 times a second. When
printing is in progress no write back is performed... only after the
waiting time. The reasoning behind this is that as long as the screen is
printed too the cache will be purged of dirty data anyway due to the
processing and new screen memory useage.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file vidcvideo.h was added on branch kqueue on 2002-01-10 19:38:22 +0000
 1.1.4.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.4.1 05-Oct-2001  nathanw file vidcvideo.h was added on branch nathanw_sa on 2002-04-01 07:39:12 +0000
 1.2.46.1 03-Sep-2006  yamt sync with head.
 1.2.42.1 09-Sep-2006  rpaulo sync with head
 1.2.28.1 30-Dec-2006  yamt sync with head.
 1.3.62.1 16-May-2008  yamt sync with head.
 1.3.60.1 18-May-2008  yamt sync with head.
 1.3.58.1 02-Jun-2008  mjf Sync with HEAD.
 1.2 25-Jan-2004  bjh21 Remove the "beep" driver. Its function is largely subsumed by a
combination of audio(4), wskbd(4) and audiobell(). Proposed a week
ago on port-acorn32 with no reaction whatever.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.24;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file waveform.h was added on branch kqueue on 2002-01-10 19:38:22 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file waveform.h was added on branch nathanw_sa on 2001-10-05 22:27:44 +0000
 1.2 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.40; 1.1.54; 1.1.58;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.58.1 03-Sep-2006  yamt sync with head.
 1.1.54.1 09-Sep-2006  rpaulo sync with head
 1.1.40.1 30-Dec-2006  yamt sync with head.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file wskbdmap_mfii.h was added on branch kqueue on 2002-01-10 19:38:23 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file wskbdmap_mfii.h was added on branch nathanw_sa on 2001-10-05 22:27:45 +0000
 1.9 13-Mar-2004  bjh21 Rename wsqms(4) to qms(4), since the "ws" is redundant now. While I'm here,
bundle it all into a single file, qms.c, replacing wsqms.c, wsqms_iomd.c,
and wsqmsvar.h.
 1.8 20-Jun-2002  bjh21 branches: 1.8.8;
Rather than explicitly masking and sign-extending 16-bit integers, use
u_int16_t and int16_t for the X and Y count registers. GCC produces better
code this way.

Also, initialise the stored state in wsqms_enable(), so that the mouse doesn't
warp to a random position on open.
 1.7 19-Jun-2002  bjh21 More wsqms cleanups:
sc_flags was never read. G/C it.
wsqms_attach() took two arguments that pointed to the same structure. G/C one
of them
Since wsqms controls the same device as qms, have it match the same attach
args.
 1.6 19-Jun-2002  bjh21 ANSIfy, un-__P, clean comments a little.
 1.5 19-Jun-2002  bjh21 Substantial overhaul of the wsqms driver:
Use a callout rather than hanging off the VSYNC interrupt.
Don't emit WSMOUSE_INPUT_ABSOLUTE events, since this isn't an absolute device.
Handle counter wrap-around sensibly, rather than limiting counts.
Don't gratuitously copy sc->sc_dev onto itself at attach time.
 1.4 04-Apr-2002  reinoud branches: 1.4.2;
Also provide differential coordinate updates... pitty it can't be choosen
or specified in wscons itself. The absolute coordinates are broadcasted
_after_ the relative so a program that takes both won't get confused.
 1.3 17-Mar-2002  atatat Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
 1.2 27-Nov-2001  thorpej branches: 1.2.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.5 01-Aug-2002  nathanw Catch up to -current.
 1.1.4.4 17-Apr-2002  nathanw Catch up to -current.
 1.1.4.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file wsqms.c was added on branch nathanw_sa on 2002-01-08 00:23:16 +0000
 1.2.2.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file wsqms.c was added on branch kqueue on 2002-01-10 19:38:23 +0000
 1.4.2.1 16-Jul-2002  gehenna catch up with -current.
 1.8.8.1 03-Aug-2004  skrll Sync with HEAD
 1.9 13-Mar-2004  bjh21 Rename wsqms(4) to qms(4), since the "ws" is redundant now. While I'm here,
bundle it all into a single file, qms.c, replacing wsqms.c, wsqms_iomd.c,
and wsqmsvar.h.
 1.8 02-Oct-2002  thorpej branches: 1.8.8;
Add trailing ; to CFATTACH_DECL
 1.7 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.6 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.5 19-Jun-2002  bjh21 More wsqms cleanups:
sc_flags was never read. G/C it.
wsqms_attach() took two arguments that pointed to the same structure. G/C one
of them
Since wsqms controls the same device as qms, have it match the same attach
args.
 1.4 19-Jun-2002  bjh21 ANSIfy, un-__P, clean comments a little.
 1.3 19-Jun-2002  bjh21 Substantial overhaul of the wsqms driver:
Use a callout rather than hanging off the VSYNC interrupt.
Don't emit WSMOUSE_INPUT_ABSOLUTE events, since this isn't an absolute device.
Handle counter wrap-around sensibly, rather than limiting counts.
Don't gratuitously copy sc->sc_dev onto itself at attach time.
 1.2 27-Nov-2001  thorpej branches: 1.2.2; 1.2.10;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.4 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.3 01-Aug-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file wsqms_iomd.c was added on branch nathanw_sa on 2002-01-08 00:23:17 +0000
 1.2.10.1 16-Jul-2002  gehenna catch up with -current.
 1.2.2.4 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file wsqms_iomd.c was added on branch kqueue on 2002-01-10 19:38:24 +0000
 1.8.8.1 03-Aug-2004  skrll Sync with HEAD
 1.6 13-Mar-2004  bjh21 Rename wsqms(4) to qms(4), since the "ws" is redundant now. While I'm here,
bundle it all into a single file, qms.c, replacing wsqms.c, wsqms_iomd.c,
and wsqmsvar.h.
 1.5 20-Jun-2002  bjh21 branches: 1.5.8;
Rather than explicitly masking and sign-extending 16-bit integers, use
u_int16_t and int16_t for the X and Y count registers. GCC produces better
code this way.
 1.4 19-Jun-2002  bjh21 More wsqms cleanups:
sc_flags was never read. G/C it.
wsqms_attach() took two arguments that pointed to the same structure. G/C one
of them
Since wsqms controls the same device as qms, have it match the same attach
args.
 1.3 19-Jun-2002  bjh21 Un-__P. Clean up comments.
 1.2 19-Jun-2002  bjh21 Substantial overhaul of the wsqms driver:
Use a callout rather than hanging off the VSYNC interrupt.
Don't emit WSMOUSE_INPUT_ABSOLUTE events, since this isn't an absolute device.
Handle counter wrap-around sensibly, rather than limiting counts.
Don't gratuitously copy sc->sc_dev onto itself at attach time.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.14;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.14.1 16-Jul-2002  gehenna catch up with -current.
 1.1.6.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file wsqmsvar.h was added on branch kqueue on 2002-01-10 19:38:24 +0000
 1.1.4.2 01-Aug-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file wsqmsvar.h was added on branch nathanw_sa on 2002-08-01 02:41:18 +0000
 1.5.8.1 03-Aug-2004  skrll Sync with HEAD
 1.8 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.7 16-Aug-2006  he Remove an unneeded include of the now-deleted <arm/iomd/rpckbdvar.h>.
 1.6 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.5 11-Dec-2005  christos branches: 1.5.4; 1.5.8;
merge ktrace-lwp.
 1.4 13-Mar-2004  bjh21 branches: 1.4.16;
Add support for using the MI pckbd and pms drivers with the IOMD keyboard
and mouse ports, with a new driver, iomdkbc(4).
 1.3 15-Jul-2003  lukem __KERNEL_RCSID()
 1.2 22-Mar-2002  reinoud branches: 1.2.12;
If the serial console is asked for then dont forget to define the function
prototype for connecting the serial console....
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file consinit.c was added on branch kqueue on 2002-01-10 19:38:25 +0000
 1.1.4.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.4.1 05-Oct-2001  nathanw file consinit.c was added on branch nathanw_sa on 2002-04-01 07:39:14 +0000
 1.2.12.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.12.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.12.1 03-Aug-2004  skrll Sync with HEAD
 1.4.16.1 30-Dec-2006  yamt sync with head.
 1.5.8.1 03-Sep-2006  yamt sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.18 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.17 23-Jul-2006  ad Use the LWP cached credentials where sane.
 1.16 14-May-2006  elad integrate kauth.
 1.15 15-Apr-2006  matt switch from MALLOC to malloc
 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 06-Sep-2005  kleink Change the driver open function's conditional for overriding exclusive tty
use from checking the proc's uid to suser(9), and account for the use of
privileges. Noted by David Holland in PR kern/31126.
 1.12 09-Jun-2005  he branches: 1.12.2;
Adapt to compiling with -Wcast-qual and -Wshadow.
 1.11 15-Jul-2003  lukem __KERNEL_RCSID()
 1.10 23-Oct-2002  jdolecek branches: 1.10.6;
merge kqueue branch into -current

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

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

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.9 08-Oct-2002  jdolecek branches: 1.9.2;
tag the cdevsw as tty with D_TTY
 1.8 05-Oct-2002  chs add missing protos, clean up includes.
 1.7 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL
 1.6 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.3 17-Mar-2002  atatat branches: 1.3.4;
Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
 1.2 22-Nov-2001  thorpej branches: 1.2.2;
Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.9 11-Nov-2002  nathanw Catch up to -current
 1.1.4.8 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.7 17-Sep-2002  nathanw Catch up to -current.
 1.1.4.6 12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.1.4.5 24-Jun-2002  nathanw Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.1.4.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.4.3 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.2 15-Nov-2001  thorpej Machine-dependent kernel mods for scheduler activations on
32-bit ARM processors. Kernel boots multi-user on an XScale,
but upcalls not yet tested.
 1.1.4.1 05-Oct-2001  thorpej file console.c was added on branch nathanw_sa on 2001-11-15 08:30:11 +0000
 1.2.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.2.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.3 17-Jun-2002  jdolecek provide kqfilter hooks
XXX not tested
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 22-Nov-2001  thorpej file console.c was added on branch kqueue on 2002-01-10 19:38:25 +0000
 1.3.4.1 19-May-2002  gehenna Add device switch.
Replace the access to devsw table and the hard-coded majors with devsw API.
 1.9.2.1 24-Oct-2002  bjh21 Sync with trunk.
 1.10.6.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.10.6.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.10.6.3 18-Sep-2004  skrll Sync with HEAD.
 1.10.6.2 03-Aug-2004  skrll Sync with HEAD
 1.10.6.1 03-Jul-2003  wrstuden lwp-ify a lot of the arm drivers. Needed to get acorn32/GENERIC compiling.
 1.12.2.2 30-Dec-2006  yamt sync with head.
 1.12.2.1 21-Jun-2006  yamt sync with head.
 1.14.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.14.10.4 13-May-2006  elad sprinkle some #include <sys/kauth.h> in files that use kauth kpi but
don't include it yet. hopefully this will prevent some fallout.
 1.14.10.3 19-Apr-2006  elad sync with head - hopefully this will work
 1.14.10.2 10-Mar-2006  elad generic_authorize() -> kauth_authorize_generic().
 1.14.10.1 08-Mar-2006  elad Adapt to kernel authorization KPI.

I expect *some* lossage here...
 1.14.8.3 03-Sep-2006  yamt sync with head.
 1.14.8.2 11-Aug-2006  yamt sync with head
 1.14.8.1 24-May-2006  yamt sync with head.
 1.14.6.2 01-Jun-2006  kardel 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.2 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.1 05-Oct-2002  chs branches: 1.1.2; 1.1.4; 1.1.28; 1.1.42; 1.1.46;
add missing protos, clean up includes.
 1.1.46.1 03-Sep-2006  yamt sync with head.
 1.1.42.1 09-Sep-2006  rpaulo sync with head
 1.1.28.1 30-Dec-2006  yamt sync with head.
 1.1.4.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2002  nathanw file console.h was added on branch nathanw_sa on 2002-10-18 02:35:35 +0000
 1.1.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.1.2.1 05-Oct-2002  jdolecek file console.h was added on branch kqueue on 2002-10-10 18:31:53 +0000
 1.4 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.3 11-Dec-2005  christos branches: 1.3.4; 1.3.8;
merge ktrace-lwp.
 1.2 15-Jul-2003  lukem branches: 1.2.16;
__KERNEL_RCSID()
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.24;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file debugconsole.c was added on branch kqueue on 2002-01-10 19:38:26 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file debugconsole.c was added on branch nathanw_sa on 2001-10-05 22:27:46 +0000
 1.2.16.1 30-Dec-2006  yamt sync with head.
 1.3.8.1 03-Sep-2006  yamt sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.6 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.5 11-Dec-2005  christos branches: 1.5.4; 1.5.8;
merge ktrace-lwp.
 1.4 06-Aug-2004  skrll branches: 1.4.12;
Include <sys/cdefs.h> once.
 1.3 15-Jul-2003  lukem __KERNEL_RCSID()
 1.2 05-Oct-2002  chs branches: 1.2.8;
add missing protos, clean up includes.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file dumb.c was added on branch kqueue on 2002-01-10 19:38:26 +0000
 1.1.4.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file dumb.c was added on branch nathanw_sa on 2002-10-18 02:35:35 +0000
 1.2.8.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.8.3 18-Sep-2004  skrll Sync with HEAD.
 1.2.8.2 12-Aug-2004  skrll Sync with HEAD.
 1.2.8.1 03-Aug-2004  skrll Sync with HEAD
 1.4.12.1 30-Dec-2006  yamt sync with head.
 1.5.8.1 03-Sep-2006  yamt sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.5 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.8;
merge ktrace-lwp.
 1.3 15-Jul-2003  lukem branches: 1.3.16;
__KERNEL_RCSID()
 1.2 22-Nov-2001  thorpej branches: 1.2.2; 1.2.20;
Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file vidc.c was added on branch nathanw_sa on 2002-01-08 00:23:17 +0000
 1.2.20.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.20.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.20.1 03-Aug-2004  skrll Sync with HEAD
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 22-Nov-2001  thorpej file vidc.c was added on branch kqueue on 2002-01-10 19:38:27 +0000
 1.3.16.1 30-Dec-2006  yamt sync with head.
 1.4.8.1 03-Sep-2006  yamt sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.2 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.40; 1.1.54; 1.1.58;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.58.1 03-Sep-2006  yamt sync with head.
 1.1.54.1 09-Sep-2006  rpaulo sync with head
 1.1.40.1 30-Dec-2006  yamt sync with head.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file vidc_mc.S was added on branch kqueue on 2002-01-10 19:38:27 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file vidc_mc.S was added on branch nathanw_sa on 2001-10-05 22:27:46 +0000
 1.12 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.11 11-Dec-2005  christos branches: 1.11.4; 1.11.8;
merge ktrace-lwp.
 1.10 15-Jul-2003  lukem branches: 1.10.16;
__KERNEL_RCSID()
 1.9 23-Oct-2002  jdolecek branches: 1.9.6;
merge kqueue branch into -current

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

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

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.8 05-Oct-2002  chs branches: 1.8.2;
add missing protos, clean up includes.
 1.7 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL
 1.6 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 25-Sep-2002  thorpej Don't include <sys/map.h>.
 1.3 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.2 27-Nov-2001  thorpej branches: 1.2.2; 1.2.10;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.1 05-Oct-2001  reinoud branches: 1.1.4;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.5 11-Nov-2002  nathanw Catch up to -current
 1.1.4.4 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.3 17-Sep-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file vidcconsole.c was added on branch nathanw_sa on 2002-01-08 00:23:17 +0000
 1.2.10.1 19-May-2002  gehenna Add device switch.
Replace the access to devsw table and the hard-coded majors with devsw API.
 1.2.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.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 27-Nov-2001  thorpej file vidcconsole.c was added on branch kqueue on 2002-01-10 19:38:28 +0000
 1.8.2.1 24-Oct-2002  bjh21 Sync with trunk.
 1.9.6.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.6.3 18-Sep-2004  skrll Sync with HEAD.
 1.9.6.2 03-Aug-2004  skrll Sync with HEAD
 1.9.6.1 03-Jul-2003  wrstuden lwp-ify a lot of the arm drivers. Needed to get acorn32/GENERIC compiling.
 1.10.16.2 30-Dec-2006  yamt sync with head.
 1.10.16.1 21-Jun-2006  yamt sync with head.
 1.11.8.1 03-Sep-2006  yamt sync with head.
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.19 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.18 24-Dec-2005  perry branches: 1.18.4; 1.18.8;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.17 11-Dec-2005  christos merge ktrace-lwp.
 1.16 09-Jun-2005  he branches: 1.16.2;
Adapt to compiling with -Wcast-qual and -Wshadow.
 1.15 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.14 11-Feb-2005  simonb White space nit- don't put a space before/after increment/decrement
operators.
 1.13 21-Sep-2003  matt branches: 1.13.8; 1.13.10;
Fix GCC 3.3.1 nits
 1.12 15-Jul-2003  lukem __KERNEL_RCSID()
 1.11 01-Apr-2003  thorpej branches: 1.11.2;
Use PAGE_SIZE rather than NBPG.
 1.10 05-Oct-2002  chs add missing protos, clean up includes.
 1.9 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.8 25-Sep-2002  thorpej Don't include <sys/map.h>.
 1.7 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.6 24-Mar-2002  thorpej branches: 1.6.2;
* arm_byte_to_page() -> arm_btop()
* arm_page_to_byte() -> arm_ptob()
 1.5 17-Mar-2002  atatat Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
 1.4 27-Nov-2001  thorpej branches: 1.4.2;
Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.3 22-Nov-2001  thorpej Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
 1.2 17-Oct-2001  reinoud branches: 1.2.4;
Sad point .... remove RC7500 support from the iomd directory in the
arch/arm/iomd/* .... the RC7500 isnt really an iomd/vidc machine but has
different video/audio chip and was kind of hardwired/hacked into the other
chip drivers.
 1.1 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.2.4.5 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.4 17-Sep-2002  nathanw Catch up to -current.
 1.2.4.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.2.4.1 17-Oct-2001  nathanw file vidcrender.c was added on branch nathanw_sa on 2002-01-08 00:23:17 +0000
 1.4.2.4 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.4.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.4.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.2.1 27-Nov-2001  thorpej file vidcrender.c was added on branch kqueue on 2002-01-10 19:38:28 +0000
 1.6.2.1 19-May-2002  gehenna Remove hard-coded major.
 1.11.2.7 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.11.2.6 01-Apr-2005  skrll Sync with HEAD.
 1.11.2.5 15-Feb-2005  skrll Sync with HEAD.
 1.11.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.11.2.2 03-Aug-2004  skrll Sync with HEAD
 1.11.2.1 03-Jul-2003  wrstuden lwp-ify a lot of the arm drivers. Needed to get acorn32/GENERIC compiling.
 1.13.10.2 12-Feb-2005  yamt sync with head.
 1.13.10.1 28-Jan-2005  yamt convert arch/arm to new apis.
 1.13.8.1 29-Apr-2005  kent sync with -current
 1.16.2.2 30-Dec-2006  yamt sync with head.
 1.16.2.1 21-Jun-2006  yamt sync with head.
 1.18.8.1 03-Sep-2006  yamt sync with head.
 1.18.4.1 09-Sep-2006  rpaulo sync with head
 1.8 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.7 11-Dec-2005  christos branches: 1.7.4; 1.7.8;
merge ktrace-lwp.
 1.6 09-Jun-2005  he branches: 1.6.2;
Adapt to compiling with -Wcast-qual by constifying vt220_putstring()'s
first argument. Also gets rid of unneccessary casts to (u_char*).
 1.5 13-Mar-2004  bjh21 Remove support for freezing console on mouse-button presses, since that was
dependent on the old qms(4) driver, which is gone.
 1.4 17-Jan-2004  bjh21 Adjust vt(4) (WHICH MUST DIE) to the new way of handling bells on
NetBSD/acorn32.
 1.3 15-Jul-2003  lukem __KERNEL_RCSID()
 1.2 05-Oct-2002  chs branches: 1.2.8;
add missing protos, clean up includes.
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file vt220.c was added on branch kqueue on 2002-01-10 19:38:29 +0000
 1.1.4.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.4.1 05-Oct-2001  nathanw file vt220.c was added on branch nathanw_sa on 2002-10-18 02:35:35 +0000
 1.2.8.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.2.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.8.1 03-Aug-2004  skrll Sync with HEAD
 1.6.2.1 30-Dec-2006  yamt sync with head.
 1.7.8.1 03-Sep-2006  yamt sync with head.
 1.7.4.1 09-Sep-2006  rpaulo sync with head
 1.4 14-Aug-2006  bjh21 Finally remove the old, pre-wscons, acorn32 console code. This dated back
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.

While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
 1.3 11-Dec-2005  christos branches: 1.3.4; 1.3.8;
merge ktrace-lwp.
 1.2 09-Jun-2005  he branches: 1.2.2;
Adapt to compiling with -Wcast-qual by constifying vt220_putstring()'s
first argument. Also gets rid of unneccessary casts to (u_char*).
 1.1 05-Oct-2001  reinoud branches: 1.1.4; 1.1.6; 1.1.24;
Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.24.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 05-Oct-2001  thorpej file vt220.h was added on branch kqueue on 2002-01-10 19:38:29 +0000
 1.1.4.2 05-Oct-2001  reinoud Initial commit of the splitting off of arch/acorn32 from arch/arm32.

The IOMD/VIDC combination is now moved to arch/arm/iomd together. These
files still need a lot of cleaning up :( .... esp. the RC7500 support that
is still dormant in it; this needs either to be removed or split out for
RC7500's ``VIDC'' video/audio variant.

Apart from the RC7500 support wich is still in arch/arm32 the
iomd,vidc,riscpc and podulebus subdirectories of arch/arm32 can be removed.

This split still uses some small parts of arch/arm32 .... those are the MI
parts that haven't been moved yet.

RiscPC/A7000 have been tested and confirmed to build as should NC.
 1.1.4.1 05-Oct-2001  reinoud file vt220.h was added on branch nathanw_sa on 2001-10-05 22:27:46 +0000
 1.2.2.1 30-Dec-2006  yamt sync with head.
 1.3.8.1 03-Sep-2006  yamt sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head

RSS XML Feed