Home | History | Annotate | only in /src/sys/arch/prep
History log of /src/sys/arch/prep
RevisionDateAuthorComments
 1.4 04-Apr-2011  dyoung Fix target 'tags'.
 1.3 25-Oct-2008  apb branches: 1.3.16; 1.3.22;
Use ${TOOL_SED} instead if plain sed in Makefiles.
 1.2 06-Jan-2003  lukem branches: 1.2.104; 1.2.108; 1.2.114;
Rework how KERNOBJDIR functions; now it's always determined with
cd ${KERNSRCDIR}/${KERNARCHDIR}/compile && ${PRINTOBJDIR}
This is far simpler than the previous system, and more robust with
objdirs built via BSDOBJDIR.

The previous method of finding KERNOBJDIR when using BSDOBJDIR by
referencing _SRC_TOP_OBJ_ from another directory was extremely
fragile due to the depth first tree walk by <bsd.subdir.mk>, and
the caching of _SRC_TOP_OBJ_ (with MAKEOVERRIDES) which would be
empty on the *first* pass to create fresh objdirs.

This change requires adding sys/arch/*/compile/Makefile to create
the objdir in that directory, and descending into arch/*/compile
from arch/*/Makefile. Remove the now-unnecessary .keep_me files
whilst here.

Per lengthy discussion with Andrew Brown.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.14;
Initial import prep port.
 1.1.14.1 07-Jan-2003  thorpej Sync with HEAD.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file Makefile was added on branch thorpej_scsipi on 2000-11-20 20:22:55 +0000
 1.2.114.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.2.108.1 04-May-2009  yamt sync with head.
 1.2.104.1 17-Jan-2009  mjf Sync with HEAD.
 1.3.22.1 06-Jun-2011  jruoho Sync with HEAD.
 1.3.16.1 21-Apr-2011  rmind sync with head
 1.2 06-Jan-2003  lukem Rework how KERNOBJDIR functions; now it's always determined with
cd ${KERNSRCDIR}/${KERNARCHDIR}/compile && ${PRINTOBJDIR}
This is far simpler than the previous system, and more robust with
objdirs built via BSDOBJDIR.

The previous method of finding KERNOBJDIR when using BSDOBJDIR by
referencing _SRC_TOP_OBJ_ from another directory was extremely
fragile due to the depth first tree walk by <bsd.subdir.mk>, and
the caching of _SRC_TOP_OBJ_ (with MAKEOVERRIDES) which would be
empty on the *first* pass to create fresh objdirs.

This change requires adding sys/arch/*/compile/Makefile to create
the objdir in that directory, and descending into arch/*/compile
from arch/*/Makefile. Remove the now-unnecessary .keep_me files
whilst here.

Per lengthy discussion with Andrew Brown.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.14;
Initial import prep port.
 1.1.14.1 07-Jan-2003  thorpej Sync with HEAD.
 1.1.6.2 29-Feb-2000  nonaka Initial import prep port.
 1.1.6.1 29-Feb-2000  nonaka file .keep_me was added on branch thorpej_scsipi on 2000-02-29 15:21:21 +0000
 1.1 06-Jan-2003  lukem branches: 1.1.2;
Rework how KERNOBJDIR functions; now it's always determined with
cd ${KERNSRCDIR}/${KERNARCHDIR}/compile && ${PRINTOBJDIR}
This is far simpler than the previous system, and more robust with
objdirs built via BSDOBJDIR.

The previous method of finding KERNOBJDIR when using BSDOBJDIR by
referencing _SRC_TOP_OBJ_ from another directory was extremely
fragile due to the depth first tree walk by <bsd.subdir.mk>, and
the caching of _SRC_TOP_OBJ_ (with MAKEOVERRIDES) which would be
empty on the *first* pass to create fresh objdirs.

This change requires adding sys/arch/*/compile/Makefile to create
the objdir in that directory, and descending into arch/*/compile
from arch/*/Makefile. Remove the now-unnecessary .keep_me files
whilst here.

Per lengthy discussion with Andrew Brown.
 1.1.2.2 07-Jan-2003  thorpej Sync with HEAD.
 1.1.2.1 06-Jan-2003  thorpej file Makefile was added on branch nathanw_sa on 2003-01-07 21:14:26 +0000
 1.202 03-Sep-2024  andvar s/intefaces/interfaces/
 1.201 29-Jan-2024  christos branches: 1.201.2;
PR/57889: Ricardo Branco: ext2fs does not have user immutable and append
file flags, only system ones. Restrict those to the superuser. Before
the behavior was controlled by EXT2FS_SYSTEM_FLAGS. Make that behavior the
default.
 1.200 09-Feb-2023  abs Adjust _all_ cinclude of *.local files

- Ensure always at end
- Use tab rather than spaces
- Add consistent comment
"Pull in optional local configuration - always at end"

The only functional change is that a local file which tried to
override an existing setting (eg with "no foo") would have failed
in some cases before, but now will work
 1.199 09-Feb-2023  abs Ensure GENERIC.local is always at the end of GENERIC

Where a GENERIC config had an existing inclusion of GENERIC.local,
ensure it is always at the end of the file, with a consistent
comment:

# Pull in optional local configuration
cinclude "arch/landisk/conf/GENERIC.local"

This allows GENERIC.local to correctly override all options

(This pass does not affect any GENERIC which did not already have
an include of GENERIC.local)
 1.198 29-Sep-2022  riastradh swwdog(4): Add to GENERIC kernels.

Plus a handful of others that I'm familiar with. Lots of special-
purpose kernels should probably have this too but I'm not going
through all the arm, mips, and ppc evaluation board kernels to see
which ones are relevant.

Omitted from systems I know to be very small:
- sun2/GENERIC
- dreamcast/GENERIC
Feel free to remove it from others that need to be kept smaller.

Compile-tested a few of these just in case:
- alpha/GENERIC
- amd64/GENERIC
- evbmips/OCTEON
- i386/GENERIC
- riscv/GENERIC

PR kern/29702
 1.197 07-Aug-2022  simonb UFS/LFS dirhash:
- Enable UFS_DIRHASH if the architecture or kernel model specific config
file can use 128MB of RAM or more.
- Remove experimental tag from UFS_DIRHASH; it's been with RUMP kernel
and by a number of NetBSD developers for years.
- Add LFS_DIRHASH if LFS was enabled.
- Be somewhat consistent with FS options order.
 1.196 29-Jun-2021  nia Remove uscanner(4) driver

This exists for compatibility with a Linux interface which was apparently
deprecated in Linux 2.6. There are various mailing list threads going
back to 2004 where the usefulness of this driver is discussed, but
the conclusion is that scanner software has all moved to using ugen(4)
instead, and enabling this driver will not help you scan things.
 1.195 21-Jan-2021  nia branches: 1.195.4;
add a commented out compat_ossaudio wherever there's compat_linux

requested by mrg
 1.194 27-Sep-2020  roy branches: 1.194.2;
vether: Add to kernel configurations

It's only enabled if the kernel enabled bridge AND tap.
Otherwise it's commented out.
 1.193 01-Aug-2020  maxv Remove references to BRIDGE_IPF, it is now compiled in by default.
 1.192 16-May-2020  maya Remove uyap, USB YAP phone firmware loader.

And the associated ezload EZ-USB code, which is only used by uyap.
It could theoretically be used by other drivers, but none of them are
in tree.

I suspect that this device isn't in use, as phone technology has improved
a lot since 2001 when uyap(4) was added to the tree.

Proposed with no objections on netbsd-users on 13 April 2020
 1.191 29-Jan-2020  maya remove urio(4), a driver for the Rio500 MP3 player.

At this point it is highly unlikely this 1999 device still has users,
but it still comes up in the context of maxv's USB-fuzzing (and any device
could pretend to be a urio(4)), so it's best to get rid of it.

Renamed all major entries to obsolete, as was done in previous removals.

This still requires an update to sanitizers, but they're located in
"external", perhaps it should be first committed upstream?

Proposed on tech-kern a month ago.
 1.190 19-Jan-2020  thorpej Remove the strip(4) - Starmode Radio IP - pseudo-device driver. It is
long since obsolete.
 1.189 26-Apr-2019  sevan branches: 1.189.4;
Enable BUFQ_PRIOCSCAN, CARP, Veriexec by default in GENERIC kernel configs.
On ports without a GENERIC kernel config enable in individul files, e.g evbmips.
Omit on:
atari, dreamcast, emips, epoc32, evbppc/VIRTEX*, ia64, luna68x, mvme68k,
mvmeppc, playstation2, riscv, sun2, sun3, x68k, zaurus due to resource
constraints or port infancy.
 1.188 06-Feb-2019  rin Add ure(4) to kernel config files. Also add PHY drivers where necessary.
 1.187 25-Aug-2018  rin Add (commented out) mue(4) to where appropriate.
Also add MII/PHY drivers for USB NICs if missing.
 1.186 01-Aug-2018  maxv Unreference IPF/PF from all the config files, and enable NPF instead when
wanted. This also fixes some inconsistencies I saw in several files (eg
IPF options while IPF was not compiled, IPF+PF enabled by default, etc).
 1.185 23-Jan-2018  sevan branches: 1.185.2; 1.185.4;
Alternate buffer queue strategies no longer considered experimental, update
description.

Discussed on tech-kern
http://mail-index.netbsd.org/tech-kern/2018/01/21/msg023002.html
 1.184 14-Sep-2017  mrg clean up COMPAT_* options for native netbsd code:
- new series of files that are useful for saying "i want everything
since netbsd 1.4", etc.
- use the fact COMPAT_* options have future dependancies to remove
many redundant options.

removes about 3000 lines total across kernel configuration files.
tested about 30 random kernels in the changed list.
 1.183 13-Sep-2017  sevan Remove support for VERIFIED_EXEC_FP_RMD160, VERIFIED_EXEC_FP_SHA1, and VERIFIED_EXEC_FP_MD5 options.
These algorithms are either broken or on their way to being broken.

Discussed on tech-security
http://mail-index.netbsd.org/tech-security/2017/08/21/msg000936.html

ok riastradh
 1.182 28-Jul-2017  maxv Remove TCP_COMPAT_42 from the config files. Pass 1.
 1.181 19-Feb-2017  rin branches: 1.181.6;
PR kern/51208
Add DISKLABEL_EI option (and also FFS_EI if missing), commented out except for
ALL on amd64 and i386.
 1.180 13-Dec-2016  christos branches: 1.180.2;
wildcard speaker attachments, now that we can handle many of them.
 1.179 10-Dec-2016  christos remove VAUDIOSPEAKER for now, will be done differently.
 1.178 09-Dec-2016  christos kill PCPPISPEAKER
 1.177 08-Dec-2016  nat Add a synthesized pc beeper and keyboard bell for platforms with an audio
device.
 1.176 26-Nov-2016  christos mention PAX_SEGVGUARD dependency on FILEASSOC
 1.175 26-Sep-2015  maxv branches: 1.175.2;
Remove KMEMSTATS. Normally it's ok now.
 1.174 16-Nov-2014  manu branches: 1.174.2;
Remove unused extended attributes kernel options

As Masao Uebayashi pointed to me, UFS_EXTATTR_AUTOSTART, LFS_EXTATTR_AUTOSTART
and UFS_EXTATTR_AUTOCREATE are not used anywhere in the code. Remove them
as they have been obsolete for a long time:
UFS_EXTATTR_AUTOSTART was replaced by mount -o extattr
LFS_EXTATTR_AUTOSTART was created to match obsolete UFS_EXTATTR_AUTOSTART
UFS_EXTATTR_AUTOCREATE was replaced by sysctl vfs.ffs.extattr_autocreate
 1.173 12-Nov-2014  manu Support for UFS1 extended attributes in GENERIC and GENERIC-like kernels

This change just brings UFS1 extended attribute *support* in the kernel,
extended attributes are not enabled unless three conditions are met:
1) filesystem is UFS1 (newfs -O1)
2) .attribute/system and .attribute/user directories are created at fs root
3) filesystem is mounted with -o extattr

Some GENERIC kernels are obviously memory constrained, the extended
attributes options were not enabled for them, but just added commented out.
(kernel were considered memory constrained if QUOTA option was disabled)
 1.172 23-Aug-2014  dholland Systematize (and in many cases, fix) the comments on options COMPAT_NN.

There are quite a few configs that are missing some COMPAT_NN options
in ways that don't make sense; this should probably get cleaned up
too, but for the time being I've not added or removed anything.
 1.171 16-Aug-2014  apb Add "options COMPAT_70" to all kernel configuration files that
already had "options COMPAT_60".
 1.170 30-Jun-2013  rmind branches: 1.170.6;
G/C PFIL_HOOKS from the kernel configs.
 1.169 05-Jun-2013  christos branches: 1.169.2;
remove obsolete networking options
 1.168 27-Apr-2013  christos more bogus number removal
 1.167 27-Apr-2013  christos the bogus number police
 1.166 27-Apr-2013  christos remove confusing numeric locators where they are unused.
 1.165 02-Mar-2013  christos Under FAST_IPSEC, IPSEC_ESP is mandatory; GC it.
 1.164 17-Oct-2012  apb Add "options COMPAT_60" to all kernel configuration files
that already had "options COMPAT_50".
 1.163 05-Jun-2012  abs branches: 1.163.2;
Adjust the WSDISPLAY_COMPAT_USL comment to mention wsconscfg, to at least
give a hint that its not just for third party compat. No functional change.
 1.162 10-Mar-2012  joerg P1003_1B_SEMAPHORE is no longer optional.
 1.161 18-Dec-2011  dholland branches: 1.161.2;
WABPL is no longer considered experimental (has not been for some time)
so update its comment in config files.
 1.160 22-Nov-2011  tls branches: 1.160.2;

The rnd pseudo-device is not really optional, because it is in the same
source file as the entropy-pool code itself. Move it to std. This
will be cleaned up more when I split the sources up as they should be.

This fixes build breaks on several ports. Thanks to Havard Eidnes for
pointing them out.
 1.159 30-Jun-2011  wiz branches: 1.159.2;
dependant -> dependent
 1.158 06-Mar-2011  bouyer merge the bouyer-quota2 branch. This adds a new on-disk format
to store disk quota usage and limits, integrated with ffs
metadata. Usage is checked by fsck_ffs (no more quotacheck)
and is covered by the WAPBL journal. Enabled with kernel
option QUOTA2 (added where QUOTA was enabled in kernel config files),
turned on with tunefs(8) on a per-filesystem
basis. mount_mfs(8) can also turn quotas on.

See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html
for details.
 1.157 23-Nov-2010  hannken branches: 1.157.2; 1.157.4;
Remove unused count from pseudo-device md.
 1.156 07-Aug-2010  kiyohara Remove unused options PIC_I8259.
 1.155 12-Jul-2010  kiyohara Support xserver for prep.
It tested only s3(864).
 1.154 05-Jul-2010  kiyohara Remove unnecessary white-spaces.
 1.153 08-May-2010  mrg enable IPFILTER_COMPAT in all kernels that have ipfilter already.
canonicalise several of the ipf option segments in various files
(this mostly means adding commented out IPFILTER_DEFAULT_BLOCK,
or adding commented or uncommented IPFILTER_LOG or IPFILTER_LOOKUP
option statements.)

i built about 20 of these kernels to check, but not all of them.
 1.152 29-Apr-2010  chs enable TMPFS in all GENERICs that have MFS enabled.
 1.151 16-Apr-2010  pooka Remove unused count (invariably "4") from pseudo-device fss.
 1.150 07-Mar-2010  plunky branches: 1.150.2;
add uhso(4) device where appropriate
- follow the lead of other USB driver declarations wrt commented out
- (cross-)build tested all these kernels
 1.149 05-Dec-2009  pooka branches: 1.149.2;
Remove the portalfs kernel file system driver. Replace mount_portal(8)
with a version based on puffs. User functionality remains the same.
 1.148 24-Jan-2009  mrg add COMPAT_50 to all the configs with COMPAT_40.
 1.147 24-Nov-2008  ad Remove softdep, pass 1. We are focused on improving journalling.

Proposed on tech-kern@.
 1.146 12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.145 10-Aug-2008  tls branches: 1.145.2;
Add accept filters to GENERIC kernels where they exist.
 1.144 31-Jul-2008  simonb Add "options WAPBL" to standard GENERIC/INSTALL type configs.
 1.143 30-May-2008  tsutsui branches: 1.143.4;
Add options COMPAT_40 to files which have options COMPAT_30.
 1.142 28-Apr-2008  garbled branches: 1.142.2;
Add floppy support to prep (the croud goes wild)

Add an additional argument to pnpbus_intr_establish to allow overriding of
the pnp interrupt type, because some devices lie.
Change how the pnpbus match routine works, to avoid attaching it when we
are probing for cpu's.
Fix a few stray printf's in the autoconf output.
 1.141 29-Feb-2008  jmmv branches: 1.141.2; 1.141.4;
Remove GENERIC.local from the repository

Make all the kernels that currently include their corresponding GENERIC.local
file use the cinclude directive instead of include. This way config(1) will
not complain if the file cannot be found.

After doing this, remove the GENERIC.local files from the repository so that
the user will not see modified files during updates, and local changes to
them cannot end up in the repository by mistake.

Discussed in tech-kern@ earlier this month. No strong objections.
 1.140 13-Feb-2008  tsutsui branches: 1.140.2; 1.140.6;
options<space><tab>
 1.139 31-Dec-2007  ad Remove systrace. Ok core@.
 1.138 04-Nov-2007  xtraeme branches: 1.138.2; 1.138.8;
Remove System V semaphores and share memory options to set the limits:
SEMMNI, SEMMNS, SEMUME and SHMMAXPGS.

They can be tweaked via sysctl now. Ports that were setting values on
them weren't touched, I only removed the ones that were commented out.
 1.137 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.136 21-Aug-2007  kiyohara branches: 1.136.2; 1.136.4; 1.136.6;
Add slhci at pcmcia.
And reorder.
 1.135 04-Jun-2007  martin branches: 1.135.4; 1.135.8;
Add pseudo-device agr to all GENERIC kernels where it might make sense
(commented out in some).
 1.134 26-Apr-2007  garbled branches: 1.134.2;
Add slide to INSTALL and remove SLIDE irq hack. It turns out to not do
anything after all.
 1.133 20-Mar-2007  garbled Add the slide device, and the special PCIIDE_SLIDE_SETIRQA option to set
the irq up properly for a RAVEN. (So far, the only prep machines that
seem to have these chips are RAVEN's, so we should be ok here)
 1.132 14-Mar-2007  drochner branches: 1.132.2;
It doesn't make sense to specify "configuration" and "interface"
locators for uhub because a hub can't have sub-devices.
This might be sanity-checked eventually.
Same for ubt now after the change to device attachment.
 1.131 11-Nov-2006  jmmv branches: 1.131.2; 1.131.4; 1.131.8; 1.131.10; 1.131.12;
Remove tmpfs's experimental status. OK'ed by core@.
 1.130 27-Oct-2006  garbled Add the crypto swcrypto and veriexec psuedo devices. Also add FILEASSOC
and VERIEXEC, following elad's lead.
 1.129 01-Sep-2006  garbled branches: 1.129.2; 1.129.4;
hptide controller was tested on prep by a user. Adding to GENERIC
 1.128 01-Sep-2006  garbled I dunno how -Os crept into GENERIC, but yank it.
 1.127 26-Aug-2006  christos PR/34283: Gene ENonymous: Add IPFILTER_LOOKUP to the default kernel options
Also remove CCITT,NS,NIP
 1.126 26-Aug-2006  tsutsui Remove obsolete #options VERIFIED_EXEC, found by grep(1).
 1.125 14-Aug-2006  skrll s/adpater/adapter/

Prompted by PR/34195
 1.124 12-Aug-2006  christos Disable SYSTRACE by default on all kernels (discussed with core)
 1.123 31-Jul-2006  hubertf branches: 1.123.2;
spc(4) can also attach to pcmcia(4), as was already in hpcmips/GENERIC
for quite some time. Add it to all systems that have pcmcia SCSI.

Pointed out by Bj�rn Johannesson <rherdware@yahoo.com> in private mail,
OK'd by matt@
 1.122 28-Jun-2006  liamjfoy Add CARP to GENERIC kernel configs. CARP is not enabled by default.

ok: christos
 1.121 23-Jun-2006  garbled 1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet. (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
 1.120 15-Jun-2006  garbled A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.119 10-May-2006  garbled branches: 1.119.2; 1.119.4;
enable raid in GENERIC. it works.
 1.118 10-May-2006  garbled Move PCI_NETBSD_CONFIGURE to std.prep. Add *.local files like i386 has.
 1.117 19-Apr-2006  drochner adjust comments for the new location of wskbdmap_mfii.c,
addresses PR kern/33290 by henry nelson
 1.116 28-Mar-2006  pavel Add stf to all kernel configs which have INET6 and gif, except the INSTALL
ones and those for specific machines of developers. PR 32304.

OK'ed by rpaulo.

N.B. stf is a cloning device, so it still must be enabled by
"ifconfig stf0 create".
 1.115 16-Mar-2006  garbled branches: 1.115.2;
More changes to prep port:
1) Add the NVRAM device. This device allows us to speak with the nvram on
prep-based machines and read/write to it. Also add a simple IOCTL
interface for speaking with the nvram from userland. This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device. Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
 1.114 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.113 23-Feb-2006  garbled branches: 1.113.2; 1.113.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.112 22-Feb-2006  hira Fix typo (Prolofic -> Prolific).
 1.111 05-Feb-2006  cube Remove 'count' argument for pseudo-devices that ignore it
(vnd, bpfilter, ppp, gif, gre, tun, sl, strip, faith, stf).
 1.110 04-Feb-2006  rpaulo bpfilter doesn't accept count anymore.
 1.109 02-Feb-2006  reinoud branches: 1.109.2;
Add commented out UDF file-system entry in all GENERIC configurations.
 1.108 20-Dec-2005  thorpej branches: 1.108.2; 1.108.4;
Remove the tablet line discipline.
 1.107 09-Dec-2005  elad Add (commented out) Veriexec options and pseudo-device to GENERIC kernels,
and remove the i386 GENERIC_VERIEXEC config.
 1.106 07-Dec-2005  tsutsui Adjust comments for options FFS_NO_SNAPSHOT.

XXX: This option should be mentioned in options(4).
 1.105 25-Nov-2005  thorpej swcr -> swcrypto
 1.104 25-Nov-2005  thorpej "pseudo-device crypto" really refers to the /dev/crypto API to the
opencrypto framework, not the framework itself. Update the comment
accordingly.
 1.103 25-Nov-2005  thorpej Add "pseudo-device swcr" (commented out if "pseudo-device crypto" is also
commented out).
 1.102 10-Sep-2005  jmmv branches: 1.102.6;
Initial addition of tmpfs, an efficient memory file-system. This project
was developed as part of Google's Summer of Code 2005 program. This
change adds the kernel code, the mount_tmpfs utility, a regression test
suite and does all other related changes to integrate these.

The file-system is still *experimental*. Therefore, it is disabled by
default in all kernels. However, as typically done, a commented-out
entry is added in them to ease its setup.

Note that I haven't commited the required mountd(8) changes to be able
to export tmpfs file-systems because NFS support is still very unstable
and because, before enabling it, I'd like to do some other changes.

OK'ed by my project mentor, William Studenmund (wrstuden@).
 1.101 19-Aug-2005  christos Enable ptyfs by default on the non-install and non small/tiny/ramdisk kernels
 1.100 19-Aug-2005  christos 64 bit inode changes.
 1.99 05-Aug-2005  skrll Add (commented out) ucycom to various kernel configs.
 1.98 31-Jul-2005  yamt revert "defflag VMSWAP" changes for now.
there seems to be far more people who don't want to edit
their kernel config files than i thought.
 1.97 30-Jul-2005  yamt add "options VMSWAP" to non INSTALL kernels.
 1.96 17-Jul-2005  hubertf Add support for reading cloop2 compressed filesystem image,
enable by putting VND_COMPRESSION into kernel config file.
Written by Cliff Wright, polished up slightly by me.
 1.95 07-Jul-2005  tron Add (commented out) IPSEC_NAT_T option.
 1.94 25-Jun-2005  rpaulo branches: 1.94.2;
Add file-system PTYFS (commented out) so that people know its existence.

Ok'ed by Christos Zoulas and Hubert Feyrer.
 1.93 09-Jun-2005  tsutsui - Rename options NEW_BUFQ_STRATEGY -> options BUFQ_READPRIO.
(still commented out)
- Add (also commented out) options BUFQ_PRIOCSCAN.

Suggested by perry and soda on tech-kern.
Please refer options(4) for details for these options.
 1.92 15-Apr-2005  itohy Add ukyopon(4).
 1.91 25-Mar-2005  cube Add attimer(4) configurations everywhere pcppi(4) exists, with the
following rule:
If a pcppi device is enabled for an attachment, enable an attimer for the
same attachement, otherwise comment it.
 1.90 25-Feb-2005  simonb branches: 1.90.2;
Add COMPAT_20 (and COMPAT_16 in some cases) to kernel config files
that didn't have those options but had other earlier compat options.
 1.89 18-Feb-2005  dsl Invert FFS_SNAPSHOT to FFS_NO_SNAPSHOT
 1.88 11-Feb-2005  dsl Add 'option FFS_SNAPSHOT' to most of the config files.
Commented out for kernels that appear to hace space constraints.
 1.87 31-Jan-2005  hannken Add file system snapshots to kernel configs.

- Ffs internal snapshots get compiled in unconditionally.

- File system snapshot device fss(4) added to all kernel configs that
have a disk. Device is commented out on all non-GENERIC kernels.

Reviewed by: Jason Thorpe <thorpej@netbsd.org>
 1.86 28-Jan-2005  rumble Sprinkle options UFS_DIRHASH on GENERIC kernels. It's presently
commented out and labeled experimental pending further review and
testing.
 1.85 17-Jan-2005  cube branches: 1.85.2;
Add tap(4) support to a random^Wcarefully chosen set of kernel configs.
All those kernels have a line for both tun and bridge, and if either is
commented out, tap is commented out also. With the exception of i386's
GENERIC_TINY.

XXX: we _need_ some way of making this more simple.
 1.84 10-Nov-2004  christos branches: 1.84.4;
Add COMPAT_BSDPTY to the rest of the config files.
 1.83 23-Oct-2004  augustss s/uax/axe/
 1.82 04-Sep-2004  manu IPv4 PIM support, based on a submission from Pavlin Radoslavov posted on
tech-net@
 1.81 15-Jul-2004  atatat Add "options SYSCTL_INCLUDE_DESCR" to a lot of configs, but commented
out in most of them.
 1.80 28-Jun-2004  bouyer Add options P1003_1B_SEMAPHORE
to all GENERIC-like kernel config files where SYSV* options were already
present (commented out if the SYSV* options are commented out).
Fix lib/25897 and lib/25898.
 1.79 26-Jun-2004  kleink Add platform support for the IBM RS/6000 6015 a/k/a 7020-001 a/k/a 40P.
 1.78 26-Jun-2004  abs Add (commented out) ALTQ options to all GENERIC-like files
 1.77 22-Jun-2004  itojun have pf and pflog pseudo-device (commented out).
reviewed by matt, perry, christos
 1.76 18-Jun-2004  christos ptm is now mandatory, depends on pty, and can be disabled with -DNO_DEV_PTM
 1.75 16-Jun-2004  christos Add pseudo-device ptm on all the generic flavored kernels.
 1.74 12-Mar-2004  nonaka branches: 1.74.2;
reduce size...
 1.73 18-Jan-2004  he Comment out opencrypto bits for now; the prep port does not yet
have generic soft interrupts, which the opencrypto software depends on.
 1.72 14-Jan-2004  jonathan Add support for opencrypto, PCI accelerators to sys/arch/*/conf/GENERIC
files for machines I know to have genuine PCI slots. As sent to tech-kern
for feedback in December 2003. Based on feedback, opencrypto is commented
out in the macppc GENERIC (due to absense of GENERIC_SOFTINT support),
and added to the sparc64 config (sys/arch/sparc64/conf/GENERIC32).
 1.71 19-Oct-2003  kleink Add COMPAT_16.
 1.70 18-Oct-2003  lukem Use one 'atabus* at ata?' instead of multiple 'atabus* at FOOide? channel ?'
Use 'atapibus* at atapi?' instead of 'atapibus* at atabus?'
 1.69 08-Oct-2003  bouyer Add atabus.
 1.68 22-Aug-2003  itojun add udav*
 1.67 06-Aug-2003  bouyer Add esiop at pci to GENERIC which already have siop at pci.
esiop has been tested enouth now.
esiop not added to INSTALL kernels because of possible space constraint.
siop should be able to drive all adapters supported by esiop.
 1.66 26-Apr-2003  ragge branches: 1.66.2;
Add pseudo-device ksyms.
 1.65 27-Feb-2003  perseant Make BRIDGE_IPF an option, and document it. Add it (commented) to GENERIC.
Let brconfig tell whether the bridge is using the ipfilter hook, or not.
 1.64 16-Feb-2003  augustss Add uax(4) (and url(4) in some cases).
 1.63 10-Feb-2003  kleink Add another we(4) instance.
 1.62 16-Jan-2003  matt Add ISA Floppy (to be consistent with INSTALL).
 1.61 16-Jan-2003  matt Add PLATFORM_IBM_6040
 1.60 22-Nov-2002  wiz Fix typo (responsiness -> responsiveness).
 1.59 18-Oct-2002  junyoung Add NEW_BUFQ_STRATEGY (disabled by default).
 1.58 14-Oct-2002  elric Added commented out cgd(4)s to GENERIC configs.
 1.57 06-Oct-2002  provos add SYSTRACE; approved perry.
 1.56 25-Sep-2002  martti Add one space between "#option" and "<tab>IPFILTER_DEFAULT_BLOCK"
 1.55 20-Sep-2002  martti Added (commented out) IPFILTER_DEFAULT_BLOCK.
 1.54 18-Sep-2002  lukem enable USERCONF by default; it's small and extremely useful to have available.
 1.53 17-Jun-2002  lukem Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
 1.52 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.51 02-May-2002  nonaka branches: 1.51.2; 1.51.4;
Added IBM Personal Power Series 830 IDE controller support.
 1.50 02-May-2002  nonaka Use PLATFORM_*
 1.49 02-May-2002  nonaka Added dump residual data routine.
 1.48 25-Apr-2002  atatat Add the INCLUDE_CONFIG_FILE option to all config files. In config
files that are generic (ie, GENERIC, GENERICSBC, GENERIC32, ALL, or
ALPHA), it is uncommented.
 1.47 24-Apr-2002  kleink Add ex(4).
 1.46 17-Apr-2002  mycroft Switch from de to tlp by default.
 1.45 16-Apr-2002  kleink pmsi(4) is gone.
 1.44 12-Apr-2002  gmcgarry Add commented-out USERCONF option. Mainly useful for install media
and can be optionally enabled based on miniroot and ramdisk size
requirements.
 1.43 04-Mar-2002  sommerfeld The "gif*" tunnelling interface does everything ipip does.
Move usage example from ipip.4 to gif.4
Excise ipip and stitch up the scars.
 1.42 25-Feb-2002  kleink Add an attachment for the MK48T18 RTC/NVRAM found on some Motorola boards.
 1.41 10-Feb-2002  wiz Update description for icsphy.
 1.40 27-Jan-2002  jdolecek add options PIPE_SOCKETPAIR to individual kernel configs
the option is commented out on everything but kernels I was able
to recognize as INSTALL-like or ones for small memory machines
 1.39 19-Jan-2002  oster Add new RF_* options for RAIDframe bits that are no longer built by default.

While we're here, enable RAIDframe (and RAID_AUTOCONFIG) by default for
architectures that I'm comfortable can deal with it being on by default.

Also: bump the number of 'raid' devices from 4 to 8, since 4 seems to
be insufficient in practise.
 1.38 28-Dec-2001  augustss Update for new uhidev device attachment.
 1.37 28-Dec-2001  martin Add PPPoE to all generic kernels that should be able to use it.
XXX TODO: do this for INSTALL kernels too, add sysinst support and make the
XXX needed binaries available on the ramdisk root fs.
 1.36 14-Dec-2001  gmcgarry Add a blurb to the top of all GENERIC files. This serves three purposes:
- to clarify some terminology
- to clarify the intention of the GENERIC file
- to cross-reference some useful man pages
 1.35 11-Dec-2001  kleink Add wsfont pseudo-device.
 1.34 23-Nov-2001  atatat The bridge(4) pseudo-device no longer requires the port to
__HAVE_GENERIC_SOFT_INTERRUPTS, so add it back to all GENERIC configs.
 1.33 21-Nov-2001  soren prep has no special dependencies on pccons; remove.
 1.32 20-Nov-2001  lukem cleanup:
options SPACE TAB
makeoptions TAB
psuedo-device TAB
remove trailing whitespace
replace multiple spaces -> tabs
options "FOO" -> options FOO
options "FOO=bar" -> options FOO=bar
options "FOO=\"bar\"" -> options FOO="\"bar\""
 1.31 13-Nov-2001  augustss The wsmux pseudo device does not need a count anymore.
 1.30 12-Sep-2001  manu branches: 1.30.4;
Linux emulation is no longer experimental, removed comment
 1.29 05-Sep-2001  tsutsui branches: 1.29.2;
Add pcn(4), sip(4) and tlp(4).

XXX epic(4) seems to have problem, while it works on macppc...
 1.28 01-Sep-2001  atatat Comment out bridge pseudo devices from ports that don't
__HAVE_GENERIC_SOFT_INTERRUPTS. bridge(4) doesn't compile there.
 1.27 01-Sep-2001  atatat Add bridge pseudo devices to GENERIC configs
 1.26 29-Aug-2001  briggs Add adw
 1.25 08-Jul-2001  abs branches: 1.25.2;
Standardise TCP_COMPAT_42 as commented out, grouped with other COMPAT options,
and with the comment '4.2BSD TCP/IP bug compat. Not recommended'
Add commented out 'TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG'
(All hail amiga and atari which make some attempt to automate the
multiplicity of config files...)
 1.24 30-Jun-2001  darcy Add System V semaphore resource limits to each GENERIC file that has an
option for System V semaphores. It appears that there are no overrides
in the code and each file has the following added.

options SYSVSEM # System V semaphores
+#options SEMMNI=10 # number of semaphore identifiers
+#options SEMMNS=60 # number of semaphores in system
+#options SEMUME=10 # max number of undo entries per process
+#options SEMMNU=30 # number of undo structures in system
options SYSVSHM # System V shared memory

If anyone thinks that this is incorrect for any of these files, please
correct it.

Note - the i386 port was not forgotten. It was done separately.
 1.23 24-Jun-2001  nonaka Add ahc(4), fxp(4), rtk(4)
 1.22 23-Jun-2001  tsutsui Add iha(4), which works as well on my 7248.
 1.21 20-Jun-2001  nonaka - Add "siop at pci" and related line.
- Add "options PCI_NETBSD_CONFIGURE".
 1.20 04-Apr-2001  manu Cosmetic change
 1.19 03-Apr-2001  manu Added a comented out COMPAT_LINUX option in GENERIC kernels of PowerPC ports
 1.18 20-Jan-2001  tsutsui branches: 1.18.2;
Add some working ISA devices:
ep* at isa? port ? irq ?
ne0 at isa? port 0x280 irq 9
ne1 at isa? port 0x300 irq 10
we0 at isa? port 0x280 iomem 0xd0000 irq 9
ne* at isapnp?
 1.17 16-Jan-2001  augustss Add uyap.
 1.16 05-Jan-2001  tsutsui Add isapnp devices.
XXX CS4232 is not probed properly.
 1.15 19-Dec-2000  bouyer Add pseudo-device vlan
 1.14 22-Nov-2000  nonaka - Add some PCMCIA devices.
- Commented out USB devices.
 1.13 14-Nov-2000  augustss branches: 1.13.2;
Add uscanner.
 1.12 24-Sep-2000  jdolecek don't specify number of ptys if >= 16 (current default initial number)
pty comments: normalize and g/c what is no longer relevant
 1.11 13-Aug-2000  itojun move "options PULLDOWN_TEST" into sys/sys/mbuf.h (in #ifdef _KERNEL),
as it is no wthe default setting for everyone.

the reason we still use the name "PULLDOWN_TEST" while it is now default:
kame code sharing.
 1.10 30-Jun-2000  itojun add PULLDOWN_TEST for all the platforms.
XXX should be moved to somewhere else when stabilized
 1.9 22-Jun-2000  fvdl Remove prefix construction for softdeps. Add SOFTDEP option to GENERIC.
 1.8 14-Jun-2000  veego branches: 1.8.2;
Remove the obsolete config fragments for kernel crypto, because the IPsec
crypto code is now in the kernel source tree.
 1.7 08-Jun-2000  nonaka Added USB devices.
 1.6 08-May-2000  augustss branches: 1.6.2;
Add (sometimes commented out) MIIVERBOSE option.
 1.5 19-Apr-2000  itojun add stf pseudo interface (commented out due to possible security risks)
 1.4 08-Apr-2000  kleink Make this actually configure.
 1.3 25-Mar-2000  nonaka add some devices
 1.2 22-Mar-2000  cgd add commented out option PCI_CONFIG_DUMP whever there's a PCIVERBOSE.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.6.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.8.2.2 01-May-2001  he Pull up revision 1.15 (requested by he):
Add pseudo-device vlan.
Make sure "rnd is EXPERIMENTAL" comment is removed.
 1.8.2.1 23-Jun-2000  fvdl As on the trunk, update these for the move of ffs_softdep.c into the
kernel source itself. Remove prefix construction, and add the SOFTDEP
option to GENERIC kernels.
 1.13.2.8 21-Apr-2001  bouyer Sync with HEAD
 1.13.2.7 11-Feb-2001  bouyer Sync with HEAD.
 1.13.2.6 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.13.2.5 05-Jan-2001  bouyer Sync with HEAD
 1.13.2.4 08-Dec-2000  bouyer Sync with HEAD.
 1.13.2.3 22-Nov-2000  bouyer Sync with HEAD.
 1.13.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.13.2.1 14-Nov-2000  bouyer file GENERIC was added on branch thorpej_scsipi on 2000-11-20 20:22:56 +0000
 1.18.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.25.2.7 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.25.2.6 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.25.2.5 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.25.2.4 16-Mar-2002  jdolecek Catch up with -current.
 1.25.2.3 11-Feb-2002  jdolecek Sync w/ -current.
 1.25.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.25.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.29.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.30.4.10 17-Jan-2003  thorpej Sync with HEAD.
 1.30.4.9 11-Dec-2002  thorpej Sync with HEAD.
 1.30.4.8 11-Nov-2002  nathanw Catch up to -current
 1.30.4.7 18-Oct-2002  nathanw Catch up to -current.
 1.30.4.6 20-Jun-2002  nathanw Catch up to -current.
 1.30.4.5 17-Apr-2002  nathanw Catch up to -current.
 1.30.4.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.30.4.3 28-Feb-2002  nathanw Catch up to -current.
 1.30.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.30.4.1 12-Sep-2001  nathanw file GENERIC was added on branch nathanw_sa on 2002-01-08 00:27:14 +0000
 1.51.4.3 26-Oct-2005  jmc Pullup (via patch) requested in ticket #5754 by itohy

Provide a backport for ukyopon(4) and pullup umodem(4) updates.
 1.51.4.2 24-Oct-2002  lukem Pull up upgrade to IPfilter 3.4.29 (requested by martti in ticket #905).
Affected files & revisions:

dist/ipf/HISTORY 1.14
dist/ipf/fils.c 1.17-1.21
dist/ipf/ipf.c 1.11-1.13
dist/ipf/ipfs.c 1.8-1.10
dist/ipf/ipft_ef.c 1.6-1.7
dist/ipf/ipft_td.c 1.6-1.7
dist/ipf/ipft_tx.c 1.7-1.8
dist/ipf/ipmon.c 1.12-1.17
dist/ipf/ipnat.c 1.11-1.12
dist/ipf/ipsend/ip_var.h 1.2
dist/ipf/ipsend/ipsend.c 1.8
dist/ipf/ipsend/iptests.c 1.5
dist/ipf/ipt.c 1.8-1.10
dist/ipf/kmem.c 1.8-1.10
dist/ipf/man/ipf.4 1.10
dist/ipf/man/ipf.5 1.8
dist/ipf/man/ipftest.1 1.3
dist/ipf/man/ipmon.8 1.10
dist/ipf/man/ipnat.5 1.9-1.10
dist/ipf/man/ipnat.8 1.4
dist/ipf/misc.c 1.7
dist/ipf/natparse.c 1.10
dist/ipf/parse.c 1.13
dist/ipf/printnat.c 1.8-1.10
dist/ipf/relay.c 1.5-1.6
dist/ipf/rules/example.9 1.2
etc/rc.d/ipnat 1.8
regress/sys/kern/ipf/Makefile 1.3-1.4
regress/sys/kern/ipf/dotest6 1.2
regress/sys/kern/ipf/expected/f13 1.1.1.2
regress/sys/kern/ipf/expected/i12 1.1.1.1
regress/sys/kern/ipf/expected/ni3 1.1.1.1
regress/sys/kern/ipf/expected/ni5 1.2
regress/sys/kern/ipf/input/f13 1.1.1.2
regress/sys/kern/ipf/input/ipv6.1 1.1.1.1
regress/sys/kern/ipf/input/ni3 1.1.1.1
regress/sys/kern/ipf/regress/i12 1.1.1.1
regress/sys/kern/ipf/regress/ipv6.1 1.1.1.1
regress/sys/kern/ipf/regress/ni3.ipf 1.1.1.1
regress/sys/kern/ipf/regress/ni3.nat 1.1.1.1
sys/arch/alpha/conf/ALPHA 1.169,1.171
sys/arch/amiga/conf/GENERIC 1.185-1.186
sys/arch/arc/conf/GENERIC 1.71-1.72
sys/arch/atari/conf/GENERIC.in 1.24-1.25
sys/arch/cats/conf/GENERIC 1.31-1.32
sys/arch/cobalt/conf/GENERIC 1.34-1.35
sys/arch/hp300/conf/GENERIC 1.83-1.84
sys/arch/i386/conf/CARDBUS 1.66-1.67
sys/arch/i386/conf/GENERIC 1.510,1.512
sys/arch/i386/conf/GENERIC_LAPTOP 1.58-1.59
sys/arch/i386/conf/GENERIC_PS2TINY 1.19-1.20
sys/arch/i386/conf/GENERIC_TINY 1.47-1.48
sys/arch/luna68k/conf/GENERIC 1.33-1.33
sys/arch/mac68k/conf/GENERIC 1.130-1.131
sys/arch/mac68k/conf/GENERICSBC 1.21-1.22
sys/arch/mac68k/conf/SMALLRAM 1.4-1.5
sys/arch/macppc/conf/GENERIC 1.142-1.143
sys/arch/mipsco/conf/GENERIC 1.21-1.22
sys/arch/mmeye/conf/GENERIC 1.44-1.45
sys/arch/news68k/conf/GENERIC 1.36-1.37
sys/arch/news68k/conf/GENERIC_TINY 1.18-1.19
sys/arch/newsmips/conf/GENERIC 1.50-1.51
sys/arch/ofppc/conf/GENERIC 1.56-1.57
sys/arch/pmax/conf/GENERIC 1.103-1.104
sys/arch/prep/conf/GENERIC 1.55-1.56
sys/arch/sbmips/conf/GENERIC 1.11-1.12
sys/arch/sgimips/conf/GENERIC 1.7-1.8
sys/arch/sparc/conf/GENERIC 1.138-1.139
sys/arch/sparc64/conf/GENERIC32 1.46-1.47
sys/arch/vax/conf/GENERIC 1.102-1.103
sys/arch/x68k/conf/ALL 1.55-1.56
sys/arch/x68k/conf/GENERIC 1.80-1.81
sys/lkm/netinet/if_ipl/mln_ipl.c 1.29
sys/netinet/fil.c 1.57-1.58
sys/netinet/ip_auth.c 1.29-1.30
sys/netinet/ip_compat.h 1.30-1.31
sys/netinet/ip_fil.c 1.81-1.86
sys/netinet/ip_fil.h 1.46-1.49
sys/netinet/ip_frag.c 1.33-1.34
sys/netinet/ip_frag.h 1.18
sys/netinet/ip_ftp_pxy.c 1.25-1.26
sys/netinet/ip_h323_pxy.c 1.5-1.6
sys/netinet/ip_log.c 1.22-1.23
sys/netinet/ip_nat.c 1.51-1.53
sys/netinet/ip_nat.h 1.27
sys/netinet/ip_netbios_pxy.c 1.4
sys/netinet/ip_proxy.c 1.35-1.36
sys/netinet/ip_proxy.h 1.18
sys/netinet/ip_state.c 1.41-1.42
sys/netinet/ip_state.h 1.23
sys/netinet/ipl.h 1.14
 1.51.4.1 01-Aug-2002  lukem Pull up revision 1.53 (requested by lukem in ticket #312):
Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
 1.51.2.1 15-Jul-2002  gehenna catch up with -current.
 1.66.2.12 11-Dec-2005  christos Sync with head.
 1.66.2.11 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.66.2.10 01-Apr-2005  skrll Sync with HEAD.
 1.66.2.9 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.66.2.8 15-Feb-2005  skrll Sync with HEAD.
 1.66.2.7 04-Feb-2005  skrll Sync with HEAD.
 1.66.2.6 24-Jan-2005  skrll Sync with HEAD.
 1.66.2.5 14-Nov-2004  skrll Sync with HEAD.
 1.66.2.4 02-Nov-2004  skrll Sync with HEAD.
 1.66.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.66.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.66.2.1 03-Aug-2004  skrll Sync with HEAD
 1.74.2.3 15-Jul-2004  he branches: 1.74.2.3.2;
Pull up revision 1.81 (requested by atatat in ticket #663):
Add "options SYSCTL_INCLUDE_DESCR" to a lot of configurations,
but commented out in most of them.
 1.74.2.2 02-Jul-2004  he Pull up revision 1.80 (requested by bouyer in ticket #573):
Add options P1003_1B_SEMAPHORE to all GENERIC-like kernel
config files where SYSV* options were already present
(commented out if the SYSV* options are commented out).
Fixes PR#25897 and PR#25898.
 1.74.2.1 30-Jun-2004  jdc Pull up revision 1.78 (requested by abs in ticket #567).

Add (commented out) ALTQ options to all GENERIC-like files
 1.74.2.3.2.1 21-Jul-2005  riz Pull up revision 1.92 (requested by itohy in ticket #1430):
Add ukyopon(4).
 1.84.4.1 29-Apr-2005  kent sync with -current
 1.85.2.3 26-Mar-2005  yamt sync with head.
 1.85.2.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.85.2.1 12-Feb-2005  yamt sync with head.
 1.90.2.3 14-Aug-2005  riz Pull up revision 1.96 (requested by hubertf in ticket #625):
Add support for reading cloop2 compressed filesystem images,
enable by putting VND_COMPRESSION into kernel config file.
Written by Cliff Wright, polished up slightly by me.
 1.90.2.2 18-Jul-2005  riz Pull up revision 1.95 (requested by tron in ticket #566):
Add (commented out) IPSEC_NAT_T option.
 1.90.2.1 17-Apr-2005  tron Pull up revision 1.92 (requested by itohy in ticket #160):
Add ukyopon(4).
 1.94.2.8 17-Mar-2008  yamt sync with head.
 1.94.2.7 27-Feb-2008  yamt sync with head.
 1.94.2.6 21-Jan-2008  yamt sync with head
 1.94.2.5 15-Nov-2007  yamt sync with head.
 1.94.2.4 27-Oct-2007  yamt sync with head.
 1.94.2.3 03-Sep-2007  yamt sync with head.
 1.94.2.2 30-Dec-2006  yamt sync with head.
 1.94.2.1 21-Jun-2006  yamt sync with head.
 1.102.6.1 29-Nov-2005  yamt sync with head.
 1.108.4.1 09-Sep-2006  rpaulo sync with head
 1.108.2.2 01-Mar-2006  yamt sync with head.
 1.108.2.1 18-Feb-2006  yamt sync with head.
 1.109.2.2 01-Jun-2006  kardel Sync with head.
 1.109.2.1 22-Apr-2006  simonb Sync with head.
 1.113.4.2 11-May-2006  elad sync with head
 1.113.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.113.2.6 03-Sep-2006  yamt sync with head.
 1.113.2.5 11-Aug-2006  yamt sync with head
 1.113.2.4 26-Jun-2006  yamt sync with head.
 1.113.2.3 24-May-2006  yamt sync with head.
 1.113.2.2 01-Apr-2006  yamt sync with head.
 1.113.2.1 13-Mar-2006  yamt sync with head.
 1.115.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.115.2.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.119.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.119.2.1 19-Jun-2006  chap Sync with head.
 1.123.2.4 22-Sep-2006  riz Pull up following revision(s) (requested by tsutsui in ticket #170):
sys/arch/sparc64/conf/GENERIC: revision 1.63
sys/arch/sgimips/conf/GENERIC32_IP3x: revision 1.55
sys/arch/sgimips/conf/GENERIC32_IP2x: revision 1.54
sys/arch/next68k/conf/GENERIC: revision 1.105
sys/arch/ews4800mips/conf/GENERIC: revision 1.12
sys/arch/arc/conf/GENERIC: revision 1.142
sys/arch/sun3/conf/GENERIC3X: revision 1.91
sys/arch/amd64/conf/GENERIC: revision 1.105
sys/arch/sun2/conf/GENERIC: revision 1.58
sys/arch/amiga/conf/GENERIC.in: revision 1.55
sys/arch/mac68k/conf/GENERIC: revision 1.175
sys/arch/acorn26/conf/GENERIC: revision 1.46
sys/arch/shark/conf/GENERIC: revision 1.65
sys/arch/cesfic/conf/GENERIC: revision 1.45
sys/arch/sandpoint/conf/GENERIC: revision 1.36
sys/arch/iyonix/conf/GENERIC: revision 1.32
sys/arch/mvme68k/conf/GENERIC: revision 1.69
sys/arch/evbarm/conf/ARMADILLO210: revision 1.3
sys/arch/vax/conf/GENERIC: revision 1.154
sys/arch/mipsco/conf/GENERIC: revision 1.61
sys/arch/evbarm/conf/ARMADILLO9: revision 1.14
sys/arch/cobalt/conf/GENERIC: revision 1.103
sys/arch/ofppc/conf/GENERIC: revision 1.94
sys/arch/hp700/conf/GENERIC: revision 1.69
sys/arch/playstation2/conf/GENERIC: revision 1.8
sys/arch/dreamcast/conf/GENERIC: revision 1.73
sys/arch/news68k/conf/GENERIC: revision 1.81
sys/arch/macppc/conf/GENERIC: revision 1.234
sys/arch/hp300/conf/GENERIC: revision 1.134
sys/arch/mmeye/conf/GENERIC: revision 1.83
sys/arch/ibmnws/conf/GENERIC: revision 1.26
sys/arch/cats/conf/GENERIC: revision 1.109
sys/arch/sparc/conf/GENERIC: revision 1.191
sys/arch/pdp10/conf/GENERIC: revision 1.27
sys/arch/acorn32/conf/GENERIC: revision 1.75
sys/arch/luna68k/conf/GENERIC: revision 1.74
sys/arch/bebox/conf/GENERIC: revision 1.101
sys/arch/pmax/conf/GENERIC: revision 1.148
sys/arch/x68k/conf/GENERIC: revision 1.130
sys/arch/sun3/conf/GENERIC: revision 1.134
sys/arch/prep/conf/GENERIC: revision 1.126
sys/arch/alpha/conf/GENERIC: revision 1.293
sys/arch/newsmips/conf/GENERIC: revision 1.94
sys/arch/netwinder/conf/GENERIC: revision 1.83
sys/arch/hpcsh/conf/GENERIC: revision 1.69
sys/arch/sbmips/conf/GENERIC: revision 1.55
sys/arch/pc532/conf/GENERIC: revision 1.65
sys/arch/hpcmips/conf/GENERIC: revision 1.192
Remove obsolete #options VERIFIED_EXEC, found by grep(1).
 1.123.2.3 02-Sep-2006  riz Pull up following revision(s) (requested by garbled in ticket #95):
sys/arch/prep/conf/GENERIC: revision 1.129
sys/arch/prep/conf/INSTALL: revision 1.45
hptide controller was tested on prep by a user. Adding to GENERIC
 1.123.2.2 02-Sep-2006  riz Pull up following revision(s) (requested by garbled in ticket #94):
sys/arch/prep/conf/GENERIC: revision 1.128
I dunno how -Os crept into GENERIC, but yank it.
 1.123.2.1 14-Aug-2006  tron Pull up following revision(s) (requested by elad in ticket #17):
sys/arch/sparc/conf/KRUPS: revision 1.38
sys/arch/i386/conf/XEN2_DOMU: revision 1.2
sys/arch/i386/conf/GENERIC_LAPTOP: revision 1.197
sys/arch/sgimips/conf/GENERIC32_IP2x: revision 1.53
sys/arch/evbsh5/conf/SIMULATOR: revision 1.12
sys/arch/sparc/conf/MRCOFFEE: revision 1.17
sys/arch/next68k/conf/GENERIC: revision 1.104
sys/arch/i386/conf/VIRTUALPC: revision 1.44
sys/arch/ews4800mips/conf/GENERIC: revision 1.11
sys/arch/evbsh5/conf/CAYMAN: revision 1.23
sys/arch/arc/conf/GENERIC: revision 1.141
sys/arch/amd64/conf/GENERIC: revision 1.103
sys/arch/sun3/conf/GENERIC3X: revision 1.90
sys/arch/evbarm/conf/HDL_G: revision 1.3
sys/arch/sun2/conf/GENERIC: revision 1.57
sys/arch/news68k/conf/GENERIC_TINY: revision 1.51
sys/arch/evbppc/conf/EXPLORA451: revision 1.27
sys/arch/amiga/conf/GENERIC.in: revision 1.54
sys/arch/mac68k/conf/GENERIC: revision 1.174
sys/arch/acorn26/conf/GENERIC: revision 1.45
sys/arch/shark/conf/GENERIC: revision 1.64
sys/arch/cesfic/conf/GENERIC: revision 1.44
sys/arch/mvme68k/conf/GENERIC: revision 1.68
sys/arch/i386/conf/XEN2_DOM0: revision 1.4
sys/arch/atari/conf/GENERIC.in: revision 1.63
sys/arch/amiga/conf/GENERIC: revision 1.240
sys/arch/i386/conf/LAMB: revision 1.65
sys/arch/i386/conf/GENERIC: revision 1.773
sys/arch/acorn32/conf/EB7500ATX: revision 1.26
sys/arch/x68k/conf/GENERIC: revision 1.128
sys/arch/vax/conf/GENERIC: revision 1.153
sys/arch/atari/conf/ATARITT: revision 1.81
sys/arch/mipsco/conf/GENERIC: revision 1.60
sys/arch/cobalt/conf/GENERIC: revision 1.101
sys/arch/evbarm/conf/ARMADILLO9: revision 1.13
sys/arch/ofppc/conf/GENERIC: revision 1.93
sys/arch/atari/conf/MILAN-PCIIDE: revision 1.51
sys/arch/arc/conf/RPC44: revision 1.26
sys/arch/sparc64/conf/GENERIC: revision 1.59
sys/arch/i386/conf/XEN3_DOMU: revision 1.2
sys/arch/hp700/conf/GENERIC: revision 1.68
sys/arch/atari/conf/MILAN-ISAIDE: revision 1.47
sys/arch/macppc/conf/GENERIC: revision 1.231
sys/arch/dreamcast/conf/GENERIC: revision 1.72
sys/arch/news68k/conf/GENERIC: revision 1.80
sys/arch/hp300/conf/GENERIC: revision 1.133
sys/arch/mmeye/conf/GENERIC: revision 1.82
sys/arch/macppc/conf/MAMBO: revision 1.2
sys/arch/cats/conf/GENERIC: revision 1.107
sys/arch/atari/conf/FALCON: revision 1.79
sys/arch/acorn32/conf/GENERIC: revision 1.71
sys/arch/sparc/conf/GENERIC: revision 1.190
sys/arch/news68k/conf/LIBERO: revision 1.40
sys/arch/amiga/conf/DRACO: revision 1.114
sys/arch/cobalt/conf/INSTALL: revision 1.23
sys/arch/luna68k/conf/GENERIC: revision 1.73
sys/arch/bebox/conf/GENERIC: revision 1.100
sys/arch/pmax/conf/GENERIC: revision 1.147
sys/arch/amiga/conf/WSCONS: revision 1.52
sys/arch/macppc/conf/POWERMAC_G5: revision 1.2
sys/arch/alpha/conf/ALPHA: revision 1.218
sys/arch/sun3/conf/GENERIC: revision 1.133
sys/arch/prep/conf/GENERIC: revision 1.124
sys/arch/alpha/conf/GENERIC: revision 1.291
sys/arch/atari/conf/HADES: revision 1.71
sys/arch/newsmips/conf/GENERIC: revision 1.93
sys/arch/netwinder/conf/GENERIC: revision 1.82
sys/arch/hpcmips/conf/GENERIC: revision 1.190
sys/arch/amiga/conf/AMIGA: revision 1.98
sys/arch/sbmips/conf/GENERIC: revision 1.54
sys/arch/pc532/conf/GENERIC: revision 1.64
sys/arch/sgimips/conf/GENERIC32_IP3x: revision 1.53
Disable SYSTRACE by default on all kernels (discussed with core)
 1.129.4.1 10-Dec-2006  yamt sync with head.
 1.129.2.1 18-Nov-2006  ad Sync with head.
 1.131.12.1 03-Sep-2007  wrstuden Sync w/ NetBSD-4-RC_1
 1.131.10.1 11-Jul-2007  mjf Sync with head.
 1.131.8.6 03-Dec-2007  ad Sync with HEAD.
 1.131.8.5 23-Oct-2007  ad Sync with head.
 1.131.8.4 09-Oct-2007  ad Sync with head.
 1.131.8.3 09-Jun-2007  ad Sync with head.
 1.131.8.2 27-May-2007  ad Sync with head.
 1.131.8.1 10-Apr-2007  ad Sync with head.
 1.131.4.2 07-May-2007  yamt sync with head.
 1.131.4.1 24-Mar-2007  yamt sync with head.
 1.131.2.1 05-Jun-2007  bouyer Pull up following revision(s) (requested by martin in ticket #699):
sys/arch/hpcmips/conf/GENERIC: revision 1.196
sys/arch/hp700/conf/GENERIC: revision 1.74
sys/arch/i386/conf/GENERIC: revision 1.831
sys/arch/next68k/conf/GENERIC: revision 1.108
sys/arch/alpha/conf/GENERIC: revision 1.313
sys/arch/arc/conf/GENERIC: revision 1.146
sys/arch/cats/conf/GENERIC: revision 1.115
sys/arch/ews4800mips/conf/GENERIC: revision 1.18
sys/arch/landisk/conf/GENERIC: revision 1.8 via patch
sys/arch/sparc64/conf/GENERIC: revision 1.85
sys/arch/pmax/conf/GENERIC: revision 1.152
sys/arch/iyonix/conf/GENERIC: revision 1.38 via patch
sys/arch/amiga/conf/GENERIC: revision 1.245
sys/arch/vax/conf/GENERIC: revision 1.157
sys/arch/prep/conf/GENERIC: revision 1.135
sys/arch/pc532/conf/GENERIC: revision 1.70
sys/arch/sbmips/conf/GENERIC: revision 1.61
sys/arch/mipsco/conf/GENERIC: revision 1.65
sys/arch/cobalt/conf/GENERIC: revision 1.108
sys/arch/ofppc/conf/GENERIC: revision 1.98
sys/arch/amd64/conf/GENERIC: revision 1.148
sys/arch/acorn26/conf/GENERIC: revision 1.50
sys/arch/dreamcast/conf/GENERIC: revision 1.78
sys/arch/mac68k/conf/GENERIC: revision 1.181
sys/arch/hp300/conf/GENERIC: revision 1.139
sys/arch/mmeye/conf/GENERIC: revision 1.88
sys/arch/news68k/conf/GENERIC: revision 1.88
sys/arch/mvme68k/conf/GENERIC: revision 1.71
sys/arch/acorn32/conf/GENERIC: revision 1.79
sys/arch/sparc/conf/GENERIC: revision 1.199
sys/arch/luna68k/conf/GENERIC: revision 1.78
sys/arch/bebox/conf/GENERIC: revision 1.105
sys/arch/macppc/conf/GENERIC: revision 1.256 via patch
sys/arch/x68k/conf/GENERIC: revision 1.134
sys/arch/sun3/conf/GENERIC: revision 1.138
sys/arch/newsmips/conf/GENERIC: revision 1.98
Add pseudo-device agr to all GENERIC kernels where it might make sense
(commented out in some).
 1.132.2.1 29-Mar-2007  reinoud Pullup to -current
 1.134.2.6 04-Oct-2007  garbled comment out the slhci usb controller. All the other usb devices in
GENERIC are commented out.
 1.134.2.5 03-Oct-2007  garbled Sync with HEAD
 1.134.2.4 26-Jun-2007  garbled Sync with HEAD.
 1.134.2.3 07-May-2007  garbled Prep has the ability to utilize an i8259 interrupt controller, but
generally does not use that code. It was stripped out in the first pass
for the pic sharing, so add it back in now.
 1.134.2.2 03-May-2007  garbled Add com0 back to GENERIC, delete clock.c as now prep uses the shared clock.c
 1.134.2.1 03-May-2007  garbled Convert prep over to the shared interrupts. Still alot of cleanup to do
following this change.
 1.135.8.3 04-Nov-2007  jmcneill Sync with HEAD.
 1.135.8.2 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.135.8.1 03-Sep-2007  jmcneill Sync with HEAD.
 1.135.4.1 03-Sep-2007  skrll Sync with HEAD.
 1.136.6.2 13-Nov-2007  bouyer Sync with HEAD
 1.136.6.1 25-Oct-2007  bouyer Sync with HEAD.
 1.136.4.1 18-Oct-2007  yamt sync with head.
 1.136.2.3 23-Mar-2008  matt sync with HEAD
 1.136.2.2 09-Jan-2008  matt sync with HEAD
 1.136.2.1 06-Nov-2007  matt sync with HEAD
 1.138.8.1 02-Jan-2008  bouyer Sync with HEAD
 1.138.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.140.6.4 17-Jan-2009  mjf Sync with HEAD.
 1.140.6.3 28-Sep-2008  mjf Sync with HEAD.
 1.140.6.2 02-Jun-2008  mjf Sync with HEAD.
 1.140.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.140.2.1 24-Mar-2008  keiichi sync with head.
 1.141.4.4 11-Aug-2010  yamt sync with head.
 1.141.4.3 11-Mar-2010  yamt sync with head
 1.141.4.2 04-May-2009  yamt sync with head.
 1.141.4.1 16-May-2008  yamt sync with head.
 1.141.2.2 04-Jun-2008  yamt sync with head
 1.141.2.1 18-May-2008  yamt sync with head.
 1.142.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.142.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.143.4.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.143.4.1 19-Oct-2008  haad Sync with HEAD.
 1.145.2.2 03-Mar-2009  skrll Sync with HEAD.
 1.145.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.149.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.149.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.150.2.3 21-Apr-2011  rmind sync with head
 1.150.2.2 05-Mar-2011  rmind sync with head
 1.150.2.1 30-May-2010  rmind sync with head
 1.157.4.1 08-Feb-2011  bouyer Add QUOTA2 where QUOTA is enabled (and QUOTA2 commented out where QUOTA
is commented out)
 1.157.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.159.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.159.2.2 30-Oct-2012  yamt sync with head
 1.159.2.1 17-Apr-2012  yamt sync with head
 1.160.2.2 11-Mar-2012  mrg sync to latest -current
 1.160.2.1 18-Feb-2012  mrg merge to -current.
 1.161.2.1 12-Jun-2012  riz Pull up following revision(s) (requested by abs in ticket #311):
sys/arch/netwinder/conf/GENERIC: revision 1.112
sys/arch/i386/conf/GENERIC: revision 1.1074
sys/arch/atari/conf/MILAN.in: revision 1.26
sys/arch/zaurus/conf/GENERIC: revision 1.54
sys/arch/shark/conf/GENERIC: revision 1.101
sys/arch/hpcmips/conf/MPC303: revision 1.60
sys/arch/i386/conf/XEN3_DOM0: revision 1.67
sys/arch/evbarm/conf/MPCSA_GENERIC: revision 1.29
sys/arch/vax/conf/GENERIC: revision 1.181
sys/arch/sparc/conf/KRUPS: revision 1.59
sys/arch/evbarm/conf/BEAGLEBOARD: revision 1.27
sys/arch/i386/conf/INSTALL_FLOPPY: revision 1.16
sys/arch/prep/conf/GENERIC: revision 1.163
sys/arch/hpcmips/conf/GENERIC: revision 1.216
sys/arch/sparc/conf/TADPOLE3GX: revision 1.56
sys/arch/shark/conf/INSTALL: revision 1.50
sys/arch/next68k/conf/GENERIC: revision 1.127
sys/arch/evbppc/conf/VIRTEX_GSRD2: revision 1.16
sys/arch/evbppc/conf/VIRTEX_DFC: revision 1.17
sys/arch/evbppc/conf/EXPLORA451: revision 1.48
sys/arch/bebox/conf/INSTALL: revision 1.54
sys/arch/next68k/conf/SLAB: revision 1.46
sys/arch/i386/conf/GENERIC_TINY: revision 1.132
sys/arch/bebox/conf/GENERIC: revision 1.131
sys/arch/amd64/conf/XEN3_DOM0: revision 1.84
sys/arch/amd64/conf/GENERIC: revision 1.356
sys/arch/evbarm/conf/MMNET_GENERIC: revision 1.6
share/man/man4/wscons.4: revision 1.31
sys/arch/hpcmips/conf/TX3912: revision 1.79
sys/arch/evbarm/conf/ARMADILLO9: revision 1.35
sys/arch/hpcsh/conf/GENERIC: revision 1.97
sys/arch/i386/conf/ALL: revision 1.339
sys/arch/hpcmips/conf/TX3922: revision 1.93
sys/arch/cats/conf/INSTALL: revision 1.82
sys/arch/sparc64/conf/GENERIC: revision 1.151
sys/arch/i386/conf/INSTALL_TINY: revision 1.135
sys/arch/evbppc/conf/VIRTEX_GSRD1: revision 1.15
sys/arch/evbarm/conf/TS7200: revision 1.49
sys/arch/hpcmips/conf/VR41XX: revision 1.55
sys/arch/hp700/conf/GENERIC: revision 1.115
sys/arch/cats/conf/GENERIC: revision 1.140
Mention wsconscfg(8) needs WSDISPLAY_COMPAT_USL
If a port is going to have wscons for virtual terminals then it really make=
s
sense to enable WSDISPLAY_COMPAT_USL so the system can switch between the
virtual terminals...
Adjust the WSDISPLAY_COMPAT_USL comment to mention wsconscfg, to at least
give a hint that its not just for third party compat. No functional change.
 1.163.2.4 03-Dec-2017  jdolecek update from HEAD
 1.163.2.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.163.2.2 23-Jun-2013  tls resync from head
 1.163.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.169.2.1 28-Aug-2013  rmind sync with head
 1.170.6.2 18-Nov-2014  snj Pull up following revision(s) (requested by manu in ticket #251):
sys/arch/acorn26/conf/GENERIC: revision 1.81
sys/arch/acorn32/conf/GENERIC: revision 1.116
sys/arch/alpha/conf/GENERIC: revision 1.362
sys/arch/amd64/conf/ALL: revision 1.23
sys/arch/amd64/conf/GENERIC: revision 1.404
sys/arch/amd64/conf/XEN3_DOM0: revision 1.112
sys/arch/amd64/conf/XEN3_DOMU: revision 1.60
sys/arch/amiga/conf/GENERIC.in: revision 1.129
sys/arch/amiga/conf/GENERIC: revision 1.311
sys/arch/amigappc/conf/GENERIC: revision 1.24
sys/arch/arc/conf/GENERIC: revision 1.184
sys/arch/bebox/conf/GENERIC: revision 1.145
sys/arch/cats/conf/GENERIC: revision 1.155
sys/arch/cesfic/conf/GENERIC: revision 1.65
sys/arch/cobalt/conf/GENERIC: revision 1.147
sys/arch/dreamcast/conf/GENERIC: revision 1.121
sys/arch/emips/conf/GENERIC: revision 1.15
sys/arch/epoc32/conf/GENERIC: revision 1.8
sys/arch/ews4800mips/conf/GENERIC: revision 1.51
sys/arch/hp300/conf/GENERIC: revision 1.190
sys/arch/hpcmips/conf/GENERIC: revision 1.229
sys/arch/hpcsh/conf/GENERIC: revision 1.106
sys/arch/hppa/conf/GENERIC: revision 1.6
sys/arch/i386/conf/ALL: revision 1.389
sys/arch/i386/conf/GENERIC: revision 1.1118
sys/arch/i386/conf/XEN3_DOM0: revision 1.93
sys/arch/i386/conf/XEN3_DOMU: revision 1.65
sys/arch/ibmnws/conf/GENERIC: revision 1.46
sys/arch/iyonix/conf/GENERIC: revision 1.88
sys/arch/landisk/conf/GENERIC: revision 1.45
sys/arch/luna68k/conf/GENERIC: revision 1.119
sys/arch/mac68k/conf/GENERIC: revision 1.220
sys/arch/macppc/conf/GENERIC: revision 1.320
sys/arch/macppc/conf/MAMBO: revision 1.24
sys/arch/macppc/conf/POWERMAC_G5: revision 1.25
sys/arch/mipsco/conf/GENERIC: revision 1.88
sys/arch/mmeye/conf/GENERIC: revision 1.120
sys/arch/mvme68k/conf/GENERIC: revision 1.94
sys/arch/mvmeppc/conf/GENERIC: revision 1.24
sys/arch/netwinder/conf/GENERIC: revision 1.126
sys/arch/news68k/conf/GENERIC: revision 1.125
sys/arch/newsmips/conf/GENERIC: revision 1.129
sys/arch/next68k/conf/GENERIC: revision 1.139
sys/arch/ofppc/conf/GENERIC: revision 1.157
sys/arch/pmax/conf/GENERIC64: revision 1.21
sys/arch/pmax/conf/GENERIC: revision 1.185
sys/arch/prep/conf/GENERIC: revision 1.174
sys/arch/rs6000/conf/GENERIC: revision 1.33
sys/arch/sandpoint/conf/GENERIC: revision 1.88
sys/arch/sbmips/conf/GENERIC: revision 1.101
sys/arch/sgimips/conf/GENERIC32_IP12: revision 1.28
sys/arch/sgimips/conf/GENERIC32_IP2x: revision 1.104
sys/arch/sgimips/conf/GENERIC32_IP3x: revision 1.106
sys/arch/shark/conf/GENERIC: revision 1.121
sys/arch/sparc/conf/GENERIC: revision 1.248
sys/arch/sparc/conf/TADPOLE3GX: revision 1.65
sys/arch/sparc64/conf/GENERIC: revision 1.177
sys/arch/sparc64/conf/NONPLUS64: revision 1.44
sys/arch/sun2/conf/GENERIC: revision 1.94
sys/arch/sun3/conf/GENERIC: revision 1.171
sys/arch/vax/conf/GENERIC: revision 1.193
sys/arch/vax/conf/VAX780: revision 1.19
sys/arch/x68k/conf/GENERIC: revision 1.179
sys/arch/zaurus/conf/GENERIC: revision 1.65
sys/ufs/files.ufs: revision 1.38
Remove unused extended attributes kernel options

As Masao Uebayashi pointed to me, UFS_EXTATTR_AUTOSTART, LFS_EXTATTR_AUTOSTART
and UFS_EXTATTR_AUTOCREATE are not used anywhere in the code. Remove them
as they have been obsolete for a long time:
UFS_EXTATTR_AUTOSTART was replaced by mount -o extattr
LFS_EXTATTR_AUTOSTART was created to match obsolete UFS_EXTATTR_AUTOSTART
UFS_EXTATTR_AUTOCREATE was replaced by sysctl vfs.ffs.extattr_autocreate
 1.170.6.1 14-Nov-2014  martin Pull up following revision(s) (requested by manu in ticket #232):
sys/arch/next68k/conf/GENERIC: revision 1.138
sys/arch/cobalt/conf/GENERIC: revision 1.146
sys/arch/mvme68k/conf/GENERIC: revision 1.93
sys/arch/vax/conf/VAX780: revision 1.18
sys/arch/newsmips/conf/GENERIC: revision 1.128
sys/arch/luna68k/conf/GENERIC: revision 1.118
sys/arch/sbmips/conf/GENERIC: revision 1.100
sys/arch/pmax/conf/GENERIC: revision 1.184
sys/arch/alpha/conf/GENERIC: revision 1.361
sys/arch/sparc64/conf/GENERIC: revision 1.176
sys/arch/sun3/conf/GENERIC: revision 1.170
sys/arch/shark/conf/GENERIC: revision 1.120
sys/arch/landisk/conf/GENERIC: revision 1.44
sys/arch/bebox/conf/GENERIC: revision 1.144
sys/arch/sparc64/conf/NONPLUS64: revision 1.43
sys/arch/sandpoint/conf/GENERIC: revision 1.87
sys/arch/emips/conf/GENERIC: revision 1.14
sys/arch/amd64/conf/XEN3_DOM0: revision 1.111
sys/arch/dreamcast/conf/GENERIC: revision 1.120
sys/arch/cesfic/conf/GENERIC: revision 1.64
sys/arch/mmeye/conf/GENERIC: revision 1.119
sys/arch/epoc32/conf/GENERIC: revision 1.7
sys/arch/x68k/conf/GENERIC: revision 1.178
sys/arch/iyonix/conf/GENERIC: revision 1.87
sys/arch/sun2/conf/GENERIC: revision 1.93
sys/arch/ews4800mips/conf/GENERIC: revision 1.50
sys/arch/amd64/conf/XEN3_DOMU: revision 1.59
sys/arch/acorn26/conf/GENERIC: revision 1.80
sys/arch/acorn32/conf/GENERIC: revision 1.115
sys/arch/macppc/conf/POWERMAC_G5: revision 1.24
sys/arch/i386/conf/GENERIC: revision 1.1117
sys/arch/arc/conf/GENERIC: revision 1.183
sys/arch/cats/conf/GENERIC: revision 1.154
sys/arch/amiga/conf/GENERIC.in: revision 1.128
sys/arch/zaurus/conf/GENERIC: revision 1.64
sys/arch/netwinder/conf/GENERIC: revision 1.125
sys/arch/hppa/conf/GENERIC: revision 1.5
sys/arch/mvmeppc/conf/GENERIC: revision 1.23
sys/arch/macppc/conf/GENERIC: revision 1.319
sys/arch/amiga/conf/GENERIC: revision 1.310
sys/arch/pmax/conf/GENERIC64: revision 1.20
sys/arch/macppc/conf/MAMBO: revision 1.23
sys/arch/sgimips/conf/GENERIC32_IP12: revision 1.27
sys/arch/amigappc/conf/GENERIC: revision 1.23
sys/arch/amd64/conf/GENERIC: revision 1.403
sys/arch/ofppc/conf/GENERIC: revision 1.156
sys/arch/mac68k/conf/GENERIC: revision 1.219
sys/arch/i386/conf/XEN3_DOMU: revision 1.64
sys/arch/mipsco/conf/GENERIC: revision 1.87
sys/arch/hp300/conf/GENERIC: revision 1.189
sys/arch/vax/conf/GENERIC: revision 1.192
sys/arch/news68k/conf/GENERIC: revision 1.124
sys/arch/ibmnws/conf/GENERIC: revision 1.45
sys/arch/hpcsh/conf/GENERIC: revision 1.105
sys/arch/sparc/conf/TADPOLE3GX: revision 1.64
sys/arch/i386/conf/XEN3_DOM0: revision 1.92
sys/arch/sparc/conf/GENERIC: revision 1.247
sys/arch/sgimips/conf/GENERIC32_IP3x: revision 1.105
sys/arch/prep/conf/GENERIC: revision 1.173
sys/arch/sgimips/conf/GENERIC32_IP2x: revision 1.103
sys/arch/rs6000/conf/GENERIC: revision 1.32
sys/arch/hpcmips/conf/GENERIC: revision 1.228
Support for UFS1 extended attributes in GENERIC and GENERIC-like kernels
This change just brings UFS1 extended attribute *support* in the kernel,
extended attributes are not enabled unless three conditions are met:
1) filesystem is UFS1 (newfs -O1)
2) .attribute/system and .attribute/user directories are created at fs root
3) filesystem is mounted with -o extattr
Some GENERIC kernels are obviously memory constrained, the extended
attributes options were not enabled for them, but just added commented out.
(kernel were considered memory constrained if QUOTA option was disabled)
 1.174.2.4 28-Aug-2017  skrll Sync with HEAD
 1.174.2.3 05-Feb-2017  skrll Sync with HEAD
 1.174.2.2 05-Dec-2016  skrll Sync with HEAD
 1.174.2.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.175.2.2 20-Mar-2017  pgoyette Sync with HEAD
 1.175.2.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.180.2.1 21-Apr-2017  bouyer Sync with HEAD
 1.181.6.1 26-Jan-2018  martin Pull up following revision(s) (requested by sevan in ticket #510):
sys/arch/sun3/conf/GENERIC3X: revision 1.130
sys/arch/sparc64/conf/GENERIC: revision 1.203
sys/arch/news68k/conf/LIBERO: revision 1.66
sys/arch/amiga/conf/DRACO: revision 1.185
sys/arch/evbarm/conf/MV2120: revision 1.35
sys/arch/x68k/conf/GENERIC: revision 1.187
sys/arch/rs6000/conf/GENERIC: revision 1.39
sys/arch/news68k/conf/GENERIC_TINY: revision 1.86
sys/arch/i386/conf/XEN3_DOMU: revision 1.88
sys/arch/iyonix/conf/GENERIC: revision 1.97
sys/arch/evbarm64/conf/A64EMUL: revision 1.11
sys/arch/mvme68k/conf/GENERIC: revision 1.98
sys/arch/acorn32/conf/GENERIC: revision 1.124
sys/arch/i386/conf/XEN3_DOM0: revision 1.125
sys/arch/cobalt/conf/INSTALL: revision 1.65
sys/arch/macppc/conf/GENERIC_601: revision 1.16
sys/arch/hppa/conf/GENERIC: revision 1.17
sys/arch/amiga/conf/GENERIC.in: revision 1.137
sys/arch/sgimips/conf/GENERIC32_IP12: revision 1.33
sys/arch/netwinder/conf/GENERIC: revision 1.134
sys/arch/amd64/conf/XEN3_DOMU: revision 1.83
sys/arch/mac68k/conf/GENERIC: revision 1.225
sys/arch/arc/conf/RPC44: revision 1.54
sys/arch/mipsco/conf/GENERIC: revision 1.92
sys/arch/cats/conf/GENERIC: revision 1.166
sys/arch/amd64/conf/XEN3_DOM0: revision 1.145
sys/arch/amigappc/conf/GENERIC: revision 1.33
sys/arch/sun3/conf/GENERIC: revision 1.176
sys/arch/news68k/conf/GENERIC: revision 1.130
sys/arch/hpcsh/conf/GENERIC: revision 1.110
sys/arch/hp300/conf/GENERIC: revision 1.198
sys/arch/atari/conf/GENERIC.in: revision 1.115
sys/arch/sparc/conf/MRCOFFEE: revision 1.54
sys/arch/evbppc/conf/EXPLORA451: revision 1.62
sys/arch/cesfic/conf/GENERIC: revision 1.69
sys/arch/vax/conf/GENERIC: revision 1.204
sys/arch/sgimips/conf/GENERIC32_IP3x: revision 1.115
sys/arch/sgimips/conf/GENERIC32_IP2x: revision 1.112
sys/arch/sparc/conf/GENERIC: revision 1.258
sys/arch/next68k/conf/GENERIC: revision 1.145
sys/arch/evbarm/conf/MMNET_GENERIC: revision 1.34
sys/arch/prep/conf/GENERIC: revision 1.185
sys/arch/amiga/conf/INSTALL: revision 1.129
sys/arch/newsmips/conf/GENERIC: revision 1.133
sys/arch/cobalt/conf/GENERIC: revision 1.156
sys/arch/sun2/conf/GENERIC: revision 1.99
sys/arch/luna68k/conf/INSTALL: revision 1.25
sys/arch/amigappc/conf/NULL: revision 1.53
sys/arch/acorn26/conf/GENERIC: revision 1.85
sys/arch/vax/conf/VAX780: revision 1.25
sys/arch/luna68k/conf/GENERIC: revision 1.125
sys/arch/ews4800mips/conf/GENERIC: revision 1.56
sys/arch/macppc/conf/POWERMAC_G5: revision 1.29
sys/arch/arc/conf/GENERIC: revision 1.189
sys/arch/macppc/conf/MAMBO: revision 1.27
sys/arch/acorn32/conf/EB7500ATX: revision 1.64
sys/arch/pmax/conf/GENERIC: revision 1.196
sys/arch/pmax/conf/GENERIC64: revision 1.28
sys/arch/amiga/conf/GENERIC: revision 1.319
sys/arch/evbarm/conf/MPCSA_GENERIC: revision 1.55
sys/arch/macppc/conf/GENERIC: revision 1.339
sys/arch/emips/conf/GENERIC: revision 1.21
sys/arch/sandpoint/conf/GENERIC: revision 1.97
sys/arch/landisk/conf/GENERIC: revision 1.58
sys/arch/bebox/conf/GENERIC: revision 1.157
sys/arch/alpha/conf/GENERIC: revision 1.379
Alternate buffer queue strategies no longer considered experimental, update
description.
Discussed on tech-kern
http://mail-index.netbsd.org/tech-kern/2018/01/21/msg023002.html
 1.185.4.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.185.4.1 10-Jun-2019  christos Sync with HEAD
 1.185.2.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.189.4.2 29-Feb-2020  ad Sync with head.
 1.189.4.1 25-Jan-2020  ad Sync with head.
 1.194.2.1 03-Apr-2021  thorpej Sync with HEAD.
 1.195.4.1 01-Aug-2021  thorpej Sync with HEAD.
 1.201.2.1 02-Aug-2025  perseant Sync with HEAD
 1.2 29-Feb-2008  jmmv Remove GENERIC.local from the repository

Make all the kernels that currently include their corresponding GENERIC.local
file use the cinclude directive instead of include. This way config(1) will
not complain if the file cannot be found.

After doing this, remove the GENERIC.local files from the repository so that
the user will not see modified files during updates, and local changes to
them cannot end up in the repository by mistake.

Discussed in tech-kern@ earlier this month. No strong objections.
 1.1 10-May-2006  garbled branches: 1.1.2; 1.1.6; 1.1.8; 1.1.10; 1.1.14; 1.1.20; 1.1.50; 1.1.70; 1.1.74;
Move PCI_NETBSD_CONFIGURE to std.prep. Add *.local files like i386 has.
 1.1.74.1 03-Apr-2008  mjf Sync with HEAD.
 1.1.70.1 24-Mar-2008  keiichi sync with head.
 1.1.50.1 23-Mar-2008  matt sync with HEAD
 1.1.20.2 09-Sep-2006  rpaulo sync with head
 1.1.20.1 10-May-2006  rpaulo file GENERIC.local was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:34 +0000
 1.1.14.3 17-Mar-2008  yamt sync with head.
 1.1.14.2 21-Jun-2006  yamt sync with head.
 1.1.14.1 10-May-2006  yamt file GENERIC.local was added on branch yamt-lazymbuf on 2006-06-21 14:55:11 +0000
 1.1.10.2 01-Jun-2006  kardel Sync with head.
 1.1.10.1 10-May-2006  kardel file GENERIC.local was added on branch simonb-timecounters on 2006-06-01 22:35:16 +0000
 1.1.8.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.1.8.1 10-May-2006  tron file GENERIC.local was added on branch peter-altq on 2006-05-24 15:48:20 +0000
 1.1.6.2 24-May-2006  yamt sync with head.
 1.1.6.1 10-May-2006  yamt file GENERIC.local was added on branch yamt-pdpolicy on 2006-05-24 10:57:10 +0000
 1.1.2.2 11-May-2006  elad sync with head
 1.1.2.1 10-May-2006  elad file GENERIC.local was added on branch elad-kernelauth on 2006-05-11 23:27:02 +0000
 1.68 03-Sep-2024  andvar s/intefaces/interfaces/
 1.67 29-Jan-2024  christos branches: 1.67.2;
PR/57889: Ricardo Branco: ext2fs does not have user immutable and append
file flags, only system ones. Restrict those to the superuser. Before
the behavior was controlled by EXT2FS_SYSTEM_FLAGS. Make that behavior the
default.
 1.66 09-Feb-2023  abs Adjust _all_ cinclude of *.local files

- Ensure always at end
- Use tab rather than spaces
- Add consistent comment
"Pull in optional local configuration - always at end"

The only functional change is that a local file which tried to
override an existing setting (eg with "no foo") would have failed
in some cases before, but now will work
 1.65 12-Dec-2021  andvar fix various typos in comments.
 1.64 15-Sep-2020  mrg bump bebox and prep image sizes for GCC 9.
 1.63 14-Sep-2017  mrg clean up COMPAT_* options for native netbsd code:
- new series of files that are useful for saying "i want everything
since netbsd 1.4", etc.
- use the fact COMPAT_* options have future dependancies to remove
many redundant options.

removes about 3000 lines total across kernel configuration files.
tested about 30 random kernels in the changed list.
 1.62 19-Feb-2017  rin PR kern/51208
Add DISKLABEL_EI option (and also FFS_EI if missing), commented out except for
ALL on amd64 and i386.
 1.61 23-Aug-2014  dholland branches: 1.61.2; 1.61.4; 1.61.6;
Systematize (and in many cases, fix) the comments on options COMPAT_NN.

There are quite a few configs that are missing some COMPAT_NN options
in ways that don't make sense; this should probably get cleaned up
too, but for the time being I've not added or removed anything.
 1.60 08-Aug-2014  joerg Don't set -mmultiple or -mno-string for PowerPC, the difference is too
small to really matter and it sometimes even increases the size.
 1.59 27-Apr-2013  christos branches: 1.59.8;
the bogus number police
 1.58 17-Aug-2012  abs branches: 1.58.2;
Update all kernel configs mentioning WSEMUL_* but not already including
WSDISPLAY_COMPAT_USL using the following rules:
- If WSEMUL_ is commented out, add commented out out WSDISPLAY_COMPAT_USL
- If INSTALL or obviously memory constrained, add WSDISPLAY_DEFAULTSCREENS=1
and commented out WSDISPLAY_COMPAT_USL
- Otherwise add WSDISPLAY_COMPAT_USL

Some of the INSTALL configs for larger memory machines are probably suitable
for adding WSDISPLAY_COMPAT_USL.

Now wsconscfg(8) should be able to switch VTs when expected.

Implemented after no objection from tech-kern to the following:

On 5 June 2012 09:47, David Brownlee <abs@absd.org> wrote:
> wsconscfg(8) requires WSDISPLAY_COMPAT_USL in order to switch virtual
> terminals.
>
> Except when in an exceptionally memory or space constrained
> environment (INSTALL being the obvious case), is there any reason why
> all GENERIC and GENERIC-like kernels which have wscons enabled
> shouldn't also have WSDISPLAY_COMPAT_USL?
 1.57 18-Dec-2011  dholland WABPL is no longer considered experimental (has not been for some time)
so update its comment in config files.
 1.56 22-Nov-2011  tls branches: 1.56.2;

The rnd pseudo-device is not really optional, because it is in the same
source file as the entropy-pool code itself. Move it to std. This
will be cleaned up more when I split the sources up as they should be.

This fixes build breaks on several ports. Thanks to Havard Eidnes for
pointing them out.
 1.55 30-Jun-2011  wiz branches: 1.55.2;
dependant -> dependent
 1.54 23-Nov-2010  hannken Remove unused count from pseudo-device md.
 1.53 16-Apr-2010  pooka Remove unused count (invariably "4") from pseudo-device fss.
 1.52 06-Feb-2009  jym branches: 1.52.4; 1.52.6;
Changes to MEMORY_RBFLAGS option:
- renamed to MEMORY_DISK_RBFLAGS to better fit the rest of the
MEMORY_DISK options(4)
- change default value to RB_AUTOBOOT instead of RB_SINGLE, and adapt
the config(5) files accordingly
- document this option inside options(4)

See also http://mail-index.netbsd.org/tech-kern/2008/12/25/msg003924.html

Reviewed by abs@ in private mail.
 1.51 31-Jul-2008  simonb branches: 1.51.2;
Add "options WAPBL" to standard GENERIC/INSTALL type configs.
 1.50 13-Feb-2008  tsutsui branches: 1.50.6; 1.50.10; 1.50.12; 1.50.16;
options<space><tab>
 1.49 17-Oct-2007  garbled branches: 1.49.2;
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.48 26-Apr-2007  garbled branches: 1.48.2; 1.48.10; 1.48.12; 1.48.14; 1.48.16;
Add slide to INSTALL and remove SLIDE irq hack. It turns out to not do
anything after all.
 1.47 29-Dec-2006  yamt branches: 1.47.2; 1.47.6; 1.47.8;
update comments on NFS_V2_ONLY after nqnfs removal. no functional changes.
from Arnaud Lacombe.
 1.46 02-Oct-2006  chs remove MALLOC_NOINLINE, it doesn't do anything anymore.
 1.45 01-Sep-2006  garbled branches: 1.45.2; 1.45.4;
hptide controller was tested on prep by a user. Adding to GENERIC
 1.44 20-Jun-2006  garbled branches: 1.44.2;
Update install WRT recent clock changes, and break INSTALL into INSTALL
and INSTALL_SMALL. Since floppy images have to fit on one floppy, we
have to really cut down on the drivers on that image, but people
netbooting don't have that problem, so they deserve a more featured
kernel to install with. (namely one with raid support and more ethernet
drivers)
 1.43 01-Jun-2006  garbled branches: 1.43.2;
Make the space for the ramdisk slightly larger.
 1.42 10-May-2006  garbled branches: 1.42.2;
add MEMORY_DISK_SERVER=0. only saves 600bytes. lame.
 1.41 10-May-2006  garbled Enable a few options from i386's INSTALL_SMALL that save as much space as
possible. I think this should save about 10k on prep's bootfloppies.
 1.40 10-May-2006  garbled Move PCI_NETBSD_CONFIGURE to std.prep. Add *.local files like i386 has.
 1.39 19-Apr-2006  drochner adjust comments for the new location of wskbdmap_mfii.c,
addresses PR kern/33290 by henry nelson
 1.38 13-Apr-2006  garbled Disable some things to make it a wee bit smaller.
 1.37 09-Mar-2006  garbled branches: 1.37.2;
Make INSTALL compile again with the new changes. Try to clean it up a
little too.
 1.36 07-Dec-2005  tsutsui branches: 1.36.4; 1.36.6; 1.36.8; 1.36.10;
Remove obsolete options VNODE_OP_NOINLINE.
 1.35 07-Dec-2005  tsutsui Adjust comments for options FFS_NO_SNAPSHOT.

XXX: This option should be mentioned in options(4).
 1.34 19-Aug-2005  christos Enable ptyfs by default on the non-install and non small/tiny/ramdisk kernels
 1.33 20-Mar-2005  kleink branches: 1.33.2;
Add PLATFORM_IBM_6015 to INSTALL, as present in GENERIC.
 1.32 18-Feb-2005  dsl branches: 1.32.4;
Invert FFS_SNAPSHOT to FFS_NO_SNAPSHOT
 1.31 11-Feb-2005  dsl Add 'option FFS_SNAPSHOT' to most of the config files.
Commented out for kernels that appear to hace space constraints.
 1.30 31-Jan-2005  hannken Add file system snapshots to kernel configs.

- Ffs internal snapshots get compiled in unconditionally.

- File system snapshot device fss(4) added to all kernel configs that
have a disk. Device is commented out on all non-GENERIC kernels.

Reviewed by: Jason Thorpe <thorpej@netbsd.org>
 1.29 10-Nov-2004  christos branches: 1.29.4; 1.29.6;
Add COMPAT_BSDPTY to the rest of the config files.
 1.28 15-Jul-2004  atatat Add "options SYSCTL_INCLUDE_DESCR" to a lot of configs, but commented
out in most of them.
 1.27 12-Mar-2004  nonaka branches: 1.27.2;
reduce size...
 1.26 19-Oct-2003  kleink Add COMPAT_16.
 1.25 18-Oct-2003  lukem Use one 'atabus* at ata?' instead of multiple 'atabus* at FOOide? channel ?'
Use 'atapibus* at atapi?' instead of 'atapibus* at atabus?'
 1.24 08-Oct-2003  bouyer Add atabus.
 1.23 16-Jan-2003  matt branches: 1.23.2;
Add PLATFORM_IBM_6040
 1.22 18-Sep-2002  lukem enable USERCONF by default; it's small and extremely useful to have available.
 1.21 05-Jul-2002  abs Ensure all INSTALL config files consistantly include PIPE_SOCKETPAIR,
MALLOC_NOINLINE, and VNODE_OP_NOINLINE. The exceptions are when they
include another config files that already defines the options, or if
they are for an embedded board, just define a few extra options, and
do not already define PIPE_SOCKETPAIR.
 1.20 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.19 02-May-2002  nonaka branches: 1.19.2;
Added IBM Personal Power Series 830 IDE controller support.
 1.18 02-May-2002  nonaka Use PLATFORM_*
 1.17 25-Apr-2002  atatat Add the INCLUDE_CONFIG_FILE option to all config files. In config
files that are generic (ie, GENERIC, GENERICSBC, GENERIC32, ALL, or
ALPHA), it is uncommented.
 1.16 24-Apr-2002  kleink Add ex(4).
 1.15 17-Apr-2002  mycroft Switch from de to tlp by default.
 1.14 16-Apr-2002  kleink pmsi(4) is gone.
 1.13 12-Apr-2002  gmcgarry Add commented-out USERCONF option. Mainly useful for install media
and can be optionally enabled based on miniroot and ramdisk size
requirements.
 1.12 02-Apr-2002  lukem Rename MEMORY_DISK_SIZE (formerly MINIROOTSIZE) to MEMORY_DISK_ROOT_SIZE,
which was suggested by Izumi Tsutsui <tsutsui@ceres.dti.ne.jp> as
being more consistent with what it's controlling...
 1.11 10-Mar-2002  lukem * rename MINIROOTSIZE to MEMORY_DISK_SIZE, so that all md(4) options
are now consistently named
* fold opt_mdsize.h into opt_md.h
 1.10 27-Jan-2002  jdolecek add options PIPE_SOCKETPAIR to individual kernel configs
the option is commented out on everything but kernels I was able
to recognize as INSTALL-like or ones for small memory machines
 1.9 21-Nov-2001  soren prep has no special dependencies on pccons; remove.
 1.8 20-Nov-2001  lukem cleanup:
options SPACE TAB
makeoptions TAB
psuedo-device TAB
remove trailing whitespace
replace multiple spaces -> tabs
options "FOO" -> options FOO
options "FOO=bar" -> options FOO=bar
options "FOO=\"bar\"" -> options FOO="\"bar\""
 1.7 05-Sep-2001  tsutsui branches: 1.7.6;
Add pcn(4), sip(4) and tlp(4).

XXX epic(4) seems to have problem, while it works on macppc...
 1.6 29-Aug-2001  briggs Add adw
 1.5 24-Jun-2001  nonaka branches: 1.5.2;
Add ahc(4), fxp(4), rtk(4)
 1.4 23-Jun-2001  tsutsui Add iha(4), which works as well on my 7248.
 1.3 20-Jun-2001  nonaka - Add "siop at pci" and related line.
- Add "options PCI_NETBSD_CONFIGURE".
 1.2 18-Jan-2001  tv No-op commit to force update to a non-"-kk" revision.
 1.1 16-Jan-2001  nonaka branches: 1.1.2;
Add prep installer
 1.1.2.2 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.1.2.1 16-Jan-2001  bouyer file INSTALL was added on branch thorpej_scsipi on 2001-01-18 09:22:57 +0000
 1.5.2.7 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.5.2.6 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.5.2.5 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.5.2.4 16-Mar-2002  jdolecek Catch up with -current.
 1.5.2.3 11-Feb-2002  jdolecek Sync w/ -current.
 1.5.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.5.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.7.6.9 17-Jan-2003  thorpej Sync with HEAD.
 1.7.6.8 18-Oct-2002  nathanw Catch up to -current.
 1.7.6.7 01-Aug-2002  nathanw Catch up to -current.
 1.7.6.6 20-Jun-2002  nathanw Catch up to -current.
 1.7.6.5 17-Apr-2002  nathanw Catch up to -current.
 1.7.6.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.7.6.3 28-Feb-2002  nathanw Catch up to -current.
 1.7.6.2 08-Jan-2002  nathanw Catch up to -current.
 1.7.6.1 05-Sep-2001  nathanw file INSTALL was added on branch nathanw_sa on 2002-01-08 00:27:15 +0000
 1.19.2.2 16-Jul-2002  gehenna catch up with -current.
 1.19.2.1 15-Jul-2002  gehenna catch up with -current.
 1.23.2.10 11-Dec-2005  christos Sync with head.
 1.23.2.9 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.23.2.8 01-Apr-2005  skrll Sync with HEAD.
 1.23.2.7 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.23.2.6 15-Feb-2005  skrll Sync with HEAD.
 1.23.2.5 04-Feb-2005  skrll Sync with HEAD.
 1.23.2.4 14-Nov-2004  skrll Sync with HEAD.
 1.23.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.23.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.23.2.1 03-Aug-2004  skrll Sync with HEAD
 1.27.2.1 15-Jul-2004  he Pull up revision 1.28 (requested by atatat in ticket #663):
Add "options SYSCTL_INCLUDE_DESCR" to a lot of configurations,
but commented out in most of them.
 1.29.6.3 26-Mar-2005  yamt sync with head.
 1.29.6.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.29.6.1 12-Feb-2005  yamt sync with head.
 1.29.4.1 29-Apr-2005  kent sync with -current
 1.32.4.1 20-Mar-2005  tron Pull up revision 1.33 (requested by kleink in ticket #37):
Add PLATFORM_IBM_6015 to INSTALL, as present in GENERIC.
 1.33.2.5 27-Feb-2008  yamt sync with head.
 1.33.2.4 27-Oct-2007  yamt sync with head.
 1.33.2.3 03-Sep-2007  yamt sync with head.
 1.33.2.2 30-Dec-2006  yamt sync with head.
 1.33.2.1 21-Jun-2006  yamt sync with head.
 1.36.10.2 11-May-2006  elad sync with head
 1.36.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.36.8.4 03-Sep-2006  yamt sync with head.
 1.36.8.3 26-Jun-2006  yamt sync with head.
 1.36.8.2 24-May-2006  yamt sync with head.
 1.36.8.1 13-Mar-2006  yamt sync with head.
 1.36.6.3 03-Jun-2006  kardel Sync with head.
 1.36.6.2 01-Jun-2006  kardel Sync with head.
 1.36.6.1 22-Apr-2006  simonb Sync with head.
 1.36.4.1 09-Sep-2006  rpaulo sync with head
 1.37.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.42.2.1 19-Jun-2006  chap Sync with head.
 1.43.2.1 13-Jul-2006  gdamore Merge from HEAD.
 1.44.2.1 02-Sep-2006  riz Pull up following revision(s) (requested by garbled in ticket #95):
sys/arch/prep/conf/GENERIC: revision 1.129
sys/arch/prep/conf/INSTALL: revision 1.45
hptide controller was tested on prep by a user. Adding to GENERIC
 1.45.4.1 22-Oct-2006  yamt sync with head
 1.45.2.2 12-Jan-2007  ad Sync with head.
 1.45.2.1 18-Nov-2006  ad Sync with head.
 1.47.8.1 11-Jul-2007  mjf Sync with head.
 1.47.6.2 23-Oct-2007  ad Sync with head.
 1.47.6.1 27-May-2007  ad Sync with head.
 1.47.2.1 07-May-2007  yamt sync with head.
 1.48.16.1 25-Oct-2007  bouyer Sync with HEAD.
 1.48.14.1 18-Oct-2007  yamt sync with head.
 1.48.12.2 23-Mar-2008  matt sync with HEAD
 1.48.12.1 06-Nov-2007  matt sync with HEAD
 1.48.10.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.48.2.1 26-Jun-2007  garbled Apply patches from John D. Baker to make INSTALL compile again. Also
cleans up some of the config stuff for the mcclock pnpbus attachment.
 1.49.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.50.16.1 19-Oct-2008  haad Sync with HEAD.
 1.50.12.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.50.10.2 11-Aug-2010  yamt sync with head.
 1.50.10.1 04-May-2009  yamt sync with head.
 1.50.6.1 28-Sep-2008  mjf Sync with HEAD.
 1.51.2.1 03-Mar-2009  skrll Sync with HEAD.
 1.52.6.2 05-Mar-2011  rmind sync with head
 1.52.6.1 30-May-2010  rmind sync with head
 1.52.4.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.55.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.55.2.2 30-Oct-2012  yamt sync with head
 1.55.2.1 17-Apr-2012  yamt sync with head
 1.56.2.1 18-Feb-2012  mrg merge to -current.
 1.58.2.3 03-Dec-2017  jdolecek update from HEAD
 1.58.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.58.2.1 23-Jun-2013  tls resync from head
 1.59.8.1 10-Aug-2014  tls Rebase.
 1.61.6.1 21-Apr-2017  bouyer Sync with HEAD
 1.61.4.1 20-Mar-2017  pgoyette Sync with HEAD
 1.61.2.1 28-Aug-2017  skrll Sync with HEAD
 1.67.2.1 02-Aug-2025  perseant Sync with HEAD
 1.1 10-May-2006  garbled branches: 1.1.2; 1.1.6; 1.1.8; 1.1.10; 1.1.14; 1.1.20;
Move PCI_NETBSD_CONFIGURE to std.prep. Add *.local files like i386 has.
 1.1.20.2 09-Sep-2006  rpaulo sync with head
 1.1.20.1 10-May-2006  rpaulo file INSTALL.local was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:34 +0000
 1.1.14.2 21-Jun-2006  yamt sync with head.
 1.1.14.1 10-May-2006  yamt file INSTALL.local was added on branch yamt-lazymbuf on 2006-06-21 14:55:11 +0000
 1.1.10.2 01-Jun-2006  kardel Sync with head.
 1.1.10.1 10-May-2006  kardel file INSTALL.local was added on branch simonb-timecounters on 2006-06-01 22:35:16 +0000
 1.1.8.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.1.8.1 10-May-2006  tron file INSTALL.local was added on branch peter-altq on 2006-05-24 15:48:20 +0000
 1.1.6.2 24-May-2006  yamt sync with head.
 1.1.6.1 10-May-2006  yamt file INSTALL.local was added on branch yamt-pdpolicy on 2006-05-24 10:57:10 +0000
 1.1.2.2 11-May-2006  elad sync with head
 1.1.2.1 10-May-2006  elad file INSTALL.local was added on branch elad-kernelauth on 2006-05-11 23:27:02 +0000
 1.23 03-Sep-2024  andvar s/intefaces/interfaces/
 1.22 29-Jan-2024  christos branches: 1.22.2;
PR/57889: Ricardo Branco: ext2fs does not have user immutable and append
file flags, only system ones. Restrict those to the superuser. Before
the behavior was controlled by EXT2FS_SYSTEM_FLAGS. Make that behavior the
default.
 1.21 09-Feb-2023  abs Adjust _all_ cinclude of *.local files

- Ensure always at end
- Use tab rather than spaces
- Add consistent comment
"Pull in optional local configuration - always at end"

The only functional change is that a local file which tried to
override an existing setting (eg with "no foo") would have failed
in some cases before, but now will work
 1.20 12-Dec-2021  andvar fix various typos in comments.
 1.19 15-Sep-2020  mrg bump bebox and prep image sizes for GCC 9.
 1.18 14-Sep-2017  mrg clean up COMPAT_* options for native netbsd code:
- new series of files that are useful for saying "i want everything
since netbsd 1.4", etc.
- use the fact COMPAT_* options have future dependancies to remove
many redundant options.

removes about 3000 lines total across kernel configuration files.
tested about 30 random kernels in the changed list.
 1.17 19-Feb-2017  rin PR kern/51208
Add DISKLABEL_EI option (and also FFS_EI if missing), commented out except for
ALL on amd64 and i386.
 1.16 23-Aug-2014  dholland branches: 1.16.2; 1.16.4; 1.16.6;
Systematize (and in many cases, fix) the comments on options COMPAT_NN.

There are quite a few configs that are missing some COMPAT_NN options
in ways that don't make sense; this should probably get cleaned up
too, but for the time being I've not added or removed anything.
 1.15 08-Aug-2014  joerg Don't set -mmultiple or -mno-string for PowerPC, the difference is too
small to really matter and it sometimes even increases the size.
 1.14 17-Aug-2012  abs branches: 1.14.2; 1.14.12;
Update all kernel configs mentioning WSEMUL_* but not already including
WSDISPLAY_COMPAT_USL using the following rules:
- If WSEMUL_ is commented out, add commented out out WSDISPLAY_COMPAT_USL
- If INSTALL or obviously memory constrained, add WSDISPLAY_DEFAULTSCREENS=1
and commented out WSDISPLAY_COMPAT_USL
- Otherwise add WSDISPLAY_COMPAT_USL

Some of the INSTALL configs for larger memory machines are probably suitable
for adding WSDISPLAY_COMPAT_USL.

Now wsconscfg(8) should be able to switch VTs when expected.

Implemented after no objection from tech-kern to the following:

On 5 June 2012 09:47, David Brownlee <abs@absd.org> wrote:
> wsconscfg(8) requires WSDISPLAY_COMPAT_USL in order to switch virtual
> terminals.
>
> Except when in an exceptionally memory or space constrained
> environment (INSTALL being the obvious case), is there any reason why
> all GENERIC and GENERIC-like kernels which have wscons enabled
> shouldn't also have WSDISPLAY_COMPAT_USL?
 1.13 18-Dec-2011  dholland WABPL is no longer considered experimental (has not been for some time)
so update its comment in config files.
 1.12 22-Nov-2011  tls branches: 1.12.2;

The rnd pseudo-device is not really optional, because it is in the same
source file as the entropy-pool code itself. Move it to std. This
will be cleaned up more when I split the sources up as they should be.

This fixes build breaks on several ports. Thanks to Havard Eidnes for
pointing them out.
 1.11 30-Jun-2011  wiz branches: 1.11.2;
dependant -> dependent
 1.10 23-Nov-2010  hannken Remove unused count from pseudo-device md.
 1.9 16-Apr-2010  pooka Remove unused count (invariably "4") from pseudo-device fss.
 1.8 06-Feb-2009  jym branches: 1.8.4; 1.8.6;
Changes to MEMORY_RBFLAGS option:
- renamed to MEMORY_DISK_RBFLAGS to better fit the rest of the
MEMORY_DISK options(4)
- change default value to RB_AUTOBOOT instead of RB_SINGLE, and adapt
the config(5) files accordingly
- document this option inside options(4)

See also http://mail-index.netbsd.org/tech-kern/2008/12/25/msg003924.html

Reviewed by abs@ in private mail.
 1.7 31-Jul-2008  simonb branches: 1.7.2;
Add "options WAPBL" to standard GENERIC/INSTALL type configs.
 1.6 01-May-2008  garbled branches: 1.6.2; 1.6.6;
Squeeze 14k out of the INSTALL_SMALL image. Still too big. (by 49k)

Savings detailed below:
6274 #pseudo-device rnd
799 no options EXEC_AOUT
1082 options NO_DEV_PTM
6023 st* at scsibus
 1.5 13-Feb-2008  tsutsui branches: 1.5.6; 1.5.8; 1.5.10;
options<space><tab>
 1.4 17-Oct-2007  garbled branches: 1.4.2;
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.3 29-Dec-2006  yamt branches: 1.3.6; 1.3.14; 1.3.22; 1.3.24; 1.3.26; 1.3.28;
update comments on NFS_V2_ONLY after nqnfs removal. no functional changes.
from Arnaud Lacombe.
 1.2 02-Oct-2006  chs remove MALLOC_NOINLINE, it doesn't do anything anymore.
 1.1 20-Jun-2006  garbled branches: 1.1.2; 1.1.4; 1.1.6; 1.1.10; 1.1.12; 1.1.14;
Update install WRT recent clock changes, and break INSTALL into INSTALL
and INSTALL_SMALL. Since floppy images have to fit on one floppy, we
have to really cut down on the drivers on that image, but people
netbooting don't have that problem, so they deserve a more featured
kernel to install with. (namely one with raid support and more ethernet
drivers)
 1.1.14.1 22-Oct-2006  yamt sync with head
 1.1.12.2 09-Sep-2006  rpaulo sync with head
 1.1.12.1 20-Jun-2006  rpaulo file INSTALL_SMALL was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:34 +0000
 1.1.10.2 12-Jan-2007  ad Sync with head.
 1.1.10.1 18-Nov-2006  ad Sync with head.
 1.1.6.2 13-Jul-2006  gdamore Merge from HEAD.
 1.1.6.1 20-Jun-2006  gdamore file INSTALL_SMALL was added on branch gdamore-uart on 2006-07-13 17:49:01 +0000
 1.1.4.2 26-Jun-2006  yamt sync with head.
 1.1.4.1 20-Jun-2006  yamt file INSTALL_SMALL was added on branch yamt-pdpolicy on 2006-06-26 12:45:13 +0000
 1.1.2.5 27-Feb-2008  yamt sync with head.
 1.1.2.4 27-Oct-2007  yamt sync with head.
 1.1.2.3 30-Dec-2006  yamt sync with head.
 1.1.2.2 21-Jun-2006  yamt sync with head.
 1.1.2.1 20-Jun-2006  yamt file INSTALL_SMALL was added on branch yamt-lazymbuf on 2006-06-21 14:55:11 +0000
 1.3.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.3.26.1 18-Oct-2007  yamt sync with head.
 1.3.24.2 23-Mar-2008  matt sync with HEAD
 1.3.24.1 06-Nov-2007  matt sync with HEAD
 1.3.22.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.3.14.1 26-Jun-2007  garbled Apply patches from John D. Baker to make INSTALL compile again. Also
cleans up some of the config stuff for the mcclock pnpbus attachment.
 1.3.6.1 23-Oct-2007  ad Sync with head.
 1.4.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.5.10.3 11-Aug-2010  yamt sync with head.
 1.5.10.2 04-May-2009  yamt sync with head.
 1.5.10.1 16-May-2008  yamt sync with head.
 1.5.8.1 18-May-2008  yamt sync with head.
 1.5.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.5.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.6.6.1 19-Oct-2008  haad Sync with HEAD.
 1.6.2.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.7.2.1 03-Mar-2009  skrll Sync with HEAD.
 1.8.6.2 05-Mar-2011  rmind sync with head
 1.8.6.1 30-May-2010  rmind sync with head
 1.8.4.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.11.2.2 30-Oct-2012  yamt sync with head
 1.11.2.1 17-Apr-2012  yamt sync with head
 1.12.2.1 18-Feb-2012  mrg merge to -current.
 1.14.12.1 10-Aug-2014  tls Rebase.
 1.14.2.2 03-Dec-2017  jdolecek update from HEAD
 1.14.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.16.6.1 21-Apr-2017  bouyer Sync with HEAD
 1.16.4.1 20-Mar-2017  pgoyette Sync with HEAD
 1.16.2.1 28-Aug-2017  skrll Sync with HEAD
 1.22.2.1 02-Aug-2025  perseant Sync with HEAD
 1.7 26-Aug-2001  matt Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.6 01-Jun-2001  simonb branches: 1.6.2;
Rename assembly files that are pre-processed by cpp to use an S suffix.
 1.5 29-May-2001  mrg define _KERNEL_OPT as well as _KERNEL. we will use this in the future to
get kernel "opt_foo.h" headers, rather than _KERNEL && !_LKM.
 1.4 17-Dec-2000  jdolecek branches: 1.4.2;
delete obsolete comment
 1.3 09-May-2000  hubertf branches: 1.3.6;
Add "install" target, so "make install" after building the kernel
does something useful. The target can be redefined by putting a
install-kernel-${MACHINE_NAME} target that fits your needs into
/etc/mk.conf.
 1.2 09-May-2000  thorpej HAVE_GCC28 -> HAVE_EGCS, and make it match gcc 2.9 as well. Also,
make the use of -Wno-uninitialized explicit, don't rely on a compiler
hack to do it for us.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.3.6.3 05-Jan-2001  bouyer Sync with HEAD
 1.3.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.6.1 09-May-2000  bouyer file Makefile.prep was added on branch thorpej_scsipi on 2000-11-20 20:22:56 +0000
 1.4.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.6.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.46 09-Mar-2006  garbled Deleting this kernel. These days it looks pretty much identical to
GENERIC.. so I'm not sure what it is supposed to be an example of.
 1.45 22-Feb-2006  hira branches: 1.45.2; 1.45.4;
Fix typo (Prolofic -> Prolific).
 1.44 05-Feb-2006  cube Remove 'count' argument for pseudo-devices that ignore it
(vnd, bpfilter, ppp, gif, gre, tun, sl, strip, faith, stf).
 1.43 04-Feb-2006  rpaulo bpfilter doesn't accept count anymore.
 1.42 07-Dec-2005  tsutsui branches: 1.42.2; 1.42.4; 1.42.6;
Adjust comments for options FFS_NO_SNAPSHOT.

XXX: This option should be mentioned in options(4).
 1.41 19-Aug-2005  christos Enable ptyfs by default on the non-install and non small/tiny/ramdisk kernels
 1.40 19-Aug-2005  christos 64 bit inode changes.
 1.39 05-Aug-2005  skrll Add (commented out) ucycom to various kernel configs.
 1.38 31-Jul-2005  yamt revert "defflag VMSWAP" changes for now.
there seems to be far more people who don't want to edit
their kernel config files than i thought.
 1.37 30-Jul-2005  yamt add "options VMSWAP" to non INSTALL kernels.
 1.36 07-Jul-2005  tron Add (commented out) IPSEC_NAT_T option.
 1.35 15-Apr-2005  itohy branches: 1.35.2;
Add ukyopon(4).
 1.34 25-Mar-2005  cube Add attimer(4) configurations everywhere pcppi(4) exists, with the
following rule:
If a pcppi device is enabled for an attachment, enable an attimer for the
same attachement, otherwise comment it.
 1.33 25-Feb-2005  simonb branches: 1.33.2;
Add COMPAT_20 (and COMPAT_16 in some cases) to kernel config files
that didn't have those options but had other earlier compat options.
 1.32 18-Feb-2005  dsl Invert FFS_SNAPSHOT to FFS_NO_SNAPSHOT
 1.31 11-Feb-2005  dsl Add 'option FFS_SNAPSHOT' to most of the config files.
Commented out for kernels that appear to hace space constraints.
 1.30 31-Jan-2005  hannken Add file system snapshots to kernel configs.

- Ffs internal snapshots get compiled in unconditionally.

- File system snapshot device fss(4) added to all kernel configs that
have a disk. Device is commented out on all non-GENERIC kernels.

Reviewed by: Jason Thorpe <thorpej@netbsd.org>
 1.29 10-Nov-2004  christos branches: 1.29.4; 1.29.6;
Add COMPAT_BSDPTY to the rest of the config files.
 1.28 23-Oct-2004  augustss s/uax/axe/
 1.27 04-Sep-2004  manu IPv4 PIM support, based on a submission from Pavlin Radoslavov posted on
tech-net@
 1.26 15-Jul-2004  atatat Add "options SYSCTL_INCLUDE_DESCR" to a lot of configs, but commented
out in most of them.
 1.25 18-Oct-2003  lukem branches: 1.25.2;
Use one 'atabus* at ata?' instead of multiple 'atabus* at FOOide? channel ?'
Use 'atapibus* at atapi?' instead of 'atapibus* at atabus?'
 1.24 08-Oct-2003  bouyer Add atabus.
 1.23 16-Feb-2003  augustss branches: 1.23.2;
Add uax(4) (and url(4) in some cases).
 1.22 16-Jan-2003  matt Add PLATFORM_IBM_6040
 1.21 18-Sep-2002  lukem enable USERCONF by default; it's small and extremely useful to have available.
 1.20 17-Jun-2002  lukem Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
 1.19 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.18 02-May-2002  nonaka branches: 1.18.2; 1.18.4;
Use PLATFORM_*
 1.17 25-Apr-2002  atatat Add the INCLUDE_CONFIG_FILE option to all config files. In config
files that are generic (ie, GENERIC, GENERICSBC, GENERIC32, ALL, or
ALPHA), it is uncommented.
 1.16 17-Apr-2002  mycroft Switch from de to tlp by default.
 1.15 16-Apr-2002  kleink pmsi(4) is gone.
 1.14 12-Apr-2002  gmcgarry Add commented-out USERCONF option. Mainly useful for install media
and can be optionally enabled based on miniroot and ramdisk size
requirements.
 1.13 09-Mar-2002  chs switch all mpc6xx powerpc ports to NEWPMAP by default.
the old pmap is still available with the OLDPMAP option.
 1.12 04-Mar-2002  sommerfeld The "gif*" tunnelling interface does everything ipip does.
Move usage example from ipip.4 to gif.4
Excise ipip and stitch up the scars.
 1.11 27-Jan-2002  jdolecek add options PIPE_SOCKETPAIR to individual kernel configs
the option is commented out on everything but kernels I was able
to recognize as INSTALL-like or ones for small memory machines
 1.10 28-Dec-2001  augustss Update for new uhidev device attachment.
 1.9 21-Nov-2001  soren prep has no special dependencies on pccons; remove.
 1.8 20-Nov-2001  lukem cleanup:
options SPACE TAB
makeoptions TAB
psuedo-device TAB
remove trailing whitespace
replace multiple spaces -> tabs
options "FOO" -> options FOO
options "FOO=bar" -> options FOO=bar
options "FOO=\"bar\"" -> options FOO="\"bar\""
 1.7 13-Nov-2001  augustss The wsmux pseudo device does not need a count anymore.
 1.6 20-Jun-2001  nonaka branches: 1.6.2; 1.6.8;
Sync reality.
 1.5 24-Sep-2000  jdolecek branches: 1.5.2;
don't specify number of ptys if >= 16 (current default initial number)
pty comments: normalize and g/c what is no longer relevant
 1.4 14-Jun-2000  veego Remove the obsolete config fragments for kernel crypto, because the IPsec
crypto code is now in the kernel source tree.
 1.3 27-May-2000  soren branches: 1.3.2;
ncr(4) wouldn't work, so s/ncr/siop/.
 1.2 22-Mar-2000  cgd add commented out option PCI_CONFIG_DUMP whever there's a PCIVERBOSE.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.3.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.5.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.2.1 24-Sep-2000  bouyer file NATSUMI was added on branch thorpej_scsipi on 2000-11-20 20:22:56 +0000
 1.6.8.8 17-Jan-2003  thorpej Sync with HEAD.
 1.6.8.7 18-Oct-2002  nathanw Catch up to -current.
 1.6.8.6 20-Jun-2002  nathanw Catch up to -current.
 1.6.8.5 17-Apr-2002  nathanw Catch up to -current.
 1.6.8.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.6.8.3 28-Feb-2002  nathanw Catch up to -current.
 1.6.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.6.8.1 20-Jun-2001  nathanw file NATSUMI was added on branch nathanw_sa on 2002-01-08 00:27:15 +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 11-Feb-2002  jdolecek Sync w/ -current.
 1.6.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.18.4.2 26-Oct-2005  jmc Pullup (via patch) requested in ticket #5754 by itohy

Provide a backport for ukyopon(4) and pullup umodem(4) updates.
 1.18.4.1 01-Aug-2002  lukem Pull up revision 1.20 (requested by lukem in ticket #312):
Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
 1.18.2.1 15-Jul-2002  gehenna catch up with -current.
 1.23.2.11 11-Dec-2005  christos Sync with head.
 1.23.2.10 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.23.2.9 01-Apr-2005  skrll Sync with HEAD.
 1.23.2.8 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.23.2.7 15-Feb-2005  skrll Sync with HEAD.
 1.23.2.6 04-Feb-2005  skrll Sync with HEAD.
 1.23.2.5 14-Nov-2004  skrll Sync with HEAD.
 1.23.2.4 02-Nov-2004  skrll Sync with HEAD.
 1.23.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.23.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.23.2.1 03-Aug-2004  skrll Sync with HEAD
 1.25.2.1 15-Jul-2004  he branches: 1.25.2.1.2;
Pull up revision 1.26 (requested by atatat in ticket #663):
Add "options SYSCTL_INCLUDE_DESCR" to a lot of configurations,
but commented out in most of them.
 1.25.2.1.2.1 21-Jul-2005  riz Pull up revision 1.35 (requested by itohy in ticket #1430):
Add ukyopon(4).
 1.29.6.3 26-Mar-2005  yamt sync with head.
 1.29.6.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.29.6.1 12-Feb-2005  yamt sync with head.
 1.29.4.1 29-Apr-2005  kent sync with -current
 1.33.2.2 18-Jul-2005  riz Pull up revision 1.36 (requested by tron in ticket #566):
Add (commented out) IPSEC_NAT_T option.
 1.33.2.1 17-Apr-2005  tron Pull up revision 1.35 (requested by itohy in ticket #160):
Add ukyopon(4).
 1.35.2.1 21-Jun-2006  yamt sync with head.
 1.42.6.1 22-Apr-2006  simonb Sync with head.
 1.42.4.1 09-Sep-2006  rpaulo sync with head
 1.42.2.2 01-Mar-2006  yamt sync with head.
 1.42.2.1 18-Feb-2006  yamt sync with head.
 1.45.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.45.2.1 13-Mar-2006  yamt sync with head.
 1.3 17-Apr-2002  mycroft This file is redundant now.
 1.2 17-Apr-2002  mycroft Remove TLP_MATCH_* options.
 1.1 26-Feb-2002  kleink branches: 1.1.2; 1.1.8;
For the time being, add a wrapper around GENERIC causing the tlp driver
to match the on-board 21040, which the de driver has issues with.
 1.1.8.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.8.2 16-Mar-2002  jdolecek Catch up with -current.
 1.1.8.1 26-Feb-2002  jdolecek file ULTRA was added on branch kqueue on 2002-03-16 15:59:20 +0000
 1.1.2.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.2.1 26-Feb-2002  nathanw file ULTRA was added on branch nathanw_sa on 2002-02-28 04:11:28 +0000
 1.63 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.62 08-Dec-2012  kiyohara branches: 1.62.38; 1.62.40;
Add required attribute mk48txx to nvram.
 1.61 22-Jun-2011  matt branches: 1.61.2; 1.61.12;
Add support pci_intr_setattr.
Export non-inline version of pci api for modules (_MODULE is defined).
Fix definition of pc_conf_hook and pc_conf_interrupt.
Switch to using inlines instead of macros.
Switch ibm4xx to use <powerpc/pci_machdep.h>
 1.60 20-Feb-2008  drochner Since files.wscons et al. are included by ~all ports anyway, include
them in the mi "files" file, and remove include statements from md files.
These shouldn't pull in additional kernel code when not in use, so it
shouldn't do any harm except a risk of namespace collisions which
should be easy to fix.
 1.59 03-Dec-2007  ad Interrupt handling changes, in discussion since February:

- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
 1.58 17-Oct-2007  garbled branches: 1.58.2;
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.57 10-Apr-2007  macallan branches: 1.57.4; 1.57.12; 1.57.14; 1.57.16; 1.57.18;
include files.wsfb
 1.56 23-Jun-2006  garbled branches: 1.56.10; 1.56.14; 1.56.16;
1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet. (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
 1.55 15-Jun-2006  garbled A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.54 10-May-2006  garbled branches: 1.54.2; 1.54.4;
Switch prep to use the MI mbr/disklabel code.
 1.53 03-May-2006  garbled Generic soft interrupt support for prep. Mostly copied from macppc,
tested on 7248 and 7043.
 1.52 16-Mar-2006  garbled branches: 1.52.2;
More changes to prep port:
1) Add the NVRAM device. This device allows us to speak with the nvram on
prep-based machines and read/write to it. Also add a simple IOCTL
interface for speaking with the nvram from userland. This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device. Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
 1.51 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.50 23-Feb-2006  garbled branches: 1.50.2; 1.50.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.49 11-Dec-2005  christos branches: 1.49.2; 1.49.4; 1.49.6;
merge ktrace-lwp.
 1.48 08-Jul-2004  drochner branches: 1.48.12;
don't need md timing functions for joystick anymore
 1.47 26-Jun-2004  kleink Add platform support for the IBM RS/6000 6015 a/k/a 7020-001 a/k/a 40P.
 1.46 13-Mar-2004  bjh21 Abstract the interface between pckbc(4), and the pckbd(4) and pms(4)
drivers that attach to it. This allows for other host interface chips
that use the same keyboards and mice, such as the ones in the ARM
IOMD20, ARM7500, and SA-1111. The PC-compatible driver is still
called pckbc(4), and the new abstraction layer is "pckbport", so the
child devices have moved from sys/dev/pckbc to sys/dev/pckbport, which
also contains some code shared between all host controllers. To avoid
incompatibility, pckbdreg.h is still installed in
/usr/include/dev/pckbc.

In theory, this shouldn't cause any behavioural changes in the drivers
concerned. Thy just use rather more function pointers than before. Tested
on i386 and (with a new host driver) acorn32. Compiled on several other
affected architectures.
 1.45 14-Feb-2004  bjh21 Remove definitions of "pc" and "pcconskbd" devices which couldn't work since
they used arch/prep/isa/pccons.c, which was removed in late 2001.
 1.44 01-Nov-2003  tsutsui - Adapt mkclock_isa.c to MI mk48txx(4) changes.
- Switch mcclock_isa.c to use MI mc146818 driver.
- Use todr(9) interface with both todclock drivers.
 1.43 27-Jul-2003  thorpej Since everyone uses clock_subr.c (or should, if they don't currently),
list it in conf/files instead of in every port's files.*.
 1.42 18-Mar-2003  matt branches: 1.42.2;
Switch/adapt to new bus space infrastructure.
 1.41 05-Mar-2003  matt Remove port-specific procfs_machdep.c (since they are all identical and
a better one resides in powerpc/powerpc/).
 1.40 16-Jan-2003  matt Add platform support for the IBM PPS Model 6040 (E) (aka ThinkPad 820).
 1.39 30-Oct-2002  manu Moved binary compatibility options from arch directory to cpu directory
 1.38 26-Oct-2002  jdolecek now that mem_no is emitted by config(8), there is no reason to keep
copy of more or less identical iskmemdev() for every arch; move the function
to spec_vnop.c, and g/c machine-dependant copies
 1.37 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.36 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.35 16-May-2002  kleink Fix typo in attribute name.
 1.34 02-May-2002  nonaka branches: 1.34.2;
Added IBM Personal Power Series 830 IDE controller support.
 1.33 02-May-2002  nonaka Use PLATFORM_*
 1.32 02-May-2002  nonaka Added dump residual data routine.
 1.31 02-May-2002  nonaka Added dump residual data routine.
 1.30 25-Apr-2002  nonaka Separate consinit.
 1.29 22-Apr-2002  augustss Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.
 1.28 16-Apr-2002  thorpej * Move the mii_bitbang attribute into dev/mii/files.mii
* Pull in dev/mii/files.mii from conf/files, rather than playing
the magic "files include order" dance in N machine-dependent
configuration definitions.
 1.27 26-Feb-2002  kleink Add platform support for the Motorola Ultra Plus and Ultra 60x boards.

Note that this currently matches only the boards built into Bull Estrella
systems, as Bull chose to change the board identification string whose
original content is not known at this time.
 1.26 25-Feb-2002  kleink Add an attachment for the MK48T18 RTC/NVRAM found on some Motorola boards.
 1.25 24-Feb-2002  kleink In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.24 02-Feb-2002  jdolecek Reduce the massive code duplication regarding joy(4). Split it into
MI and MD parts, and make ISA/ISAPNP/PCI joy(4) attachments MI.
 1.23 28-Nov-2001  lukem - convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups
 1.22 20-Nov-2001  lukem - replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h
 1.21 20-Nov-2001  lukem cleanup:
options SPACE TAB
makeoptions TAB
psuedo-device TAB
remove trailing whitespace
replace multiple spaces -> tabs
options "FOO" -> options FOO
options "FOO=bar" -> options FOO=bar
options "FOO=\"bar\"" -> options FOO="\"bar\""
 1.20 20-Jun-2001  nonaka branches: 1.20.2; 1.20.8;
Seprate model depended code. (based on arc 'struct platform')

files.prep:
- add new files entry.

pci_machdep.c:
- use dev/pci/pciconf.c instead of mine for pci io/mem addr/intr fixup.

cpu.c:
- separate code

machdep.c:
- call ident_platform()

mainbus.c:
- call pci_configure_bus(), if defined PCI_NETBSD_CONFIGURE

ibm_machdep.c:
- for IBM PReP generic

ibm_6050.c:
- for IBM Personal Power Series 830/850

ibm_7248.c:
- for IBM RS6000/43P deppendency
 1.19 18-Jun-2001  nonaka Add bus_dma entry.
 1.18 18-Jun-2001  christos Add an e_trapsignal member to struct emul, so that emulated processes can
send the appropriate signal depending on the trap type.
 1.17 15-Jun-2001  nonaka Use new common bus.h framework.
 1.16 23-Jan-2001  nonaka branches: 1.16.2;
fix dup include ossaudio.
 1.15 19-Jan-2001  manu Added previously created files for powerpc Linux compatibility to the kernel
config system
 1.14 17-Jan-2001  fvdl Add machdep file for procfs. Currently only used for linux-style
/proc/cpuinfo (only active when procfs is mounted with -o linux).
For ports other than the i386 this currently produces an empty
string.
 1.13 05-Jan-2001  tsutsui Add isapnp attachment for prep.
 1.12 06-Dec-2000  matt Add ThinkPad 820 audio driver (attaches but does not yet work).
 1.11 01-Dec-2000  matt Add support for the IBM ThinkPad 820 G10 display (which is a WD90C24A behind
a funky PCI-VLBUS bridge).
 1.10 27-Nov-2000  matt Add generic ISA floppy support
 1.9 27-Nov-2000  matt Use MI md_root.c
 1.8 22-Nov-2000  matt Make assym.h be generated again
Add pcmcia support to files.prep
Add isa_intr_alloc support.
 1.7 08-Nov-2000  ad branches: 1.7.2;
Pull in dev/i2o/files.i2o.
 1.6 08-Jun-2000  nonaka USB support
 1.5 31-May-2000  nonaka Fix maxpartitions, pointed out by NAKAJIMA Yoshihiro <nakayosh@kcn.ne.jp>
 1.4 27-Mar-2000  nonaka branches: 1.4.2;
rewrite some bus_space functions like port-i386.
 1.3 15-Mar-2000  soren s/md/raid/ for RAIDframe major name.
 1.2 15-Mar-2000  oster Add the RAIDframe device major to the machine-dependent config files
so that the right entries get added to dev_name2blk[]. Needed for / on RAID.
(Missed these yesterday.. Thanks to Izumi Tsutsui for noticing, and for
letting me know :) )
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.4.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.7.2.6 11-Feb-2001  bouyer Sync with HEAD.
 1.7.2.5 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.7.2.4 08-Dec-2000  bouyer Sync with HEAD.
 1.7.2.3 22-Nov-2000  bouyer Sync with HEAD.
 1.7.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.7.2.1 08-Nov-2000  bouyer file files.prep was added on branch thorpej_scsipi on 2000-11-20 20:22:56 +0000
 1.16.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.20.8.7 17-Jan-2003  thorpej Sync with HEAD.
 1.20.8.6 11-Nov-2002  nathanw Catch up to -current
 1.20.8.5 17-Sep-2002  nathanw Catch up to -current.
 1.20.8.4 20-Jun-2002  nathanw Catch up to -current.
 1.20.8.3 28-Feb-2002  nathanw Catch up to -current.
 1.20.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.20.8.1 20-Jun-2001  nathanw file files.prep was added on branch nathanw_sa on 2002-01-08 00:27:15 +0000
 1.20.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.20.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.20.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.20.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.20.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.34.2.4 15-Jul-2002  gehenna catch up with -current.
 1.34.2.3 30-May-2002  gehenna Catch up with -current.
 1.34.2.2 17-May-2002  gehenna Remove old block majors list.
 1.34.2.1 16-May-2002  gehenna Include the list of block/character major numbers.
 1.42.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.42.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.42.2.1 03-Aug-2004  skrll Sync with HEAD
 1.48.12.6 27-Feb-2008  yamt sync with head.
 1.48.12.5 07-Dec-2007  yamt sync with head
 1.48.12.4 27-Oct-2007  yamt sync with head.
 1.48.12.3 03-Sep-2007  yamt sync with head.
 1.48.12.2 30-Dec-2006  yamt sync with head.
 1.48.12.1 21-Jun-2006  yamt sync with head.
 1.49.6.2 01-Jun-2006  kardel Sync with head.
 1.49.6.1 22-Apr-2006  simonb Sync with head.
 1.49.4.1 09-Sep-2006  rpaulo sync with head
 1.49.2.1 01-Mar-2006  yamt sync with head.
 1.50.4.2 11-May-2006  elad sync with head
 1.50.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.50.2.4 26-Jun-2006  yamt sync with head.
 1.50.2.3 24-May-2006  yamt sync with head.
 1.50.2.2 01-Apr-2006  yamt sync with head.
 1.50.2.1 13-Mar-2006  yamt sync with head.
 1.52.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.54.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.54.2.1 19-Jun-2006  chap Sync with head.
 1.56.16.1 11-Jul-2007  mjf Sync with head.
 1.56.14.3 03-Dec-2007  ad Sync with HEAD.
 1.56.14.2 23-Oct-2007  ad Sync with head.
 1.56.14.1 10-Apr-2007  ad Sync with head.
 1.56.10.1 15-Apr-2007  yamt sync with head.
 1.57.18.1 25-Oct-2007  bouyer Sync with HEAD.
 1.57.16.1 18-Oct-2007  yamt sync with head.
 1.57.14.3 23-Mar-2008  matt sync with HEAD
 1.57.14.2 09-Jan-2008  matt sync with HEAD
 1.57.14.1 06-Nov-2007  matt sync with HEAD
 1.57.12.2 09-Dec-2007  jmcneill Sync with HEAD.
 1.57.12.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.57.4.12 11-Oct-2007  garbled Move a bunch of the macppc SMP code out of macppc, and down into the
generic OEA code. Add a set of md callbacks into these shared routines,
that any oeappc SMP machine needs to provide. This allows for generally
shared SMP startup code, but still allows for machine-specific
differences in the setup and kicking of the new CPU.

Convert macppc to this new layout. Tested by Macallan.

Add an initial attempt at SMP to prep. Tested on UP machine only,
untested on SMP yet.
 1.57.4.11 26-Jun-2007  garbled Apply patches from John D. Baker to make INSTALL compile again. Also
cleans up some of the config stuff for the mcclock pnpbus attachment.
 1.57.4.10 09-May-2007  garbled More prep rototill. Utilize the functions provided in
powerpc/oea/prep_machdep.c. While here, clean up some unused functions
and prototypes.
 1.57.4.9 07-May-2007  garbled Convert prep over to new isa_machdep changes.
 1.57.4.8 03-May-2007  garbled Add com0 back to GENERIC, delete clock.c as now prep uses the shared clock.c
 1.57.4.7 03-May-2007  garbled Get rid of all the useless stuff in isa_machdep.c, and the things that
call it. TODO, fix isa_intr_alloc to work with new interrupt foo.
 1.57.4.6 03-May-2007  garbled Convert prep over to the shared interrupts. Still alot of cleanup to do
following this change.
 1.57.4.5 03-May-2007  matt Make it emit a mcclock.h
 1.57.4.4 02-May-2007  garbled Move prep's isapnp_machdep.c to powerpc/isa, and make prep use that instead.
 1.57.4.3 02-May-2007  garbled prep now uses the shared copies of isadma_machdep.c and pcib.c
 1.57.4.2 01-May-2007  garbled Track rename of generic pci files
 1.57.4.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.58.2.1 08-Dec-2007  mjf Sync with HEAD.
 1.61.12.1 25-Feb-2013  tls resync with head
 1.61.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.62.40.1 05-May-2019  isaki Remove obsoleted au{,rate,vol}conv and mulaw attributes.
audio provides the equivalent of them inseparably.
 1.62.38.1 10-Jun-2019  christos Sync with HEAD
 1.28 04-Apr-2020  jdolecek mark nsmb major obsolete
 1.27 28-Jan-2019  dholland Systematize handling of removed drivers.

- Every driver that was removed and whose number hasn't already been
reused is now listed with a commented-out "obsolete" line.
- The format of these has been systematized. Future format changes can
probably be safely done with a script.
- This does not include a few cases of assignments that only lasted a
couple days, or stuff from before major reorgs. Some of these may
be included nonetheless, because there was a lot of ground to cover
and therefore not a lot of time to dig into history in detail.

Note that the obsolete listings do not mean the major numbers can
never be reused; that's up to portmasters and/or core. It does mean
that they won't be reused by accident, however, which in some cases
(depending on the driver, how widely used it was, its family of device
nodes, their default permissions, etc.) can be quite dangerous.

Note that some of the things now explicitly listed as obsolete are
really ancient history. My scan went back as far as when the majors
files were added. (But not before that.)
 1.26 27-Jan-2019  dholland Restore satlink's majors entries commented out and marked obsolete.
Otherwise they might accidentally get reused later and cause a
security problem.
 1.25 27-Jan-2019  maxv Remove the satlink driver. It was disabled everywhere, had no man page and
no use either. Spotted by thorpej in PR/21345, ok christos.
 1.24 23-Sep-2018  maxv Remove ISDN from the kernel. It has remained unmaintained for a long time,
is of poor quality, and is now an obstacle to MP-ification. It was removed
ten years ago from FreeBSD for the same reason.

This retires a big user of the mbuf API, and will ease maintenance of the
kernel.
 1.23 08-Dec-2016  nat branches: 1.23.14; 1.23.16;
Add a synthesized pc beeper and keyboard bell for platforms with an audio
device.
 1.22 30-Jun-2011  wiz branches: 1.22.12; 1.22.30; 1.22.34;
dependant -> dependent
 1.21 12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.20 31-Dec-2007  ad branches: 1.20.6; 1.20.10; 1.20.16; 1.20.18;
Remove systrace. Ok core@.
 1.19 26-Feb-2007  garbled branches: 1.19.22; 1.19.28; 1.19.34;
Finish the code in the prep nvram driver that makes it an actual device
(/dev/nvram) and implement all the associated ioctls fully. Tested with
a hacked up copy of eeprom(8). Right now it can only be used to see the
nvram GEV contents, not actually edit them. Will do that later some day.
 1.18 09-Jan-2007  cube branches: 1.18.2;
Remove traces of scd(4), which apparently never actually had a driver in
the tree.
 1.17 24-Nov-2006  wiz branches: 1.17.2;
s/independant/independent/, from Zafer.
 1.16 11-Dec-2005  christos branches: 1.16.20; 1.16.22;
merge ktrace-lwp.
 1.15 17-Sep-2005  yamt make VMSWAP optional again.
 1.14 31-Jul-2005  yamt revert "defflag VMSWAP" changes for now.
there seems to be far more people who don't want to edit
their kernel config files than i thought.
 1.13 30-Jul-2005  yamt defflag VMSWAP.
 1.12 10-May-2005  jdolecek branches: 1.12.2;
assign major for nsmb(4)
 1.11 10-Dec-2003  jmc Change reference at bottom from sys/dev/majors to sys/conf/majors to match
reality
 1.10 24-Oct-2003  jdolecek add major for 'ses' for archs which have the other scsi devices
 1.9 10-Oct-2003  jdolecek reassing majors for crypto and pf to use the newly defined MI major
range
 1.8 10-Oct-2003  jdolecek update the comment - the space for machine-dependant majors
is reduced to 0-143
follows discussion on tech-kern
 1.7 05-Oct-2003  jdolecek Add some framework for MI assignment of device majors - add sys/dev/majors
which is automatically included during kernel config, and add comments
to individual machine-dependant majors.* files to assign new MI majors
in MI file.

Range 0-191 is reserved for machine-specific assignments, range
192+ are MI assignments.

Follows recent discussion on tech-kern@
 1.6 22-Aug-2003  itojun create /dev/crypto
 1.5 27-Jul-2003  itojun reserve cdev major # for PF. ok'ed by technical-exec
 1.4 25-Apr-2003  ragge branches: 1.4.2;
Add ksyms device major.
 1.3 04-Oct-2002  elric branches: 1.3.2;
assign majors for raw and cooked cgd's.
 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 16-May-2002  gehenna branches: 1.1.2;
file majors.prep was initially added on branch gehenna-devsw.
 1.1.2.3 15-Jul-2002  gehenna catch up with -current.
 1.1.2.2 30-May-2002  gehenna Add $NetBSD$
 1.1.2.1 16-May-2002  gehenna Add the list of block/character majors.
 1.2.2.3 18-Oct-2002  nathanw Catch up to -current.
 1.2.2.2 17-Sep-2002  nathanw Catch up to -current.
 1.2.2.1 06-Sep-2002  nathanw file majors.prep was added on branch nathanw_sa on 2002-09-17 21:17:10 +0000
 1.3.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.3.2.1 04-Oct-2002  jdolecek file majors.prep was added on branch kqueue on 2002-10-10 18:35:24 +0000
 1.4.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.4.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.2.1 03-Aug-2004  skrll Sync with HEAD
 1.12.2.5 21-Jan-2008  yamt sync with head
 1.12.2.4 03-Sep-2007  yamt sync with head.
 1.12.2.3 26-Feb-2007  yamt sync with head.
 1.12.2.2 30-Dec-2006  yamt sync with head.
 1.12.2.1 21-Jun-2006  yamt sync with head.
 1.16.22.1 10-Dec-2006  yamt sync with head.
 1.16.20.1 12-Jan-2007  ad Sync with head.
 1.17.2.1 04-Mar-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #482):
share/man/man4/man4.prep/intro.4: revision 1.1
usr.sbin/eeprom/eeprom.8: revision 1.12
usr.sbin/eeprom/prephandlers.c: revision 1.1
distrib/sets/lists/base/md.prep: revision 1.13
distrib/sets/lists/comp/md.prep: revision 1.22
sys/arch/prep/conf/majors.prep: revision 1.19
share/man/man4/man4.prep/Makefile: revision 1.1
share/man/man4/Makefile: revision 1.421
usr.sbin/eeprom/defs.h: revision 1.10
share/man/man4/man4.prep/nvram.4: revision 1.1
sys/arch/prep/pnpbus/nvram_pnpbus.c: revision 1.6
usr.sbin/eeprom/Makefile: revision 1.14
etc/mtree/NetBSD.dist: revision 1.333
usr.sbin/eeprom/main.c: revision 1.17
etc/etc.prep/MAKEDEV.conf: revision 1.5
distrib/sets/lists/man/mi: revision 1.978
usr.sbin/eeprom/pathnames.h: revision 1.3
sys/arch/prep/include/Makefile: revision 1.19
sys/arch/prep/include/nvram.h: revision 1.3
Finish the code in the prep nvram driver that makes it an actual device
(/dev/nvram) and implement all the associated ioctls fully. Tested with
a hacked up copy of eeprom(8). Right now it can only be used to see the
nvram GEV contents, not actually edit them. Will do that later some day.
 1.18.2.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.19.34.1 02-Jan-2008  bouyer Sync with HEAD
 1.19.28.1 18-Feb-2008  mjf Sync with HEAD.
 1.19.22.1 09-Jan-2008  matt sync with HEAD
 1.20.18.1 19-Jan-2009  skrll Sync with HEAD.
 1.20.16.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.20.10.1 04-May-2009  yamt sync with head.
 1.20.6.1 17-Jan-2009  mjf Sync with HEAD.
 1.22.34.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.22.30.1 05-Feb-2017  skrll Sync with HEAD
 1.22.12.1 03-Dec-2017  jdolecek update from HEAD
 1.23.16.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.23.16.1 10-Jun-2019  christos Sync with HEAD
 1.23.14.1 30-Sep-2018  pgoyette Ssync with HEAD
 1.12 05-Feb-2008  garbled Ifdef out all the MPC601 code with PPC_OEA601. Now only arches that have the
possibility of running on an MPC601, are infected with all the extra code
and nops that it added.

Also, fix compilation that I broke with the pmap code, by adding
oeacpufeat to the locores of various ppc arches. Noted by mlelstv.
 1.11 10-May-2006  garbled branches: 1.11.38; 1.11.44;
Move PCI_NETBSD_CONFIGURE to std.prep. Add *.local files like i386 has.
 1.10 11-Apr-2006  garbled set options PCKBCNOTEST so we attach the keyboard controller.
 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 17-Sep-2005  yamt include "conf/std".
 1.7 12-Aug-2003  matt branches: 1.7.16;
Remove SPILLSTK leftovers.
 1.6 03-Feb-2003  matt branches: 1.6.2;
Rename PPC_MPC6XX to PPC_OEA (and any mpc6xx reference to oea).
 1.5 02-Feb-2003  matt Perform a rototill of the powerpc code. Mandate use of SPRG0 to store
a pointer to current cpu's cpu_info structure. Use cpu_info for
intstk,intr_depth,still_stk,idle_pcb,curpcb,curlwp,etal even on
non-MULTIPROCESSOR machines. Add common macros GET_CPUINFO and
INIT_CPUINFO to get and initialize the cpu_info struct on startup. Make
ibm4xx use the standard <powerpc/frame.h>. Use IFRAME_xx in ibm4xx
trap_subr.S instead of explicit magic offsets. Move INTSTK and SPILLSTK
to std.<platform>. Change faultbuf to a struct instead of an array.

On MPC6XX cpus, stop using the vector page for temporary space and use
reserved space in cpu_info.
 1.4 18-Apr-2002  matt Use a common genassym.cf for all the PPC_MPC6XX ports. Add a makeoptions to
std.foo to indicate the directory to get genassym.cf from. Add an intrframe
to <powerpc/frame.h> and make trap_subr.S use symbolic offsets into it.
 1.3 12-Jun-2001  tsubai branches: 1.3.2; 1.3.8;
Move "file .../bus_dma.c" line to MD place.
Add options PPC_MPC6XX on missed ports.
XXX I think PPC_OEA is better name.
 1.2 22-Jun-2000  fvdl branches: 1.2.2; 1.2.4;
Remove prefix construction for softdeps. Add SOFTDEP option to GENERIC.
 1.1 29-Feb-2000  nonaka branches: 1.1.4;
Initial import prep port.
 1.1.4.1 23-Jun-2000  fvdl As on the trunk, update these for the move of ffs_softdep.c into the
kernel source itself. Remove prefix construction, and add the SOFTDEP
option to GENERIC kernels.
 1.2.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.2.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.2.1 22-Jun-2000  bouyer file std.prep was added on branch thorpej_scsipi on 2000-11-20 20:22:56 +0000
 1.3.8.2 20-Jun-2002  nathanw Catch up to -current.
 1.3.8.1 12-Jun-2001  nathanw file std.prep was added on branch nathanw_sa on 2002-06-20 03:40:38 +0000
 1.3.2.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.6.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.6.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.2.1 03-Aug-2004  skrll Sync with HEAD
 1.7.16.2 11-Feb-2008  yamt sync with head.
 1.7.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.2 11-May-2006  elad sync with head
 1.9.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.9.8.1 24-May-2006  yamt sync with head.
 1.9.6.2 01-Jun-2006  kardel 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.11.44.1 18-Feb-2008  mjf Sync with HEAD.
 1.11.38.1 23-Mar-2008  matt sync with HEAD
 1.6 18-Jun-2022  andvar fix typos in word "functions" in comments, mainly s/fuctions/functions/.
 1.5 29-Mar-2014  christos make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.4 01-Jul-2011  dyoung branches: 1.4.2; 1.4.12; 1.4.16;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.3 18-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.2 28-Apr-2008  martin branches: 1.2.32;
Remove clause 3 and 4 from TNF licenses
 1.1 23-Feb-2006  garbled branches: 1.1.2; 1.1.10; 1.1.16; 1.1.22; 1.1.76; 1.1.78; 1.1.80;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.1.80.1 16-May-2008  yamt sync with head.
 1.1.78.1 18-May-2008  yamt sync with head.
 1.1.76.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.22.2 09-Sep-2006  rpaulo sync with head
 1.1.22.1 23-Feb-2006  rpaulo file eisa_machdep.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:34 +0000
 1.1.16.2 21-Jun-2006  yamt sync with head.
 1.1.16.1 23-Feb-2006  yamt file eisa_machdep.c was added on branch yamt-lazymbuf on 2006-06-21 14:55:11 +0000
 1.1.10.2 22-Apr-2006  simonb Sync with head.
 1.1.10.1 23-Feb-2006  simonb file eisa_machdep.c was added on branch simonb-timecounters on 2006-04-22 11:37:53 +0000
 1.1.2.2 01-Mar-2006  yamt sync with head.
 1.1.2.1 23-Feb-2006  yamt file eisa_machdep.c was added on branch yamt-uio_vmspace on 2006-03-01 09:28:02 +0000
 1.2.32.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.4.16.1 18-May-2014  rmind sync with head
 1.4.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.2.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.22 21-Dec-2015  christos Add mips fenv.h (From FreeBSD)
 1.21 23-Jul-2014  alnsn branches: 1.21.4;
Rename sljitarch.h to sljit_machdep.h.
 1.20 17-Nov-2013  alnsn branches: 1.20.2;
Enable sljit and bpfjit on powerpc.
 1.19 26-Feb-2007  garbled branches: 1.19.80; 1.19.90; 1.19.96;
Finish the code in the prep nvram driver that makes it an actual device
(/dev/nvram) and implement all the associated ioctls fully. Tested with
a hacked up copy of eeprom(8). Right now it can only be used to see the
nvram GEV contents, not actually edit them. Will do that later some day.
 1.18 11-Dec-2005  christos branches: 1.18.24; 1.18.26;
merge ktrace-lwp.
 1.17 24-Oct-2003  matt branches: 1.17.16;
Add back spkr.h
 1.16 20-Oct-2003  matt Reorganize the way powerpc port install machine specific headers.
Use <powerpc/oea/bat.h> exclusively and remove <machine/bat.h> and
<powerpc/bat.h>. Remove unneeded <machine/cpufunc.h>. To insure
1:1 correspondence of <powerpc/FOO.h> to <machine/FOO.h> include
"../../powerpc/include/Makefile" in "arch/FOO/include/Makefile".
Incororpate <byte_swap.h> into <bswap.h> and then byte_swap.h
 1.15 15-May-2003  wiz branches: 1.15.2;
Don't install machine/mouse.h on i386 and prep; there are no users for
the old busmouse interface any longer, we use wsmouse now.
 1.14 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.13 26-Nov-2002  lukem Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more.
 1.12 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.11 07-Aug-2002  briggs Implement pmc(9) -- An interface to hardware performance monitoring
counters. These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface. Initially, the Intel XScale
counters are the only ones supported.
 1.10 21-Nov-2001  soren branches: 1.10.8;
prep has no special dependencies on pccons; remove.
 1.9 03-May-2001  soren branches: 1.9.2; 1.9.8;
PPC machine type tags haven't been used for a while.
 1.8 15-Apr-2001  kleink Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.7 15-Apr-2001  kleink Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.6 14-Apr-2001  kleink Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
 1.5 14-Apr-2001  kleink Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.4 26-Jun-2000  kleink branches: 1.4.2; 1.4.4;
Add <machine/int_types.h>, which provides namespace-pure definitions
of exact-width integer types.
 1.3 29-Apr-2000  thorpej Require that each each MACHINE/MACHINE_ARCH supply a lock.h. This file
contains the values __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED, which
replace the old SIMPLELOCK_LOCKED and SIMPLELOCK_UNLOCKED. These files
are also required to supply inline functions __cpu_simple_lock(),
__cpu_simple_lock_try(), and __cpu_simple_unlock() if locking is to be
supported on that platform (i.e. if MULTIPROCESSOR is defined in the
_KERNEL case). Change these functions to take an int * (&alp->lock_data)
rather than the struct simplelock * itself.

These changes make it possible for userland to use the locking primitives
by including <machine/lock.h>.
 1.2 17-Mar-2000  tron Install "machineendian_machdep.h".
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.4.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.4.2.3 21-Apr-2001  bouyer Sync with HEAD
 1.4.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.4.2.1 26-Jun-2000  bouyer file Makefile was added on branch thorpej_scsipi on 2000-11-20 20:22:56 +0000
 1.9.8.6 11-Dec-2002  thorpej Sync with HEAD.
 1.9.8.5 17-Sep-2002  nathanw Catch up to -current.
 1.9.8.4 13-Aug-2002  nathanw Catch up to -current.
 1.9.8.3 08-Jan-2002  nathanw Catch up to -current.
 1.9.8.2 05-Nov-2001  briggs Initial SA support for ppc. Test-booted on sandpoint, macppc, & walnut.
mcontext and cpu_getmcontext()/cpu_setmcontext() from Klaus Klein
<kleink@netbsd.org>.
 1.9.8.1 03-May-2001  briggs file Makefile was added on branch nathanw_sa on 2001-11-05 19:46:19 +0000
 1.9.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.9.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.9.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.10.8.2 31-Aug-2002  gehenna catch up with -current.
 1.10.8.1 19-May-2002  gehenna Remove port-dependent conf.h.
 1.15.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.15.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.15.2.1 03-Aug-2004  skrll Sync with HEAD
 1.17.16.1 03-Sep-2007  yamt sync with head.
 1.18.26.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.18.24.1 04-Mar-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #482):
share/man/man4/man4.prep/intro.4: revision 1.1
usr.sbin/eeprom/eeprom.8: revision 1.12
usr.sbin/eeprom/prephandlers.c: revision 1.1
distrib/sets/lists/base/md.prep: revision 1.13
distrib/sets/lists/comp/md.prep: revision 1.22
sys/arch/prep/conf/majors.prep: revision 1.19
share/man/man4/man4.prep/Makefile: revision 1.1
share/man/man4/Makefile: revision 1.421
usr.sbin/eeprom/defs.h: revision 1.10
share/man/man4/man4.prep/nvram.4: revision 1.1
sys/arch/prep/pnpbus/nvram_pnpbus.c: revision 1.6
usr.sbin/eeprom/Makefile: revision 1.14
etc/mtree/NetBSD.dist: revision 1.333
usr.sbin/eeprom/main.c: revision 1.17
etc/etc.prep/MAKEDEV.conf: revision 1.5
distrib/sets/lists/man/mi: revision 1.978
usr.sbin/eeprom/pathnames.h: revision 1.3
sys/arch/prep/include/Makefile: revision 1.19
sys/arch/prep/include/nvram.h: revision 1.3
Finish the code in the prep nvram driver that makes it an actual device
(/dev/nvram) and implement all the associated ioctls fully. Tested with
a hacked up copy of eeprom(8). Right now it can only be used to see the
nvram GEV contents, not actually edit them. Will do that later some day.
 1.19.96.1 18-May-2014  rmind sync with head
 1.19.90.2 03-Dec-2017  jdolecek update from HEAD
 1.19.90.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.19.80.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.2.1 10-Aug-2014  tls Rebase.
 1.21.4.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file ansi.h was added on branch thorpej_scsipi on 2000-11-20 20:22:56 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file aout_machdep.h was added on branch thorpej_scsipi on 2000-11-20 20:22:56 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file asm.h was added on branch thorpej_scsipi on 2000-11-20 20:22:56 +0000
 1.3 05-Jun-2011  matt Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.
 1.2 11-Dec-2005  christos branches: 1.2.100; 1.2.106; 1.2.110;
merge ktrace-lwp.
 1.1 20-Oct-2003  matt branches: 1.1.4;
Reorganize the way powerpc port install machine specific headers.
Use <powerpc/oea/bat.h> exclusively and remove <machine/bat.h> and
<powerpc/bat.h>. Remove unneeded <machine/cpufunc.h>. To insure
1:1 correspondence of <powerpc/FOO.h> to <machine/FOO.h> include
"../../powerpc/include/Makefile" in "arch/FOO/include/Makefile".
Incororpate <byte_swap.h> into <bswap.h> and then byte_swap.h
 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 20-Oct-2003  skrll file atomic.h was added on branch ktrace-lwp on 2004-08-03 10:39:48 +0000
 1.2.110.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.2.106.1 06-Jun-2011  jruoho Sync with HEAD.
 1.2.100.1 12-Jun-2011  rmind sync with head
 1.9 30-Jun-2011  matt Modify mapiodev to take a third argument indicating whether the space
should be prefetchable (true) or not (false).
 1.8 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.7 04-Mar-2007  christos branches: 1.7.2; 1.7.10; 1.7.18; 1.7.20; 1.7.22; 1.7.24;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.6 09-May-2006  garbled branches: 1.6.14;
de-__P these files.
 1.5 03-May-2006  garbled Generic soft interrupt support for prep. Mostly copied from macppc,
tested on 7248 and 7043.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; 1.4.12;
merge ktrace-lwp.
 1.3 05-Jun-2005  he branches: 1.3.2;
Adapt to compiling with -Wcast-qual and -Wshadow.
 1.2 05-Jul-2002  matt branches: 1.2.6;
Peform a rototill over the powerpc-based ports.

Move the trap/vector initialization for MPC6xx ports to mpc6xx_machdep.c
Also move softnet, install_extintr, mapiodev, kvtop. Add common BAT
initialization code.

Add user Altivec support.

Fix calls to OF_call_method in macppc/macppc/machdep.c.

Use ci_fpuproc in cpu_info instead of separate fpuproc.

Add separate syscall.c and defined __HAVE_SYSCALL_INTERN.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.10; 1.1.14; 1.1.22;
Initial import prep port.
 1.1.22.1 16-Jul-2002  gehenna catch up with -current.
 1.1.14.1 01-Aug-2002  nathanw Catch up to -current.
 1.1.10.1 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file autoconf.h was added on branch thorpej_scsipi on 2000-11-20 20:22:56 +0000
 1.2.6.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.3.2.3 27-Oct-2007  yamt sync with head.
 1.3.2.2 03-Sep-2007  yamt sync with head.
 1.3.2.1 21-Jun-2006  yamt sync with head.
 1.4.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.4.10.1 11-May-2006  elad sync with head
 1.4.8.1 24-May-2006  yamt sync with head.
 1.4.6.1 01-Jun-2006  kardel Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.6.14.1 12-Mar-2007  rmind Sync with HEAD.
 1.7.24.1 25-Oct-2007  bouyer Sync with HEAD.
 1.7.22.1 18-Oct-2007  yamt sync with head.
 1.7.20.1 06-Nov-2007  matt sync with HEAD
 1.7.18.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.7.10.1 09-May-2007  garbled More prep rototill. Utilize the functions provided in
powerpc/oea/prep_machdep.c. While here, clean up some unused functions
and prototypes.
 1.7.2.1 23-Oct-2007  ad Sync with head.
 1.2 20-Oct-2003  matt Reorganize the way powerpc port install machine specific headers.
Use <powerpc/oea/bat.h> exclusively and remove <machine/bat.h> and
<powerpc/bat.h>. Remove unneeded <machine/cpufunc.h>. To insure
1:1 correspondence of <powerpc/FOO.h> to <machine/FOO.h> include
"../../powerpc/include/Makefile" in "arch/FOO/include/Makefile".
Incororpate <byte_swap.h> into <bswap.h> and then byte_swap.h
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file bat.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.6 09-May-2006  garbled de-__P these files.
 1.5 11-Dec-2005  christos branches: 1.5.4; 1.5.6; 1.5.8; 1.5.10; 1.5.12;
merge ktrace-lwp.
 1.4 24-Mar-2004  drochner branches: 1.4.16;
remove license clauses 3 and 4 from my cpoyright notices
 1.3 19-Jun-2001  nonaka branches: 1.3.8; 1.3.24;
Back out last changes.
 1.2 17-Jun-2001  nonaka identified prep model.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.8;
Initial import prep port.
 1.1.8.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file bootinfo.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.3.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.24.1 03-Aug-2004  skrll Sync with HEAD
 1.3.8.2 19-Jun-2001  nonaka Back out last changes.
 1.3.8.1 19-Jun-2001  nonaka file bootinfo.h was added on branch nathanw_sa on 2001-06-19 11:56:28 +0000
 1.4.16.1 21-Jun-2006  yamt sync with head.
 1.5.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.5.10.1 11-May-2006  elad sync with head
 1.5.8.1 24-May-2006  yamt sync with head.
 1.5.6.1 01-Jun-2006  kardel Sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file bswap.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.14 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.13 17-Oct-2007  garbled branches: 1.13.16; 1.13.18; 1.13.20;
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 23-Feb-2006  garbled branches: 1.12.24; 1.12.32; 1.12.42; 1.12.44; 1.12.46; 1.12.48;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.11 11-Dec-2005  christos branches: 1.11.2; 1.11.4; 1.11.6;
merge ktrace-lwp.
 1.10 28-Jul-2003  scw branches: 1.10.16;
Make these build with recent tweaks to powerpc's bus_space(9) by moving
the inclusion of <powerpc/bus.h> to *after* the definitions of
PHYS_TO_BUS_MEM() and BUS_MEM_TO_PHYS().
 1.9 18-Mar-2003  matt branches: 1.9.2;
Switch/adapt to new bus space infrastructure.
 1.8 06-Mar-2003  matt Adapt to powerpc/bus.h changes.
 1.7 26-Aug-2001  matt branches: 1.7.6;
Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.6 15-Jun-2001  nonaka branches: 1.6.2;
Use new common bus.h framework.
 1.5 07-Mar-2001  thorpej Add the BUS_DMA_STREAMING flag.
 1.4 27-Nov-2000  matt branches: 1.4.2;
Rework bus_space to conform the PReP I/O & MEM limits. Add a few debugging
printfs concerning interrupts.
 1.3 26-Jun-2000  simonb branches: 1.3.2;
Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes. Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
 1.2 27-Mar-2000  nonaka branches: 1.2.4;
rewrite some bus_space functions like port-i386.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.2.4.1 30-Jun-2000  simonb Pull up mmap paddr_t/off_t changes from trunk.
 1.3.2.4 12-Mar-2001  bouyer Sync with HEAD.
 1.3.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.3.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.1 26-Jun-2000  bouyer file bus.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.4.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.4.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.6.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.7.6.2 26-Aug-2001  matt Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.7.6.1 26-Aug-2001  matt file bus.h was added on branch nathanw_sa on 2001-08-26 02:47:35 +0000
 1.9.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.9.2.1 03-Aug-2004  skrll Sync with HEAD
 1.10.16.2 27-Oct-2007  yamt sync with head.
 1.10.16.1 21-Jun-2006  yamt sync with head.
 1.11.6.1 22-Apr-2006  simonb Sync with head.
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.11.2.1 01-Mar-2006  yamt sync with head.
 1.12.48.1 25-Oct-2007  bouyer Sync with HEAD.
 1.12.46.1 18-Oct-2007  yamt sync with head.
 1.12.44.1 06-Nov-2007  matt sync with HEAD
 1.12.42.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.12.32.2 09-May-2007  garbled More prep rototill. Utilize the functions provided in
powerpc/oea/prep_machdep.c. While here, clean up some unused functions
and prototypes.
 1.12.32.1 01-May-2007  garbled Rename the prep isa io and mem bus space tags to genppc_* to promote
sharing of isa functionality.
 1.12.24.1 23-Oct-2007  ad Sync with head.
 1.13.20.1 16-May-2008  yamt sync with head.
 1.13.18.1 18-May-2008  yamt sync with head.
 1.13.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.1 01-Jul-2011  dyoung Per discussion at
<http://mail-index.netbsd.org/tech-kern/2010/04/02/msg007941.html>,
divide each machine's bus.h into bus_defs.h (constants & data types)
and bus_funcs.h (macro implementations of bus_space(9) routines and MD
prototypes).

Note that some bus_space(9) routines' implementation will move to .c
files from inline subroutines or macros in .h files.

I've only made the split for machine architectures where there is PCI.
All of the non-PCI-having architectures will require a similar split.

These #include files are not referenced by any (committed) Makefiles or
header files, yet. Changes to Makefiles, to <sys/bus.h>, and to some
more machine-dependent files will dribble in before I throw the switch.
 1.1 01-Jul-2011  dyoung Per discussion at
<http://mail-index.netbsd.org/tech-kern/2010/04/02/msg007941.html>,
divide each machine's bus.h into bus_defs.h (constants & data types)
and bus_funcs.h (macro implementations of bus_space(9) routines and MD
prototypes).

Note that some bus_space(9) routines' implementation will move to .c
files from inline subroutines or macros in .h files.

I've only made the split for machine architectures where there is PCI.
All of the non-PCI-having architectures will require a similar split.

These #include files are not referenced by any (committed) Makefiles or
header files, yet. Changes to Makefiles, to <sys/bus.h>, and to some
more machine-dependent files will dribble in before I throw the switch.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file cdefs.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 17-Oct-2007  garbled branches: 1.3.16; 1.3.18; 1.3.20;
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.2 23-Jun-2006  garbled branches: 1.2.2; 1.2.8; 1.2.18; 1.2.26; 1.2.36; 1.2.38; 1.2.40; 1.2.42;
1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet. (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
 1.1 29-May-2006  garbled branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
Add code to decode small vendor items that are documented. Namely we can
now decode the chipid, and L2 processor affinity data.

Also fix a bug where we were reporting the service processor type as a
memory controller.
 1.1.8.4 27-Oct-2007  yamt sync with head.
 1.1.8.3 30-Dec-2006  yamt sync with head.
 1.1.8.2 21-Jun-2006  yamt sync with head.
 1.1.8.1 29-May-2006  yamt file chpidpnp.h was added on branch yamt-lazymbuf on 2006-06-21 14:55:11 +0000
 1.1.6.2 19-Jun-2006  chap Sync with head.
 1.1.6.1 29-May-2006  chap file chpidpnp.h was added on branch chap-midi on 2006-06-19 03:44:53 +0000
 1.1.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.1.2.2 01-Jun-2006  kardel Sync with head.
 1.1.2.1 29-May-2006  kardel file chpidpnp.h was added on branch simonb-timecounters on 2006-06-01 22:35:16 +0000
 1.2.42.1 25-Oct-2007  bouyer Sync with HEAD.
 1.2.40.1 18-Oct-2007  yamt sync with head.
 1.2.38.1 06-Nov-2007  matt sync with HEAD
 1.2.36.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.2.26.1 10-Oct-2007  garbled Change pic_prepivr around a bit. Handle the default IRQ 7 from the 8259
better, and add a new motivr_get_irq(). The motorola machines require an
actual read from the 8259 for PCI irqs, so in that case, we read the
8259, and then read the IVR to ack the irq.

Move i8259_get_irq() to i8259_common.c for above.

Fix some minor typos in the chip id's for prep residual.

Fix ibmnws and prep to properly initialize the prep ivr depending on if
the machine is motorola, or IBM based.

Tested on a 7043 and an MTX604
 1.2.18.1 23-Oct-2007  ad Sync with head.
 1.2.8.2 09-Sep-2006  rpaulo sync with head
 1.2.8.1 23-Jun-2006  rpaulo file chpidpnp.h was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:34 +0000
 1.2.2.2 26-Jun-2006  yamt sync with head.
 1.2.2.1 23-Jun-2006  yamt file chpidpnp.h was added on branch yamt-pdpolicy on 2006-06-26 12:45:14 +0000
 1.3.20.1 16-May-2008  yamt sync with head.
 1.3.18.1 18-May-2008  yamt sync with head.
 1.3.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.5 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.4 19-Apr-2002  wiz branches: 1.4.2;
Remove unneeded cdev_decl(pms).
 1.3 27-Feb-2002  christos - define other DEV_ constants that the local port uses.
- delete cdev_decl(mm) since <sys/conf.h> does it.
 1.2 21-Mar-2001  lukem branches: 1.2.2; 1.2.8;
now that duplicated stuff has been moved to sys/conf.h, remove unnecessary
defs for: lpt, joy, pc
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.8;
Initial import prep port.
 1.1.8.1 09-Apr-2001  nathanw Catch up with -current.
 1.1.6.3 27-Mar-2001  bouyer Sync with HEAD.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file conf.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.2.8.4 17-Sep-2002  nathanw Catch up to -current.
 1.2.8.3 20-Jun-2002  nathanw Catch up to -current.
 1.2.8.2 28-Feb-2002  nathanw Catch up to -current.
 1.2.8.1 21-Mar-2001  nathanw file conf.h was added on branch nathanw_sa on 2002-02-28 04:11:28 +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 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.1 16-Mar-2002  jdolecek Catch up with -current.
 1.4.2.1 19-May-2002  gehenna Remove port-dependent conf.h.
 1.10 20-Jun-2011  matt Don't expose port-specific if _MODULE is defined.
Don't _MACHINE_CPU_H_, _<PORT>_CPU_H_
 1.9 17-Oct-2007  garbled branches: 1.9.52;
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.8 16-Mar-2006  garbled branches: 1.8.20; 1.8.28; 1.8.38; 1.8.40; 1.8.42; 1.8.44;
More changes to prep port:
1) Add the NVRAM device. This device allows us to speak with the nvram on
prep-based machines and read/write to it. Also add a simple IOCTL
interface for speaking with the nvram from userland. This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device. Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
 1.7 26-Aug-2001  matt branches: 1.7.6; 1.7.38; 1.7.52; 1.7.54; 1.7.56; 1.7.58;
Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.6 14-Jun-2001  thorpej branches: 1.6.2;
Don't need to prototype child_return() here, it's in <sys/proc.h>.
 1.5 30-May-2001  mrg use _KERNEL_OPT
 1.4 14-Dec-2000  mycroft branches: 1.4.2;
Partial syscall cleanup, as per other ports.
 1.3 25-Aug-2000  thorpej branches: 1.3.2;
Make need_resched() take a "struct cpu_info *" argument. This
causes gives a primitive form of processor affinity. Its use in
roundrobin() still needs some work.
 1.2 26-May-2000  thorpej First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

- Global state: sched_qs (run queues), sched_whichqs (bitmap
of non-empty run queues), sched_slpque (sleep queues).
NOTE: These may collectively move into a struct schedstate
at some point in the future.

- Per-CPU state, struct schedstate_percpu: spc_runtime
(time process on this CPU started running), spc_flags
(replaces struct proc's p_schedflags), and
spc_curpriority (usrpri of processes on this CPU).

- Every platform must now supply a struct cpu_info and
a curcpu() macro. Simplify existing cpu_info declarations
where appropriate.

- All references to per-CPU scheduler state now made through
curcpu(). NOTE: this will likely be adjusted in the future
after further changes to struct proc are made.

Tested on i386 and Alpha. Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.3.2.3 05-Jan-2001  bouyer Sync with HEAD
 1.3.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.1 25-Aug-2000  bouyer file cpu.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.4.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.6.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.7.58.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.7.56.1 01-Apr-2006  yamt sync with head.
 1.7.54.1 22-Apr-2006  simonb Sync with head.
 1.7.52.1 09-Sep-2006  rpaulo sync with head
 1.7.38.2 27-Oct-2007  yamt sync with head.
 1.7.38.1 21-Jun-2006  yamt sync with head.
 1.7.6.2 26-Aug-2001  matt Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.7.6.1 26-Aug-2001  matt file cpu.h was added on branch nathanw_sa on 2001-08-26 02:47:35 +0000
 1.8.44.1 25-Oct-2007  bouyer Sync with HEAD.
 1.8.42.1 18-Oct-2007  yamt sync with head.
 1.8.40.1 06-Nov-2007  matt sync with HEAD
 1.8.38.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.8.28.1 11-Oct-2007  garbled Move a bunch of the macppc SMP code out of macppc, and down into the
generic OEA code. Add a set of md callbacks into these shared routines,
that any oeappc SMP machine needs to provide. This allows for generally
shared SMP startup code, but still allows for machine-specific
differences in the setup and kicking of the new CPU.

Convert macppc to this new layout. Tested by Macallan.

Add an initial attempt at SMP to prep. Tested on UP machine only,
untested on SMP yet.
 1.8.20.1 23-Oct-2007  ad Sync with head.
 1.9.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.1 05-Feb-2003  nakayama Replace machine/rnd.h with more appropriate name to share it
with cycle counter based microtime in kern/kern_microtime.c.
 1.2 20-Oct-2003  matt Reorganize the way powerpc port install machine specific headers.
Use <powerpc/oea/bat.h> exclusively and remove <machine/bat.h> and
<powerpc/bat.h>. Remove unneeded <machine/cpufunc.h>. To insure
1:1 correspondence of <powerpc/FOO.h> to <machine/FOO.h> include
"../../powerpc/include/Makefile" in "arch/FOO/include/Makefile".
Incororpate <byte_swap.h> into <bswap.h> and then byte_swap.h
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file cpufunc.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.2 26-Apr-2011  joerg Remove Darwin, MACH and Mach-O support.
 1.1 08-Dec-2002  manu branches: 1.1.2; 1.1.136; 1.1.142;
A working fork/vfork implementation. Darwin fork differs from our fork by
two ways:
- the child gets its pid as retval[0] (userland stub will turn it into a 0),
retval[1] is 1 and it is 0 in the parent.
- in the child, the fork syscall is successful, hence we must skip the next
instruction.
 1.1.142.1 06-Jun-2011  jruoho Sync with HEAD.
 1.1.136.1 31-May-2011  rmind sync with head
 1.1.2.2 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.1 08-Dec-2002  thorpej file darwin_machdep.h was added on branch nathanw_sa on 2002-12-11 06:11:48 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file db_machdep.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.10 16-May-2013  christos Complete the dosparts -> mbrparts conversion. Only x86k new uses dosparts
because it also uses struct dos_partition.
 1.9 30-Aug-2011  bouyer branches: 1.9.2; 1.9.12;
Add getlabelusesmbr(), as proposed in
http://mail-index.netbsd.org/tech-userlevel/2011/08/25/msg005404.html
This is used by disk tools such as disklabel(8) to dynamically decide is
the undelyling platform uses a disklabel-in-mbr-partition or not
(instead of using a compile-time list of ports).
getlabelusesmbr() reads the sysctl kern.labelusesmbr, takes its value from the
machdep #define LABELUSESMBR.
For evbmips, make LABELUSESMBR 1 if the platform uses pmon
as bootloader, and 0 (the previous value) otherwise.
 1.8 23-Nov-2009  pooka If cpu_disklabel includes struct dkbad, define __HAVE_DISKLABEL_DKBAD.
This allows use of subr_disk_mbr on all archs. Default to it for
the rump disk component. No functional change for regular kernels.
(The other option would've been to include dkbad in disklabels
everywhere, but arguably this approach has less possible side-effects,
especially given that wedges and related magic will take over the
world any second now).
 1.7 11-Dec-2005  christos branches: 1.7.78;
merge ktrace-lwp.
 1.6 12-Jun-2005  dyoung Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.
 1.5 08-Oct-2003  lukem Overhaul MBR handling (part 1):

<sys/bootblock.h>:
* Added definitions for the Master Boot Record (MBR) used by
a variety of systems (primarily i386), including the format
of the BIOS Parameter Block (BPB).
This information was cribbed from a variety of sources
including <sys/disklabel_mbr.h> which this is a superset of.

As part of this, some data structure elements and #defines
were renamed to be more "namespace friendly" and consistent
with other bootblocks and MBR documentation.
Update all uses of the old names to the new names.

<sys/disklabel_mbr.h>:
* Deprecated in favor of <sys/bootblock.h> (the latter is more
"host tool" friendly).

amd64 & i386:
* Renamed /usr/mdec/bootxx_dosfs to /usr/mdec/bootxx_msdos, to
be consistent with the naming convention of the msdosfs tools.

* Removed /usr/mdec/bootxx_ufs, as it's equivalent to bootxx_ffsv1
and it's confusing to have two functionally equivalent bootblocks,
especially given that "ufs" has multiple meanings (it could be
a synonym for "ffs", or the group of ffs/lfs/ext2fs file systems).

* Rework pbr.S (the first sector of bootxx_*):
+ Ensure that BPB (bytes 11..89) and the partition table
(bytes 446..509) do not contain code.
+ Add support for booting from FAT partitions if BOOT_FROM_FAT
is defined. (Only set for bootxx_msdos).
+ Remove "dummy" partition 3; if people want to installboot(8)
these to the start of the disk they can use fdisk(8) to
create a real MBR partition table...
+ Compile with TERSE_ERROR so it fits because of the above.
Whilst this is less user friendly, I feel it's important
to have a valid partition table and BPB in the MBR/PBR.

* Renamed /usr/mdec/biosboot to /usr/mdec/boot, to be consistent
with other platforms.

* Enable SUPPORT_DOSFS in /usr/mdec/boot (stage2), so that
we can boot off FAT partitions.

* Crank version of /usr/mdec/boot to 3.1, and fix some of the other
entries in the version file.

installboot(8) (i386):
* Read the existing MBR of the filesystem and retain the BIOS
Parameter Block (BPB) in bytes 11..89 and the MBR partition
table in bytes 446..509. (Previously installboot(8) would
trash those two sections of the MBR.)

mbrlabel(8):
* Use sys/lib/libkern/xlat_mbr_fstype.c instead of homegrown code
to map the MBR partition type to the NetBSD disklabel type.


Test built "make release" for i386, and new bootblocks verified to work
(even off FAT!).
 1.4 10-May-2003  thorpej branches: 1.4.2;
Remove redundant bounds_check_with_label() prototype.
 1.3 09-Mar-2002  matt Change LABELOFFSET to 0 to be more compatible with other MBR style ports.
 1.2 02-May-2000  nonaka branches: 1.2.6; 1.2.10; 1.2.14;
LABELOFFSET 42 -> 64
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.2.14.1 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.10.1 16-Mar-2002  jdolecek Catch up with -current.
 1.2.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.6.1 02-May-2000  bouyer file disklabel.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.4.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.4.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.2.1 03-Aug-2004  skrll Sync with HEAD
 1.7.78.1 11-Mar-2010  yamt sync with head
 1.9.12.1 23-Jun-2013  tls resync from head
 1.9.2.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.3 29-Mar-2014  christos make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.2 18-Jun-2011  matt branches: 1.2.2; 1.2.12; 1.2.16;
struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.1 23-Feb-2006  garbled branches: 1.1.2; 1.1.10; 1.1.16; 1.1.22; 1.1.112;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.1.112.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.1.22.2 09-Sep-2006  rpaulo sync with head
 1.1.22.1 23-Feb-2006  rpaulo file eisa_machdep.h was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:34 +0000
 1.1.16.2 21-Jun-2006  yamt sync with head.
 1.1.16.1 23-Feb-2006  yamt file eisa_machdep.h was added on branch yamt-lazymbuf on 2006-06-21 14:55:11 +0000
 1.1.10.2 22-Apr-2006  simonb Sync with head.
 1.1.10.1 23-Feb-2006  simonb file eisa_machdep.h was added on branch simonb-timecounters on 2006-04-22 11:37:54 +0000
 1.1.2.2 01-Mar-2006  yamt sync with head.
 1.1.2.1 23-Feb-2006  yamt file eisa_machdep.h was added on branch yamt-uio_vmspace on 2006-03-01 09:28:02 +0000
 1.2.16.1 18-May-2014  rmind sync with head
 1.2.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.2.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.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file elf_machdep.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.2 17-Mar-2000  mycroft branches: 1.2.6;
In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.2.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.6.1 17-Mar-2000  bouyer file endian.h was added on branch thorpej_scsipi on 2000-11-20 20:22:57 +0000
 1.1 17-Mar-2000  mycroft branches: 1.1.6;
In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 17-Mar-2000  bouyer file endian_machdep.h was added on branch thorpej_scsipi on 2000-11-20 20:22:58 +0000
 1.1 20-Dec-2015  christos branches: 1.1.2; 1.1.18;
new powerpc fenv.h
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 20-Dec-2015  jdolecek file fenv.h was added on branch tls-maxphys on 2017-12-03 11:36:38 +0000
 1.1.2.2 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.2.1 20-Dec-2015  skrll file fenv.h was added on branch nick-nhusb on 2015-12-27 12:09:40 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file float.h was added on branch thorpej_scsipi on 2000-11-20 20:22:58 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file fpu.h was added on branch thorpej_scsipi on 2000-11-20 20:22:58 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file frame.h was added on branch thorpej_scsipi on 2000-11-20 20:22:58 +0000
 1.6 18-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.5 28-Apr-2008  martin branches: 1.5.32;
Remove clause 3 and 4 from TNF licenses
 1.4 24-Feb-2002  kleink branches: 1.4.118; 1.4.120; 1.4.122;
In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.3 18-Jan-2001  tv branches: 1.3.4; 1.3.8;
No-op commit to force update to a non-"-kk" revision.
 1.2 02-Dec-2000  matt branches: 1.2.2;
Cleanup/fixup gten support. Add TNF copyright (opps). This now outputs
text correctly. There is no colormap support (e.g. the mechanisms are in
place but does yet talk to the hardware).
 1.1 01-Dec-2000  matt Add support for the IBM ThinkPad 820 G10 display (which is a WD90C24A behind
a funky PCI-VLBUS bridge).
 1.2.2.3 11-Feb-2001  bouyer Sync with HEAD.
 1.2.2.2 08-Dec-2000  bouyer Sync with HEAD.
 1.2.2.1 02-Dec-2000  bouyer file gtenvar.h was added on branch thorpej_scsipi on 2000-12-08 09:30:20 +0000
 1.3.8.1 28-Feb-2002  nathanw Catch up to -current.
 1.3.4.1 16-Mar-2002  jdolecek Catch up with -current.
 1.4.122.1 16-May-2008  yamt sync with head.
 1.4.120.1 18-May-2008  yamt sync with head.
 1.4.118.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.32.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file ieee.h was added on branch thorpej_scsipi on 2000-11-20 20:22:58 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file ieeefp.h was added on branch thorpej_scsipi on 2000-11-20 20:22:58 +0000
 1.1 14-Apr-2001  kleink branches: 1.1.2; 1.1.4; 1.1.12;
Add definitions of C99 integer constant macros.
 1.1.12.2 14-Apr-2001  kleink Add definitions of C99 integer constant macros.
 1.1.12.1 14-Apr-2001  kleink file int_const.h was added on branch nathanw_sa on 2001-04-14 22:38:42 +0000
 1.1.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.1 14-Apr-2001  bouyer file int_const.h was added on branch thorpej_scsipi on 2001-04-21 17:54:33 +0000
 1.1 15-Apr-2001  kleink branches: 1.1.2; 1.1.4; 1.1.12;
Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.2 15-Apr-2001  kleink Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.1 15-Apr-2001  kleink file int_fmtio.h was added on branch nathanw_sa on 2001-04-15 17:13:17 +0000
 1.1.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.1 15-Apr-2001  bouyer file int_fmtio.h was added on branch thorpej_scsipi on 2001-04-21 17:54:33 +0000
 1.1 15-Apr-2001  kleink branches: 1.1.2; 1.1.4; 1.1.12;
Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.2 15-Apr-2001  kleink Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.1 15-Apr-2001  kleink file int_limits.h was added on branch nathanw_sa on 2001-04-15 15:29:12 +0000
 1.1.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.1 15-Apr-2001  bouyer file int_limits.h was added on branch thorpej_scsipi on 2001-04-21 17:54:33 +0000
 1.1 14-Apr-2001  kleink branches: 1.1.2; 1.1.4; 1.1.12;
Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.2 14-Apr-2001  kleink Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
 1.1.12.1 14-Apr-2001  kleink file int_mwgwtypes.h was added on branch nathanw_sa on 2001-04-14 12:20:01 +0000
 1.1.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.1.2.1 14-Apr-2001  bouyer file int_mwgwtypes.h was added on branch thorpej_scsipi on 2001-04-21 17:54:33 +0000
 1.1 26-Jun-2000  kleink branches: 1.1.2;
Add <machine/int_types.h>, which provides namespace-pure definitions
of exact-width integer types.
 1.1.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.2.1 26-Jun-2000  bouyer file int_types.h was added on branch thorpej_scsipi on 2000-11-20 20:22:58 +0000
 1.34 17-Jun-2011  matt intr.h must not include cpu due to deadly embrace with SOFTINT_COUNT.
Cleanup intr.h so MD definitions can overload common definitions.
Rototill pic/intr.c. Virtual IRQs can now be reclaimed. separate virq
from hwirq from picirq. Redo intr mask calculations.
tested on pmppc and macppc (MP).
 1.33 13-Nov-2010  uebayasi branches: 1.33.6;
sys/device.h is not suitable for such low-level definitions.
 1.32 24-Apr-2010  kiyohara Support 64-bit imask for powerpc/pic.
 1.31 28-Apr-2008  martin branches: 1.31.20; 1.31.22;
Remove clause 3 and 4 from TNF licenses
 1.30 17-Oct-2007  garbled branches: 1.30.16; 1.30.18; 1.30.20;
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.29 16-Feb-2007  ad branches: 1.29.6; 1.29.14; 1.29.22; 1.29.24; 1.29.26; 1.29.28;
Remove spllowersoftclock() and CLKF_BASEPRI(), and always dispatch callouts
via a soft interrupt. In the near future, softclock will be run from process
context.
 1.28 21-Dec-2006  yamt merge yamt-splraiseipl branch.

- finish implementing splraiseipl (and makeiplcookie).
http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
- complete workqueue(9) and fix its ipl problem, which is reported
to cause audio skipping.
- fix netbt (at least compilation problems) for some ports.
- fix PR/33218.
 1.27 13-Jul-2006  garbled branches: 1.27.4; 1.27.6;
Rather than hardcode the location of the Interrupt Vector Register, we
try to locate it using the residual data. On some machines this doesn't
work, so we fall back to hardcoding it. This should fix isa interrupts
on the 7025-F40, which has the IVR at a different location.
 1.26 29-Jun-2006  garbled Change how the MPIC/OpenPIC is configured at boot. Rather than scanning
for a magical PCI device location (that is sometimes wrong), we scan the
residual data for an MPIC, and if we find one, wire it up from there.
This will hopefully allow interrupts to work on the MPC750 and the
7025-F40. I suspect however the interrupt vector address on the 7025 will
still need some work.
 1.25 08-May-2006  garbled branches: 1.25.4;
Switch prep over to evcnt(9). While I was here, I also switched it to
use struct cpu_info for the cpu stuff. Tested on 7248 and 7043.
 1.24 03-May-2006  garbled Generic soft interrupt support for prep. Mostly copied from macppc,
tested on 7248 and 7043.
 1.23 16-Feb-2006  perry branches: 1.23.2; 1.23.4; 1.23.6;
Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
 1.22 24-Dec-2005  perry branches: 1.22.2; 1.22.4; 1.22.6;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile
 1.21 24-Dec-2005  perry Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.20 11-Dec-2005  christos merge ktrace-lwp.
 1.19 03-Sep-2003  matt branches: 1.19.16;
Move CLKF_BASEPRI to machine specific <intr.h> file since it depends on
the encoding of the spl for the port.
 1.18 16-Jun-2003  thorpej branches: 1.18.2;
Rename IPL_IMP -> IPL_VM.
 1.17 05-Jul-2002  matt Peform a rototill over the powerpc-based ports.

Move the trap/vector initialization for MPC6xx ports to mpc6xx_machdep.c
Also move softnet, install_extintr, mapiodev, kvtop. Add common BAT
initialization code.

Add user Altivec support.

Fix calls to OF_call_method in macppc/macppc/machdep.c.

Use ci_fpuproc in cpu_info instead of separate fpuproc.

Add separate syscall.c and defined __HAVE_SYSCALL_INTERN.
 1.16 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.15 26-Feb-2002  kleink branches: 1.15.4; 1.15.8;
Move the ext_intr() variant using the board interrupt vector register
into common code; it is not specific to the 6050, and in fact not even
specific to IBM-built hardware.
 1.14 11-Feb-2002  wiz "doesn't" should have an 's'.
 1.13 11-Feb-2002  wiz achive is not a good word.
 1.12 10-Feb-2002  kleink prep_intr_reg is mapped in kva space, so make it vaddr_t.
 1.11 26-Aug-2001  matt branches: 1.11.6;
Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.10 20-Jun-2001  nonaka branches: 1.10.2;
ANSI'fy
 1.9 19-Jun-2001  nonaka Back out last changes.
 1.8 17-Jun-2001  nonaka identified prep model.
 1.7 13-Apr-2001  thorpej Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
 1.6 14-Jan-2001  thorpej branches: 1.6.2;
Make sure everybody has an splvm() and equate it with splimp() (splimp()
is the historical name for this interrupt level, and the historical name
is going to go away in the near future).
 1.5 22-Nov-2000  matt Make assym.h be generated again
Add pcmcia support to files.prep
Add isa_intr_alloc support.
 1.4 22-Aug-2000  thorpej branches: 1.4.2;
Add spllock(). See spl(9) for details.
 1.3 21-Aug-2000  thorpej Make sure we provide splsched() as described in spl(9).
 1.2 14-Aug-2000  kleink * Make spllower()ing functions not return the previous priority level,
as specified in spl(9).
* In due course, ipmlement splx() via spllower().
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.4.2.5 21-Apr-2001  bouyer Sync with HEAD
 1.4.2.4 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.4.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.4.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.4.2.1 22-Aug-2000  bouyer file intr.h was added on branch thorpej_scsipi on 2000-11-20 20:22:58 +0000
 1.6.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.10.2.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.10.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.10.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.10.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.11.6.4 01-Aug-2002  nathanw Catch up to -current.
 1.11.6.3 20-Jun-2002  nathanw Catch up to -current.
 1.11.6.2 28-Feb-2002  nathanw Catch up to -current.
 1.11.6.1 26-Aug-2001  nathanw file intr.h was added on branch nathanw_sa on 2002-02-28 04:11:29 +0000
 1.15.8.2 16-Jul-2002  gehenna catch up with -current.
 1.15.8.1 15-Jul-2002  gehenna catch up with -current.
 1.15.4.1 17-Mar-2002  thorpej IPL_IMP -> IPL_VM
 1.18.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.18.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.18.2.1 03-Aug-2004  skrll Sync with HEAD
 1.19.16.4 27-Oct-2007  yamt sync with head.
 1.19.16.3 26-Feb-2007  yamt sync with head.
 1.19.16.2 30-Dec-2006  yamt sync with head.
 1.19.16.1 21-Jun-2006  yamt sync with head.
 1.22.6.2 01-Jun-2006  kardel Sync with head.
 1.22.6.1 22-Apr-2006  simonb Sync with head.
 1.22.4.1 09-Sep-2006  rpaulo sync with head
 1.22.2.1 18-Feb-2006  yamt sync with head.
 1.23.6.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.23.4.1 11-May-2006  elad sync with head
 1.23.2.2 11-Aug-2006  yamt sync with head
 1.23.2.1 24-May-2006  yamt sync with head.
 1.25.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.27.6.1 05-Nov-2006  yamt splraiseipl/makeiplcookie for prep.
 1.27.4.1 12-Jan-2007  ad Sync with head.
 1.29.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.29.26.1 18-Oct-2007  yamt sync with head.
 1.29.24.1 06-Nov-2007  matt sync with HEAD
 1.29.22.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.29.14.2 08-May-2007  garbled Make powerpc/intr.h more common than it previously was. Having done
that, delete all the duplicate entries from the 4 ports that have
converted to shared pic code. Also, commit a minor change to sandpoint
that I forgot to commit earlier (delete an unused variable)
 1.29.14.1 03-May-2007  garbled Convert prep over to the shared interrupts. Still alot of cleanup to do
following this change.
 1.29.6.1 23-Oct-2007  ad Sync with head.
 1.30.20.2 11-Aug-2010  yamt sync with head.
 1.30.20.1 16-May-2008  yamt sync with head.
 1.30.18.1 18-May-2008  yamt sync with head.
 1.30.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.31.22.2 05-Mar-2011  rmind sync with head
 1.31.22.1 30-May-2010  rmind sync with head
 1.31.20.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.33.6.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.2 15-Jul-2018  maxv Retire ipkdb entirely. The option was removed from the config files
yesterday.

ok kamil christos
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.42; 1.1.220;
Initial import prep port.
 1.1.220.1 10-Jun-2019  christos Sync with HEAD
 1.1.42.1 28-Jul-2018  pgoyette Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file ipkdb.h was added on branch thorpej_scsipi on 2000-11-20 20:22:58 +0000
 1.15 12-Dec-2021  andvar s/Miscellanous/Miscellaneous/ in copypasta comments.
 1.14 18-Oct-2016  jdolecek add isa_intr_establish_xname() to MD isa headers so that it can be used
by MI drivers
 1.13 19-Aug-2009  dyoung branches: 1.13.22; 1.13.40; 1.13.44;
isa_detach_hook() needs two arguments, the first an isa_chipset_tag_t.
 1.12 19-Aug-2009  dyoung Define isa_detach_hook().
 1.11 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.10 17-Oct-2007  garbled branches: 1.10.16; 1.10.18; 1.10.20;
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.9 11-Dec-2005  christos branches: 1.9.30; 1.9.38; 1.9.48; 1.9.50; 1.9.52; 1.9.54;
merge ktrace-lwp.
 1.8 07-Aug-2003  agc branches: 1.8.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.7 09-May-2003  fvdl branches: 1.7.2;
A few ISA sound drivers like to share dma channels, and hence deferred
isa_dmamap_create() calls to their open/close entrypoints. This worked
with some luck, but broke on i386 when _bus_dmamap_create started
to allocate bounce buffers upfront, since memory below 16M may well
not be available when the sound devices is opened for the Nth time.

To fix this, create a new simple interface, isa_drq_alloc/isa_drq_free,
wrappers around already existing bitmask macros. These are expected
to be used before an isa_dmamap_create call, and after an
isa_dmamap_destroy call, respectively. For the sb and ad1848 drivers,
they're deferred until open/close.

All isa_dmamap_create calls can now use BUS_DMA_ALLOCNOW and be done
at attach time.
 1.6 26-Aug-2001  matt branches: 1.6.6;
Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.5 15-Jun-2001  nonaka branches: 1.5.2;
Use new common bus.h framework.
 1.4 15-Nov-2000  thorpej branches: 1.4.2; 1.4.4;
Move the ISA DMA cookie into isadma_machdep.c.
 1.3 04-Jun-2000  cgd Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
 1.2 01-Jun-2000  cgd kill __P in these files. (I had to look at them anyway with an eye for
adding some protos... and adding them with __P seems wrong, but mixing
__P and not __P in the same file seems wrong too, so...)
 1.1 29-Feb-2000  nonaka branches: 1.1.2;
Initial import prep port.
 1.1.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.4.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.4.2.3 22-Nov-2000  bouyer Sync with HEAD.
 1.4.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.4.2.1 15-Nov-2000  bouyer file isa_machdep.h was added on branch thorpej_scsipi on 2000-11-20 20:22:58 +0000
 1.5.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.6.6.2 26-Aug-2001  matt Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.6.6.1 26-Aug-2001  matt file isa_machdep.h was added on branch nathanw_sa on 2001-08-26 02:47:35 +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 27-Oct-2007  yamt sync with head.
 1.9.54.1 25-Oct-2007  bouyer Sync with HEAD.
 1.9.52.1 18-Oct-2007  yamt sync with head.
 1.9.50.1 06-Nov-2007  matt sync with HEAD
 1.9.48.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.9.38.3 07-May-2007  garbled Convert prep over to new isa_machdep changes.
 1.9.38.2 03-May-2007  garbled Get rid of all the useless stuff in isa_machdep.c, and the things that
call it. TODO, fix isa_intr_alloc to work with new interrupt foo.
 1.9.38.1 01-May-2007  garbled Change some isa things around in the prep port to promote sharing of isa
 1.9.30.1 23-Oct-2007  ad Sync with head.
 1.10.20.2 19-Aug-2009  yamt sync with head.
 1.10.20.1 16-May-2008  yamt sync with head.
 1.10.18.1 18-May-2008  yamt sync with head.
 1.10.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.13.44.1 04-Nov-2016  pgoyette Sync with HEAD
 1.13.40.1 05-Dec-2016  skrll Sync with HEAD
 1.13.22.1 03-Dec-2017  jdolecek update from HEAD
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 01-Jun-2000  cgd branches: 1.2.4; 1.2.130; 1.2.132; 1.2.134;
kill __P in these files. (I had to look at them anyway with an eye for
adding some protos... and adding them with __P seems wrong, but mixing
__P and not __P in the same file seems wrong too, so...)
 1.1 29-Feb-2000  nonaka branches: 1.1.2;
Initial import prep port.
 1.1.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.2.134.1 16-May-2008  yamt sync with head.
 1.2.132.1 18-May-2008  yamt sync with head.
 1.2.130.1 02-Jun-2008  mjf Sync with HEAD.
 1.2.4.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.4.1 01-Jun-2000  bouyer file isapnp_machdep.h was added on branch thorpej_scsipi on 2000-11-20 20:22:59 +0000
 1.3 11-Dec-2005  christos merge ktrace-lwp.
 1.2 02-Jul-2004  drochner just include <sys/joystick.h>
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file joystick.h was added on branch thorpej_scsipi on 2000-11-20 20:22:59 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file kcore.h was added on branch thorpej_scsipi on 2000-11-20 20:22:59 +0000
 1.3 16-Feb-2006  perry Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
 1.2 24-Dec-2005  perry branches: 1.2.2; 1.2.4; 1.2.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file kgdb.h was added on branch thorpej_scsipi on 2000-11-20 20:22:59 +0000
 1.2.6.1 22-Apr-2006  simonb Sync with head.
 1.2.4.1 09-Sep-2006  rpaulo sync with head
 1.2.2.1 18-Feb-2006  yamt sync with head.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file limits.h was added on branch thorpej_scsipi on 2000-11-20 20:22:59 +0000
 1.5 06-Aug-2014  joerg Consistently define WARN in a way that passes format string checks, i.e.
always uses the same number of arguments as given in the format string.
 1.4 28-Apr-2008  martin branches: 1.4.44; 1.4.60;
Remove clause 3 and 4 from TNF licenses
 1.3 25-Jan-2006  christos branches: 1.3.72; 1.3.74; 1.3.76;
free -> dealloc
unsigned -> size_t for alloc/dealloc
 1.2 31-Oct-2001  thorpej branches: 1.2.2; 1.2.34; 1.2.46;
Split elf32 vs. elf64 handling in loadfile(), including support for
each separately and explicitly. BOOT_ELF is now BOOT_ELF32 and
BOOT_ELF64, and ELFSIZE should no longer be defined in loadfile_machdep.h.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.10; 1.1.12;
Initial import prep port.
 1.1.12.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.1.10.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file loadfile_machdep.h was added on branch thorpej_scsipi on 2000-11-20 20:22:59 +0000
 1.2.46.1 01-Feb-2006  yamt sync with head.
 1.2.34.1 21-Jun-2006  yamt sync with head.
 1.2.2.2 31-Oct-2001  thorpej Split elf32 vs. elf64 handling in loadfile(), including support for
each separately and explicitly. BOOT_ELF is now BOOT_ELF32 and
BOOT_ELF64, and ELFSIZE should no longer be defined in loadfile_machdep.h.
 1.2.2.1 31-Oct-2001  thorpej file loadfile_machdep.h was added on branch nathanw_sa on 2001-10-31 17:20:49 +0000
 1.3.76.1 16-May-2008  yamt sync with head.
 1.3.74.1 18-May-2008  yamt sync with head.
 1.3.72.1 02-Jun-2008  mjf Sync with HEAD.
 1.4.60.1 10-Aug-2014  tls Rebase.
 1.4.44.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1 29-Apr-2000  thorpej branches: 1.1.6;
Require that each each MACHINE/MACHINE_ARCH supply a lock.h. This file
contains the values __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED, which
replace the old SIMPLELOCK_LOCKED and SIMPLELOCK_UNLOCKED. These files
are also required to supply inline functions __cpu_simple_lock(),
__cpu_simple_lock_try(), and __cpu_simple_unlock() if locking is to be
supported on that platform (i.e. if MULTIPROCESSOR is defined in the
_KERNEL case). Change these functions to take an int * (&alp->lock_data)
rather than the struct simplelock * itself.

These changes make it possible for userland to use the locking primitives
by including <machine/lock.h>.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Apr-2000  bouyer file lock.h was added on branch thorpej_scsipi on 2000-11-20 20:22:59 +0000
 1.1 30-Nov-2024  christos branches: 1.1.4;
Create a new header lwp_private.h to contain _lwp_getprivate_fast,
_lwp_gettcb_fast, _lwp_settcb and remove them from mcontext.h, so that:
1. we don't need special hacks to hide them
2. we can include <lwp.h> where needed to get the necessary prototypes
without redefining them locally.
 1.1.4.2 02-Aug-2025  perseant Sync with HEAD
 1.1.4.1 30-Nov-2024  perseant file lwp_private.h was added on branch perseant-exfatfs on 2025-08-02 05:56:02 +0000
 1.2 03-May-2001  soren PPC machine type tags haven't been used for a while.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file machine_type.h was added on branch thorpej_scsipi on 2000-11-20 20:23:00 +0000
 1.2 26-Apr-2011  joerg Remove Darwin, MACH and Mach-O support.
 1.1 30-Oct-2002  matt branches: 1.1.2; 1.1.136; 1.1.142;
Add missing file.
 1.1.142.1 06-Jun-2011  jruoho Sync with HEAD.
 1.1.136.1 31-May-2011  rmind sync with head
 1.1.2.2 11-Nov-2002  nathanw Catch up to -current
 1.1.2.1 30-Oct-2002  nathanw file macho_machdep.h was added on branch nathanw_sa on 2002-11-11 22:03:06 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file math.h was added on branch thorpej_scsipi on 2000-11-20 20:23:00 +0000
 1.2 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 05-Nov-2001  briggs branches: 1.1.2;
file mcontext.h was initially added on branch nathanw_sa.
 1.1.2.1 05-Nov-2001  briggs Initial SA support for ppc. Test-booted on sandpoint, macppc, & walnut.
mcontext and cpu_getmcontext()/cpu_setmcontext() from Klaus Klein
<kleink@netbsd.org>.
 1.2 15-May-2003  wiz Don't install machine/mouse.h on i386 and prep; there are no users for
the old busmouse interface any longer, we use wsmouse now.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file mouse.h was added on branch thorpej_scsipi on 2000-11-20 20:23:00 +0000
 1.2 09-Feb-2007  ad branches: 1.2.4;
Merge newlock2 to head.
 1.1 22-Dec-2006  ad branches: 1.1.2;
file mutex.h was initially added on branch newlock2.
 1.1.2.2 28-Jan-2007  ad powerpc changes.
 1.1.2.1 22-Dec-2006  ad Pull in CPU specific stubs.
 1.2.4.2 26-Feb-2007  yamt sync with head.
 1.2.4.1 09-Feb-2007  yamt file mutex.h was added on branch yamt-lazymbuf on 2007-02-26 09:07:58 +0000
 1.11 07-Sep-2025  thorpej Rather than duplicating the fields of mk48txx_softc inside
prep_mk48txx_softc (!!!), just include a mk48txx_softc inside
prep_mk48txx_softc.
 1.10 01-Nov-2021  andvar fix typos, mainly in words minimum and maximum, but also few others.
 1.9 07-Sep-2015  dholland Final bit of PR 41200: headers that declare ioctls should include sys/ioccom.h.
This covers most if not all of the MD headers.

XXX: a lot of the ioctl definitions in some of these files are cutpasted.
 1.8 27-Oct-2012  chs branches: 1.8.14;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.7 30-Jun-2011  wiz branches: 1.7.2; 1.7.12;
dependant -> dependent
 1.6 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.5 29-Mar-2008  tsutsui branches: 1.5.2; 1.5.4;
One more missed file on migration of struct device sc_dev -> device_t sc_dev.
 1.4 21-Mar-2007  garbled branches: 1.4.34;
Add a read entry point to this driver. There are two minor devices
associated with this, 0, the nvram device, and now 1, the residual
device. The devices allow the user to directly read the contents of the
kernel copy of the nvram, and the residual data respectively. There is
no provision for write.
 1.3 26-Feb-2007  garbled branches: 1.3.4; 1.3.6; 1.3.8;
Finish the code in the prep nvram driver that makes it an actual device
(/dev/nvram) and implement all the associated ioctls fully. Tested with
a hacked up copy of eeprom(8). Right now it can only be used to see the
nvram GEV contents, not actually edit them. Will do that later some day.
 1.2 15-Jun-2006  garbled branches: 1.2.2; 1.2.8; 1.2.12; 1.2.14;
A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.1 16-Mar-2006  garbled branches: 1.1.4; 1.1.6; 1.1.8; 1.1.10; 1.1.12;
More changes to prep port:
1) Add the NVRAM device. This device allows us to speak with the nvram on
prep-based machines and read/write to it. Also add a simple IOCTL
interface for speaking with the nvram from userland. This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device. Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
 1.1.12.1 13-Jul-2006  gdamore Merge from HEAD.
 1.1.10.1 19-Jun-2006  chap Sync with head.
 1.1.8.2 22-Apr-2006  simonb Sync with head.
 1.1.8.1 16-Mar-2006  simonb file nvram.h was added on branch simonb-timecounters on 2006-04-22 11:37:54 +0000
 1.1.6.2 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.6.1 16-Mar-2006  elad file nvram.h was added on branch elad-kernelauth on 2006-04-19 02:33:33 +0000
 1.1.4.3 26-Jun-2006  yamt sync with head.
 1.1.4.2 11-Apr-2006  yamt sync files somehow mis-tagged by yamt-pdpolicy-base2.
 1.1.4.1 16-Mar-2006  yamt file nvram.h was added on branch yamt-pdpolicy on 2006-04-11 12:20:51 +0000
 1.2.14.2 24-Mar-2007  yamt sync with head.
 1.2.14.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.2.12.2 31-Mar-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #531):
sys/arch/prep/include/nvram.h: revision 1.4
sys/arch/prep/pnpbus/nvram_pnpbus.c: revision 1.8
Add a read entry point to this driver. There are two minor devices
associated with this, 0, the nvram device, and now 1, the residual
device. The devices allow the user to directly read the contents of the
kernel copy of the nvram, and the residual data respectively. There is
no provision for write.
 1.2.12.1 04-Mar-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #482):
share/man/man4/man4.prep/intro.4: revision 1.1
usr.sbin/eeprom/eeprom.8: revision 1.12
usr.sbin/eeprom/prephandlers.c: revision 1.1
distrib/sets/lists/base/md.prep: revision 1.13
distrib/sets/lists/comp/md.prep: revision 1.22
sys/arch/prep/conf/majors.prep: revision 1.19
share/man/man4/man4.prep/Makefile: revision 1.1
share/man/man4/Makefile: revision 1.421
usr.sbin/eeprom/defs.h: revision 1.10
share/man/man4/man4.prep/nvram.4: revision 1.1
sys/arch/prep/pnpbus/nvram_pnpbus.c: revision 1.6
usr.sbin/eeprom/Makefile: revision 1.14
etc/mtree/NetBSD.dist: revision 1.333
usr.sbin/eeprom/main.c: revision 1.17
etc/etc.prep/MAKEDEV.conf: revision 1.5
distrib/sets/lists/man/mi: revision 1.978
usr.sbin/eeprom/pathnames.h: revision 1.3
sys/arch/prep/include/Makefile: revision 1.19
sys/arch/prep/include/nvram.h: revision 1.3
Finish the code in the prep nvram driver that makes it an actual device
(/dev/nvram) and implement all the associated ioctls fully. Tested with
a hacked up copy of eeprom(8). Right now it can only be used to see the
nvram GEV contents, not actually edit them. Will do that later some day.
 1.2.8.2 09-Sep-2006  rpaulo sync with head
 1.2.8.1 15-Jun-2006  rpaulo file nvram.h was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:35 +0000
 1.2.2.3 03-Sep-2007  yamt sync with head.
 1.2.2.2 21-Jun-2006  yamt sync with head.
 1.2.2.1 15-Jun-2006  yamt file nvram.h was added on branch yamt-lazymbuf on 2006-06-21 14:55:11 +0000
 1.3.8.1 29-Mar-2007  reinoud Pullup to -current
 1.3.6.1 11-Jul-2007  mjf Sync with head.
 1.3.4.1 10-Apr-2007  ad Sync with head.
 1.4.34.2 02-Jun-2008  mjf Sync with HEAD.
 1.4.34.1 03-Apr-2008  mjf Sync with HEAD.
 1.5.4.1 16-May-2008  yamt sync with head.
 1.5.2.1 18-May-2008  yamt sync with head.
 1.7.12.2 03-Dec-2017  jdolecek update from HEAD
 1.7.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.7.2.1 30-Oct-2012  yamt sync with head
 1.8.14.1 22-Sep-2015  skrll Sync with HEAD
 1.1 30-May-2002  nonaka branches: 1.1.2; 1.1.4; 1.1.6;
Support IBM RS/6000 43P 7043-140.
 1.1.6.2 15-Jul-2002  gehenna catch up with -current.
 1.1.6.1 30-May-2002  gehenna file openpicreg.h was added on branch gehenna-devsw on 2002-07-15 00:33:15 +0000
 1.1.4.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.4.1 30-May-2002  jdolecek file openpicreg.h was added on branch kqueue on 2002-06-23 17:39:51 +0000
 1.1.2.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.2.1 30-May-2002  nathanw file openpicreg.h was added on branch nathanw_sa on 2002-06-20 03:40:39 +0000
 1.7 28-Jul-2011  macallan more PCI_MAGIC_IO_RANGE fixes
 1.6 20-Jun-2011  matt Cleanup powerpc param.h. If compiling a MODULE, ignore port-specific stuff.
Only include <machine/cpu.h> in <powerpc/param.h> at the end.
 1.5 12-Jul-2010  kiyohara branches: 1.5.6;
Support xserver for prep.
It tested only s3(864).
 1.4 17-Jun-2001  nonaka branches: 1.4.8; 1.4.130; 1.4.150; 1.4.152;
NEWPMAP
 1.3 30-May-2001  mrg use _KERNEL_OPT
 1.2 30-Jun-2000  itojun branches: 1.2.2; 1.2.4;
raise MSIZE from 128 to 256.
- for sizeof(void *) == 8 arch, this is mandatory. MHLEN is too small
already (less than 80) and there are chances for unwanted packet loss due
to m_pullup restriction.
- for other cases, the change should avoid allocating clusters in most cases
(even when you have IPv4 IPsec tunnel, or IPv6 with moderate amount of
extension header)

portmasters: if your arch chokes with the change (high memory usage or
whatever), please backout the change for your arch.
 1.1 29-Feb-2000  nonaka branches: 1.1.4;
Initial import prep port.
 1.1.4.1 23-Jul-2000  itojun pullup from main trunc (approved by releng-1-5)

raise MSIZE from 128 to 256.
- for sizeof(void *) == 8 arch, this is mandatory. MHLEN is too small
already (less than 80) and there are chances for unwanted packet loss due
to m_pullup restriction.
- for other cases, the change should avoid allocating clusters in most cases
(even when you have IPv4 IPsec tunnel, or IPv6 with moderate amount of
extension header)

portmasters: if your arch chokes with the change (high memory usage or
whatever), please backout the change for your arch.

1.1 -> 1.2 syssrc/sys/arch/amigappc/include/param.h
1.13 -> 1.14 syssrc/sys/arch/arc/include/param.h
1.1 -> 1.2 syssrc/sys/arch/arm26/include/param.h
1.17 -> 1.18 syssrc/sys/arch/arm32/include/param.h
1.6 -> 1.7 syssrc/sys/arch/bebox/include/param.h
1.4 -> 1.5 syssrc/sys/arch/cobalt/include/param.h
1.4 -> 1.5 syssrc/sys/arch/evbsh3/include/param.h
1.2 -> 1.3 syssrc/sys/arch/hpcmips/include/param.h
1.40 -> 1.41 syssrc/sys/arch/i386/include/param.h
1.7 -> 1.8 syssrc/sys/arch/m68k/include/param.h
1.9 -> 1.10 syssrc/sys/arch/macppc/include/param.h
1.4 -> 1.5 syssrc/sys/arch/mmeye/include/param.h
1.6 -> 1.7 syssrc/sys/arch/newsmips/include/param.h
1.7 -> 1.8 syssrc/sys/arch/ofppc/include/param.h
1.23 -> 1.24 syssrc/sys/arch/pc532/include/param.h
1.32 -> 1.33 syssrc/sys/arch/pmax/include/param.h
1.7 -> 1.8 syssrc/sys/arch/powerpc/include/param.h
1.1 -> 1.2 syssrc/sys/arch/prep/include/param.h
1.1 -> 1.2 syssrc/sys/arch/sgimips/include/param.h
1.3 -> 1.4 syssrc/sys/arch/sh3/include/param.h
1.44 -> 1.45 syssrc/sys/arch/sparc/include/param.h
1.21 -> 1.22 syssrc/sys/arch/sparc64/include/param.h
1.43 -> 1.44 syssrc/sys/arch/vax/include/param.h
 1.2.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.2.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.2.1 30-Jun-2000  bouyer file param.h was added on branch thorpej_scsipi on 2000-11-20 20:23:00 +0000
 1.4.152.1 05-Mar-2011  rmind sync with head
 1.4.150.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.4.130.1 11-Aug-2010  yamt sync with head.
 1.4.8.2 17-Jun-2001  nonaka NEWPMAP
 1.4.8.1 17-Jun-2001  nonaka file param.h was added on branch nathanw_sa on 2001-06-17 16:01:30 +0000
 1.5.6.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file pcb.h was added on branch thorpej_scsipi on 2000-11-20 20:23:00 +0000
 1.2 21-Nov-2001  soren prep has no special dependencies on pccons; remove.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.10; 1.1.14;
Initial import prep port.
 1.1.14.1 28-Feb-2002  nathanw Catch up to -current.
 1.1.10.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file pccons.h was added on branch thorpej_scsipi on 2000-11-20 20:23:00 +0000
 1.18 22-Jun-2011  matt Add support pci_intr_setattr.
Export non-inline version of pci api for modules (_MODULE is defined).
Fix definition of pc_conf_hook and pc_conf_interrupt.
Switch to using inlines instead of macros.
Switch ibm4xx to use <powerpc/pci_machdep.h>
 1.17 04-Apr-2011  dyoung Neither pci_dma64_available(), pci_probe_device(), pci_mapreg_map(9),
pci_find_rom(), pci_intr_map(9), pci_enumerate_bus(), nor the match
predicate passed to pciide_compat_intr_establish() should ever modify
their pci_attach_args argument, so make their pci_attach_args arguments
const and deal with the fallout throughout the kernel.

For the most part, these changes add a 'const' where there was no
'const' before, however, some drivers and MD code used to modify
pci_attach_args. Now those drivers either copy their pci_attach_args
and modify the copy, or refrain from modifying pci_attach_args:

Xen: according to Manuel Bouyer, writing to pci_attach_args in
pci_intr_map() was a leftover from Xen 2. Probably a bug. I
stopped writing it. I have not tested this change.

siside(4): sis_hostbr_match() needlessly wrote to pci_attach_args.
Probably a bug. I use a temporary variable. I have not tested this
change.

slide(4): sl82c105_chip_map() overwrote the caller's pci_attach_args.
Probably a bug. Use a local pci_attach_args. I have not tested
this change.

viaide(4): via_sata_chip_map() and via_sata_chip_map_new() overwrote the
caller's pci_attach_args. Probably a bug. Make a local copy of the
caller's pci_attach_args and modify the copy. I have not tested
this change.

While I'm here, make pci_mapreg_submap() static.

With these changes in place, I have tested the compilation of these
kernels:

alpha GENERIC
amd64 GENERIC XEN3_DOM0
arc GENERIC
atari HADES MILAN-PCIIDE
bebox GENERIC
cats GENERIC
cobalt GENERIC
evbarm-eb NSLU2
evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE GUMSTIX
HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321 IXDP425 IXM1200
KUROBOX_PRO LUBBOCK MARVELL_NAS NAPPI SHEEVAPLUG SMDK2800 TEAMASA_NPWR
TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425
evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3
evbmips64-el XLSATX
evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266
OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT
hp700 GENERIC
i386 ALL XEN3_DOM0 XEN3_DOMU
ibmnws GENERIC
macppc GENERIC
mvmeppc GENERIC
netwinder GENERIC
ofppc GENERIC
prep GENERIC
sandpoint GENERIC
sgimips GENERIC32_IP2x
sparc GENERIC_SUN4U KRUPS
sparc64 GENERIC

As of Sun Apr 3 15:26:26 CDT 2011, I could not compile these kernels
with or without my patches in place:

### evbmips-el GDIUM

nbmake: nbmake: don't know how to make /home/dyoung/pristine-nbsd/src/sys/arch/mips/mips/softintr.c. Stop

### evbarm-el MPCSA_GENERIC
src/sys/arch/evbarm/conf/MPCSA_GENERIC:318: ds1672rtc*: unknown device `ds1672rtc'

### ia64 GENERIC

/tmp/genassym.28085/assym.c: In function 'f111':
/tmp/genassym.28085/assym.c:67: error: invalid application of 'sizeof' to incomplete type 'struct pcb'
/tmp/genassym.28085/assym.c:76: error: dereferencing pointer to incomplete type

### sgimips GENERIC32_IP3x

crmfb.o: In function `crmfb_attach':
crmfb.c:(.text+0x2304): undefined reference to `ddc_read_edid'
crmfb.c:(.text+0x2304): relocation truncated to fit: R_MIPS_26 against `ddc_read_edid'
crmfb.c:(.text+0x234c): undefined reference to `edid_parse'
crmfb.c:(.text+0x234c): relocation truncated to fit: R_MIPS_26 against `edid_parse'
crmfb.c:(.text+0x2354): undefined reference to `edid_print'
crmfb.c:(.text+0x2354): relocation truncated to fit: R_MIPS_26 against `edid_print'
 1.16 13-Dec-2010  matt branches: 1.16.2;
Change definition of pc_bus_maxdevs to get a void * instead a pci_chipset_tag_t
to match its use in pci_bus_maxdevs. This makes it the same as pci_conf_read
and pci_conf_write.
Change all struct device * to device_t.
[Obviously nothing ever used the first argument to pc_bus_maxdevs since it
could have never worked because it wasn't being passed a pci_chipset_tag_t.]
 1.15 28-Apr-2008  martin branches: 1.15.22; 1.15.26;
Remove clause 3 and 4 from TNF licenses
 1.14 17-Oct-2007  garbled branches: 1.14.16; 1.14.18; 1.14.20;
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.13 09-Jun-2006  garbled branches: 1.13.16; 1.13.24; 1.13.34; 1.13.36; 1.13.38; 1.13.40;
Completely rework how we look up PCI interrupts on prep:

1) Rather than build an array of the pci->intr mappings, build a proplib
tree.
2) add a SIMPLEQ of device properties to the pci_chipset_tag to hold the
proplib trees of each bus.
3) Move the interrupt routing code from pci_conf_interrupt to pci_map_intr()
4) Deal properly with non-native PCI bridge chips that are not recognized
by the prep firmware, and therefore are not noted in the residual data.

The major win of this restructure is #4. Hopefully I haven't broken
anything. Tested on a 7248-100, 7043-140 and 7024-E20.
 1.12 09-Mar-2006  garbled branches: 1.12.4;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.11 11-Dec-2005  christos branches: 1.11.4; 1.11.6; 1.11.8; 1.11.10;
merge ktrace-lwp.
 1.10 29-Jul-2004  drochner branches: 1.10.12;
remove now unnecessary "pci_enumerate_bus" definitions
 1.9 15-May-2002  thorpej branches: 1.9.10;
Let machine-dependent code specify how to enumerate the bus.
Currently, everyone uses pci_enumerate_bus_generic().
 1.8 25-Feb-2002  kleink Declare the id argument to pci_conf_hook(9) as pcireg_t, which is more
appropriate.
 1.7 24-Feb-2002  kleink In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.6 26-Aug-2001  matt branches: 1.6.6;
Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.5 15-Jun-2001  nonaka branches: 1.5.2;
Use new common bus.h framework.
 1.4 28-Dec-2000  sommerfeld branches: 1.4.2;
Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

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

Tested on alpha and i386; welcome to 1.5Q
 1.3 04-Jun-2000  cgd branches: 1.3.4;
Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
 1.2 01-Jun-2000  cgd kill __P in these files. (I had to look at them anyway with an eye for
adding some protos... and adding them with __P seems wrong, but mixing
__P and not __P in the same file seems wrong too, so...)
 1.1 29-Feb-2000  nonaka branches: 1.1.2;
Initial import prep port.
 1.1.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.3.4.3 05-Jan-2001  bouyer Sync with HEAD
 1.3.4.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.4.1 04-Jun-2000  bouyer file pci_machdep.h was added on branch thorpej_scsipi on 2000-11-20 20:23:00 +0000
 1.4.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.5.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.5.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.5.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.6.6.3 20-Jun-2002  nathanw Catch up to -current.
 1.6.6.2 28-Feb-2002  nathanw Catch up to -current.
 1.6.6.1 26-Aug-2001  nathanw file pci_machdep.h was added on branch nathanw_sa on 2002-02-28 04:11:29 +0000
 1.9.10.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.10.2 18-Sep-2004  skrll Sync with HEAD.
 1.9.10.1 03-Aug-2004  skrll Sync with HEAD
 1.10.12.2 27-Oct-2007  yamt sync with head.
 1.10.12.1 21-Jun-2006  yamt sync with head.
 1.11.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.11.8.2 26-Jun-2006  yamt sync with head.
 1.11.8.1 13-Mar-2006  yamt sync with head.
 1.11.6.1 22-Apr-2006  simonb Sync with head.
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.12.4.1 19-Jun-2006  chap Sync with head.
 1.13.40.1 25-Oct-2007  bouyer Sync with HEAD.
 1.13.38.1 18-Oct-2007  yamt sync with head.
 1.13.36.1 06-Nov-2007  matt sync with HEAD
 1.13.34.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.13.24.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.13.16.1 23-Oct-2007  ad Sync with head.
 1.14.20.1 16-May-2008  yamt sync with head.
 1.14.18.1 18-May-2008  yamt sync with head.
 1.14.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.15.26.1 07-Jan-2011  matt Change bus_maxdevs to be passed pc->pc_conf_v instead pc (e.g. like the
rest of the conf calls).
 1.15.22.2 21-Apr-2011  rmind sync with head
 1.15.22.1 05-Mar-2011  rmind sync with head
 1.16.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 30-May-2006  garbled branches: 1.1.2; 1.1.6; 1.1.8; 1.1.10; 1.1.16; 1.1.70; 1.1.72; 1.1.74;
Rewrite the pci bus attribute decodings to be human-readable by using the
proper pcipnp structure file to read them rather than magical array offsets.

Add more complete decoding of the VPD, including extendedvpd, and TLB. While
I was here, fix a bug where we never printed the L1 cache data properly.
 1.1.74.1 16-May-2008  yamt sync with head.
 1.1.72.1 18-May-2008  yamt sync with head.
 1.1.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.16.2 09-Sep-2006  rpaulo sync with head
 1.1.16.1 30-May-2006  rpaulo file pcipnp.h was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:35 +0000
 1.1.10.2 26-Jun-2006  yamt sync with head.
 1.1.10.1 30-May-2006  yamt file pcipnp.h was added on branch yamt-pdpolicy on 2006-06-26 12:45:14 +0000
 1.1.8.2 21-Jun-2006  yamt sync with head.
 1.1.8.1 30-May-2006  yamt file pcipnp.h was added on branch yamt-lazymbuf on 2006-06-21 14:55:11 +0000
 1.1.6.2 19-Jun-2006  chap Sync with head.
 1.1.6.1 30-May-2006  chap file pcipnp.h was added on branch chap-midi on 2006-06-19 03:44:53 +0000
 1.1.2.2 01-Jun-2006  kardel Sync with head.
 1.1.2.1 30-May-2006  kardel file pcipnp.h was added on branch simonb-timecounters on 2006-06-01 22:35:16 +0000
 1.2 05-Feb-2001  briggs Share a single pio.h instead of having 4 nearly-identical copies.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.3 11-Feb-2001  bouyer Sync with HEAD.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file pio.h was added on branch thorpej_scsipi on 2000-11-20 20:23:01 +0000
 1.17 18-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.16 28-Apr-2008  martin branches: 1.16.32;
Remove clause 3 and 4 from TNF licenses
 1.15 17-Oct-2007  garbled branches: 1.15.16; 1.15.18; 1.15.20;
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 27-Jun-2006  garbled branches: 1.14.14; 1.14.22; 1.14.32; 1.14.34; 1.14.36; 1.14.38;
General fixups:
1) Fix support for the powerstack E1. This machine needs to use the 8259
directly, and cannot use the prep interrupt vector register. Place a
quirk entry in the table for the machine.
2) Add a new com0_vreset boot image. The vreset code only works on a few
machines, and breaks others like the 7025-F40. Its only limitedly useful
when used with the com0, so just make it an optional image the user can
install by hand if they want.
3) Bump the bootloader to 1.8 with the above change.
 1.13 09-Jun-2006  garbled branches: 1.13.2;
Completely rework how we look up PCI interrupts on prep:

1) Rather than build an array of the pci->intr mappings, build a proplib
tree.
2) add a SIMPLEQ of device properties to the pci_chipset_tag to hold the
proplib trees of each bus.
3) Move the interrupt routing code from pci_conf_interrupt to pci_map_intr()
4) Deal properly with non-native PCI bridge chips that are not recognized
by the prep firmware, and therefore are not noted in the residual data.

The major win of this restructure is #4. Hopefully I haven't broken
anything. Tested on a 7248-100, 7043-140 and 7024-E20.
 1.12 09-Mar-2006  garbled branches: 1.12.4;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.11 23-Feb-2006  garbled branches: 1.11.2; 1.11.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.10 11-Dec-2005  christos branches: 1.10.2; 1.10.4; 1.10.6;
merge ktrace-lwp.
 1.9 13-Jan-2005  kleink branches: 1.9.10;
Pass the interrupt swizzle down to the platforms' fixup functions.
N.B. Only using it on the ulmb60xa for now.
 1.8 26-Jun-2004  kleink Add platform support for the IBM RS/6000 6015 a/k/a 7020-001 a/k/a 40P.
 1.7 16-Jan-2003  matt branches: 1.7.2;
Add platform support for the IBM PPS Model 6040 (E) (aka ThinkPad 820).
 1.6 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.5 02-May-2002  nonaka branches: 1.5.2;
Added IBM Personal Power Series 830 IDE controller support.
 1.4 02-May-2002  nonaka rename reset_ibm_generic() -> reset_prep_generic().
 1.3 26-Feb-2002  kleink Add platform support for the Motorola Ultra Plus and Ultra 60x boards.

Note that this currently matches only the boards built into Bull Estrella
systems, as Bull chose to change the board identification string whose
original content is not known at this time.
 1.2 24-Feb-2002  kleink In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.1 20-Jun-2001  nonaka branches: 1.1.2; 1.1.8;
Seprate model depended code. (based on arc 'struct platform')

files.prep:
- add new files entry.

pci_machdep.c:
- use dev/pci/pciconf.c instead of mine for pci io/mem addr/intr fixup.

cpu.c:
- separate code

machdep.c:
- call ident_platform()

mainbus.c:
- call pci_configure_bus(), if defined PCI_NETBSD_CONFIGURE

ibm_machdep.c:
- for IBM PReP generic

ibm_6050.c:
- for IBM Personal Power Series 830/850

ibm_7248.c:
- for IBM RS6000/43P deppendency
 1.1.8.4 17-Jan-2003  thorpej Sync with HEAD.
 1.1.8.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.8.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.8.1 20-Jun-2001  nathanw file platform.h was added on branch nathanw_sa on 2002-02-28 04:11:29 +0000
 1.1.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.2.1 16-Mar-2002  jdolecek Catch up with -current.
 1.5.2.1 15-Jul-2002  gehenna catch up with -current.
 1.7.2.4 17-Jan-2005  skrll Sync with HEAD.
 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.9.10.3 27-Oct-2007  yamt sync with head.
 1.9.10.2 30-Dec-2006  yamt sync with head.
 1.9.10.1 21-Jun-2006  yamt sync with head.
 1.10.6.1 22-Apr-2006  simonb Sync with head.
 1.10.4.1 09-Sep-2006  rpaulo sync with head
 1.10.2.1 01-Mar-2006  yamt sync with head.
 1.11.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.11.2.3 11-Aug-2006  yamt sync with head
 1.11.2.2 26-Jun-2006  yamt sync with head.
 1.11.2.1 13-Mar-2006  yamt sync with head.
 1.12.4.1 19-Jun-2006  chap Sync with head.
 1.13.2.1 13-Jul-2006  gdamore Merge from HEAD.
 1.14.38.1 25-Oct-2007  bouyer Sync with HEAD.
 1.14.36.1 18-Oct-2007  yamt sync with head.
 1.14.34.1 06-Nov-2007  matt sync with HEAD
 1.14.32.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.14.22.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.14.14.1 23-Oct-2007  ad Sync with head.
 1.15.20.1 16-May-2008  yamt sync with head.
 1.15.18.1 18-May-2008  yamt sync with head.
 1.15.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.16.32.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.5 03-Feb-2003  matt Rename PPC_MPC6XX to PPC_OEA (and any mpc6xx reference to oea).
 1.4 03-Feb-2003  matt More cleanup for OLDPMAP.
 1.3 09-Mar-2002  chs switch all mpc6xx powerpc ports to NEWPMAP by default.
the old pmap is still available with the OLDPMAP option.
 1.2 17-Jun-2001  nonaka branches: 1.2.2; 1.2.8;
NEWPMAP
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.8;
Initial import prep port.
 1.1.8.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file pmap.h was added on branch thorpej_scsipi on 2000-11-20 20:23:01 +0000
 1.2.8.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.8.1 17-Jun-2001  nathanw file pmap.h was added on branch nathanw_sa on 2002-04-01 07:42:11 +0000
 1.2.2.1 16-Mar-2002  jdolecek Catch up with -current.
 1.2 12-Jul-2018  maxv Remove the kernel PMC code. Sent yesterday on tech-kern@.

This change:

* Removes "options PERFCTRS", the associated includes, and the associated
ifdefs. In doing so, it removes several XXXSMPs in the MI code, which is
good.

* Removes the PMC code of ARM XSCALE.

* Removes all the pmc.h files. They were all empty, except for ARM XSCALE.

* Reorders the x86 PMC code not to rely on the legacy pmc.h file. The
definitions are put in sysarch.h.

* Removes the kern/sys_pmc.c file, and along with it, the sys_pmc_control
and sys_pmc_get_info syscalls. They are marked as OBSOL in kern,
netbsd32 and rump.

* Removes the pmc_evid_t and pmc_ctr_t types.

* Removes all the associated man pages. The sets are marked as obsolete.
 1.1 07-Aug-2002  briggs branches: 1.1.2; 1.1.4; 1.1.6; 1.1.202; 1.1.204;
Implement pmc(9) -- An interface to hardware performance monitoring
counters. These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface. Initially, the Intel XScale
counters are the only ones supported.
 1.1.204.1 10-Jun-2019  christos Sync with HEAD
 1.1.202.1 28-Jul-2018  pgoyette Sync with HEAD
 1.1.6.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.6.1 07-Aug-2002  jdolecek file pmc.h was added on branch kqueue on 2002-09-06 08:39:34 +0000
 1.1.4.2 31-Aug-2002  gehenna catch up with -current.
 1.1.4.1 07-Aug-2002  gehenna file pmc.h was added on branch gehenna-devsw on 2002-08-31 13:45:50 +0000
 1.1.2.2 13-Aug-2002  nathanw Catch up to -current.
 1.1.2.1 07-Aug-2002  nathanw file pmc.h was added on branch nathanw_sa on 2002-08-13 02:18:47 +0000
 1.4 01-Dec-2012  mbalmer Fix misspelling of acceptible (it's only acceptable with an 'a', not an 'i').
 1.3 09-Mar-2006  garbled branches: 1.3.102; 1.3.112;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.2 06-Jan-2003  wiz branches: 1.2.18; 1.2.32; 1.2.34; 1.2.36; 1.2.38;
writable, not writeable.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.14;
Initial import prep port.
 1.1.14.1 07-Jan-2003  thorpej Sync with HEAD.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file pnp.h was added on branch thorpej_scsipi on 2000-11-20 20:23:01 +0000
 1.2.38.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.2.36.1 13-Mar-2006  yamt sync with head.
 1.2.34.1 22-Apr-2006  simonb Sync with head.
 1.2.32.1 09-Sep-2006  rpaulo sync with head
 1.2.18.1 21-Jun-2006  yamt sync with head.
 1.3.112.1 25-Feb-2013  tls resync with head
 1.3.102.1 16-Jan-2013  yamt sync with (a bit old) head
 1.5 09-May-2006  garbled de-__P these files.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; 1.4.12;
merge ktrace-lwp.
 1.3 23-Oct-2004  thorpej branches: 1.3.12;
Centralize the declaration of booted_device and booted_partition.
 1.2 01-Jun-2000  matt branches: 1.2.4; 1.2.28;
Make booted_device global (and booted_parition for consitency).
Eliminate it from header files and other extern definitions.
 1.1 29-Feb-2000  nonaka branches: 1.1.2;
Initial import prep port.
 1.1.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.2.28.1 02-Nov-2004  skrll Sync with HEAD.
 1.2.4.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.4.1 01-Jun-2000  bouyer file powerpc.h was added on branch thorpej_scsipi on 2000-11-20 20:23:01 +0000
 1.3.12.1 21-Jun-2006  yamt sync with head.
 1.4.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.4.10.1 11-May-2006  elad sync with head
 1.4.8.1 24-May-2006  yamt sync with head.
 1.4.6.1 01-Jun-2006  kardel Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.2 19-Jun-2001  nonaka Back out last changes.
 1.1 17-Jun-2001  nonaka identified prep model.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file proc.h was added on branch thorpej_scsipi on 2000-11-20 20:23:01 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file profile.h was added on branch thorpej_scsipi on 2000-11-20 20:23:01 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file psl.h was added on branch thorpej_scsipi on 2000-11-20 20:23:01 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file pte.h was added on branch thorpej_scsipi on 2000-11-20 20:23:02 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file ptrace.h was added on branch thorpej_scsipi on 2000-11-20 20:23:02 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file reg.h was added on branch thorpej_scsipi on 2000-11-20 20:23:02 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file reloc.h was added on branch thorpej_scsipi on 2000-11-20 20:23:02 +0000
 1.4 25-May-2006  garbled Implement partial support for the RS6K PCI Bridge found on 7025-F40
models. This code was made possible by assistance from Cory Bajus.

Add code that asks the PCI bridge what it's config base address is, and
use that when wiring up an indirect bridge type.
Move prep's user segment register to 10, because the 7025's PCI config
address is at 11, where the user segment used to be.
Add a battable entry for 0xbf800000 for machines with RS6K bridges.

There is still probably work left to be done before a 7025-F40 is fully
supported.
 1.3 09-Mar-2006  garbled branches: 1.3.4;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.2 13-Feb-2004  wiz branches: 1.2.16; 1.2.30; 1.2.32; 1.2.34; 1.2.36;
Uppercase CPU, plural is CPUs.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file residual.h was added on branch thorpej_scsipi on 2000-11-20 20:23:02 +0000
 1.2.36.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.2.34.2 26-Jun-2006  yamt sync with head.
 1.2.34.1 13-Mar-2006  yamt sync with head.
 1.2.32.2 01-Jun-2006  kardel Sync with head.
 1.2.32.1 22-Apr-2006  simonb Sync with head.
 1.2.30.1 09-Sep-2006  rpaulo sync with head
 1.2.16.1 21-Jun-2006  yamt sync with head.
 1.3.4.1 19-Jun-2006  chap Sync with head.
 1.2 05-Feb-2003  nakayama Replace machine/rnd.h with more appropriate name to share it
with cycle counter based microtime in kern/kern_microtime.c.
 1.1 11-Jun-2000  tsubai branches: 1.1.4; 1.1.6;
Add cpu_counter().
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 11-Jun-2000  bouyer file rnd.h was added on branch thorpej_scsipi on 2000-11-20 20:23:02 +0000
 1.1.4.2 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 11-Jun-2000  minoura file rnd.h was added on branch minoura-xpg4dl on 2000-06-22 17:02:51 +0000
 1.2 09-Feb-2007  ad branches: 1.2.4;
Merge newlock2 to head.
 1.1 22-Dec-2006  ad branches: 1.1.2;
file rwlock.h was initially added on branch newlock2.
 1.1.2.2 28-Jan-2007  ad powerpc changes.
 1.1.2.1 22-Dec-2006  ad Pull in CPU specific stubs.
 1.2.4.2 26-Feb-2007  yamt sync with head.
 1.2.4.1 09-Feb-2007  yamt file rwlock.h was added on branch yamt-lazymbuf on 2007-02-26 09:07:58 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file setjmp.h was added on branch thorpej_scsipi on 2000-11-20 20:23:02 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file signal.h was added on branch thorpej_scsipi on 2000-11-20 20:23:03 +0000
 1.1 23-Jul-2014  alnsn branches: 1.1.2; 1.1.6;
Rename sljitarch.h to sljit_machdep.h.
 1.1.6.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.6.1 23-Jul-2014  tls file sljit_machdep.h was added on branch tls-maxphys on 2014-08-20 00:03:20 +0000
 1.1.2.2 10-Aug-2014  tls Rebase.
 1.1.2.1 23-Jul-2014  tls file sljit_machdep.h was added on branch tls-earlyentropy on 2014-08-10 06:54:06 +0000
 1.2 23-Jul-2014  alnsn Rename sljitarch.h to sljit_machdep.h.
 1.1 17-Nov-2013  alnsn branches: 1.1.2; 1.1.4; 1.1.6;
Enable sljit and bpfjit on powerpc.
 1.1.6.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.1.6.1 17-Nov-2013  yamt file sljitarch.h was added on branch yamt-pagecache on 2014-05-22 11:40:05 +0000
 1.1.4.2 18-May-2014  rmind sync with head
 1.1.4.1 17-Nov-2013  rmind file sljitarch.h was added on branch rmind-smpnet on 2014-05-18 17:45:23 +0000
 1.1.2.1 10-Aug-2014  tls Rebase.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file spkr.h was added on branch thorpej_scsipi on 2000-11-20 20:23:03 +0000
 1.5 02-Mar-2010  matt Add missing <powerpc/FOO/spr.h> to a few files missed on the first pass.
Don't export <machine/spr.h> to userland, only <powerpc/spr.h>
 1.4 11-Dec-2005  christos branches: 1.4.78; 1.4.92; 1.4.98;
merge ktrace-lwp.
 1.3 17-Feb-2005  briggs branches: 1.3.2;
Add (back) spr.h
 1.2 02-Mar-2004  kleink branches: 1.2.2; 1.2.4;
Pull in SPRs via <powerpc/spr.h> in this single instance, and dispose of
<machine/spr.h> again.
 1.1 30-Dec-2003  manu Fix PowerPC ports build with KGDB.
 1.2.4.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.2.2.1 29-Apr-2005  kent sync with -current
 1.3.2.2 17-Feb-2005  skrll Sync with HEAD.
 1.3.2.1 17-Feb-2005  skrll file spr.h was added on branch ktrace-lwp on 2005-02-17 07:10:37 +0000
 1.4.98.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.4.92.1 24-Oct-2010  jym Sync with HEAD
 1.4.78.1 11-Mar-2010  yamt sync with head
 1.2 17-Jul-2011  joerg Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file stdarg.h was added on branch thorpej_scsipi on 2000-11-20 20:23:03 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file trap.h was added on branch thorpej_scsipi on 2000-11-20 20:23:03 +0000
 1.14 01-Apr-2021  simonb Whitespace: #define<tab>
 1.13 17-Jul-2011  dyoung branches: 1.13.66; 1.13.68;
Switch more PowerPC ports having PCI support to new-style <sys/bus.h>.
 1.12 20-Jan-2008  joerg Now that __HAVE_TIMECOUNTER and __HAVE_GENERIC_TODR are invariants,
remove the conditionals and the code associated with the undef case.
 1.11 17-Oct-2007  garbled branches: 1.11.2; 1.11.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.10 14-Jul-2007  ad branches: 1.10.10;
Generic soft interrupts are mandatory.
 1.9 05-Sep-2006  garbled branches: 1.9.12; 1.9.20;
Convert prep to MI todr
 1.8 03-Sep-2006  bjh21 Nothing in the kernel now tests __HAVE_NWSCONS, so stop defining it everywhere.
 1.7 20-Jun-2006  garbled Basic prep timecounter support. This greatly increases the stability of
ntp on my 7248, however, my 7043-140 is still a bit flaky. I suspect the
only way to fix the 7043 is going to be writing a timecounter driver for
the 8254 present on these machines. Either way, this makes some of the
machines better, and the other machines are still about the same as they
were before, so it's a net gain for the port.
 1.6 03-May-2006  garbled branches: 1.6.4;
Generic soft interrupt support for prep. Mostly copied from macppc,
tested on 7248 and 7043.
 1.5 16-Mar-2006  garbled branches: 1.5.2;
More changes to prep port:
1) Add the NVRAM device. This device allows us to speak with the nvram on
prep-based machines and read/write to it. Also add a simple IOCTL
interface for speaking with the nvram from userland. This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device. Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
 1.4 28-Feb-2002  simonb branches: 1.4.32; 1.4.46; 1.4.48; 1.4.50; 1.4.52;
Use "#define<tab>".
 1.3 10-Dec-2001  briggs define __HAVE_NWSCONS for pckbc.
 1.2 21-Nov-2001  soren prep has no special dependencies on pccons; remove.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.10; 1.1.14;
Initial import prep port.
 1.1.14.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.14.1 08-Jan-2002  nathanw Catch up to -current.
 1.1.10.2 16-Mar-2002  jdolecek Catch up with -current.
 1.1.10.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file types.h was added on branch thorpej_scsipi on 2000-11-20 20:23:03 +0000
 1.4.52.2 11-May-2006  elad sync with head
 1.4.52.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.50.4 14-Sep-2006  yamt sync with head.
 1.4.50.3 26-Jun-2006  yamt sync with head.
 1.4.50.2 24-May-2006  yamt sync with head.
 1.4.50.1 01-Apr-2006  yamt sync with head.
 1.4.48.2 01-Jun-2006  kardel Sync with head.
 1.4.48.1 22-Apr-2006  simonb Sync with head.
 1.4.46.1 09-Sep-2006  rpaulo sync with head
 1.4.32.4 21-Jan-2008  yamt sync with head
 1.4.32.3 03-Sep-2007  yamt sync with head.
 1.4.32.2 30-Dec-2006  yamt sync with head.
 1.4.32.1 21-Jun-2006  yamt sync with head.
 1.5.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.6.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.9.20.1 03-Oct-2007  garbled Sync with HEAD
 1.9.12.1 15-Jul-2007  ad Sync with head.
 1.10.10.2 23-Mar-2008  matt sync with HEAD
 1.10.10.1 06-Nov-2007  matt sync with HEAD
 1.11.8.1 23-Jan-2008  bouyer Sync with HEAD.
 1.11.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.13.68.1 03-Apr-2021  thorpej Sync with HEAD.
 1.13.66.1 03-Apr-2021  thorpej Sync with HEAD.
 1.2 17-Jul-2011  joerg Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file varargs.h was added on branch thorpej_scsipi on 2000-11-20 20:23:03 +0000
 1.14 20-Jun-2011  matt Don't export USER_SR if _MODULE is defined.
Add a common <powerpc/vmparam.h> like we have for <powerpc/pmap.h>
 1.13 25-May-2006  garbled branches: 1.13.96;
Implement partial support for the RS6K PCI Bridge found on 7025-F40
models. This code was made possible by assistance from Cory Bajus.

Add code that asks the PCI bridge what it's config base address is, and
use that when wiring up an indirect bridge type.
Move prep's user segment register to 10, because the 7025's PCI config
address is at 11, where the user segment used to be.
Add a battable entry for 0xbf800000 for machines with RS6K bridges.

There is still probably work left to be done before a 7025-F40 is fully
supported.
 1.12 03-Feb-2003  matt branches: 1.12.18; 1.12.32; 1.12.34; 1.12.36; 1.12.42;
Rename PPC_MPC6XX to PPC_OEA (and any mpc6xx reference to oea).
 1.11 02-Feb-2003  matt Remove OLDPMAP support.
 1.10 10-Dec-2002  thorpej Use __LDPGSZ (which must be == USRTEXT) as the text address for a.out
executables, and eliminate the USRTEXT constant, which was only used
by the a.out exec code.
 1.9 31-Jul-2002  matt Use 11 for the USER_SR since we use BAT 12 for PCI MEM space.
 1.8 09-Mar-2002  chs branches: 1.8.6;
switch all mpc6xx powerpc ports to NEWPMAP by default.
the old pmap is still available with the OLDPMAP option.
 1.7 15-Nov-2001  soren MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
 1.6 17-Jun-2001  nonaka branches: 1.6.2; 1.6.8;
NEWPMAP
 1.5 01-May-2001  thorpej Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
 1.4 29-Apr-2001  thorpej Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure. Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM. These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg. As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now). Changes to other pmap
modules will follow.
 1.3 30-Dec-2000  tsutsui branches: 1.3.2;
Define VM_MAX_KERNEL_BUF and PAGER_MAP_SIZE (from macppc)
so that the kernel can boot with 128MB memory.

XXX: How can we determine size of the buffer cache on UBC?
 1.2 01-May-2000  kleink branches: 1.2.6;
Bump default data size to 32 MB.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.2.6.3 05-Jan-2001  bouyer Sync with HEAD
 1.2.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.6.1 01-May-2000  bouyer file vmparam.h was added on branch thorpej_scsipi on 2000-11-20 20:23:03 +0000
 1.3.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.6.8.5 11-Dec-2002  thorpej Sync with HEAD.
 1.6.8.4 01-Aug-2002  nathanw Catch up to -current.
 1.6.8.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.6.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.6.8.1 17-Jun-2001  nathanw file vmparam.h was added on branch nathanw_sa on 2002-01-08 00:27:16 +0000
 1.6.2.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.6.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.6.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.6.1 31-Aug-2002  gehenna catch up with -current.
 1.12.42.1 19-Jun-2006  chap Sync with head.
 1.12.36.1 26-Jun-2006  yamt sync with head.
 1.12.34.1 01-Jun-2006  kardel Sync with head.
 1.12.32.1 09-Sep-2006  rpaulo sync with head
 1.12.18.1 21-Jun-2006  yamt sync with head.
 1.13.96.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.2 11-Dec-2005  christos merge ktrace-lwp.
 1.1 08-May-2004  kleink branches: 1.1.2;
Factor out W{CHAR,INT}_{MAX,MIN} into their own header file.
 1.1.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.2.2 03-Aug-2004  skrll Sync with HEAD
 1.1.2.1 08-May-2004  skrll file wchar_limits.h was added on branch ktrace-lwp on 2004-08-03 10:39:48 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file display.h was added on branch thorpej_scsipi on 2000-11-20 22:35:43 +0000
 1.12 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.11 09-May-2006  garbled branches: 1.11.18; 1.11.26; 1.11.36; 1.11.38; 1.11.40; 1.11.42;
More KNF. That should be the rest of the .c files.
 1.10 08-May-2006  garbled Switch prep over to evcnt(9). While I was here, I also switched it to
use struct cpu_info for the cpu stuff. Tested on 7248 and 7043.
 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 07-Aug-2003  agc branches: 1.8.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.7 15-Jul-2003  lukem __KERNEL_RCSID()
 1.6 26-Aug-2001  matt branches: 1.6.6; 1.6.22;
Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.5 20-Jun-2001  nonaka branches: 1.5.2;
print elcr reg, if defined DEBUG
 1.4 27-Nov-2000  matt Rework bus_space to conform the PReP I/O & MEM limits. Add a few debugging
printfs concerning interrupts.
 1.3 22-Nov-2000  matt Make assym.h be generated again
Add pcmcia support to files.prep
Add isa_intr_alloc support.
 1.2 04-Jun-2000  cgd branches: 1.2.4;
Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
 1.1 29-Feb-2000  nonaka branches: 1.1.2;
Initial import prep port.
 1.1.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.2.4.3 08-Dec-2000  bouyer Sync with HEAD.
 1.2.4.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.4.1 04-Jun-2000  bouyer file isa_machdep.c was added on branch thorpej_scsipi on 2000-11-20 22:35:43 +0000
 1.5.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.6.22.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.22.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.22.1 03-Aug-2004  skrll Sync with HEAD
 1.6.6.2 26-Aug-2001  matt Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.6.6.1 26-Aug-2001  matt file isa_machdep.c was added on branch nathanw_sa on 2001-08-26 02:47:35 +0000
 1.8.16.2 27-Oct-2007  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.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.42.1 25-Oct-2007  bouyer Sync with HEAD.
 1.11.40.1 18-Oct-2007  yamt sync with head.
 1.11.38.1 06-Nov-2007  matt sync with HEAD
 1.11.36.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.11.26.3 07-May-2007  garbled Convert prep over to new isa_machdep changes.
 1.11.26.2 03-May-2007  garbled Get rid of all the useless stuff in isa_machdep.c, and the things that
call it. TODO, fix isa_intr_alloc to work with new interrupt foo.
 1.11.26.1 03-May-2007  garbled Convert prep over to the shared interrupts. Still alot of cleanup to do
following this change.
 1.11.18.1 23-Oct-2007  ad Sync with head.
 1.10 06-Jun-2011  matt More device_t, cfdata, CFATTACH_DECL_NEW cleanup.
 1.9 17-Oct-2007  garbled branches: 1.9.42; 1.9.52;
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.8 17-Mar-2006  garbled branches: 1.8.18; 1.8.26; 1.8.36; 1.8.38; 1.8.40; 1.8.42;
ANSIfy all these files.. just formatting changes.
Remove kbdreg.h.. this was part of pccons, and was apparently missed long
ago.
 1.7 11-Dec-2005  christos branches: 1.7.4; 1.7.6; 1.7.8; 1.7.10; 1.7.12;
merge ktrace-lwp.
 1.6 15-Jul-2003  lukem branches: 1.6.16;
__KERNEL_RCSID()
 1.5 02-Oct-2002  thorpej branches: 1.5.6;
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 29-Jun-2000  mrg branches: 1.2.2; 1.2.6; 1.2.10;
remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.2.10.1 18-Oct-2002  nathanw Catch up to -current.
 1.2.6.1 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 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.2.1 29-Jun-2000  bouyer file isabeep.c was added on branch thorpej_scsipi on 2000-11-20 22:35:43 +0000
 1.5.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.6.1 03-Aug-2004  skrll Sync with HEAD
 1.6.16.2 27-Oct-2007  yamt sync with head.
 1.6.16.1 21-Jun-2006  yamt sync with head.
 1.7.12.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.7.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.7.8.1 01-Apr-2006  yamt sync with head.
 1.7.6.1 22-Apr-2006  simonb Sync with head.
 1.7.4.1 09-Sep-2006  rpaulo sync with head
 1.8.42.1 25-Oct-2007  bouyer Sync with HEAD.
 1.8.40.1 18-Oct-2007  yamt sync with head.
 1.8.38.1 06-Nov-2007  matt sync with HEAD
 1.8.36.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.8.26.1 10-May-2007  garbled convert printf's to aprint_*.
 1.8.18.1 23-Oct-2007  ad Sync with head.
 1.9.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.9.42.1 12-Jun-2011  rmind sync with head
 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 05-Mar-2007  he branches: 1.12.2; 1.12.10; 1.12.18; 1.12.20; 1.12.22; 1.12.24;
Use mtod(m, char *) when you want to do pointer arithmetic on the result.
 1.11 04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.10 17-Mar-2006  garbled branches: 1.10.14;
ANSIfy all these files.. just formatting changes.
Remove kbdreg.h.. this was part of pccons, and was apparently missed long
ago.
 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 15-Jul-2003  lukem branches: 1.8.16;
__KERNEL_RCSID()
 1.7 05-May-2003  fvdl branches: 1.7.2;
Move definition of ISA_DMA_BOUNCE_THRESHOLD to dev/isa/isareg.h.
 1.6 02-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.5 22-Jul-2001  wiz branches: 1.5.6;
bcopy -> memcpy, bzero -> memset
 1.4 15-Jun-2001  nonaka branches: 1.4.2;
Use new common bus.h framework.
 1.3 15-Nov-2000  thorpej branches: 1.3.2; 1.3.4;
Move the ISA DMA cookie into isadma_machdep.c.
 1.2 29-Jun-2000  mrg remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.3.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.3.2.3 22-Nov-2000  bouyer Sync with HEAD.
 1.3.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.1 15-Nov-2000  bouyer file isadma_machdep.c was added on branch thorpej_scsipi on 2000-11-20 22:35:43 +0000
 1.4.2.1 03-Aug-2001  lukem update to -current
 1.5.6.2 22-Jul-2001  wiz bcopy -> memcpy, bzero -> memset
 1.5.6.1 22-Jul-2001  wiz file isadma_machdep.c was added on branch nathanw_sa on 2001-07-22 14:58:21 +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.3 27-Oct-2007  yamt sync with head.
 1.8.16.2 03-Sep-2007  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.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.10.14.1 12-Mar-2007  rmind Sync with HEAD.
 1.12.24.1 25-Oct-2007  bouyer Sync with HEAD.
 1.12.22.1 18-Oct-2007  yamt sync with head.
 1.12.20.1 06-Nov-2007  matt sync with HEAD
 1.12.18.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.12.10.1 02-May-2007  garbled prep now uses the shared copies of isadma_machdep.c and pcib.c
 1.12.2.1 23-Oct-2007  ad Sync with head.
 1.7 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.6 09-Jun-2006  tsutsui branches: 1.6.16; 1.6.24; 1.6.34; 1.6.36; 1.6.38; 1.6.40;
Fix a botch on ANSIfy.
 1.5 17-Mar-2006  garbled branches: 1.5.2;
ANSIfy all these files.. just formatting changes.
Remove kbdreg.h.. this was part of pccons, and was apparently missed long
ago.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; 1.4.12;
merge ktrace-lwp.
 1.3 15-Jul-2003  lukem branches: 1.3.16;
__KERNEL_RCSID()
 1.2 18-Jan-2001  tv branches: 1.2.24;
No-op commit to force update to a non-"-kk" revision.
 1.1 05-Jan-2001  tsutsui branches: 1.1.2;
Add isapnp attachment for prep.
 1.1.2.2 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.1.2.1 05-Jan-2001  bouyer file isapnp_machdep.c was added on branch thorpej_scsipi on 2001-01-18 09:22:58 +0000
 1.2.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.24.1 03-Aug-2004  skrll Sync with HEAD
 1.3.16.2 27-Oct-2007  yamt sync with head.
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.4.12.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.4.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.8.2 26-Jun-2006  yamt sync with head.
 1.4.8.1 01-Apr-2006  yamt sync with head.
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5.2.1 19-Jun-2006  chap Sync with head.
 1.6.40.1 25-Oct-2007  bouyer Sync with HEAD.
 1.6.38.1 18-Oct-2007  yamt sync with head.
 1.6.36.1 06-Nov-2007  matt sync with HEAD
 1.6.34.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.6.24.1 02-May-2007  garbled Move prep's isapnp_machdep.c to powerpc/isa, and make prep use that instead.
 1.6.16.1 23-Oct-2007  ad Sync with head.
 1.3 02-Feb-2002  jdolecek Reduce the massive code duplication regarding joy(4). Split it into
MI and MD parts, and make ISA/ISAPNP/PCI joy(4) attachments MI.
 1.2 13-Jun-2001  wiz branches: 1.2.2; 1.2.4; 1.2.8;
withough -> without
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.8;
Initial import prep port.
 1.1.8.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file joy.c was added on branch thorpej_scsipi on 2000-11-20 22:35:43 +0000
 1.2.8.2 28-Feb-2002  nathanw Catch up to -current.
 1.2.8.1 13-Jun-2001  nathanw file joy.c was added on branch nathanw_sa on 2002-02-28 04:11:29 +0000
 1.2.4.1 10-Oct-2001  fvdl Convert all remaining devices.
 1.2.2.1 11-Feb-2002  jdolecek Sync w/ -current.
 1.4 02-Feb-2002  jdolecek Reduce the massive code duplication regarding joy(4). Split it into
MI and MD parts, and make ISA/ISAPNP/PCI joy(4) attachments MI.
 1.3 07-Jan-2002  thorpej Overhaul of the ISA autoconfiguration code to support direct
configuration of devices logically attached to the ISA bus:

* Change the isa_attach_args to have arrays of io, mem, irq, drq
resources.
* Add a "pnpnames" and a linked list of "pnpcompatnames" to the
isa_attach_args. If either of these members are non-NULL,
direct configuration of the bus is being performed. Add an
ISA_DIRECT_CONFIG() macro to test for this.
* Drivers are not allowed to modify the isa_attach_args unless
direct configuration is not being performed and the probe fucntion
is returning success.
* Adapt device drivers -- currently, all driver probe routines return
"no match" if ISA_DIRECT_CONFIG() evaluates to true.
 1.2 13-Jun-2001  wiz branches: 1.2.2; 1.2.8;
withough -> without
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.8;
Initial import prep port.
 1.1.8.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file joy_isa.c was added on branch thorpej_scsipi on 2000-11-20 22:35:43 +0000
 1.2.8.3 28-Feb-2002  nathanw Catch up to -current.
 1.2.8.2 11-Jan-2002  nathanw More catchup.
 1.2.8.1 13-Jun-2001  nathanw file joy_isa.c was added on branch nathanw_sa on 2002-01-11 23:38:43 +0000
 1.2.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.2.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4 18-Feb-2005  drochner The joystick driver is using mi timing code for many months.
Noone complained, so we can remove the unused md versions.
 1.3 15-Jul-2003  lukem branches: 1.3.8; 1.3.10;
__KERNEL_RCSID()
 1.2 06-Sep-2002  gehenna branches: 1.2.6;
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 02-Feb-2002  jdolecek branches: 1.1.2; 1.1.4; 1.1.12;
Reduce the massive code duplication regarding joy(4). Split it into
MI and MD parts, and make ISA/ISAPNP/PCI joy(4) attachments MI.
 1.1.12.1 19-May-2002  gehenna Remove unnecessary #include
 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 02-Feb-2002  nathanw file joy_timer.c was added on branch nathanw_sa on 2002-02-28 04:11:29 +0000
 1.1.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.1.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.1.2.1 02-Feb-2002  jdolecek file joy_timer.c was added on branch kqueue on 2002-02-11 20:08:54 +0000
 1.2.6.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.2.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.6.1 03-Aug-2004  skrll Sync with HEAD
 1.3.10.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.3.8.1 29-Apr-2005  kent sync with -current
 1.3 02-Feb-2002  jdolecek Reduce the massive code duplication regarding joy(4). Split it into
MI and MD parts, and make ISA/ISAPNP/PCI joy(4) attachments MI.
 1.2 13-Jun-2001  wiz branches: 1.2.2; 1.2.8;
withough -> without
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.8;
Initial import prep port.
 1.1.8.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file joyvar.h was added on branch thorpej_scsipi on 2000-11-20 22:35:43 +0000
 1.2.8.2 28-Feb-2002  nathanw Catch up to -current.
 1.2.8.1 13-Jun-2001  nathanw file joyvar.h was added on branch nathanw_sa on 2002-02-28 04:11:29 +0000
 1.2.2.1 11-Feb-2002  jdolecek Sync w/ -current.
 1.2 17-Mar-2006  garbled ANSIfy all these files.. just formatting changes.
Remove kbdreg.h.. this was part of pccons, and was apparently missed long
ago.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.46; 1.1.60; 1.1.62; 1.1.64; 1.1.66; 1.1.68;
Initial import prep port.
 1.1.68.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.1.66.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.64.1 01-Apr-2006  yamt sync with head.
 1.1.62.1 22-Apr-2006  simonb Sync with head.
 1.1.60.1 09-Sep-2006  rpaulo sync with head
 1.1.46.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file kbdreg.h was added on branch thorpej_scsipi on 2000-11-20 22:35:44 +0000
 1.17 15-Jun-2006  garbled A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.16 14-May-2006  elad branches: 1.16.2; 1.16.4;
integrate kauth.
 1.15 17-Mar-2006  garbled ANSIfy all these files.. just formatting changes.
Remove kbdreg.h.. this was part of pccons, and was apparently missed long
ago.
 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 14-Sep-2004  drochner branches: 1.13.12;
adapt to ISA "unknown address" namespace separation (purely mechanical,
as far as "grep" reaches)
 1.12 10-Mar-2004  nonaka missing new-line after mc146818_attach().
 1.11 24-Nov-2003  tsutsui Set mcclock to BCD mode as before. Tested on 7248-133 43P.
 1.10 01-Nov-2003  tsutsui - Adapt mkclock_isa.c to MI mk48txx(4) changes.
- Switch mcclock_isa.c to use MI mc146818 driver.
- Use todr(9) interface with both todclock drivers.
 1.9 15-Jul-2003  lukem __KERNEL_RCSID()
 1.8 02-Oct-2002  thorpej branches: 1.8.6;
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 26-Feb-2002  kleink Add the same probe fig leaf as in the mk48txx attachment to prevent
false positives.
 1.4 25-Feb-2002  kleink Make the logic for wildcarding the I/O address actually achieve its purpose.
 1.3 21-Jan-2002  nonaka Fix panic at extent_free() in boot-time.

(ia->ia_io[0].ir_size is zero if noset iosiz in kernel config file.)
 1.2 07-Jan-2002  thorpej Overhaul of the ISA autoconfiguration code to support direct
configuration of devices logically attached to the ISA bus:

* Change the isa_attach_args to have arrays of io, mem, irq, drq
resources.
* Add a "pnpnames" and a linked list of "pnpcompatnames" to the
isa_attach_args. If either of these members are non-NULL,
direct configuration of the bus is being performed. Add an
ISA_DIRECT_CONFIG() macro to test for this.
* Drivers are not allowed to modify the isa_attach_args unless
direct configuration is not being performed and the probe fucntion
is returning success.
* Adapt device drivers -- currently, all driver probe routines return
"no match" if ISA_DIRECT_CONFIG() evaluates to true.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.10; 1.1.14;
Initial import prep port.
 1.1.14.3 18-Oct-2002  nathanw Catch up to -current.
 1.1.14.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.14.1 11-Jan-2002  nathanw More catchup.
 1.1.10.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.1.10.3 16-Mar-2002  jdolecek Catch up with -current.
 1.1.10.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.1.10.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file mcclock_isa.c was added on branch thorpej_scsipi on 2000-11-20 22:35:44 +0000
 1.8.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.8.6.1 03-Aug-2004  skrll Sync with HEAD
 1.13.12.1 21-Jun-2006  yamt sync with head.
 1.14.12.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.14.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.14.8.2 26-Jun-2006  yamt sync with head.
 1.14.8.1 01-Apr-2006  yamt sync with head.
 1.14.6.1 22-Apr-2006  simonb Sync with head.
 1.14.4.1 09-Sep-2006  rpaulo sync with head
 1.16.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.16.2.1 19-Jun-2006  chap Sync with head.
 1.10 15-Jun-2006  garbled A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.9 11-Dec-2005  christos branches: 1.9.4; 1.9.8; 1.9.14; 1.9.16;
merge ktrace-lwp.
 1.8 14-Sep-2004  drochner branches: 1.8.12;
adapt to ISA "unknown address" namespace separation (purely mechanical,
as far as "grep" reaches)
 1.7 01-Mar-2004  kleink Insert a newline after autoconf output.
 1.6 01-Nov-2003  tsutsui - Adapt mkclock_isa.c to MI mk48txx(4) changes.
- Switch mcclock_isa.c to use MI mc146818 driver.
- Use todr(9) interface with both todclock drivers.
 1.5 02-Oct-2002  thorpej branches: 1.5.6;
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 04-Mar-2002  wiz branches: 1.2.4;
Correct misspellings of "failed".
 1.1 25-Feb-2002  kleink branches: 1.1.2;
Add an attachment for the MK48T18 RTC/NVRAM found on some Motorola boards.
 1.1.2.4 18-Oct-2002  nathanw Catch up to -current.
 1.1.2.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.2.1 25-Feb-2002  nathanw file mkclock_isa.c was added on branch nathanw_sa on 2002-02-28 04:11:30 +0000
 1.2.4.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.4.2 16-Mar-2002  jdolecek Catch up with -current.
 1.2.4.1 04-Mar-2002  jdolecek file mkclock_isa.c was added on branch kqueue on 2002-03-16 15:59:22 +0000
 1.5.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.6.1 03-Aug-2004  skrll Sync with HEAD
 1.8.12.1 21-Jun-2006  yamt sync with head.
 1.9.16.1 13-Jul-2006  gdamore Merge from HEAD.
 1.9.14.1 19-Jun-2006  chap Sync with head.
 1.9.8.1 26-Jun-2006  yamt sync with head.
 1.9.4.1 09-Sep-2006  rpaulo sync with head
 1.19 29-Feb-2020  isaki Remove rounding by 4 bytes on round_blocksize().
For drivers which supports only 16bit * 2channels sampling,
rounding by 4 bytes no longer meaningful.
 1.18 08-May-2019  isaki branches: 1.18.4;
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.17 16-Mar-2019  isaki branches: 1.17.2;
Use C99 style struct initializer to audio_hw_if.
 1.16 24-Nov-2011  mrg branches: 1.16.50;
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.15 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.14 01-Jul-2011  dyoung branches: 1.14.2; 1.14.4;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.13 02-Jun-2011  tsutsui Split device_t/softc of all ad1848 variants properly. Compile test only.

Please check all attribute users in all files.* on device_t/softc split.

XXX: not sure if gus(4) needs device_t in ad1848_isa_softc
 1.12 28-Apr-2008  martin branches: 1.12.22; 1.12.28; 1.12.32;
Remove clause 3 and 4 from TNF licenses
 1.11 17-Oct-2007  garbled branches: 1.11.16; 1.11.18; 1.11.20;
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.10 11-Dec-2005  christos branches: 1.10.28; 1.10.30; 1.10.38; 1.10.48; 1.10.50; 1.10.52; 1.10.54;
merge ktrace-lwp.
 1.9 15-Jan-2005  kent branches: 1.9.10;
ansify and KNF
 1.8 29-Oct-2004  yamt constify audio_hw_if, midi_hw_if, and radio_hw_if.
 1.7 24-Apr-2004  rjs Use new isa_attach_args structures.
 1.6 15-Jul-2003  lukem __KERNEL_RCSID()
 1.5 02-Oct-2002  thorpej branches: 1.5.6;
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 03-Oct-2001  augustss branches: 1.2.4;
Add a new optional method, dev_ioctl, to the audio hardware driver interface.
It is called when an unrecognized ioctl() is performed on a device,
thus allowing ioctl()s that frob the hardware driver (like loading
microcode).
 1.1 06-Dec-2000  matt branches: 1.1.2; 1.1.4; 1.1.6;
Add ThinkPad 820 audio driver (attaches but does not yet work).
 1.1.6.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.6.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.4.1 11-Oct-2001  fvdl Catch up with -current. Fix some bogons in the sparc64 kbd/ms
attach code. cd18xx conversion provided by mrg.
 1.1.2.2 08-Dec-2000  bouyer Sync with HEAD.
 1.1.2.1 06-Dec-2000  bouyer file paud_isa.c was added on branch thorpej_scsipi on 2000-12-08 09:30:21 +0000
 1.2.4.2 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.1 03-Oct-2001  nathanw file paud_isa.c was added on branch nathanw_sa on 2002-10-18 02:39:34 +0000
 1.5.6.5 17-Jan-2005  skrll Sync with HEAD.
 1.5.6.4 02-Nov-2004  skrll Sync with HEAD.
 1.5.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.6.1 03-Aug-2004  skrll Sync with HEAD
 1.9.10.1 27-Oct-2007  yamt sync with head.
 1.10.54.1 25-Oct-2007  bouyer Sync with HEAD.
 1.10.52.1 18-Oct-2007  yamt sync with head.
 1.10.50.1 06-Nov-2007  matt sync with HEAD
 1.10.48.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.10.38.1 10-May-2007  garbled convert printf's to aprint_*.
 1.10.30.1 23-Oct-2007  ad Sync with head.
 1.10.28.1 27-Feb-2007  ad Add MP locking for audio drivers.
 1.11.20.1 16-May-2008  yamt sync with head.
 1.11.18.1 18-May-2008  yamt sync with head.
 1.11.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.12.32.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.12.28.1 06-Jun-2011  jruoho Sync with HEAD.
 1.12.22.1 12-Jun-2011  rmind sync with head
 1.14.4.2 22-Nov-2011  jmcneill get rid of unused 'powerstate' callback in audio_hw_if
 1.14.4.1 20-Nov-2011  jmcneill adapt to audiomp api changes
 1.14.2.1 17-Apr-2012  yamt sync with head
 1.16.50.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.16.50.1 10-Jun-2019  christos Sync with HEAD
 1.17.2.2 04-May-2019  isaki Move dev/audio_if.h -> dev/audio/audio_if.h
 1.17.2.1 21-Apr-2019  isaki Adapt ad1848/cs4231 families to audio2.
 1.18.4.1 29-Feb-2020  ad Sync with head.
 1.9 21-Nov-2001  soren prep has no special dependencies on pccons; remove.
 1.8 22-Jul-2001  wiz branches: 1.8.2; 1.8.6;
bcopy -> memmove
 1.7 15-Jun-2001  nonaka branches: 1.7.2;
Compile again.
 1.6 02-May-2001  scw Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
 1.5 02-Nov-2000  eeh branches: 1.5.2; 1.5.4;
Adapt to new line discipline scheme.
 1.4 26-Jun-2000  simonb Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes. Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
 1.3 02-May-2000  nonaka branches: 1.3.4;
add cn_bell to struct consdevs pccons.
 1.2 23-Mar-2000  thorpej New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.3.4.1 30-Jun-2000  simonb Pull up mmap paddr_t/off_t changes from trunk.
 1.5.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.5.2.3 22-Nov-2000  bouyer Sync with HEAD.
 1.5.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.2.1 02-Nov-2000  bouyer file pccons.c was added on branch thorpej_scsipi on 2000-11-20 22:35:44 +0000
 1.7.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.7.2.1 03-Aug-2001  lukem update to -current
 1.8.6.3 28-Feb-2002  nathanw Catch up to -current.
 1.8.6.2 05-Nov-2001  briggs Initial SA support for ppc. Test-booted on sandpoint, macppc, & walnut.
mcontext and cpu_getmcontext()/cpu_setmcontext() from Klaus Klein
<kleink@netbsd.org>.
 1.8.6.1 22-Jul-2001  briggs file pccons.c was added on branch nathanw_sa on 2001-11-05 19:46:20 +0000
 1.8.2.2 13-Oct-2001  fvdl Revert the t_dev -> t_devvp change in struct tty. The way that tty
structs are currently used (especially by console ttys) aren't
ready for it, and this will require quite a few changes.
 1.8.2.1 10-Oct-2001  fvdl Convert all remaining devices.
 1.24 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.23 24-Apr-2021  thorpej branches: 1.23.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.22 21-Nov-2020  thorpej branches: 1.22.2;
malloc(9) -> kmem(9)
 1.21 10-Nov-2019  chs branches: 1.21.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.20 01-Jul-2011  dyoung branches: 1.20.54;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.19 18-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.18 17-Dec-2008  cegger branches: 1.18.12;
kill MALLOC and FREE macros.
 1.17 28-Apr-2008  martin branches: 1.17.8;
Remove clause 3 and 4 from TNF licenses
 1.16 17-Oct-2007  garbled branches: 1.16.16; 1.16.18; 1.16.20;
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.15 04-Mar-2007  christos branches: 1.15.2; 1.15.10; 1.15.18; 1.15.20; 1.15.22; 1.15.24;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.14 09-May-2006  garbled branches: 1.14.14;
More KNF. That should be the rest of the .c files.
 1.13 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.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 23-Apr-2004  itojun branches: 1.11.12;
pass string length (= boundary info) to pci_devinfo so that we do not run over
the end of memory region
 1.10 13-Nov-2003  chs 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.9 15-Jul-2003  lukem __KERNEL_RCSID()
 1.8 02-Oct-2002  thorpej branches: 1.8.6;
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 04-Jul-2002  junyoung alloc_attr -> allocattr

Approved by Matthias Drochner.
 1.4 17-Mar-2002  atatat branches: 1.4.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.3 24-Feb-2002  kleink In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.2 02-Dec-2000  matt branches: 1.2.2; 1.2.6; 1.2.10;
Cleanup/fixup gten support. Add TNF copyright (opps). This now outputs
text correctly. There is no colormap support (e.g. the mechanisms are in
place but does yet talk to the hardware).
 1.1 01-Dec-2000  matt Add support for the IBM ThinkPad 820 G10 display (which is a WD90C24A behind
a funky PCI-VLBUS bridge).
 1.2.10.4 18-Oct-2002  nathanw Catch up to -current.
 1.2.10.3 01-Aug-2002  nathanw Catch up to -current.
 1.2.10.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.10.1 28-Feb-2002  nathanw Catch up to -current.
 1.2.6.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.6.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.6.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.6.1 16-Mar-2002  jdolecek Catch up with -current.
 1.2.2.2 08-Dec-2000  bouyer Sync with HEAD.
 1.2.2.1 02-Dec-2000  bouyer file gten.c was added on branch thorpej_scsipi on 2000-12-08 09:30:21 +0000
 1.4.4.1 16-Jul-2002  gehenna catch up with -current.
 1.8.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.8.6.1 03-Aug-2004  skrll Sync with HEAD
 1.11.12.3 27-Oct-2007  yamt sync with head.
 1.11.12.2 03-Sep-2007  yamt sync with head.
 1.11.12.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.2 11-May-2006  elad sync with head
 1.12.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.12.8.1 24-May-2006  yamt sync with head.
 1.12.6.2 01-Jun-2006  kardel Sync with head.
 1.12.6.1 22-Apr-2006  simonb Sync with head.
 1.12.4.1 09-Sep-2006  rpaulo sync with head
 1.14.14.1 12-Mar-2007  rmind Sync with HEAD.
 1.15.24.1 25-Oct-2007  bouyer Sync with HEAD.
 1.15.22.1 18-Oct-2007  yamt sync with head.
 1.15.20.1 06-Nov-2007  matt sync with HEAD
 1.15.18.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.15.10.1 10-May-2007  garbled convert printf's to aprint_*.
 1.15.2.1 23-Oct-2007  ad Sync with head.
 1.16.20.2 04-May-2009  yamt sync with head.
 1.16.20.1 16-May-2008  yamt sync with head.
 1.16.18.1 18-May-2008  yamt sync with head.
 1.16.16.2 17-Jan-2009  mjf Sync with HEAD.
 1.16.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.17.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.18.12.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.20.54.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.21.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.22.2.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.23.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.9 19-Oct-2025  thorpej Use {,e}isabus_attach().
 1.8 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.7 24-Apr-2021  thorpej branches: 1.7.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.6 01-Jul-2011  dyoung branches: 1.6.68;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.5 18-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.4 06-Jun-2011  matt More device_t, cfdata, CFATTACH_DECL_NEW cleanup.
 1.3 28-Apr-2008  martin branches: 1.3.22; 1.3.32;
Remove clause 3 and 4 from TNF licenses
 1.2 17-Oct-2007  garbled branches: 1.2.16; 1.2.18; 1.2.20;
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.1 23-Feb-2006  garbled branches: 1.1.2; 1.1.10; 1.1.16; 1.1.22; 1.1.32; 1.1.40; 1.1.50; 1.1.52; 1.1.54; 1.1.56;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.1.56.1 25-Oct-2007  bouyer Sync with HEAD.
 1.1.54.1 18-Oct-2007  yamt sync with head.
 1.1.52.1 06-Nov-2007  matt sync with HEAD
 1.1.50.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.1.40.2 10-May-2007  garbled convert printf's to aprint_*.
 1.1.40.1 01-May-2007  garbled Rename the prep isa io and mem bus space tags to genppc_* to promote
sharing of isa functionality.
 1.1.32.1 23-Oct-2007  ad Sync with head.
 1.1.22.2 09-Sep-2006  rpaulo sync with head
 1.1.22.1 23-Feb-2006  rpaulo file pceb.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:43 +0000
 1.1.16.3 27-Oct-2007  yamt sync with head.
 1.1.16.2 21-Jun-2006  yamt sync with head.
 1.1.16.1 23-Feb-2006  yamt file pceb.c was added on branch yamt-lazymbuf on 2006-06-21 14:55:19 +0000
 1.1.10.2 22-Apr-2006  simonb Sync with head.
 1.1.10.1 23-Feb-2006  simonb file pceb.c was added on branch simonb-timecounters on 2006-04-22 11:37:54 +0000
 1.1.2.2 01-Mar-2006  yamt sync with head.
 1.1.2.1 23-Feb-2006  yamt file pceb.c was added on branch yamt-uio_vmspace on 2006-03-01 09:28:02 +0000
 1.2.20.1 16-May-2008  yamt sync with head.
 1.2.18.1 18-May-2008  yamt sync with head.
 1.2.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.3.32.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.3.22.1 12-Jun-2011  rmind sync with head
 1.6.68.1 02-Apr-2021  thorpej config_found_ia() -> config_found() w/ CFARG_IATTR.
 1.7.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.10 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.9 17-Mar-2006  garbled branches: 1.9.18; 1.9.26; 1.9.36; 1.9.38; 1.9.40; 1.9.42;
ANSIfy more code in prep.
 1.8 11-Dec-2005  christos branches: 1.8.4; 1.8.6; 1.8.8; 1.8.10; 1.8.12;
merge ktrace-lwp.
 1.7 23-Apr-2004  itojun branches: 1.7.12;
pass string length (= boundary info) to pci_devinfo so that we do not run over
the end of memory region
 1.6 15-Jul-2003  lukem __KERNEL_RCSID()
 1.5 02-Oct-2002  thorpej branches: 1.5.6;
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 12-Dec-2001  kleink The MPC105 does not implement the IBM reference implementation's
Equipment Present Register (I/O port 0x080c), so perform L2 cache
detection here.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.10; 1.1.14;
Initial import prep port.
 1.1.14.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.14.1 08-Jan-2002  nathanw Catch up to -current.
 1.1.10.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.10.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file pchb.c was added on branch thorpej_scsipi on 2000-11-20 20:23:04 +0000
 1.5.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.6.1 03-Aug-2004  skrll Sync with HEAD
 1.7.12.2 27-Oct-2007  yamt sync with head.
 1.7.12.1 21-Jun-2006  yamt sync with head.
 1.8.12.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.8.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.8.8.1 01-Apr-2006  yamt sync with head.
 1.8.6.1 22-Apr-2006  simonb Sync with head.
 1.8.4.1 09-Sep-2006  rpaulo sync with head
 1.9.42.1 25-Oct-2007  bouyer Sync with HEAD.
 1.9.40.1 18-Oct-2007  yamt sync with head.
 1.9.38.1 06-Nov-2007  matt sync with HEAD
 1.9.36.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.9.26.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.9.18.1 23-Oct-2007  ad Sync with head.
 1.44 21-Nov-2020  thorpej malloc(9) -> kmem(9)
 1.43 10-Nov-2019  chs branches: 1.43.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.42 19-Oct-2016  nonaka branches: 1.42.16;
Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.
 1.41 18-Oct-2014  snj branches: 1.41.2; 1.41.4;
src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
 1.40 03-Apr-2014  mrg GCC 4.8 build fixes from John D. Baker
 1.39 26-Mar-2014  christos kill sprintf
 1.38 13-Oct-2011  matt branches: 1.38.2; 1.38.12; 1.38.16;
Init MSI hooks.
 1.37 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.36 30-Jun-2011  matt Modify mapiodev to take a third argument indicating whether the space
should be prefetchable (true) or not (false).
 1.35 22-Jun-2011  matt Add support pci_intr_setattr.
Export non-inline version of pci api for modules (_MODULE is defined).
Fix definition of pc_conf_hook and pc_conf_interrupt.
Switch to using inlines instead of macros.
Switch ibm4xx to use <powerpc/pci_machdep.h>
 1.34 04-Apr-2011  dyoung Neither pci_dma64_available(), pci_probe_device(), pci_mapreg_map(9),
pci_find_rom(), pci_intr_map(9), pci_enumerate_bus(), nor the match
predicate passed to pciide_compat_intr_establish() should ever modify
their pci_attach_args argument, so make their pci_attach_args arguments
const and deal with the fallout throughout the kernel.

For the most part, these changes add a 'const' where there was no
'const' before, however, some drivers and MD code used to modify
pci_attach_args. Now those drivers either copy their pci_attach_args
and modify the copy, or refrain from modifying pci_attach_args:

Xen: according to Manuel Bouyer, writing to pci_attach_args in
pci_intr_map() was a leftover from Xen 2. Probably a bug. I
stopped writing it. I have not tested this change.

siside(4): sis_hostbr_match() needlessly wrote to pci_attach_args.
Probably a bug. I use a temporary variable. I have not tested this
change.

slide(4): sl82c105_chip_map() overwrote the caller's pci_attach_args.
Probably a bug. Use a local pci_attach_args. I have not tested
this change.

viaide(4): via_sata_chip_map() and via_sata_chip_map_new() overwrote the
caller's pci_attach_args. Probably a bug. Make a local copy of the
caller's pci_attach_args and modify the copy. I have not tested
this change.

While I'm here, make pci_mapreg_submap() static.

With these changes in place, I have tested the compilation of these
kernels:

alpha GENERIC
amd64 GENERIC XEN3_DOM0
arc GENERIC
atari HADES MILAN-PCIIDE
bebox GENERIC
cats GENERIC
cobalt GENERIC
evbarm-eb NSLU2
evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE GUMSTIX
HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321 IXDP425 IXM1200
KUROBOX_PRO LUBBOCK MARVELL_NAS NAPPI SHEEVAPLUG SMDK2800 TEAMASA_NPWR
TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425
evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3
evbmips64-el XLSATX
evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266
OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT
hp700 GENERIC
i386 ALL XEN3_DOM0 XEN3_DOMU
ibmnws GENERIC
macppc GENERIC
mvmeppc GENERIC
netwinder GENERIC
ofppc GENERIC
prep GENERIC
sandpoint GENERIC
sgimips GENERIC32_IP2x
sparc GENERIC_SUN4U KRUPS
sparc64 GENERIC

As of Sun Apr 3 15:26:26 CDT 2011, I could not compile these kernels
with or without my patches in place:

### evbmips-el GDIUM

nbmake: nbmake: don't know how to make /home/dyoung/pristine-nbsd/src/sys/arch/mips/mips/softintr.c. Stop

### evbarm-el MPCSA_GENERIC
src/sys/arch/evbarm/conf/MPCSA_GENERIC:318: ds1672rtc*: unknown device `ds1672rtc'

### ia64 GENERIC

/tmp/genassym.28085/assym.c: In function 'f111':
/tmp/genassym.28085/assym.c:67: error: invalid application of 'sizeof' to incomplete type 'struct pcb'
/tmp/genassym.28085/assym.c:76: error: dereferencing pointer to incomplete type

### sgimips GENERIC32_IP3x

crmfb.o: In function `crmfb_attach':
crmfb.c:(.text+0x2304): undefined reference to `ddc_read_edid'
crmfb.c:(.text+0x2304): relocation truncated to fit: R_MIPS_26 against `ddc_read_edid'
crmfb.c:(.text+0x234c): undefined reference to `edid_parse'
crmfb.c:(.text+0x234c): relocation truncated to fit: R_MIPS_26 against `edid_parse'
crmfb.c:(.text+0x2354): undefined reference to `edid_print'
crmfb.c:(.text+0x2354): relocation truncated to fit: R_MIPS_26 against `edid_print'
 1.33 13-Dec-2010  matt branches: 1.33.2;
Change definition of pc_bus_maxdevs to get a void * instead a pci_chipset_tag_t
to match its use in pci_bus_maxdevs. This makes it the same as pci_conf_read
and pci_conf_write.
Change all struct device * to device_t.
[Obviously nothing ever used the first argument to pc_bus_maxdevs since it
could have never worked because it wasn't being passed a pci_chipset_tag_t.]
 1.32 17-Oct-2007  garbled branches: 1.32.42; 1.32.46;
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.31 22-Mar-2007  garbled branches: 1.31.4; 1.31.12; 1.31.14; 1.31.16; 1.31.18;
When we have a non-PReP pci bridge, we need to perform a single swizzle
on the pin, to get us the right pin on the underlying PReP bridge to wire
the interrupt to. Tested with a 4-port fxp card on a 7043-140. Thanks
to simon for helping me get the math right.
 1.30 21-Mar-2007  garbled Add a second check to the prep-pci-intrmap test, to make sure the dictionary
actually contains entries. It is apparently possible to get a non-null,
but empty dictionary back. This seems to happen if you inject a ppb-card
on pci0 when you also have a prep pci1 at a later device function. With
this, my fxp card works in any slot on my 7043-140.
 1.29 20-Mar-2007  garbled The motorola RAVEN is both a pchb and an MPIC. Block out the pci
configuration of it's mem area to keep the PIC available.
 1.28 06-Sep-2006  garbled branches: 1.28.6; 1.28.8; 1.28.12; 1.28.14; 1.28.16;
Add preliminary support for the 7025-F40. The MPIC must not be wired up
by the initial PCI_NETBSD_CONFIGURE, nor should it be manually wired by
the indirect stuff. This is all taken care of by the prep_init() function.
7025-F40 support supports the primary pci bus only. The second PCI bus
on the machine is still unsupported, but the machine runs and can access
everything except for the two slots the other bus covers.
 1.27 09-Jun-2006  garbled branches: 1.27.4;
Completely rework how we look up PCI interrupts on prep:

1) Rather than build an array of the pci->intr mappings, build a proplib
tree.
2) add a SIMPLEQ of device properties to the pci_chipset_tag to hold the
proplib trees of each bus.
3) Move the interrupt routing code from pci_conf_interrupt to pci_map_intr()
4) Deal properly with non-native PCI bridge chips that are not recognized
by the prep firmware, and therefore are not noted in the residual data.

The major win of this restructure is #4. Hopefully I haven't broken
anything. Tested on a 7248-100, 7043-140 and 7024-E20.
 1.26 25-May-2006  garbled Implement partial support for the RS6K PCI Bridge found on 7025-F40
models. This code was made possible by assistance from Cory Bajus.

Add code that asks the PCI bridge what it's config base address is, and
use that when wiring up an indirect bridge type.
Move prep's user segment register to 10, because the 7025's PCI config
address is at 11, where the user segment used to be.
Add a battable entry for 0xbf800000 for machines with RS6K bridges.

There is still probably work left to be done before a 7025-F40 is fully
supported.
 1.25 25-Apr-2006  snj branches: 1.25.2;
s/allready/already/
 1.24 09-Mar-2006  garbled branches: 1.24.2;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.23 23-Feb-2006  garbled branches: 1.23.2; 1.23.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.22 10-Feb-2006  gdamore PCI_NETBSD_CONFIGURE should allocate (but not map) address space expansion
ROMS by default. Full discussion at
http://mail-index.netbsd.org/tech-kern/2005/12/16/0023.html
Closes PR kern/32467
Reviewed by briggs@
 1.21 11-Dec-2005  christos branches: 1.21.2; 1.21.4; 1.21.6;
merge ktrace-lwp.
 1.20 28-Jun-2005  skrll branches: 1.20.2;
RCSId police.
 1.19 13-Jan-2005  kleink Pass the interrupt swizzle down to the platforms' fixup functions.
N.B. Only using it on the ulmb60xa for now.
 1.18 15-Jul-2003  lukem __KERNEL_RCSID()
 1.17 27-Sep-2002  provos branches: 1.17.6;
remove trailing \n in panic(). approved perry.
 1.16 25-Feb-2002  kleink Declare the id argument to pci_conf_hook(9) as pcireg_t, which is more
appropriate.
 1.15 24-Feb-2002  kleink In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.14 29-Oct-2001  thorpej branches: 1.14.2;
pci_conf_interrupt() takes bus/dev/pin, not bus/dev/func.
 1.13 20-Jun-2001  nonaka branches: 1.13.2; 1.13.6;
Seprate model depended code. (based on arc 'struct platform')

files.prep:
- add new files entry.

pci_machdep.c:
- use dev/pci/pciconf.c instead of mine for pci io/mem addr/intr fixup.

cpu.c:
- separate code

machdep.c:
- call ident_platform()

mainbus.c:
- call pci_configure_bus(), if defined PCI_NETBSD_CONFIGURE

ibm_machdep.c:
- for IBM PReP generic

ibm_6050.c:
- for IBM Personal Power Series 830/850

ibm_7248.c:
- for IBM RS6000/43P deppendency
 1.12 19-Jun-2001  nonaka Back out last changes.
 1.11 17-Jun-2001  nonaka identified prep model.
 1.10 15-Jun-2001  nonaka Use new common bus.h framework.
 1.9 15-May-2001  lukem delint: don't try & return something from void pci_intr_disestablish()
 1.8 28-Dec-2000  sommerfeld branches: 1.8.2;
Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

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

Tested on alpha and i386; welcome to 1.5Q
 1.7 27-Nov-2000  matt Rework bus_space to conform the PReP I/O & MEM limits. Add a few debugging
printfs concerning interrupts.
 1.6 29-Jun-2000  mrg branches: 1.6.2;
remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.5 26-Jun-2000  mrg remove/move more mach vm header files:

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

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
 1.4 21-Jun-2000  nonaka - rewrite enable io/mem space code.
(rewriten by Tim Rightnour <garbled@netbsd.org>, thanks!)
- more fixup pci base address.
 1.3 04-Jun-2000  cgd branches: 1.3.2;
Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
 1.2 25-Mar-2000  nonaka branches: 1.2.2;
more fixup pci base address
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.2.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.3.2.1 26-Jun-2000  nonaka pull up rev 1.4

- rewrite enable io/mem space code.
(rewriten by Tim Rightnour <garbled@netbsd.org>, thanks!)
- more fixup pci base address.
 1.6.2.4 05-Jan-2001  bouyer Sync with HEAD
 1.6.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.6.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.6.2.1 29-Jun-2000  bouyer file pci_machdep.c was added on branch thorpej_scsipi on 2000-11-20 20:23:04 +0000
 1.8.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.13.6.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.13.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.13.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.13.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.14.2.3 18-Oct-2002  nathanw Catch up to -current.
 1.14.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.14.2.1 29-Oct-2001  nathanw file pci_machdep.c was added on branch nathanw_sa on 2002-02-28 04:11:30 +0000
 1.17.6.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.17.6.4 17-Jan-2005  skrll Sync with HEAD.
 1.17.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.17.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.17.6.1 03-Aug-2004  skrll Sync with HEAD
 1.20.2.4 27-Oct-2007  yamt sync with head.
 1.20.2.3 03-Sep-2007  yamt sync with head.
 1.20.2.2 30-Dec-2006  yamt sync with head.
 1.20.2.1 21-Jun-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.21.2.2 01-Mar-2006  yamt sync with head.
 1.21.2.1 18-Feb-2006  yamt sync with head.
 1.23.4.2 11-May-2006  elad sync with head
 1.23.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.23.2.4 14-Sep-2006  yamt sync with head.
 1.23.2.3 26-Jun-2006  yamt sync with head.
 1.23.2.2 24-May-2006  yamt sync with head.
 1.23.2.1 13-Mar-2006  yamt sync with head.
 1.24.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.25.2.1 19-Jun-2006  chap Sync with head.
 1.27.4.1 08-Sep-2006  rpaulo Pull up following revision(s) (requested by garbled in ticket #128):
sys/arch/prep/pci/pci_machdep.c: revision 1.28
sys/arch/prep/pci/prep_pciconf_indirect.c: revision 1.8
Add preliminary support for the 7025-F40. The MPIC must not be wired up
by the initial PCI_NETBSD_CONFIGURE, nor should it be manually wired by
the indirect stuff. This is all taken care of by the prep_init() function.
7025-F40 support supports the primary pci bus only. The second PCI bus
on the machine is still unsupported, but the machine runs and can access
everything except for the two slots the other bus covers.
 1.28.16.1 29-Mar-2007  reinoud Pullup to -current
 1.28.14.1 11-Jul-2007  mjf Sync with head.
 1.28.12.2 23-Oct-2007  ad Sync with head.
 1.28.12.1 10-Apr-2007  ad Sync with head.
 1.28.8.1 24-Mar-2007  yamt sync with head.
 1.28.6.3 31-Mar-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #538):
sys/arch/prep/pci/pci_machdep.c: revision 1.31
When we have a non-PReP pci bridge, we need to perform a single swizzle
on the pin, to get us the right pin on the underlying PReP bridge to wire
the interrupt to. Tested with a 4-port fxp card on a 7043-140. Thanks
to simon for helping me get the math right.
 1.28.6.2 31-Mar-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #529):
sys/arch/prep/pci/pci_machdep.c: revision 1.30
Add a second check to the prep-pci-intrmap test, to make sure the dictionary
actually contains entries. It is apparently possible to get a non-null,
but empty dictionary back. This seems to happen if you inject a ppb-card
on pci0 when you also have a prep pci1 at a later device function. With
this, my fxp card works in any slot on my 7043-140.
 1.28.6.1 31-Mar-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #528):
sys/arch/prep/pci/pci_machdep.c: revision 1.29
sys/arch/prep/pnpbus/wdc_pnpbus.c: revision 1.6
Special case the MTX604 and other RAVEN based machines to not attach
wdc@pnpbus.
The motorola RAVEN is both a pchb and an MPIC. Block out the pci
configuration of it's mem area to keep the PIC available.
 1.31.18.1 25-Oct-2007  bouyer Sync with HEAD.
 1.31.16.1 18-Oct-2007  yamt sync with head.
 1.31.14.1 06-Nov-2007  matt sync with HEAD
 1.31.12.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.31.4.4 10-May-2007  garbled convert printf's to aprint_*.
 1.31.4.3 09-May-2007  garbled Convert pmppc to generic pci. Also fix the prototype for
pci_conf_interrupt while I'm here.
 1.31.4.2 01-May-2007  garbled change prep_pct to genppc_pct to share better
 1.31.4.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.32.46.1 07-Jan-2011  matt Change bus_maxdevs to be passed pc->pc_conf_v instead pc (e.g. like the
rest of the conf calls).
 1.32.42.2 21-Apr-2011  rmind sync with head
 1.32.42.1 05-Mar-2011  rmind sync with head
 1.33.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.38.16.1 18-May-2014  rmind sync with head
 1.38.12.2 03-Dec-2017  jdolecek update from HEAD
 1.38.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.38.2.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.41.4.1 04-Nov-2016  pgoyette Sync with HEAD
 1.41.2.1 05-Dec-2016  skrll Sync with HEAD
 1.42.16.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.43.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.21 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.20 26-Apr-2007  garbled branches: 1.20.2; 1.20.10; 1.20.12; 1.20.14; 1.20.16;
Rather than use the residual data to guess that we have a raven pchb,
note the raven pchb in device_register, and then look that up when
attaching the pcib.
 1.19 26-Apr-2007  garbled Add special code to properly detect a W83C553 pcib sitting on a RAVEN
based machine. When we do, we have to frob a few special bits on the
pcib to finish the setup that the prom didn't bother completing for us.
With this change, NetBSD finally runs on the MTX604 board.. Many thanks
to John Baker for providing remote access to the machine, and rebooting
it repeatedly for me.
 1.18 01-Sep-2006  garbled branches: 1.18.6; 1.18.8; 1.18.12; 1.18.14;
Fix a horrible bug in how we initialize the 8259 interrupt controller.
The bug displayed itself by locking up console output on a 7043-140
following a powercycle. This may also have been the cause of bogus
interrupts on motorola class machines.
 1.17 21-Jun-2006  garbled branches: 1.17.2;
Attach the pnpbus prior to attaching the pci bus on the prep. This
should allow us to probe for both pnp-attached devices and isa-attached
devices while preferring the pnpbus attachment point.
 1.16 17-Mar-2006  garbled branches: 1.16.4;
ANSIfy more code in prep.
 1.15 09-Mar-2006  garbled branches: 1.15.2;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.14 11-Dec-2005  christos branches: 1.14.4; 1.14.6; 1.14.8; 1.14.10;
merge ktrace-lwp.
 1.13 30-Aug-2004  drochner branches: 1.13.12;
Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
 1.12 23-Apr-2004  itojun pass string length (= boundary info) to pci_devinfo so that we do not run over
the end of memory region
 1.11 15-Jul-2003  lukem __KERNEL_RCSID()
 1.10 16-Jan-2003  matt branches: 1.10.2;
Add platform support for the IBM PPS Model 6040 (E) (aka ThinkPad 820).
 1.9 01-Jan-2003  thorpej Use aprint_normal() for cfprint routines.
 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 22-Jul-2001  wiz branches: 1.5.6;
bcopy -> memcpy, bzero -> memset
 1.4 15-Jun-2001  nonaka branches: 1.4.2;
Use new common bus.h framework.
 1.3 22-Dec-2000  tsutsui branches: 1.3.2;
Add missing printf args.
 1.2 27-Nov-2000  matt Rework bus_space to conform the PReP I/O & MEM limits. Add a few debugging
printfs concerning interrupts.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.4 05-Jan-2001  bouyer Sync with HEAD
 1.1.6.3 08-Dec-2000  bouyer Sync with HEAD.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file pcib.c was added on branch thorpej_scsipi on 2000-11-20 20:23:04 +0000
 1.3.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.4.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.4.2.1 03-Aug-2001  lukem update to -current
 1.5.6.4 17-Jan-2003  thorpej Sync with HEAD.
 1.5.6.3 03-Jan-2003  thorpej Sync with HEAD.
 1.5.6.2 18-Oct-2002  nathanw Catch up to -current.
 1.5.6.1 22-Jul-2001  nathanw file pcib.c was added on branch nathanw_sa on 2002-10-18 02:39:35 +0000
 1.10.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.10.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.10.2.2 03-Sep-2004  skrll Sync with HEAD
 1.10.2.1 03-Aug-2004  skrll Sync with HEAD
 1.13.12.4 27-Oct-2007  yamt sync with head.
 1.13.12.3 03-Sep-2007  yamt sync with head.
 1.13.12.2 30-Dec-2006  yamt sync with head.
 1.13.12.1 21-Jun-2006  yamt sync with head.
 1.14.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.14.8.4 03-Sep-2006  yamt sync with head.
 1.14.8.3 26-Jun-2006  yamt sync with head.
 1.14.8.2 01-Apr-2006  yamt sync with head.
 1.14.8.1 13-Mar-2006  yamt sync with head.
 1.14.6.1 22-Apr-2006  simonb Sync with head.
 1.14.4.1 09-Sep-2006  rpaulo sync with head
 1.15.2.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.16.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.17.2.1 02-Sep-2006  riz Pull up following revision(s) (requested by garbled in ticket #93):
sys/arch/prep/pci/pcib.c: revision 1.18
sys/arch/prep/prep/mainbus.c: revision 1.25
Fix a horrible bug in how we initialize the 8259 interrupt controller.
The bug displayed itself by locking up console output on a 7043-140
following a powercycle. This may also have been the cause of bogus
interrupts on motorola class machines.
 1.18.14.1 11-Jul-2007  mjf Sync with head.
 1.18.12.2 23-Oct-2007  ad Sync with head.
 1.18.12.1 27-May-2007  ad Sync with head.
 1.18.8.1 07-May-2007  yamt sync with head.
 1.18.6.1 28-Apr-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #591):
sys/arch/prep/pci/pcib.c: revision 1.19
Add special code to properly detect a W83C553 pcib sitting on a RAVEN
based machine. When we do, we have to frob a few special bits on the
pcib to finish the setup that the prom didn't bother completing for us.
With this change, NetBSD finally runs on the MTX604 board.. Many thanks
to John Baker for providing remote access to the machine, and rebooting
it repeatedly for me.
 1.20.16.1 25-Oct-2007  bouyer Sync with HEAD.
 1.20.14.1 18-Oct-2007  yamt sync with head.
 1.20.12.1 06-Nov-2007  matt sync with HEAD
 1.20.10.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.20.2.6 02-May-2007  garbled prep now uses the shared copies of isadma_machdep.c and pcib.c
 1.20.2.5 02-May-2007  garbled Commonize some more of this code to prepare for sharing
 1.20.2.4 01-May-2007  garbled Rename the prep isa io and mem bus space tags to genppc_* to promote
sharing of isa functionality.
 1.20.2.3 01-May-2007  garbled Change some isa things around in the prep port to promote sharing of isa
 1.20.2.2 01-May-2007  garbled change prep_pct to genppc_pct to share better
 1.20.2.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.10 19-Oct-2016  nonaka Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.
 1.9 02-Oct-2015  msaitoh branches: 1.9.2;
PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific
 1.8 01-Jul-2011  dyoung branches: 1.8.12; 1.8.30;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.7 18-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.6 17-Oct-2007  garbled branches: 1.6.52;
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.5 09-Jun-2006  garbled branches: 1.5.16; 1.5.24; 1.5.34; 1.5.36; 1.5.38; 1.5.40;
Completely rework how we look up PCI interrupts on prep:

1) Rather than build an array of the pci->intr mappings, build a proplib
tree.
2) add a SIMPLEQ of device properties to the pci_chipset_tag to hold the
proplib trees of each bus.
3) Move the interrupt routing code from pci_conf_interrupt to pci_map_intr()
4) Deal properly with non-native PCI bridge chips that are not recognized
by the prep firmware, and therefore are not noted in the residual data.

The major win of this restructure is #4. Hopefully I haven't broken
anything. Tested on a 7248-100, 7043-140 and 7024-E20.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.8; 1.4.14;
merge ktrace-lwp.
 1.3 15-Jul-2003  lukem branches: 1.3.16;
__KERNEL_RCSID()
 1.2 18-Mar-2003  matt branches: 1.2.2;
Switch/adapt to new bus space infrastructure.
 1.1 24-Feb-2002  kleink branches: 1.1.2; 1.1.8;
In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.1.8.2 16-Mar-2002  jdolecek Catch up with -current.
 1.1.8.1 24-Feb-2002  jdolecek file prep_pciconf_direct.c was added on branch kqueue on 2002-03-16 15:59:23 +0000
 1.1.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.2.1 24-Feb-2002  nathanw file prep_pciconf_direct.c was added on branch nathanw_sa on 2002-02-28 04:11:30 +0000
 1.2.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.2.1 03-Aug-2004  skrll Sync with HEAD
 1.3.16.2 27-Oct-2007  yamt sync with head.
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.4.14.1 19-Jun-2006  chap Sync with head.
 1.4.8.1 26-Jun-2006  yamt sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5.40.1 25-Oct-2007  bouyer Sync with HEAD.
 1.5.38.1 18-Oct-2007  yamt sync with head.
 1.5.36.1 06-Nov-2007  matt sync with HEAD
 1.5.34.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.5.24.2 10-May-2007  garbled convert printf's to aprint_*.
 1.5.24.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.5.16.1 23-Oct-2007  ad Sync with head.
 1.6.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.8.30.2 05-Dec-2016  skrll Sync with HEAD
 1.8.30.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.8.12.1 03-Dec-2017  jdolecek update from HEAD
 1.9.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.9 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.8 06-Sep-2006  garbled branches: 1.8.12; 1.8.20; 1.8.30; 1.8.32; 1.8.34; 1.8.36;
Add preliminary support for the 7025-F40. The MPIC must not be wired up
by the initial PCI_NETBSD_CONFIGURE, nor should it be manually wired by
the indirect stuff. This is all taken care of by the prep_init() function.
7025-F40 support supports the primary pci bus only. The second PCI bus
on the machine is still unsupported, but the machine runs and can access
everything except for the two slots the other bus covers.
 1.7 09-Jun-2006  garbled branches: 1.7.4;
Completely rework how we look up PCI interrupts on prep:

1) Rather than build an array of the pci->intr mappings, build a proplib
tree.
2) add a SIMPLEQ of device properties to the pci_chipset_tag to hold the
proplib trees of each bus.
3) Move the interrupt routing code from pci_conf_interrupt to pci_map_intr()
4) Deal properly with non-native PCI bridge chips that are not recognized
by the prep firmware, and therefore are not noted in the residual data.

The major win of this restructure is #4. Hopefully I haven't broken
anything. Tested on a 7248-100, 7043-140 and 7024-E20.
 1.6 25-May-2006  garbled Implement partial support for the RS6K PCI Bridge found on 7025-F40
models. This code was made possible by assistance from Cory Bajus.

Add code that asks the PCI bridge what it's config base address is, and
use that when wiring up an indirect bridge type.
Move prep's user segment register to 10, because the 7025's PCI config
address is at 11, where the user segment used to be.
Add a battable entry for 0xbf800000 for machines with RS6K bridges.

There is still probably work left to be done before a 7025-F40 is fully
supported.
 1.5 11-Dec-2005  christos branches: 1.5.4; 1.5.6; 1.5.8; 1.5.14;
merge ktrace-lwp.
 1.4 15-Jul-2003  lukem branches: 1.4.16;
__KERNEL_RCSID()
 1.3 05-Apr-2003  tsutsui branches: 1.3.2;
Include <machine/pio.h> for in32rb() and out32rb().
 1.2 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.1 24-Feb-2002  kleink branches: 1.1.2; 1.1.8; 1.1.12;
In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.1.12.1 15-Jul-2002  gehenna catch up with -current.
 1.1.8.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.8.2 16-Mar-2002  jdolecek Catch up with -current.
 1.1.8.1 24-Feb-2002  jdolecek file prep_pciconf_indirect.c was added on branch kqueue on 2002-03-16 15:59:23 +0000
 1.1.2.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.2.1 24-Feb-2002  nathanw file prep_pciconf_indirect.c was added on branch nathanw_sa on 2002-02-28 04:11:30 +0000
 1.3.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.2.1 03-Aug-2004  skrll Sync with HEAD
 1.4.16.3 27-Oct-2007  yamt sync with head.
 1.4.16.2 30-Dec-2006  yamt sync with head.
 1.4.16.1 21-Jun-2006  yamt sync with head.
 1.5.14.1 19-Jun-2006  chap Sync with head.
 1.5.8.2 14-Sep-2006  yamt sync with head.
 1.5.8.1 26-Jun-2006  yamt sync with head.
 1.5.6.1 01-Jun-2006  kardel Sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.7.4.1 08-Sep-2006  rpaulo Pull up following revision(s) (requested by garbled in ticket #128):
sys/arch/prep/pci/pci_machdep.c: revision 1.28
sys/arch/prep/pci/prep_pciconf_indirect.c: revision 1.8
Add preliminary support for the 7025-F40. The MPIC must not be wired up
by the initial PCI_NETBSD_CONFIGURE, nor should it be manually wired by
the indirect stuff. This is all taken care of by the prep_init() function.
7025-F40 support supports the primary pci bus only. The second PCI bus
on the machine is still unsupported, but the machine runs and can access
everything except for the two slots the other bus covers.
 1.8.36.1 25-Oct-2007  bouyer Sync with HEAD.
 1.8.34.1 18-Oct-2007  yamt sync with head.
 1.8.32.1 06-Nov-2007  matt sync with HEAD
 1.8.30.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.8.20.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.8.12.1 23-Oct-2007  ad Sync with head.
 1.6 24-Jul-2021  andvar Fix all remaining typos, mainly in comments but also in few definitions and log messages, reported by me in PR kern/54889.
Also fixed some additional typos in comments, found on review of same files or typos.
 1.5 13-Apr-2015  riastradh branches: 1.5.34;
MD rnd.h cleanups. Please let me know if I broke anything!
 1.4 02-Feb-2012  tls branches: 1.4.6; 1.4.24;
Entropy-pool implementation move and cleanup.

1) Move core entropy-pool code and source/sink/sample management code
to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
avoid expensive operations on disabled entropy sources; make the
rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
system events, and skew between clocks, with a sample implementation
for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files). Tested with release
builds on amd64 and evbarm and live testing on amd64.
 1.3 01-Jul-2011  dyoung branches: 1.3.2; 1.3.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.2 29-Apr-2008  martin branches: 1.2.4; 1.2.6; 1.2.8;
Convert to new 2 clause license
 1.1 28-Apr-2008  garbled Add floppy support to prep (the croud goes wild)

Add an additional argument to pnpbus_intr_establish to allow overriding of
the pnp interrupt type, because some devices lie.
Change how the pnpbus match routine works, to avoid attaching it when we
are probing for cpu's.
Fix a few stray printf's in the autoconf output.
 1.2.8.2 02-Jun-2008  mjf Sync with HEAD.
 1.2.8.1 29-Apr-2008  mjf file fdc_pnpbus.c was added on branch mjf-devfs2 on 2008-06-02 13:22:34 +0000
 1.2.6.2 18-May-2008  yamt sync with head.
 1.2.6.1 29-Apr-2008  yamt file fdc_pnpbus.c was added on branch yamt-pf42 on 2008-05-18 12:32:39 +0000
 1.2.4.2 16-May-2008  yamt sync with head.
 1.2.4.1 29-Apr-2008  yamt file fdc_pnpbus.c was added on branch yamt-nfs-mp on 2008-05-16 02:23:03 +0000
 1.3.6.1 18-Feb-2012  mrg merge to -current.
 1.3.2.1 17-Apr-2012  yamt sync with head
 1.4.24.1 06-Jun-2015  skrll Sync with HEAD
 1.4.6.1 03-Dec-2017  jdolecek update from HEAD
 1.5.34.1 01-Aug-2021  thorpej Sync with HEAD.
 1.9 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.8 01-Jul-2011  dyoung branches: 1.8.2; 1.8.12;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.7 18-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.6 17-Jun-2011  matt intr.h must not include cpu due to deadly embrace with SOFTINT_COUNT.
Cleanup intr.h so MD definitions can overload common definitions.
Rototill pic/intr.c. Virtual IRQs can now be reclaimed. separate virq
from hwirq from picirq. Redo intr mask calculations.
tested on pmppc and macppc (MP).
 1.5 14-Mar-2009  dsl branches: 1.5.10;
ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.4 28-Apr-2008  martin branches: 1.4.8; 1.4.14;
Remove clause 3 and 4 from TNF licenses
 1.3 28-Apr-2008  garbled Add floppy support to prep (the croud goes wild)

Add an additional argument to pnpbus_intr_establish to allow overriding of
the pnp interrupt type, because some devices lie.
Change how the pnpbus match routine works, to avoid attaching it when we
are probing for cpu's.
Fix a few stray printf's in the autoconf output.
 1.2 17-Oct-2007  garbled branches: 1.2.16; 1.2.18; 1.2.20;
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.1 23-Jun-2006  garbled branches: 1.1.2; 1.1.4; 1.1.10; 1.1.16; 1.1.22; 1.1.30; 1.1.40; 1.1.42; 1.1.44; 1.1.46;
1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet. (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
 1.1.46.1 25-Oct-2007  bouyer Sync with HEAD.
 1.1.44.1 18-Oct-2007  yamt sync with head.
 1.1.42.1 06-Nov-2007  matt sync with HEAD
 1.1.40.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.1.30.1 10-May-2007  garbled convert printf's to aprint_*.
 1.1.22.1 23-Oct-2007  ad Sync with head.
 1.1.16.3 27-Oct-2007  yamt sync with head.
 1.1.16.2 30-Dec-2006  yamt sync with head.
 1.1.16.1 23-Jun-2006  yamt file if_we_pnpbus.c was added on branch yamt-lazymbuf on 2006-12-30 20:46:50 +0000
 1.1.10.2 09-Sep-2006  rpaulo sync with head
 1.1.10.1 23-Jun-2006  rpaulo file if_we_pnpbus.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:43 +0000
 1.1.4.2 13-Jul-2006  gdamore Merge from HEAD.
 1.1.4.1 23-Jun-2006  gdamore file if_we_pnpbus.c was added on branch gdamore-uart on 2006-07-13 17:49:02 +0000
 1.1.2.2 26-Jun-2006  yamt sync with head.
 1.1.2.1 23-Jun-2006  yamt file if_we_pnpbus.c was added on branch yamt-pdpolicy on 2006-06-26 12:45:14 +0000
 1.2.20.2 04-May-2009  yamt sync with head.
 1.2.20.1 16-May-2008  yamt sync with head.
 1.2.18.1 18-May-2008  yamt sync with head.
 1.2.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.4.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.4.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.5.10.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.8.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.8.2.1 30-Oct-2012  yamt sync with head
 1.11 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.10 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.9 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.8 29-Mar-2008  matt branches: 1.8.2; 1.8.4;
Don't use device_private on xx_cd.cd_devs[n],
use device_lookup_private(&xx_cd, n) instead.
 1.7 29-Mar-2008  tsutsui We have to use device_private() to get softc from cd_devs[].
 1.6 29-Mar-2008  tsutsui Don't forget to initialize sc_dev.
 1.5 28-Mar-2008  tsutsui Split device_t and softc for MI mc146818 clock,
and other related misc cosmetics.
 1.4 10-Jan-2008  tsutsui branches: 1.4.6;
Move todr_attach(9) calls from each MD attachment to MI mc146818_attach().
 1.3 12-Jul-2006  garbled branches: 1.3.2; 1.3.8; 1.3.38; 1.3.44; 1.3.52;
Add support for rebooting 7024 and 7025 models. Since I cannot figure
out how to properly reboot these machines, instead we make use of the
auto-poweron-alarm time, and power cycle the machine to simulate a
reboot. This is a hack, but until I get documentation on these machines,
at least you will be able to reboot them.
 1.2 23-Jun-2006  garbled branches: 1.2.2;
1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet. (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
 1.1 15-Jun-2006  garbled branches: 1.1.2; 1.1.4;
A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.1.4.4 21-Jan-2008  yamt sync with head
 1.1.4.3 30-Dec-2006  yamt sync with head.
 1.1.4.2 21-Jun-2006  yamt sync with head.
 1.1.4.1 15-Jun-2006  yamt file mcclock_pnpbus.c was added on branch yamt-lazymbuf on 2006-06-21 14:55:19 +0000
 1.1.2.2 19-Jun-2006  chap Sync with head.
 1.1.2.1 15-Jun-2006  chap file mcclock_pnpbus.c was added on branch chap-midi on 2006-06-19 03:45:06 +0000
 1.2.2.3 11-Aug-2006  yamt sync with head
 1.2.2.2 26-Jun-2006  yamt sync with head.
 1.2.2.1 23-Jun-2006  yamt file mcclock_pnpbus.c was added on branch yamt-pdpolicy on 2006-06-26 12:45:14 +0000
 1.3.52.1 10-Jan-2008  bouyer Sync with HEAD
 1.3.44.1 18-Feb-2008  mjf Sync with HEAD.
 1.3.38.1 23-Mar-2008  matt sync with HEAD
 1.3.8.2 09-Sep-2006  rpaulo sync with head
 1.3.8.1 12-Jul-2006  rpaulo file mcclock_pnpbus.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:43 +0000
 1.3.2.2 13-Jul-2006  gdamore Merge from HEAD.
 1.3.2.1 12-Jul-2006  gdamore file mcclock_pnpbus.c was added on branch gdamore-uart on 2006-07-13 17:49:02 +0000
 1.4.6.2 02-Jun-2008  mjf Sync with HEAD.
 1.4.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.8.4.1 16-May-2008  yamt sync with head.
 1.8.2.1 18-May-2008  yamt sync with head.
 1.6 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.5 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4 29-Mar-2008  tsutsui branches: 1.4.2; 1.4.4;
Use CFATTACH_DECL_NEW().
XXX: this one looks a bit strange because it's attached via nvram_pnpbus.c
 1.3 29-Apr-2007  msaitoh branches: 1.3.32;
fix typos
 1.2 23-Jun-2006  garbled branches: 1.2.2; 1.2.4; 1.2.10; 1.2.16; 1.2.20; 1.2.22;
1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet. (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
 1.1 15-Jun-2006  garbled branches: 1.1.2; 1.1.4;
A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.1.4.4 03-Sep-2007  yamt sync with head.
 1.1.4.3 30-Dec-2006  yamt sync with head.
 1.1.4.2 21-Jun-2006  yamt sync with head.
 1.1.4.1 15-Jun-2006  yamt file mkclock_pnpbus.c was added on branch yamt-lazymbuf on 2006-06-21 14:55:19 +0000
 1.1.2.2 19-Jun-2006  chap Sync with head.
 1.1.2.1 15-Jun-2006  chap file mkclock_pnpbus.c was added on branch chap-midi on 2006-06-19 03:45:06 +0000
 1.2.22.1 11-Jul-2007  mjf Sync with head.
 1.2.20.1 27-May-2007  ad Sync with head.
 1.2.16.1 07-May-2007  yamt sync with head.
 1.2.10.2 09-Sep-2006  rpaulo sync with head
 1.2.10.1 23-Jun-2006  rpaulo file mkclock_pnpbus.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:43 +0000
 1.2.4.2 13-Jul-2006  gdamore Merge from HEAD.
 1.2.4.1 23-Jun-2006  gdamore file mkclock_pnpbus.c was added on branch gdamore-uart on 2006-07-13 17:49:02 +0000
 1.2.2.2 26-Jun-2006  yamt sync with head.
 1.2.2.1 23-Jun-2006  yamt file mkclock_pnpbus.c was added on branch yamt-pdpolicy on 2006-06-26 12:45:14 +0000
 1.3.32.2 02-Jun-2008  mjf Sync with HEAD.
 1.3.32.1 03-Apr-2008  mjf Sync with HEAD.
 1.4.4.1 16-May-2008  yamt sync with head.
 1.4.2.1 18-May-2008  yamt sync with head.
 1.23 07-Sep-2025  thorpej Rather than duplicating the fields of mk48txx_softc inside
prep_mk48txx_softc (!!!), just include a mk48txx_softc inside
prep_mk48txx_softc.
 1.22 10-Nov-2019  chs 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.21 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.20 25-Jul-2014  dholland branches: 1.20.26; 1.20.28;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.19 16-Mar-2014  dholland branches: 1.19.2;
Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.18 28-Feb-2014  skrll G/C sys/simplelock.h includes
 1.17 27-Oct-2012  chs branches: 1.17.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.16 18-Feb-2012  rmind branches: 1.16.2;
Replace few simple_lock(9) cases.
 1.15 18-Jun-2011  matt branches: 1.15.2; 1.15.6;
struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.14 28-Apr-2008  martin branches: 1.14.32;
Remove clause 3 and 4 from TNF licenses
 1.13 29-Mar-2008  matt branches: 1.13.2; 1.13.4;
Fix more direct references to cd_devs to device_lookup_private
 1.12 29-Mar-2008  matt Don't use device_lookup to get softc, use device_lookup_private.
 1.11 10-Jan-2008  tsutsui branches: 1.11.6;
- move todr_attach(9) calls from each MD attachment to MI mk48txx_attach()
- don't clear todr_setwen in mk48txx_attach() since it might be set by
MD attachments
 1.10 05-Jan-2008  ad Fix includes.
 1.9 17-Oct-2007  garbled branches: 1.9.2; 1.9.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.8 21-Mar-2007  garbled branches: 1.8.4; 1.8.12; 1.8.14; 1.8.16; 1.8.18;
Add a read entry point to this driver. There are two minor devices
associated with this, 0, the nvram device, and now 1, the residual
device. The devices allow the user to directly read the contents of the
kernel copy of the nvram, and the residual data respectively. There is
no provision for write.
 1.7 04-Mar-2007  christos branches: 1.7.2; 1.7.4; 1.7.6;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.6 26-Feb-2007  garbled Finish the code in the prep nvram driver that makes it an actual device
(/dev/nvram) and implement all the associated ioctls fully. Tested with
a hacked up copy of eeprom(8). Right now it can only be used to see the
nvram GEV contents, not actually edit them. Will do that later some day.
 1.5 30-Oct-2006  garbled branches: 1.5.2; 1.5.4;
Make these files compile with -Wextra -Wno-unused
 1.4 07-Sep-2006  garbled branches: 1.4.2; 1.4.4;
Now that the interrupt bug on the 7043-140 is fixed, it also fixes the
long standing issue with interrupts onthe PowerStack E1. Remove the
quirk entry for the PowerStack E1 and revert to using the IVR.
Also, add a \n to the attachment of the mk clock printf that was missing.
 1.3 15-Jun-2006  garbled branches: 1.3.2; 1.3.4; 1.3.6;
A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.2 26-Apr-2006  garbled branches: 1.2.2; 1.2.4;
Support fixes for the Motorola Powerstack E1.
1) The E1 seems to have the int. siop wired to irq 14-level and the internal
wdc wired to irq 14-edge. special case and fail the wdc probe on E1's.
2) If we fail to map the NVRAM registers, return, rather than trying to talk
to them and panic'ing the box.
3) revert my previous "fix" to pnpbus to make irq's default to level. It
was wrong, and didn't even fix the powerstack.

With this, we have limited PowerStack E1 support. The machine cannot
talk to it's IDE controller, and cannot detect it's boot device
automatically, but it does come up and run. Tested with NFS root.
 1.1 16-Mar-2006  garbled branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
More changes to prep port:
1) Add the NVRAM device. This device allows us to speak with the nvram on
prep-based machines and read/write to it. Also add a simple IOCTL
interface for speaking with the nvram from userland. This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device. Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
 1.1.8.3 01-Jun-2006  kardel Sync with head.
 1.1.8.2 22-Apr-2006  simonb Sync with head.
 1.1.8.1 16-Mar-2006  simonb file nvram_pnpbus.c was added on branch simonb-timecounters on 2006-04-22 11:37:54 +0000
 1.1.6.3 11-May-2006  elad sync with head
 1.1.6.2 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.6.1 16-Mar-2006  elad file nvram_pnpbus.c was added on branch elad-kernelauth on 2006-04-19 02:33:38 +0000
 1.1.4.5 14-Sep-2006  yamt sync with head.
 1.1.4.4 26-Jun-2006  yamt sync with head.
 1.1.4.3 24-May-2006  yamt sync with head.
 1.1.4.2 11-Apr-2006  yamt sync files somehow mis-tagged by yamt-pdpolicy-base2.
 1.1.4.1 16-Mar-2006  yamt file nvram_pnpbus.c was added on branch yamt-pdpolicy on 2006-04-11 12:20:51 +0000
 1.1.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.2.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.2.2.1 19-Jun-2006  chap Sync with head.
 1.3.6.1 18-Nov-2006  ad Sync with head.
 1.3.4.1 09-Sep-2006  tron Pull up following revision(s) (requested by garbled in ticket #138):
sys/arch/prep/prep/platform.c: revision 1.22
sys/arch/prep/pnpbus/nvram_pnpbus.c: revision 1.4
Now that the interrupt bug on the 7043-140 is fixed, it also fixes the
long standing issue with interrupts onthe PowerStack E1. Remove the
quirk entry for the PowerStack E1 and revert to using the IVR.
Also, add a \n to the attachment of the mk clock printf that was missing.
 1.3.2.6 21-Jan-2008  yamt sync with head
 1.3.2.5 27-Oct-2007  yamt sync with head.
 1.3.2.4 03-Sep-2007  yamt sync with head.
 1.3.2.3 30-Dec-2006  yamt sync with head.
 1.3.2.2 21-Jun-2006  yamt sync with head.
 1.3.2.1 15-Jun-2006  yamt file nvram_pnpbus.c was added on branch yamt-lazymbuf on 2006-06-21 14:55:19 +0000
 1.4.4.1 10-Dec-2006  yamt sync with head.
 1.4.2.2 09-Sep-2006  rpaulo sync with head
 1.4.2.1 07-Sep-2006  rpaulo file nvram_pnpbus.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:43 +0000
 1.5.4.3 24-Mar-2007  yamt sync with head.
 1.5.4.2 12-Mar-2007  rmind Sync with HEAD.
 1.5.4.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.5.2.2 31-Mar-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #531):
sys/arch/prep/include/nvram.h: revision 1.4
sys/arch/prep/pnpbus/nvram_pnpbus.c: revision 1.8
Add a read entry point to this driver. There are two minor devices
associated with this, 0, the nvram device, and now 1, the residual
device. The devices allow the user to directly read the contents of the
kernel copy of the nvram, and the residual data respectively. There is
no provision for write.
 1.5.2.1 04-Mar-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #482):
share/man/man4/man4.prep/intro.4: revision 1.1
usr.sbin/eeprom/eeprom.8: revision 1.12
usr.sbin/eeprom/prephandlers.c: revision 1.1
distrib/sets/lists/base/md.prep: revision 1.13
distrib/sets/lists/comp/md.prep: revision 1.22
sys/arch/prep/conf/majors.prep: revision 1.19
share/man/man4/man4.prep/Makefile: revision 1.1
share/man/man4/Makefile: revision 1.421
usr.sbin/eeprom/defs.h: revision 1.10
share/man/man4/man4.prep/nvram.4: revision 1.1
sys/arch/prep/pnpbus/nvram_pnpbus.c: revision 1.6
usr.sbin/eeprom/Makefile: revision 1.14
etc/mtree/NetBSD.dist: revision 1.333
usr.sbin/eeprom/main.c: revision 1.17
etc/etc.prep/MAKEDEV.conf: revision 1.5
distrib/sets/lists/man/mi: revision 1.978
usr.sbin/eeprom/pathnames.h: revision 1.3
sys/arch/prep/include/Makefile: revision 1.19
sys/arch/prep/include/nvram.h: revision 1.3
Finish the code in the prep nvram driver that makes it an actual device
(/dev/nvram) and implement all the associated ioctls fully. Tested with
a hacked up copy of eeprom(8). Right now it can only be used to see the
nvram GEV contents, not actually edit them. Will do that later some day.
 1.7.6.1 29-Mar-2007  reinoud Pullup to -current
 1.7.4.1 11-Jul-2007  mjf Sync with head.
 1.7.2.2 23-Oct-2007  ad Sync with head.
 1.7.2.1 10-Apr-2007  ad Sync with head.
 1.8.18.1 25-Oct-2007  bouyer Sync with HEAD.
 1.8.16.1 18-Oct-2007  yamt sync with head.
 1.8.14.3 23-Mar-2008  matt sync with HEAD
 1.8.14.2 09-Jan-2008  matt sync with HEAD
 1.8.14.1 06-Nov-2007  matt sync with HEAD
 1.8.12.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.8.4.1 10-May-2007  garbled convert printf's to aprint_*.
 1.9.8.2 10-Jan-2008  bouyer Sync with HEAD
 1.9.8.1 08-Jan-2008  bouyer Sync with HEAD
 1.9.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.11.6.2 02-Jun-2008  mjf Sync with HEAD.
 1.11.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.13.4.1 16-May-2008  yamt sync with head.
 1.13.2.1 18-May-2008  yamt sync with head.
 1.14.32.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.15.6.1 24-Feb-2012  mrg sync to -current.
 1.15.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.15.2.2 30-Oct-2012  yamt sync with head
 1.15.2.1 17-Apr-2012  yamt sync with head
 1.16.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.16.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.17.2.1 18-May-2014  rmind sync with head
 1.19.2.1 10-Aug-2014  tls Rebase.
 1.20.28.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.20.28.1 10-Jun-2019  christos Sync with HEAD
 1.20.26.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.15 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.14 24-Apr-2021  thorpej branches: 1.14.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.13 21-Nov-2020  thorpej branches: 1.13.2;
malloc(9) -> kmem(9)
 1.12 10-Nov-2019  chs branches: 1.12.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.11 01-Jul-2011  dyoung branches: 1.11.54;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.10 18-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.9 28-Apr-2008  martin branches: 1.9.32;
Remove clause 3 and 4 from TNF licenses
 1.8 28-Apr-2008  garbled Add floppy support to prep (the croud goes wild)

Add an additional argument to pnpbus_intr_establish to allow overriding of
the pnp interrupt type, because some devices lie.
Change how the pnpbus match routine works, to avoid attaching it when we
are probing for cpu's.
Fix a few stray printf's in the autoconf output.
 1.7 17-Oct-2007  garbled branches: 1.7.16; 1.7.18; 1.7.20;
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.6 27-Oct-2006  garbled branches: 1.6.8; 1.6.16; 1.6.26; 1.6.28; 1.6.30; 1.6.32;
A few changes so pnpbus devices can do isadma. Note that isadma still
does not seem to work properly on prep.
 1.5 23-Jun-2006  garbled branches: 1.5.4; 1.5.6; 1.5.8;
1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet. (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
 1.4 15-Jun-2006  garbled branches: 1.4.2;
A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.3 26-Apr-2006  garbled branches: 1.3.2; 1.3.4;
Support fixes for the Motorola Powerstack E1.
1) The E1 seems to have the int. siop wired to irq 14-level and the internal
wdc wired to irq 14-edge. special case and fail the wdc probe on E1's.
2) If we fail to map the NVRAM registers, return, rather than trying to talk
to them and panic'ing the box.
3) revert my previous "fix" to pnpbus to make irq's default to level. It
was wrong, and didn't even fix the powerstack.

With this, we have limited PowerStack E1 support. The machine cannot
talk to it's IDE controller, and cannot detect it's boot device
automatically, but it does come up and run. Tested with NFS root.
 1.2 16-Mar-2006  garbled branches: 1.2.2; 1.2.4; 1.2.6;
More changes to prep port:
1) Add the NVRAM device. This device allows us to speak with the nvram on
prep-based machines and read/write to it. Also add a simple IOCTL
interface for speaking with the nvram from userland. This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device. Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
 1.1 09-Mar-2006  garbled branches: 1.1.2;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.1.2.5 26-Jun-2006  yamt sync with head.
 1.1.2.4 24-May-2006  yamt sync with head.
 1.1.2.3 01-Apr-2006  yamt sync with head.
 1.1.2.2 13-Mar-2006  yamt sync with head.
 1.1.2.1 09-Mar-2006  yamt file pnpbus.c was added on branch yamt-pdpolicy on 2006-03-13 09:06:59 +0000
 1.2.6.3 01-Jun-2006  kardel Sync with head.
 1.2.6.2 22-Apr-2006  simonb Sync with head.
 1.2.6.1 16-Mar-2006  simonb file pnpbus.c was added on branch simonb-timecounters on 2006-04-22 11:37:54 +0000
 1.2.4.3 11-May-2006  elad sync with head
 1.2.4.2 19-Apr-2006  elad sync with head - hopefully this will work
 1.2.4.1 16-Mar-2006  elad file pnpbus.c was added on branch elad-kernelauth on 2006-04-19 02:33:38 +0000
 1.2.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.3.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.3.2.1 19-Jun-2006  chap Sync with head.
 1.4.2.4 27-Oct-2007  yamt sync with head.
 1.4.2.3 30-Dec-2006  yamt sync with head.
 1.4.2.2 21-Jun-2006  yamt sync with head.
 1.4.2.1 15-Jun-2006  yamt file pnpbus.c was added on branch yamt-lazymbuf on 2006-06-21 14:55:19 +0000
 1.5.8.1 10-Dec-2006  yamt sync with head.
 1.5.6.2 09-Sep-2006  rpaulo sync with head
 1.5.6.1 23-Jun-2006  rpaulo file pnpbus.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:43 +0000
 1.5.4.1 18-Nov-2006  ad Sync with head.
 1.6.32.1 25-Oct-2007  bouyer Sync with HEAD.
 1.6.30.1 18-Oct-2007  yamt sync with head.
 1.6.28.1 06-Nov-2007  matt sync with HEAD
 1.6.26.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.6.16.2 10-May-2007  garbled convert printf's to aprint_*.
 1.6.16.1 01-May-2007  garbled Rename the prep isa io and mem bus space tags to genppc_* to promote
sharing of isa functionality.
 1.6.8.1 23-Oct-2007  ad Sync with head.
 1.7.20.1 16-May-2008  yamt sync with head.
 1.7.18.1 18-May-2008  yamt sync with head.
 1.7.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.9.32.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.11.54.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.12.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.13.2.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.13.2.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.13.2.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.13.2.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.13.2.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.13.2.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.14.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.8 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.7 18-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.6 28-Apr-2008  martin branches: 1.6.32;
Remove clause 3 and 4 from TNF licenses
 1.5 28-Apr-2008  garbled Add floppy support to prep (the croud goes wild)

Add an additional argument to pnpbus_intr_establish to allow overriding of
the pnp interrupt type, because some devices lie.
Change how the pnpbus match routine works, to avoid attaching it when we
are probing for cpu's.
Fix a few stray printf's in the autoconf output.
 1.4 27-Oct-2006  garbled branches: 1.4.52; 1.4.54; 1.4.56;
A few changes so pnpbus devices can do isadma. Note that isadma still
does not seem to work properly on prep.
 1.3 23-Jun-2006  garbled branches: 1.3.4; 1.3.6; 1.3.8;
1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet. (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
 1.2 15-Jun-2006  garbled branches: 1.2.2;
A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.1 09-Mar-2006  garbled branches: 1.1.2; 1.1.6; 1.1.8; 1.1.10; 1.1.12;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.1.12.1 13-Jul-2006  gdamore Merge from HEAD.
 1.1.10.1 19-Jun-2006  chap Sync with head.
 1.1.8.2 22-Apr-2006  simonb Sync with head.
 1.1.8.1 09-Mar-2006  simonb file pnpbusvar.h was added on branch simonb-timecounters on 2006-04-22 11:37:54 +0000
 1.1.6.2 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.6.1 09-Mar-2006  elad file pnpbusvar.h was added on branch elad-kernelauth on 2006-04-19 02:33:38 +0000
 1.1.2.3 26-Jun-2006  yamt sync with head.
 1.1.2.2 13-Mar-2006  yamt sync with head.
 1.1.2.1 09-Mar-2006  yamt file pnpbusvar.h was added on branch yamt-pdpolicy on 2006-03-13 09:06:59 +0000
 1.2.2.3 30-Dec-2006  yamt sync with head.
 1.2.2.2 21-Jun-2006  yamt sync with head.
 1.2.2.1 15-Jun-2006  yamt file pnpbusvar.h was added on branch yamt-lazymbuf on 2006-06-21 14:55:19 +0000
 1.3.8.1 10-Dec-2006  yamt sync with head.
 1.3.6.2 09-Sep-2006  rpaulo sync with head
 1.3.6.1 23-Jun-2006  rpaulo file pnpbusvar.h was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:43 +0000
 1.3.4.1 18-Nov-2006  ad Sync with head.
 1.4.56.1 16-May-2008  yamt sync with head.
 1.4.54.1 18-May-2008  yamt sync with head.
 1.4.52.1 02-Jun-2008  mjf Sync with HEAD.
 1.6.32.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.16 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.15 20-Oct-2017  jdolecek move ata_queue_alloc(1) and ata_queue_free() calls to ata_channel_init()
and ata_channel_destroy() respectively, to make attachment code simpler,
and to make it easier to spot special queue manipulation like cmdide(4)

on topic of PR kern/52606
 1.14 07-Oct-2017  jdolecek Merge support for SATA NCQ (Native Command Queueing) from jdolecek-ncq branch

ATA subsystem was changed to support several outstanding commands, and use
NCQ xfers if supported by both the controller and the disk, including NCQ
error recovery. Set NCQ high priority for BPRIO_TIMECRITICAL xfers
if supported. Added FUA support.

Done some work towards MP-safe, all ATA code tsleep()/wakeup() replaced
by condvars, and switched most code from spl* to mutexes (separate
wd(4) and ata channel lock).

Introduced new option WD_CHAOS_MONKEY to facilitate testing of error
handling, fixed several uncovered issues. Also fixed several problems
with kernel dump to wd(4) disk.

Tested with ahcisata(4), mvsata(4), siisata(4), piixide(4) on amd64,
with and without port multiplier, both disk and ATAPI devices; other
drivers and archs mechanically adjusted and compile-tested. NCQ is
supported for ahcisata(4) and siisata(4) for any controller, for
mvsata(4) only Gen IIe ones for now. Also enabled ATAPI support in
mvsata(4).

Thanks to Matt Thomas for initial ATA infrastructure patch, and
Jonathan A.Kollasch for siisata(4) NCQ changes and general testing.

Also fixes PR kern/43169 (wd(4)); and PR kern/11811, PR kern/47041,
PR kern/51979 (kernel dump)
 1.13 31-Jul-2012  bouyer branches: 1.13.2; 1.13.28;
Apply back changes that were reverted on Jul 24 and Jul 26 (general ata/wdc
cleanup and SATA PMP support), now that I'm back to fix the fallouts.
 1.12 26-Jul-2012  jakllsch Revert, with intention of restoring in a less invasive way, the SATA Port
Multiplier code.

ok christos@
 1.11 02-Jul-2012  bouyer Add sata Port MultiPlier (PMP) support to the ata bus layer,
as described in
http://mail-index.netbsd.org/tech-kern/2012/06/23/msg013442.html
PMP support in integrated to the atabus layer.
struct ata_channel's ch_drive[] is not dynamically allocated, and ch_ndrive
(renamed to ch_ndrives) closely reflects the size of the ch_drive[] array.
Add helper functions atabus_alloc_drives() and atabus_free_drives()
to manage ch_drive[]/ch_ndrives.
Add wdc_maxdrives to struct wdc_softc so that bus front-end can specify
how much drive they really support (master/slave or single).
ata_reset_drive() callback gains a uint32_t *sigp argument which,
when not NULL, will contain the signature of the device being reset.
While there, some cosmetic changes:
- added a drive_type enum to ata_drive_datas, and stop encoding the
probed drive type in drive_flags (we were out of drive flags anyway).
- rename DRIVE_ATAPIST to DRIVE_ATAPIDSCW to better reflect what this
really is
- remove ata_channel->ata_drives, it's redundant with the pointer in
ata_drive_datas
- factor out the interpretation of SATA signatures in sata_interpet_sig()

propagate these changes to the ATA HBA drivers, and add support for PMP
to ahcisata(4) and siisata(4).

Thanks to:
- Protocase (http://www.protocase.com/) which provided a system
with lots of controllers, SATA PMP and drive slots
- Conservation Genomics Laboratory, Department of Biology, New Mexico State
University for hosting the above system
- Brook Milligan, who set up remote access and has been very responsive
when SATA cable move was needed
 1.10 01-Jul-2011  dyoung branches: 1.10.2;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.9 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.8 28-Apr-2008  garbled Add floppy support to prep (the croud goes wild)

Add an additional argument to pnpbus_intr_establish to allow overriding of
the pnp interrupt type, because some devices lie.
Change how the pnpbus match routine works, to avoid attaching it when we
are probing for cpu's.
Fix a few stray printf's in the autoconf output.
 1.7 18-Mar-2008  cube branches: 1.7.2; 1.7.4;
Split device_t and softc for ATA devices, as well as wd(4). Other
cosmetic changes where appropriate.
 1.6 20-Mar-2007  garbled branches: 1.6.14; 1.6.30; 1.6.34;
Special case the MTX604 and other RAVEN based machines to not attach
wdc@pnpbus.
 1.5 15-Jun-2006  garbled branches: 1.5.2; 1.5.8; 1.5.12; 1.5.14; 1.5.18; 1.5.20; 1.5.22;
A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.4 26-Apr-2006  garbled branches: 1.4.2; 1.4.4;
Support fixes for the Motorola Powerstack E1.
1) The E1 seems to have the int. siop wired to irq 14-level and the internal
wdc wired to irq 14-edge. special case and fail the wdc probe on E1's.
2) If we fail to map the NVRAM registers, return, rather than trying to talk
to them and panic'ing the box.
3) revert my previous "fix" to pnpbus to make irq's default to level. It
was wrong, and didn't even fix the powerstack.

With this, we have limited PowerStack E1 support. The machine cannot
talk to it's IDE controller, and cannot detect it's boot device
automatically, but it does come up and run. Tested with NFS root.
 1.3 29-Mar-2006  thorpej branches: 1.3.2; 1.3.4;
Use device_cfdata().
 1.2 16-Mar-2006  garbled branches: 1.2.2;
More changes to prep port:
1) Add the NVRAM device. This device allows us to speak with the nvram on
prep-based machines and read/write to it. Also add a simple IOCTL
interface for speaking with the nvram from userland. This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device. Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
 1.1 09-Mar-2006  garbled branches: 1.1.2;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.1.2.5 26-Jun-2006  yamt sync with head.
 1.1.2.4 24-May-2006  yamt sync with head.
 1.1.2.3 01-Apr-2006  yamt sync with head.
 1.1.2.2 13-Mar-2006  yamt sync with head.
 1.1.2.1 09-Mar-2006  yamt file wdc_pnpbus.c was added on branch yamt-pdpolicy on 2006-03-13 09:06:59 +0000
 1.2.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.2.2.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.3.4.3 01-Jun-2006  kardel Sync with head.
 1.3.4.2 22-Apr-2006  simonb Sync with head.
 1.3.4.1 29-Mar-2006  simonb file wdc_pnpbus.c was added on branch simonb-timecounters on 2006-04-22 11:37:54 +0000
 1.3.2.3 11-May-2006  elad sync with head
 1.3.2.2 19-Apr-2006  elad sync with head - hopefully this will work
 1.3.2.1 29-Mar-2006  elad file wdc_pnpbus.c was added on branch elad-kernelauth on 2006-04-19 02:33:38 +0000
 1.4.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.4.2.1 19-Jun-2006  chap Sync with head.
 1.5.22.1 29-Mar-2007  reinoud Pullup to -current
 1.5.20.1 11-Jul-2007  mjf Sync with head.
 1.5.18.1 10-Apr-2007  ad Sync with head.
 1.5.14.1 24-Mar-2007  yamt sync with head.
 1.5.12.1 31-Mar-2007  bouyer Pull up following revision(s) (requested by garbled in ticket #528):
sys/arch/prep/pci/pci_machdep.c: revision 1.29
sys/arch/prep/pnpbus/wdc_pnpbus.c: revision 1.6
Special case the MTX604 and other RAVEN based machines to not attach
wdc@pnpbus.
The motorola RAVEN is both a pchb and an MPIC. Block out the pci
configuration of it's mem area to keep the PIC available.
 1.5.8.2 09-Sep-2006  rpaulo sync with head
 1.5.8.1 15-Jun-2006  rpaulo file wdc_pnpbus.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:43 +0000
 1.5.2.4 24-Mar-2008  yamt sync with head.
 1.5.2.3 03-Sep-2007  yamt sync with head.
 1.5.2.2 21-Jun-2006  yamt sync with head.
 1.5.2.1 15-Jun-2006  yamt file wdc_pnpbus.c was added on branch yamt-lazymbuf on 2006-06-21 14:55:19 +0000
 1.6.34.2 02-Jun-2008  mjf Sync with HEAD.
 1.6.34.1 03-Apr-2008  mjf Sync with HEAD.
 1.6.30.1 24-Mar-2008  keiichi sync with head.
 1.6.14.1 23-Mar-2008  matt sync with HEAD
 1.7.4.1 16-May-2008  yamt sync with head.
 1.7.2.1 18-May-2008  yamt sync with head.
 1.10.2.1 30-Oct-2012  yamt sync with head
 1.13.28.2 27-Sep-2017  jdolecek change wdc_init_shadow_regs() to accept only struct wdc_regs, it doesn't
touch anything else

factor out the probe-only struct ata_channel initialization to wdcprobe(), to
reduce duplication of logic in individual drivers, and to actually work now
that more init is needed beyond the memset()
 1.13.28.1 26-Sep-2017  jdolecek switch to ata_queue_alloc() so that this at least compiles
 1.13.2.1 03-Dec-2017  jdolecek update from HEAD
 1.31 04-Oct-2025  thorpej Use device_{get,set}prop_bool() for "prep-raven-pchb".
 1.30 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.29 22-May-2022  andvar fix various small typos, mainly in comments.
 1.28 18-Oct-2014  snj src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
 1.27 27-Mar-2014  christos correct/add protection against snprintf overflow.
 1.26 28-Jun-2013  christos branches: 1.26.2;
undefined behavior, buffer overflow
http://m00nbsd.net/ae123a9bae03f7dde5c6d654412daf5a.html
 1.25 29-Jul-2012  mlelstv branches: 1.25.2;
Do not call setroot() from MD code and from MI code, which has
unwanted sideeffects in the RB_ASKNAME case. This fixes PR/46732.

No longer wrap MD cpu_rootconf(), as hp300 port stores reboot information
as a side effect. Instead call MI rootconf() from MD code which makes
rootconf() now a wrapper to setroot().

Adjust several MD routines to set the global booted_device,booted_partition
variables instead of passing partial information to setroot().

Make cpu_rootconf(9) describe the calling order.
 1.24 18-Jun-2011  matt branches: 1.24.2; 1.24.8;
struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.23 05-Nov-2009  dyoung branches: 1.23.10;
Use deviter(9) instead of accessing alldevs directly. Untested.
 1.22 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.21 17-Oct-2007  garbled branches: 1.21.16; 1.21.18; 1.21.20;
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.20 26-Apr-2007  garbled branches: 1.20.2; 1.20.10; 1.20.12; 1.20.14; 1.20.16;
Rather than use the residual data to guess that we have a raven pchb,
note the raven pchb in device_register, and then look that up when
attaching the pcib.
 1.19 23-Jun-2006  garbled branches: 1.19.10; 1.19.14; 1.19.16;
1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet. (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
 1.18 14-May-2006  elad branches: 1.18.4;
integrate kauth.
 1.17 09-May-2006  garbled KNF these files.
 1.16 08-May-2006  garbled Fix something that never should have worked before, that got broken by
proplib change. I'm assuming it was wierdness in the devprop API.
 1.15 05-May-2006  thorpej Remove the devprop API and switch everthing over to the new proplib. Add
a new device_properties() accessor for device_t that returns the device's
property dictionary.
 1.14 24-Apr-2006  garbled Make this work on 7024 and 7025 models by not repeating the base address
of the pci bus when we are a pci bus on a ppb.
 1.13 28-Mar-2006  thorpej Use device_unit().
 1.12 16-Mar-2006  garbled branches: 1.12.2;
More changes to prep port:
1) Add the NVRAM device. This device allows us to speak with the nvram on
prep-based machines and read/write to it. Also add a simple IOCTL
interface for speaking with the nvram from userland. This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device. Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
 1.11 11-Dec-2005  christos branches: 1.11.4; 1.11.6; 1.11.8; 1.11.10;
merge ktrace-lwp.
 1.10 23-Oct-2004  thorpej branches: 1.10.12;
Centralize the declaration of booted_device and booted_partition.
 1.9 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.8 15-Jul-2003  lukem __KERNEL_RCSID()
 1.7 18-Jun-2003  drochner branches: 1.7.2;
don't #include <sys/dkstat.h> where it is (appearently) unused
 1.6 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.5 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.4 02-Jun-2000  cgd branches: 1.4.4; 1.4.8; 1.4.12; 1.4.20;
booted_partition, not booted_parition...
 1.3 01-Jun-2000  matt Don't pass booted_* to findroot/getdevice, access them via the globals.
Also, make findroot static. This eliminates unneeded clearing of them
and make their use consistent among the ports.
 1.2 01-Jun-2000  matt Make booted_device global (and booted_parition for consitency).
Eliminate it from header files and other extern definitions.
 1.1 29-Feb-2000  nonaka branches: 1.1.2;
Initial import prep port.
 1.1.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.4.20.2 15-Jul-2002  gehenna catch up with -current.
 1.4.20.1 17-May-2002  gehenna Replace the access to devsw table and the hard-coded major with devsw API.
 1.4.12.2 17-Sep-2002  nathanw Catch up to -current.
 1.4.12.1 20-Jun-2002  nathanw Catch up to -current.
 1.4.8.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.4.8.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.4.4.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.4.4.1 02-Jun-2000  bouyer file autoconf.c was added on branch thorpej_scsipi on 2000-11-20 20:23:04 +0000
 1.7.2.4 02-Nov-2004  skrll Sync with HEAD.
 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.10.12.4 27-Oct-2007  yamt sync with head.
 1.10.12.3 03-Sep-2007  yamt sync with head.
 1.10.12.2 30-Dec-2006  yamt sync with head.
 1.10.12.1 21-Jun-2006  yamt sync with head.
 1.11.10.2 11-May-2006  elad sync with head
 1.11.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.11.8.3 26-Jun-2006  yamt sync with head.
 1.11.8.2 24-May-2006  yamt sync with head.
 1.11.8.1 01-Apr-2006  yamt sync with head.
 1.11.6.2 01-Jun-2006  kardel Sync with head.
 1.11.6.1 22-Apr-2006  simonb Sync with head.
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.12.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.12.2.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.18.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.19.16.1 11-Jul-2007  mjf Sync with head.
 1.19.14.2 23-Oct-2007  ad Sync with head.
 1.19.14.1 27-May-2007  ad Sync with head.
 1.19.10.1 07-May-2007  yamt sync with head.
 1.20.16.1 25-Oct-2007  bouyer Sync with HEAD.
 1.20.14.1 18-Oct-2007  yamt sync with head.
 1.20.12.1 06-Nov-2007  matt sync with HEAD
 1.20.10.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.20.2.2 10-May-2007  garbled convert printf's to aprint_*.
 1.20.2.1 10-May-2007  garbled More cleanup:
1) Remove lcsplx, strayintr, and foosoft from all the converted ports.
None of this stuff is needed anymore.
2) because lcsplx is just "return spllower", just call spllower from
locore_subr.S instead.
3) Every port (except macppc) had a pretty similar cpu_configure(), so
take the common parts out and make a genppc_cpu_configure() in an attempt
to stop using imask[] outside of intr.c
 1.21.20.2 11-Mar-2010  yamt sync with head
 1.21.20.1 16-May-2008  yamt sync with head.
 1.21.18.1 18-May-2008  yamt sync with head.
 1.21.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.23.10.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.24.8.1 08-Aug-2012  martin Pull up following revision(s) (requested by mlelstv in ticket #466):
sys/arch/amiga/amiga/autoconf.c: revision 1.113
sys/arch/rs6000/rs6000/autoconf.c: revision 1.4
sys/arch/emips/emips/autoconf.c: revision 1.6
sys/arch/sandpoint/sandpoint/autoconf.c: revision 1.27
sys/arch/evbmips/alchemy/autoconf.c: revision 1.18
sys/arch/sgimips/sgimips/autoconf.c: revision 1.43
sys/arch/atari/atari/autoconf.c: revision 1.63
sys/arch/powerpc/oea/ofw_autoconf.c: revision 1.17
sys/arch/mmeye/mmeye/autoconf.c: revision 1.9
distrib/sets/lists/comp/mi: revision 1.1771
sys/arch/mipsco/mipsco/autoconf.c: revision 1.25
sys/arch/iyonix/iyonix/autoconf.c: revision 1.14
sys/arch/hp300/hp300/autoconf.c: revision 1.100
sys/kern/init_main.c: revision 1.445
sys/arch/pmax/pmax/autoconf.c: revision 1.79
sys/arch/netwinder/netwinder/autoconf.c: revision 1.11
sys/arch/dreamcast/dreamcast/autoconf.c: revision 1.10
sys/arch/ibmnws/ibmnws/autoconf.c: revision 1.12
sys/arch/evbppc/ev64260/autoconf.c: revision 1.17
sys/arch/evbmips/gdium/autoconf.c: revision 1.5
sys/arch/algor/algor/autoconf.c: revision 1.21
share/man/man9/Makefile: revision 1.367
sys/arch/ews4800mips/ews4800mips/autoconf.c: revision 1.9
sys/arch/amigappc/amigappc/autoconf.c: revision 1.5
sys/arch/x86/x86/x86_autoconf.c: revision 1.65
sys/arch/acorn26/acorn26/autoconf.c: revision 1.9
sys/arch/mvmeppc/mvmeppc/autoconf.c: revision 1.13
sys/arch/vax/vax/autoconf.c: revision 1.94
sys/arch/usermode/dev/cpu.c: revision 1.72
sys/arch/evbppc/virtex/autoconf.c: revision 1.5
sys/arch/next68k/next68k/autoconf.c: revision 1.26
sys/arch/mac68k/mac68k/autoconf.c: revision 1.73
sys/arch/ia64/ia64/autoconf.c: revision 1.6
sys/arch/evbppc/obs405/obs405_autoconf.c: revision 1.6
share/man/man9/cpu_rootconf.9: revision 1.7
sys/arch/landisk/landisk/autoconf.c: revision 1.6
sys/arch/evbmips/malta/autoconf.c: revision 1.16
sys/arch/sun3/sun3/autoconf.c: revision 1.76
sys/arch/evbppc/explora/autoconf.c: revision 1.13
sys/arch/sun3/sun3/autoconf.c: revision 1.77
sys/arch/evbmips/loongson/autoconf.c: revision 1.3
sys/arch/evbmips/atheros/autoconf.c: revision 1.11
sys/arch/sparc64/sparc64/autoconf.c: revision 1.188
sys/arch/acorn32/acorn32/autoconf.c: revision 1.18
sys/arch/evbarm/evbarm/autoconf.c: revision 1.13
sys/arch/cobalt/cobalt/autoconf.c: revision 1.30
sys/arch/mvme68k/mvme68k/autoconf.c: revision 1.46
sys/arch/hp700/hp700/autoconf.c: revision 1.48
sys/arch/evbmips/adm5120/autoconf.c: revision 1.5
sys/arch/hpcmips/hpcmips/autoconf.c: revision 1.25
sys/arch/alpha/alpha/autoconf.c: revision 1.52
sys/arch/sparc/sparc/autoconf.c: revision 1.244
sys/arch/evbppc/pmppc/autoconf.c: revision 1.7
sys/arch/bebox/bebox/autoconf.c: revision 1.25
sys/arch/luna68k/luna68k/autoconf.c: revision 1.13
sys/arch/hpcarm/hpcarm/autoconf.c: revision 1.20
sys/arch/evbppc/walnut/autoconf.c: revision 1.21
sys/arch/cesfic/cesfic/autoconf.c: revision 1.26
sys/arch/cats/cats/autoconf.c: revision 1.17
sys/arch/x68k/x68k/autoconf.c: revision 1.67
sys/arch/news68k/news68k/autoconf.c: revision 1.21
sys/arch/arc/arc/autoconf.c: revision 1.34
sys/arch/evbsh3/evbsh3/autoconf.c: revision 1.11
sys/sys/conf.h: revision 1.143
sys/arch/evbmips/rasoc/autoconf.c: revision 1.3
sys/arch/hpcsh/hpcsh/autoconf.c: revision 1.26
sys/arch/sun68k/sun68k/autoconf.c: revision 1.29
sys/arch/evbmips/rmixl/autoconf.c: revision 1.6
sys/arch/zaurus/zaurus/autoconf.c: revision 1.12
sys/arch/xen/x86/autoconf.c: revision 1.15
sys/arch/evbppc/mpc85xx/autoconf.c: revision 1.6
sys/arch/shark/shark/autoconf.c: revision 1.18
sys/arch/prep/prep/autoconf.c: revision 1.25
sys/arch/newsmips/newsmips/autoconf.c: revision 1.36
sys/arch/sbmips/sbmips/autoconf.c: revision 1.8
Do not call setroot() from MD code and from MI code, which has
unwanted sideeffects in the RB_ASKNAME case. This fixes PR/46732.
No longer wrap MD cpu_rootconf(), as hp300 port stores reboot information
as a side effect. Instead call MI rootconf() from MD code which makes
rootconf() now a wrapper to setroot().
Adjust several MD routines to set the global booted_device,booted_partition
variables instead of passing partial information to setroot().
Make cpu_rootconf(9) describe the calling order.
add rootconf(9) as a link to cpu_rootconf(9)
make this compile again
 1.24.2.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.24.2.1 30-Oct-2012  yamt sync with head
 1.25.2.2 03-Dec-2017  jdolecek update from HEAD
 1.25.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.26.2.1 18-May-2014  rmind sync with head
 1.9 15-Jun-2001  nonaka Use new common bus.h framework.
 1.8 26-May-2001  chs replace vm_page_t with struct vm_page *.
 1.7 24-Apr-2001  thorpej Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative. It may be possible to
optimize these a little more.
 1.6 21-Mar-2001  soren s/vm_page_alloc_memory/uvm_pglistalloc/ in panic message.
 1.5 29-Jun-2000  mrg branches: 1.5.2; 1.5.4;
remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.4 26-Jun-2000  mrg remove/move more mach vm header files:

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

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
 1.3 26-Jun-2000  simonb Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes. Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
 1.2 19-Mar-2000  nonaka branches: 1.2.4;
bus_dma works. (at least de, le and vr work.)
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.2.4.1 30-Jun-2000  simonb Pull up mmap paddr_t/off_t changes from trunk.
 1.5.4.1 09-Apr-2001  nathanw Catch up with -current.
 1.5.2.3 27-Mar-2001  bouyer Sync with HEAD.
 1.5.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.2.1 29-Jun-2000  bouyer file bus_dma.c was added on branch thorpej_scsipi on 2000-11-20 20:23:04 +0000
 1.11 18-Mar-2003  matt Switch/adapt to new bus space infrastructure.
 1.10 06-Mar-2003  matt Make most of PPC (OEA) bus_space's identical (or as identical as possible).
(except mvmeppc).
 1.9 06-Mar-2003  matt Adapt to powerpc/bus.h changes.
 1.8 17-Jan-2003  nonaka Fix compile failure.
 1.7 17-Jan-2003  nonaka Fix bus_space_mmap() bug.

> Module Name: src
> Committed By: augustss
> Date: Sun Jan 12 23:46:12 UTC 2003
>
> Modified Files:
> src/sys/arch/pmppc/pmppc: bus_space.c
>
>Log Message:
>The bus_space_mmap() returns a physaddr, not a page, on the PPC.
>(This is broken in some (all?) of the PPC ports, it seems.)
 1.6 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.5 10-Dec-2001  briggs Provide basic bus_space_mmap(). Noted by self and in PR port-powerpc/14873.
This at least allows the compile to complete. There are still Issues with
vga_pci.c's assumptions about a PC-ish environment.
 1.4 15-Jun-2001  nonaka branches: 1.4.2; 1.4.8;
Use new common bus.h framework.
 1.3 27-Nov-2000  matt branches: 1.3.2;
Rework bus_space to conform the PReP I/O & MEM limits. Add a few debugging
printfs concerning interrupts.
 1.2 16-Apr-2000  kleink branches: 1.2.6;
* GC two unused variables.
* Printf format nits.
 1.1 27-Mar-2000  nonaka rewrite some bus_space functions like port-i386.
 1.2.6.3 08-Dec-2000  bouyer Sync with HEAD.
 1.2.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.6.1 16-Apr-2000  bouyer file bus_space.c was added on branch thorpej_scsipi on 2000-11-20 20:23:04 +0000
 1.3.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.4.8.4 17-Jan-2003  thorpej Sync with HEAD.
 1.4.8.3 18-Oct-2002  nathanw Catch up to -current.
 1.4.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.4.8.1 15-Jun-2001  nathanw file bus_space.c was added on branch nathanw_sa on 2002-01-08 00:27:17 +0000
 1.4.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.4.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.21 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.20 30-Oct-2006  garbled branches: 1.20.8; 1.20.16; 1.20.26; 1.20.28; 1.20.30; 1.20.32;
Make these files compile with -Wextra -Wno-unused
 1.19 13-Oct-2006  tsutsui Use a non-zero quality for mftb counter.
 1.18 05-Sep-2006  garbled branches: 1.18.2; 1.18.4;
Convert prep to MI todr
 1.17 20-Jun-2006  garbled Basic prep timecounter support. This greatly increases the stability of
ntp on my 7248, however, my 7043-140 is still a bit flaky. I suspect the
only way to fix the 7043 is going to be writing a timecounter driver for
the 8254 present on these machines. Either way, this makes some of the
machines better, and the other machines are still about the same as they
were before, so it's a net gain for the port.
 1.16 09-May-2006  garbled branches: 1.16.4;
convert some of the simple __asm statements to the standard powerpc
macros, like mtmsr().
 1.15 09-May-2006  garbled KNF these files.
 1.14 08-May-2006  garbled Switch prep over to evcnt(9). While I was here, I also switched it to
use struct cpu_info for the cpu stuff. Tested on 7248 and 7043.
 1.13 24-Dec-2005  perry branches: 1.13.4; 1.13.6; 1.13.8; 1.13.10; 1.13.12;
bare asm -> __asm
 1.12 21-Nov-2005  nonaka In decr_intr(), update lasttb only when clock interrupt is not masked.
(sync with macppc/macppc/clock.c: rev.1.11 -> 1.12)
 1.11 05-Jun-2005  he branches: 1.11.2; 1.11.8;
Adapt to compiling with -Wcast-qual and -Wshadow.
 1.10 04-Jun-2005  he 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.9 29-Jun-2004  kleink In the delay loop, mark the scratch register as earlyclobber.
 1.8 23-Jun-2004  kleink Prep for the MPC601's RTC.
 1.7 01-Nov-2003  tsutsui - Adapt mkclock_isa.c to MI mk48txx(4) changes.
- Switch mcclock_isa.c to use MI mc146818 driver.
- Use todr(9) interface with both todclock drivers.
 1.6 15-Jul-2003  lukem __KERNEL_RCSID()
 1.5 12-Feb-2003  matt branches: 1.5.2;
Set cpu_timebase so sysctl() can report it.
 1.4 06-Aug-2002  chs move more inlines to cpu.h: mftb(), mftbl() and mfpvr().
(the mftb() in pmap.c only wanted the lower 32 bits, so that's now mftbl()).
 1.3 18-Nov-2001  kleink branches: 1.3.8;
Fix printf format in DEBUG case.
 1.2 19-Jun-2001  simonb branches: 1.2.2; 1.2.8;
Make all the ppc delay() functions the same - formating change only, no
code changes. Step one of a unified ppc clock.c.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.8;
Initial import prep port.
 1.1.8.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file clock.c was added on branch thorpej_scsipi on 2000-11-20 20:23:05 +0000
 1.2.8.3 13-Aug-2002  nathanw Catch up to -current.
 1.2.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.2.8.1 19-Jun-2001  nathanw file clock.c was added on branch nathanw_sa on 2002-01-08 00:27:17 +0000
 1.2.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.8.1 31-Aug-2002  gehenna catch up with -current.
 1.5.2.5 11-Dec-2005  christos Sync with head.
 1.5.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 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.8.1 22-Nov-2005  yamt sync with head.
 1.11.2.3 27-Oct-2007  yamt 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.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.13.10.1 11-May-2006  elad sync with head
 1.13.8.3 14-Sep-2006  yamt sync with head.
 1.13.8.2 26-Jun-2006  yamt sync with head.
 1.13.8.1 24-May-2006  yamt sync with head.
 1.13.6.1 01-Jun-2006  kardel Sync with head.
 1.13.4.1 09-Sep-2006  rpaulo sync with head
 1.16.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.18.4.2 10-Dec-2006  yamt sync with head.
 1.18.4.1 22-Oct-2006  yamt sync with head
 1.18.2.1 18-Nov-2006  ad Sync with head.
 1.20.32.1 25-Oct-2007  bouyer Sync with HEAD.
 1.20.30.1 18-Oct-2007  yamt sync with head.
 1.20.28.1 06-Nov-2007  matt sync with HEAD
 1.20.26.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.20.16.2 03-May-2007  garbled Add com0 back to GENERIC, delete clock.c as now prep uses the shared clock.c
 1.20.16.1 03-May-2007  garbled Convert prep over to the shared interrupts. Still alot of cleanup to do
following this change.
 1.20.8.1 23-Oct-2007  ad Sync with head.
 1.2 01-Nov-2003  tsutsui - Adapt mkclock_isa.c to MI mk48txx(4) changes.
- Switch mcclock_isa.c to use MI mc146818 driver.
- Use todr(9) interface with both todclock drivers.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file clockvar.h was added on branch thorpej_scsipi on 2000-11-20 20:23:05 +0000
 1.13 26-Oct-2002  jdolecek now that mem_no is emitted by config(8), there is no reason to keep
copy of more or less identical iskmemdev() for every arch; move the function
to spec_vnop.c, and g/c machine-dependant copies
 1.12 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.11 19-Jul-2002  thorpej Rename cdev_systrace_init() to cdev_clonemisc_init(), so it can
be properly used by any misc. cloning device. While here, correct
a comment to indicate that "open" is the only entry point and that
everything else is handled with fileops.
 1.10 17-Jun-2002  christos MD systrace gluons.
 1.9 16-Mar-2002  martin branches: 1.9.4;
Rename ISDN devices, per discussion on tech-kern. The network devices
become ippp (ISDN ppp) and irip (ISDN raw IP). The character device now
are called: /dev/isdn (isdnd <-> kernel communication), /dev/isdnctl (dialing
and other control), /dev/isdntrc* (tracing), /dev/isdnbchan* (raw B channel
access, i.e. for user land PPP) and /dev/isdntel* (telephone devices, i.e.
for answering machines).
 1.8 12-Jan-2002  manu Added clockctl
 1.7 11-Dec-2001  kleink Add pci device.
 1.6 11-Dec-2001  kleink Add wsfont pseudo-device.
 1.5 21-Mar-2001  lukem branches: 1.5.2; 1.5.8;
move duplicate definitions for:
pc, lpt, joy, ocis, apm, satlink, i4bctl, i4brbch, i4btel, i4btrc, i4b
from the port-specific arch/*/*/conf.c files into sys/conf.h
 1.4 14-Jan-2001  martin branches: 1.4.2;
The i4b raw b-channel devices actually do have an ioctl routine,
so better add this to the cdevsw entry.
Noted by Bruno Achauer.
 1.3 09-Jan-2001  martin When adding isdn devices I forgot to check chrtoblktbl.
Fix this know for the affected archs.
 1.2 08-Jan-2001  martin Add isdn devices to all archs that seem to support at least one of the
necessary busses. Sync comments with reality for archs that already had
the devices.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.4 27-Mar-2001  bouyer Sync with HEAD.
 1.1.6.3 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file conf.c was added on branch thorpej_scsipi on 2000-11-20 20:23:05 +0000
 1.4.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.5.8.8 11-Nov-2002  nathanw Catch up to -current
 1.5.8.7 17-Sep-2002  nathanw Catch up to -current.
 1.5.8.6 01-Aug-2002  nathanw Catch up to -current.
 1.5.8.5 20-Jun-2002  nathanw Catch up to -current.
 1.5.8.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.5.8.3 28-Feb-2002  nathanw Catch up to -current.
 1.5.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.5.8.1 21-Mar-2001  nathanw file conf.c was added on branch nathanw_sa on 2002-01-08 00:27:17 +0000
 1.5.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.5.2.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.5.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.5.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.5.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.9.4.3 21-Jul-2002  gehenna catch up with -current.
 1.9.4.2 15-Jul-2002  gehenna catch up with -current.
 1.9.4.1 16-May-2002  gehenna Bye block/character device swicth tables.
 1.8 13-Oct-2012  jdc Adapt to the changed signature of pckbc_cnattach().
 1.7 01-Jul-2011  dyoung branches: 1.7.2; 1.7.12;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.6 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.5 09-Mar-2006  garbled branches: 1.5.20; 1.5.28; 1.5.38; 1.5.40; 1.5.42; 1.5.44;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10;
merge ktrace-lwp.
 1.3 15-Jul-2003  lukem branches: 1.3.16;
__KERNEL_RCSID()
 1.2 14-Jun-2003  thorpej branches: 1.2.2;
Also pass a type argument to comcnattach() and com_kgdb_attach().
comspeed() (and thus cominit()) may need this information.
 1.1 25-Apr-2002  nonaka branches: 1.1.6; 1.1.8;
Separate consinit.
 1.1.8.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.8.1 25-Apr-2002  jdolecek file consinit.c was added on branch kqueue on 2002-06-23 17:39:53 +0000
 1.1.6.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.6.1 25-Apr-2002  nathanw file consinit.c was added on branch nathanw_sa on 2002-06-20 03:40:40 +0000
 1.2.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.2.1 03-Aug-2004  skrll Sync with HEAD
 1.3.16.2 27-Oct-2007  yamt sync with head.
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.4.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.8.1 13-Mar-2006  yamt sync with head.
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5.44.1 25-Oct-2007  bouyer Sync with HEAD.
 1.5.42.1 18-Oct-2007  yamt sync with head.
 1.5.40.1 06-Nov-2007  matt sync with HEAD
 1.5.38.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.5.28.2 09-May-2007  garbled More prep rototill. Utilize the functions provided in
powerpc/oea/prep_machdep.c. While here, clean up some unused functions
and prototypes.
 1.5.28.1 01-May-2007  garbled Rename the prep isa io and mem bus space tags to genppc_* to promote
sharing of isa functionality.
 1.5.20.1 23-Oct-2007  ad Sync with head.
 1.7.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.7.2.1 30-Oct-2012  yamt sync with head
 1.18 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.17 29-Jun-2011  matt Adapt to cpu_hatch_data changes
 1.16 05-Jun-2011  matt struct device * -> device_t, struct cfdata * -> cfdata_t
CFATTACH_DECL(*, sizeof(struct device), -> CFATTACH_DECL_NEW(&, 0
 1.15 28-Apr-2008  martin branches: 1.15.22; 1.15.28; 1.15.32;
Remove clause 3 and 4 from TNF licenses
 1.14 17-Oct-2007  garbled branches: 1.14.16; 1.14.18; 1.14.20;
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.13 08-May-2006  garbled branches: 1.13.18; 1.13.26; 1.13.36; 1.13.38; 1.13.40; 1.13.42;
Switch prep over to evcnt(9). While I was here, I also switched it to
use struct cpu_info for the cpu stuff. Tested on 7248 and 7043.
 1.12 09-Mar-2006  garbled branches: 1.12.2;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.11 11-Dec-2005  christos branches: 1.11.4; 1.11.6; 1.11.8; 1.11.10;
merge ktrace-lwp.
 1.10 15-Jul-2003  lukem branches: 1.10.16;
__KERNEL_RCSID()
 1.9 02-Feb-2003  matt branches: 1.9.2;
Perform a rototill of the powerpc code. Mandate use of SPRG0 to store
a pointer to current cpu's cpu_info structure. Use cpu_info for
intstk,intr_depth,still_stk,idle_pcb,curpcb,curlwp,etal even on
non-MULTIPROCESSOR machines. Add common macros GET_CPUINFO and
INIT_CPUINFO to get and initialize the cpu_info struct on startup. Make
ibm4xx use the standard <powerpc/frame.h>. Use IFRAME_xx in ibm4xx
trap_subr.S instead of explicit magic offsets. Move INTSTK and SPILLSTK
to std.<platform>. Change faultbuf to a struct instead of an array.

On MPC6XX cpus, stop using the vector page for temporary space and use
reserved space in cpu_info.
 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 26-Aug-2001  matt branches: 1.5.6;
Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.4 20-Jun-2001  nonaka branches: 1.4.2;
Seprate model depended code. (based on arc 'struct platform')

files.prep:
- add new files entry.

pci_machdep.c:
- use dev/pci/pciconf.c instead of mine for pci io/mem addr/intr fixup.

cpu.c:
- separate code

machdep.c:
- call ident_platform()

mainbus.c:
- call pci_configure_bus(), if defined PCI_NETBSD_CONFIGURE

ibm_machdep.c:
- for IBM PReP generic

ibm_6050.c:
- for IBM Personal Power Series 830/850

ibm_7248.c:
- for IBM RS6000/43P deppendency
 1.3 19-Jun-2001  nonaka Back out last changes.
 1.2 17-Jun-2001  nonaka identified prep model.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.8;
Initial import prep port.
 1.1.8.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file cpu.c was added on branch thorpej_scsipi on 2000-11-20 20:23:05 +0000
 1.4.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.4.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.5.6.2 18-Oct-2002  nathanw Catch up to -current.
 1.5.6.1 26-Aug-2001  nathanw file cpu.c was added on branch nathanw_sa on 2002-10-18 02:39:35 +0000
 1.9.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.9.2.1 03-Aug-2004  skrll Sync with HEAD
 1.10.16.2 27-Oct-2007  yamt sync with head.
 1.10.16.1 21-Jun-2006  yamt sync with head.
 1.11.10.2 11-May-2006  elad sync with head
 1.11.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.11.8.2 24-May-2006  yamt sync with head.
 1.11.8.1 13-Mar-2006  yamt sync with head.
 1.11.6.2 01-Jun-2006  kardel Sync with head.
 1.11.6.1 22-Apr-2006  simonb Sync with head.
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.12.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.13.42.1 25-Oct-2007  bouyer Sync with HEAD.
 1.13.40.1 18-Oct-2007  yamt sync with head.
 1.13.38.1 06-Nov-2007  matt sync with HEAD
 1.13.36.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.13.26.1 11-Oct-2007  garbled Move a bunch of the macppc SMP code out of macppc, and down into the
generic OEA code. Add a set of md callbacks into these shared routines,
that any oeappc SMP machine needs to provide. This allows for generally
shared SMP startup code, but still allows for machine-specific
differences in the setup and kicking of the new CPU.

Convert macppc to this new layout. Tested by Macallan.

Add an initial attempt at SMP to prep. Tested on UP machine only,
untested on SMP yet.
 1.13.18.1 23-Oct-2007  ad Sync with head.
 1.14.20.1 16-May-2008  yamt sync with head.
 1.14.18.1 18-May-2008  yamt sync with head.
 1.14.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.15.32.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.15.28.1 06-Jun-2011  jruoho Sync with HEAD.
 1.15.22.1 12-Jun-2011  rmind sync with head
 1.15 10-May-2006  garbled Switch prep to use the MI mbr/disklabel code.
 1.14 09-May-2006  garbled KNF these files.
 1.13 11-Dec-2005  christos branches: 1.13.4; 1.13.6; 1.13.8; 1.13.10; 1.13.12;
merge ktrace-lwp.
 1.12 05-Jun-2005  he branches: 1.12.2;
Adapt to compiling with -Wcast-qual and -Wshadow.
 1.11 08-Oct-2003  lukem Overhaul MBR handling (part 1):

<sys/bootblock.h>:
* Added definitions for the Master Boot Record (MBR) used by
a variety of systems (primarily i386), including the format
of the BIOS Parameter Block (BPB).
This information was cribbed from a variety of sources
including <sys/disklabel_mbr.h> which this is a superset of.

As part of this, some data structure elements and #defines
were renamed to be more "namespace friendly" and consistent
with other bootblocks and MBR documentation.
Update all uses of the old names to the new names.

<sys/disklabel_mbr.h>:
* Deprecated in favor of <sys/bootblock.h> (the latter is more
"host tool" friendly).

amd64 & i386:
* Renamed /usr/mdec/bootxx_dosfs to /usr/mdec/bootxx_msdos, to
be consistent with the naming convention of the msdosfs tools.

* Removed /usr/mdec/bootxx_ufs, as it's equivalent to bootxx_ffsv1
and it's confusing to have two functionally equivalent bootblocks,
especially given that "ufs" has multiple meanings (it could be
a synonym for "ffs", or the group of ffs/lfs/ext2fs file systems).

* Rework pbr.S (the first sector of bootxx_*):
+ Ensure that BPB (bytes 11..89) and the partition table
(bytes 446..509) do not contain code.
+ Add support for booting from FAT partitions if BOOT_FROM_FAT
is defined. (Only set for bootxx_msdos).
+ Remove "dummy" partition 3; if people want to installboot(8)
these to the start of the disk they can use fdisk(8) to
create a real MBR partition table...
+ Compile with TERSE_ERROR so it fits because of the above.
Whilst this is less user friendly, I feel it's important
to have a valid partition table and BPB in the MBR/PBR.

* Renamed /usr/mdec/biosboot to /usr/mdec/boot, to be consistent
with other platforms.

* Enable SUPPORT_DOSFS in /usr/mdec/boot (stage2), so that
we can boot off FAT partitions.

* Crank version of /usr/mdec/boot to 3.1, and fix some of the other
entries in the version file.

installboot(8) (i386):
* Read the existing MBR of the filesystem and retain the BIOS
Parameter Block (BPB) in bytes 11..89 and the MBR partition
table in bytes 446..509. (Previously installboot(8) would
trash those two sections of the MBR.)

mbrlabel(8):
* Use sys/lib/libkern/xlat_mbr_fstype.c instead of homegrown code
to map the MBR partition type to the NetBSD disklabel type.


Test built "make release" for i386, and new bootblocks verified to work
(even off FAT!).
 1.10 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.9 15-Jul-2003  lukem __KERNEL_RCSID()
 1.8 12-May-2003  thorpej branches: 1.8.2;
Include <sys/disk.h>.
 1.7 10-May-2003  thorpej Change bounds_check_with_label() to take a pointer to the disk structure,
rather than the label itself. This paves the way for some future changes.
 1.6 02-May-2003  dsl Change return type of readdisklabel() to const char *
I hope I've found all the correct places!
 1.5 16-Apr-2003  bouyer Nake return values from bounds_check_with_label() conform to the man
page: -1 for error, 0 for EOF, 1 otherwise. Inspired by an OpenBSD commit
message, pointed out by Miod Vallat in private mail.
vax/mba/hp.c: check return value <= 0, not < 0 to be concistent with how
other places handle return values from bounds_check_with_label().
 1.4 19-Feb-2002  wiz strategy should have an 'r'. Inspired by similar change in OpenBSD.
 1.3 20-Nov-2000  chs branches: 1.3.2; 1.3.4; 1.3.6; 1.3.10;
rationalize the use of b_flags for geteblk() buffers.
rather than assigning to the whole field, set or clear individual flags,
which implies that the B_BUSY and B_INVAL flags will remain set.
this allows us to make the assertion in brelse() that B_BUSY is set,
which is the purpose of all this.
 1.2 02-May-2000  nonaka mbr partition table parameter is little endian.
need to bswap.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.3.10.1 28-Feb-2002  nathanw Catch up to -current.
 1.3.6.1 16-Mar-2002  jdolecek Catch up with -current.
 1.3.4.1 10-Oct-2001  fvdl Convert all remaining devices.
 1.3.2.3 22-Nov-2000  bouyer Sync with HEAD.
 1.3.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.1 20-Nov-2000  bouyer file disksubr.c was added on branch thorpej_scsipi on 2000-11-20 20:23:05 +0000
 1.8.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.8.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.8.2.1 03-Aug-2004  skrll Sync with HEAD
 1.12.2.1 21-Jun-2006  yamt sync with head.
 1.13.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.13.10.1 11-May-2006  elad sync with head
 1.13.8.1 24-May-2006  yamt sync with head.
 1.13.6.1 01-Jun-2006  kardel Sync with head.
 1.13.4.1 09-Sep-2006  rpaulo sync with head
 1.29 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.28 09-Feb-2007  ad branches: 1.28.6; 1.28.14; 1.28.22; 1.28.24; 1.28.26; 1.28.28;
Merge newlock2 to head.
 1.27 30-Oct-2006  garbled Make these files compile with -Wextra -Wno-unused
 1.26 13-Jul-2006  garbled branches: 1.26.4; 1.26.6;
Rather than hardcode the location of the Interrupt Vector Register, we
try to locate it using the residual data. On some machines this doesn't
work, so we fall back to hardcoding it. This should fix isa interrupts
on the 7025-F40, which has the IVR at a different location.
 1.25 29-Jun-2006  garbled Change how the MPIC/OpenPIC is configured at boot. Rather than scanning
for a magical PCI device location (that is sometimes wrong), we scan the
residual data for an MPIC, and if we find one, wire it up from there.
This will hopefully allow interrupts to work on the MPC750 and the
7025-F40. I suspect however the interrupt vector address on the 7025 will
still need some work.
 1.24 27-Jun-2006  garbled General fixups:
1) Fix support for the powerstack E1. This machine needs to use the 8259
directly, and cannot use the prep interrupt vector register. Place a
quirk entry in the table for the machine.
2) Add a new com0_vreset boot image. The vreset code only works on a few
machines, and breaks others like the 7025-F40. Its only limitedly useful
when used with the com0, so just make it an optional image the user can
install by hand if they want.
3) Bump the bootloader to 1.8 with the above change.
 1.23 09-May-2006  garbled branches: 1.23.4;
convert some of the simple __asm statements to the standard powerpc
macros, like mtmsr().
 1.22 08-May-2006  garbled Switch prep over to evcnt(9). While I was here, I also switched it to
use struct cpu_info for the cpu stuff. Tested on 7248 and 7043.
 1.21 03-May-2006  garbled Generic soft interrupt support for prep. Mostly copied from macppc,
tested on 7248 and 7043.
 1.20 09-Mar-2006  garbled branches: 1.20.2;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.19 24-Dec-2005  perry branches: 1.19.4; 1.19.6; 1.19.8; 1.19.10;
bare asm -> __asm
 1.18 11-Dec-2005  christos merge ktrace-lwp.
 1.17 07-Aug-2003  agc branches: 1.17.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.16 15-Jul-2003  lukem __KERNEL_RCSID()
 1.15 16-Jun-2003  thorpej branches: 1.15.2;
Rename IPL_IMP -> IPL_VM.
 1.14 05-Jul-2002  matt Peform a rototill over the powerpc-based ports.

Move the trap/vector initialization for MPC6xx ports to mpc6xx_machdep.c
Also move softnet, install_extintr, mapiodev, kvtop. Add common BAT
initialization code.

Add user Altivec support.

Fix calls to OF_call_method in macppc/macppc/machdep.c.

Use ci_fpuproc in cpu_info instead of separate fpuproc.

Add separate syscall.c and defined __HAVE_SYSCALL_INTERN.
 1.13 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.12 13-May-2002  matt branches: 1.12.2;
Remove declarations for variables that defined elsewhere in MPC6XX code.
 1.11 04-Mar-2002  simonb branches: 1.11.2;
Don't "extern int cold;" - this is in <sys/kernel.h>.
 1.10 26-Feb-2002  kleink Move the ext_intr() variant using the board interrupt vector register
into common code; it is not specific to the 6050, and in fact not even
specific to IBM-built hardware.
 1.9 20-Jun-2001  nonaka branches: 1.9.2; 1.9.8;
ANSI'fy
 1.8 19-Jun-2001  nonaka Back out last changes.
 1.7 17-Jun-2001  nonaka identified prep model.
 1.6 15-Jan-2001  thorpej branches: 1.6.2;
Make softclock a generic soft interrupt of the API is available,
adding the requisite void * argument to softclock().
 1.5 27-Nov-2000  matt Rework bus_space to conform the PReP I/O & MEM limits. Add a few debugging
printfs concerning interrupts.
 1.4 22-Nov-2000  nonaka Set intrtype[irq] if interrupt type is IST_NONE.
 1.3 29-Jun-2000  mrg branches: 1.3.2;
remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.2 01-May-2000  kleink Like, really block soft clock interrupts.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.3.2.4 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.3.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.3.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.1 29-Jun-2000  bouyer file extintr.c was added on branch thorpej_scsipi on 2000-11-20 20:23:05 +0000
 1.6.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.9.8.5 01-Aug-2002  nathanw Catch up to -current.
 1.9.8.4 20-Jun-2002  nathanw Catch up to -current.
 1.9.8.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.9.8.2 28-Feb-2002  nathanw Catch up to -current.
 1.9.8.1 20-Jun-2001  nathanw file extintr.c was added on branch nathanw_sa on 2002-02-28 04:11:31 +0000
 1.9.2.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.9.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.9.2.1 16-Mar-2002  jdolecek Catch up with -current.
 1.11.2.1 17-Mar-2002  thorpej IPL_IMP -> IPL_VM
 1.12.2.2 16-Jul-2002  gehenna catch up with -current.
 1.12.2.1 15-Jul-2002  gehenna catch up with -current.
 1.15.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.15.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.15.2.1 03-Aug-2004  skrll Sync with HEAD
 1.17.16.4 27-Oct-2007  yamt sync with head.
 1.17.16.3 26-Feb-2007  yamt sync with head.
 1.17.16.2 30-Dec-2006  yamt sync with head.
 1.17.16.1 21-Jun-2006  yamt sync with head.
 1.19.10.2 11-May-2006  elad sync with head
 1.19.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.19.8.3 11-Aug-2006  yamt sync with head
 1.19.8.2 24-May-2006  yamt sync with head.
 1.19.8.1 13-Mar-2006  yamt sync with head.
 1.19.6.2 01-Jun-2006  kardel Sync with head.
 1.19.6.1 22-Apr-2006  simonb Sync with head.
 1.19.4.1 09-Sep-2006  rpaulo sync with head
 1.20.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.23.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.26.6.1 10-Dec-2006  yamt sync with head.
 1.26.4.2 28-Jan-2007  ad powerpc changes.
 1.26.4.1 18-Nov-2006  ad Sync with head.
 1.28.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.28.26.1 18-Oct-2007  yamt sync with head.
 1.28.24.1 06-Nov-2007  matt sync with HEAD
 1.28.22.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.28.14.1 03-May-2007  garbled Get rid of extintr.c, its useless now.
 1.28.6.1 23-Oct-2007  ad Sync with head.
 1.6 18-Apr-2002  matt Use a common genassym.cf for all the PPC_MPC6XX ports. Add a makeoptions to
std.foo to indicate the directory to get genassym.cf from. Add an intrframe
to <powerpc/frame.h> and make trap_subr.S use symbolic offsets into it.
 1.5 01-Jul-2001  matt branches: 1.5.2; 1.5.8;
Add PM_SR
 1.4 22-Nov-2000  matt Make assym.h be generated again
Add pcmcia support to files.prep
Add isa_intr_alloc support.
 1.3 29-Jun-2000  mrg branches: 1.3.2;
remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.2 26-May-2000  thorpej Introduce a new process state distinct from SRUN called SONPROC
which indicates that the process is actually running on a
processor. Test against SONPROC as appropriate rather than
combinations of SRUN and curproc. Update all context switch code
to properly set SONPROC when the process becomes the current
process on the CPU.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.3.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.3.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.1 29-Jun-2000  bouyer file genassym.cf was added on branch thorpej_scsipi on 2000-11-20 20:23:06 +0000
 1.5.8.4 20-Jun-2002  nathanw Catch up to -current.
 1.5.8.3 13-Nov-2001  briggs Define L_CPU.
 1.5.8.2 05-Nov-2001  briggs Initial SA support for ppc. Test-booted on sandpoint, macppc, & walnut.
mcontext and cpu_getmcontext()/cpu_setmcontext() from Klaus Klein
<kleink@netbsd.org>.
 1.5.8.1 01-Jul-2001  briggs file genassym.cf was added on branch nathanw_sa on 2001-11-05 19:46:20 +0000
 1.5.2.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.5 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.4 23-Feb-2006  garbled branches: 1.4.2; 1.4.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.3 11-Dec-2005  christos branches: 1.3.2; 1.3.4; 1.3.6;
merge ktrace-lwp.
 1.2 13-Jan-2005  kleink branches: 1.2.10;
Pass the interrupt swizzle down to the platforms' fixup functions.
N.B. Only using it on the ulmb60xa for now.
 1.1 26-Jun-2004  kleink branches: 1.1.2;
Add platform support for the IBM RS/6000 6015 a/k/a 7020-001 a/k/a 40P.
 1.1.2.5 17-Jan-2005  skrll Sync with HEAD.
 1.1.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.2.2 03-Aug-2004  skrll Sync with HEAD
 1.1.2.1 26-Jun-2004  skrll file ibm_6015.c was added on branch ktrace-lwp on 2004-08-03 10:39:48 +0000
 1.2.10.1 21-Jun-2006  yamt sync with head.
 1.3.6.1 22-Apr-2006  simonb Sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.3.2.1 01-Mar-2006  yamt sync with head.
 1.4.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.2.1 13-Mar-2006  yamt sync with head.
 1.7 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.6 23-Feb-2006  garbled branches: 1.6.2; 1.6.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.5 11-Dec-2005  christos branches: 1.5.2; 1.5.4; 1.5.6;
merge ktrace-lwp.
 1.4 13-Jan-2005  kleink branches: 1.4.10;
Pass the interrupt swizzle down to the platforms' fixup functions.
N.B. Only using it on the ulmb60xa for now.
 1.3 15-Jul-2003  lukem __KERNEL_RCSID()
 1.2 21-Jan-2003  jdolecek branches: 1.2.2;
comment out static prototype for pci_intr_fixup_ibm_6040() for now,
it's not implemented here (nor used)
 1.1 16-Jan-2003  matt branches: 1.1.2;
Add platform support for the IBM PPS Model 6040 (E) (aka ThinkPad 820).
 1.1.2.2 17-Jan-2003  thorpej Sync with HEAD.
 1.1.2.1 16-Jan-2003  thorpej file ibm_6040.c was added on branch nathanw_sa on 2003-01-17 16:09:03 +0000
 1.2.2.4 17-Jan-2005  skrll Sync with HEAD.
 1.2.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.2.1 03-Aug-2004  skrll Sync with HEAD
 1.4.10.1 21-Jun-2006  yamt sync with head.
 1.5.6.1 22-Apr-2006  simonb Sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.5.2.1 01-Mar-2006  yamt sync with head.
 1.6.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.6.2.1 13-Mar-2006  yamt sync with head.
 1.11 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.10 23-Feb-2006  garbled branches: 1.10.2; 1.10.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.9 11-Dec-2005  christos branches: 1.9.2; 1.9.4; 1.9.6;
merge ktrace-lwp.
 1.8 13-Jan-2005  kleink branches: 1.8.10;
Pass the interrupt swizzle down to the platforms' fixup functions.
N.B. Only using it on the ulmb60xa for now.
 1.7 15-Jul-2003  lukem __KERNEL_RCSID()
 1.6 30-May-2002  nonaka branches: 1.6.6;
Support IBM RS/6000 43P 7043-140.
 1.5 02-May-2002  nonaka branches: 1.5.2;
Added IBM Personal Power Series 830 IDE controller support.
 1.4 02-May-2002  nonaka rename reset_ibm_generic() -> reset_prep_generic().
 1.3 26-Feb-2002  kleink Move the ext_intr() variant using the board interrupt vector register
into common code; it is not specific to the 6050, and in fact not even
specific to IBM-built hardware.
 1.2 24-Feb-2002  kleink In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.1 20-Jun-2001  nonaka branches: 1.1.2; 1.1.8;
Seprate model depended code. (based on arc 'struct platform')

files.prep:
- add new files entry.

pci_machdep.c:
- use dev/pci/pciconf.c instead of mine for pci io/mem addr/intr fixup.

cpu.c:
- separate code

machdep.c:
- call ident_platform()

mainbus.c:
- call pci_configure_bus(), if defined PCI_NETBSD_CONFIGURE

ibm_machdep.c:
- for IBM PReP generic

ibm_6050.c:
- for IBM Personal Power Series 830/850

ibm_7248.c:
- for IBM RS6000/43P deppendency
 1.1.8.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.8.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.8.1 20-Jun-2001  nathanw file ibm_6050.c was added on branch nathanw_sa on 2002-02-28 04:11:31 +0000
 1.1.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.2.1 16-Mar-2002  jdolecek Catch up with -current.
 1.5.2.1 15-Jul-2002  gehenna catch up with -current.
 1.6.6.4 17-Jan-2005  skrll Sync with HEAD.
 1.6.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.6.1 03-Aug-2004  skrll Sync with HEAD
 1.8.10.1 21-Jun-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.9.2.1 01-Mar-2006  yamt sync with head.
 1.10.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.10.2.1 13-Mar-2006  yamt sync with head.
 1.2 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.1 23-Feb-2006  garbled branches: 1.1.2; 1.1.4; 1.1.6;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.1.6.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.4.1 13-Mar-2006  yamt sync with head.
 1.1.2.2 01-Mar-2006  yamt sync with head.
 1.1.2.1 23-Feb-2006  yamt file ibm_7024.c was added on branch yamt-uio_vmspace on 2006-03-01 09:28:02 +0000
 1.7 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.6 23-Feb-2006  garbled branches: 1.6.2; 1.6.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.5 11-Dec-2005  christos branches: 1.5.2; 1.5.4; 1.5.6;
merge ktrace-lwp.
 1.4 31-Jan-2005  jkunz branches: 1.4.6;
Only a part of the PCI memory space is mapped via BAT registers in machdep.c.
Depending on where the firmware relocated the OpenPIC register window it may
be unmapped causing a kernel panic early in bootup when the OpenPIC is
initialized. So take care of mapping it if it is outside the already mapped
region. As mapiodev() requires UVM move this initialization to cpu_startup().
 1.3 13-Jan-2005  kleink branches: 1.3.2; 1.3.4;
Pass the interrupt swizzle down to the platforms' fixup functions.
N.B. Only using it on the ulmb60xa for now.
 1.2 15-Jul-2003  lukem branches: 1.2.2; 1.2.6;
__KERNEL_RCSID()
 1.1 30-May-2002  nonaka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.12;
Support IBM RS/6000 43P 7043-140.
 1.1.12.5 04-Feb-2005  skrll Sync with HEAD.
 1.1.12.4 17-Jan-2005  skrll Sync with HEAD.
 1.1.12.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.12.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.12.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 15-Jul-2002  gehenna catch up with -current.
 1.1.6.1 30-May-2002  gehenna file ibm_7043_140.c was added on branch gehenna-devsw on 2002-07-15 00:33:16 +0000
 1.1.4.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.4.1 30-May-2002  jdolecek file ibm_7043_140.c was added on branch kqueue on 2002-06-23 17:39:54 +0000
 1.1.2.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.2.1 30-May-2002  nathanw file ibm_7043_140.c was added on branch nathanw_sa on 2002-06-20 03:40:41 +0000
 1.2.6.1 17-Mar-2005  he Pull up revision 1.4 (requested by jkunz in ticket #1152):
Ensure that the OpenPIC register window is mapped during
the startup; only parts of the PCI memory space is mapped
already. Move initialization since it requires UVM.
 1.2.2.1 17-Mar-2005  he Pull up revision 1.4 (requested by jkunz in ticket #1152):
Ensure that the OpenPIC register window is mapped during
the startup; only parts of the PCI memory space is mapped
already. Move initialization since it requires UVM.
 1.3.4.1 12-Feb-2005  yamt sync with head.
 1.3.2.1 29-Apr-2005  kent sync with -current
 1.4.6.1 21-Jun-2006  yamt sync with head.
 1.5.6.1 22-Apr-2006  simonb Sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.5.2.1 01-Mar-2006  yamt sync with head.
 1.6.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.6.2.1 13-Mar-2006  yamt sync with head.
 1.11 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.10 23-Feb-2006  garbled branches: 1.10.2; 1.10.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.9 11-Dec-2005  christos branches: 1.9.2; 1.9.4; 1.9.6;
merge ktrace-lwp.
 1.8 13-Jan-2005  kleink branches: 1.8.10;
Pass the interrupt swizzle down to the platforms' fixup functions.
N.B. Only using it on the ulmb60xa for now.
 1.7 15-Jul-2003  lukem __KERNEL_RCSID()
 1.6 30-May-2002  nonaka branches: 1.6.6;
Support IBM RS/6000 43P 7043-140.
 1.5 02-May-2002  nonaka branches: 1.5.2;
Added IBM Personal Power Series 830 IDE controller support.
 1.4 02-May-2002  nonaka rename reset_ibm_generic() -> reset_prep_generic().
 1.3 02-May-2002  nonaka use ext_intr_ivr, too.
 1.2 24-Feb-2002  kleink In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.1 20-Jun-2001  nonaka branches: 1.1.2; 1.1.8;
Seprate model depended code. (based on arc 'struct platform')

files.prep:
- add new files entry.

pci_machdep.c:
- use dev/pci/pciconf.c instead of mine for pci io/mem addr/intr fixup.

cpu.c:
- separate code

machdep.c:
- call ident_platform()

mainbus.c:
- call pci_configure_bus(), if defined PCI_NETBSD_CONFIGURE

ibm_machdep.c:
- for IBM PReP generic

ibm_6050.c:
- for IBM Personal Power Series 830/850

ibm_7248.c:
- for IBM RS6000/43P deppendency
 1.1.8.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.8.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.8.1 20-Jun-2001  nathanw file ibm_7248.c was added on branch nathanw_sa on 2002-02-28 04:11:31 +0000
 1.1.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.2.1 16-Mar-2002  jdolecek Catch up with -current.
 1.5.2.1 15-Jul-2002  gehenna catch up with -current.
 1.6.6.4 17-Jan-2005  skrll Sync with HEAD.
 1.6.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.6.1 03-Aug-2004  skrll Sync with HEAD
 1.8.10.1 21-Jun-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.9.2.1 01-Mar-2006  yamt sync with head.
 1.10.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.10.2.1 13-Mar-2006  yamt sync with head.
 1.16 26-Mar-2014  christos kill sprintf
 1.15 28-Apr-2008  martin branches: 1.15.34; 1.15.44; 1.15.50;
Remove clause 3 and 4 from TNF licenses
 1.14 17-Oct-2007  garbled branches: 1.14.16; 1.14.18; 1.14.20;
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.13 09-Jun-2006  garbled branches: 1.13.16; 1.13.24; 1.13.34; 1.13.36; 1.13.38; 1.13.40;
Completely rework how we look up PCI interrupts on prep:

1) Rather than build an array of the pci->intr mappings, build a proplib
tree.
2) add a SIMPLEQ of device properties to the pci_chipset_tag to hold the
proplib trees of each bus.
3) Move the interrupt routing code from pci_conf_interrupt to pci_map_intr()
4) Deal properly with non-native PCI bridge chips that are not recognized
by the prep firmware, and therefore are not noted in the residual data.

The major win of this restructure is #4. Hopefully I haven't broken
anything. Tested on a 7248-100, 7043-140 and 7024-E20.
 1.12 09-Mar-2006  garbled branches: 1.12.4;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.11 23-Feb-2006  garbled branches: 1.11.2; 1.11.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.10 11-Dec-2005  christos branches: 1.10.2; 1.10.4; 1.10.6;
merge ktrace-lwp.
 1.9 26-Jun-2004  kleink branches: 1.9.12;
Add platform support for the IBM RS/6000 6015 a/k/a 7020-001 a/k/a 40P.
 1.8 15-Jul-2003  lukem __KERNEL_RCSID()
 1.7 16-Jan-2003  matt branches: 1.7.2;
Add platform support for the IBM PPS Model 6040 (E) (aka ThinkPad 820).
 1.6 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.5 02-May-2002  nonaka branches: 1.5.2;
Use PLATFORM_*
 1.4 02-May-2002  nonaka rename reset_ibm_generic() -> reset_prep_generic().
 1.3 25-Apr-2002  nonaka remove show CPU & L2 cache info routine.
 1.2 26-Aug-2001  matt branches: 1.2.6;
Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.1 20-Jun-2001  nonaka branches: 1.1.2;
Seprate model depended code. (based on arc 'struct platform')

files.prep:
- add new files entry.

pci_machdep.c:
- use dev/pci/pciconf.c instead of mine for pci io/mem addr/intr fixup.

cpu.c:
- separate code

machdep.c:
- call ident_platform()

mainbus.c:
- call pci_configure_bus(), if defined PCI_NETBSD_CONFIGURE

ibm_machdep.c:
- for IBM PReP generic

ibm_6050.c:
- for IBM Personal Power Series 830/850

ibm_7248.c:
- for IBM RS6000/43P deppendency
 1.1.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.6.3 17-Jan-2003  thorpej Sync with HEAD.
 1.2.6.2 20-Jun-2002  nathanw Catch up to -current.
 1.2.6.1 26-Aug-2001  nathanw file ibm_machdep.c was added on branch nathanw_sa on 2002-06-20 03:40:42 +0000
 1.5.2.1 15-Jul-2002  gehenna catch up with -current.
 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.9.12.2 27-Oct-2007  yamt sync with head.
 1.9.12.1 21-Jun-2006  yamt sync with head.
 1.10.6.1 22-Apr-2006  simonb Sync with head.
 1.10.4.1 09-Sep-2006  rpaulo sync with head
 1.10.2.1 01-Mar-2006  yamt sync with head.
 1.11.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.11.2.2 26-Jun-2006  yamt sync with head.
 1.11.2.1 13-Mar-2006  yamt sync with head.
 1.12.4.1 19-Jun-2006  chap Sync with head.
 1.13.40.1 25-Oct-2007  bouyer Sync with HEAD.
 1.13.38.1 18-Oct-2007  yamt sync with head.
 1.13.36.1 06-Nov-2007  matt sync with HEAD
 1.13.34.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.13.24.2 01-May-2007  garbled change prep_pct to genppc_pct to share better
 1.13.24.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.13.16.1 23-Oct-2007  ad Sync with head.
 1.14.20.1 16-May-2008  yamt sync with head.
 1.14.18.1 18-May-2008  yamt sync with head.
 1.14.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.15.50.1 18-May-2014  rmind sync with head
 1.15.44.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.15.34.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.21 26-Feb-2021  thorpej Declare oeacpufeat once, in powerpc/oea/cpu_subr.c, rather than in
N different locore.S files.
 1.20 15-Jul-2018  maxv branches: 1.20.12;
Retire ipkdb entirely. The option was removed from the config files
yesterday.

ok kamil christos
 1.19 07-Aug-2014  joerg branches: 1.19.26; 1.19.28;
Use cmpwi.
 1.18 20-Jun-2011  matt branches: 1.18.12; 1.18.26;
Don't include *pmap.h in assembly files. Get the needed definitions
from "assym.h".
 1.17 18-Jun-2011  matt Make a common genassym.cf (powerpc/genassym.cf) and then
only put specific stuff in foo/genassym.cf
 1.16 17-Jan-2011  matt branches: 1.16.4;
Kill _NOREGNAMES. Everything should be using %rX now. If it doesn't it
soon will.
 1.15 03-Mar-2010  pooka branches: 1.15.2; 1.15.4;
Fix some historical powerpc curiocity which had kernfs depend on
startsym/endsym, and which crept into most powerpc ports.
 1.14 02-Mar-2010  matt Add missing <powerpc/FOO/spr.h> to a few files missed on the first pass.
Don't export <machine/spr.h> to userland, only <powerpc/spr.h>
 1.13 26-Nov-2009  matt branches: 1.13.2;
Kill proc0paddr. Use lwp0.l_addr instead.
 1.12 13-Feb-2009  apb Use "defopt MODULAR" in sys/conf/files, and #include "opt_modular.h"
in all kernel sources that use the MODULAR option.
Proposed in tech-kern on 18 Jan 2009.
 1.11 13-Nov-2008  ad branches: 1.11.4;
LKM -> MODULAR
 1.10 05-Feb-2008  garbled branches: 1.10.6; 1.10.10; 1.10.16; 1.10.18; 1.10.28;
Ifdef out all the MPC601 code with PPC_OEA601. Now only arches that have the
possibility of running on an MPC601, are infected with all the extra code
and nops that it added.

Also, fix compilation that I broke with the pmap code, by adding
oeacpufeat to the locores of various ppc arches. Noted by mlelstv.
 1.9 08-May-2006  garbled branches: 1.9.38; 1.9.44;
Switch prep over to evcnt(9). While I was here, I also switched it to
use struct cpu_info for the cpu stuff. Tested on 7248 and 7043.
 1.8 11-Dec-2005  christos branches: 1.8.4; 1.8.6; 1.8.8; 1.8.10; 1.8.12;
merge ktrace-lwp.
 1.7 31-Jul-2003  matt branches: 1.7.16;
Add #define _NOREGNAMES (to suppress asm.h from #define r1 1 ...)
 1.6 27-Apr-2003  ragge branches: 1.6.2;
Preserve the symbol table in the LKM || KSYMS cases also.
 1.5 18-Mar-2003  matt Switch/adapt to new bus space infrastructure.
 1.4 02-Feb-2003  matt Perform a rototill of the powerpc code. Mandate use of SPRG0 to store
a pointer to current cpu's cpu_info structure. Use cpu_info for
intstk,intr_depth,still_stk,idle_pcb,curpcb,curlwp,etal even on
non-MULTIPROCESSOR machines. Add common macros GET_CPUINFO and
INIT_CPUINFO to get and initialize the cpu_info struct on startup. Make
ibm4xx use the standard <powerpc/frame.h>. Use IFRAME_xx in ibm4xx
trap_subr.S instead of explicit magic offsets. Move INTSTK and SPILLSTK
to std.<platform>. Change faultbuf to a struct instead of an array.

On MPC6XX cpus, stop using the vector page for temporary space and use
reserved space in cpu_info.
 1.3 23-Jun-2001  matt branches: 1.3.8;
#include <powerpc/spr.h> Use SPR_HID0 in place of 1008
 1.2 17-Jun-2001  nonaka branches: 1.2.2;
NEWPMAP
 1.1 01-Jun-2001  simonb Rename assembly files that are pre-processed by cpp to use an S suffix.
 1.2.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.3.8.2 23-Jun-2001  matt #include <powerpc/spr.h> Use SPR_HID0 in place of 1008
 1.3.8.1 23-Jun-2001  matt file locore.S was added on branch nathanw_sa on 2001-06-23 02:12:35 +0000
 1.6.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.2.1 03-Aug-2004  skrll Sync with HEAD
 1.7.16.2 11-Feb-2008  yamt sync with head.
 1.7.16.1 21-Jun-2006  yamt sync with head.
 1.8.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.8.10.1 11-May-2006  elad sync with head
 1.8.8.1 24-May-2006  yamt sync with head.
 1.8.6.1 01-Jun-2006  kardel Sync with head.
 1.8.4.1 09-Sep-2006  rpaulo sync with head
 1.9.44.1 18-Feb-2008  mjf Sync with HEAD.
 1.9.38.1 23-Mar-2008  matt sync with HEAD
 1.10.28.1 07-Jan-2011  matt Deal with split <spr.h> (and a few other misc fixes).
 1.10.18.2 03-Mar-2009  skrll Sync with HEAD.
 1.10.18.1 19-Jan-2009  skrll Sync with HEAD.
 1.10.16.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.10.10.2 11-Mar-2010  yamt sync with head
 1.10.10.1 04-May-2009  yamt sync with head.
 1.10.6.1 17-Jan-2009  mjf Sync with HEAD.
 1.11.4.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.13.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.15.4.1 06-Jun-2011  jruoho Sync with HEAD.
 1.15.2.1 05-Mar-2011  rmind sync with head
 1.16.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.18.26.1 10-Aug-2014  tls Rebase.
 1.18.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.19.28.1 10-Jun-2019  christos Sync with HEAD
 1.19.26.1 28-Jul-2018  pgoyette Sync with HEAD
 1.20.12.1 03-Apr-2021  thorpej Sync with HEAD.
 1.11 01-Jun-2001  simonb Rename assembly files that are pre-processed by cpp to use an S suffix.
 1.10 25-Feb-2001  matt Use common switch / setfault / trampoline code. (except amigappc because
it doesn't use trap_subr.S either).
 1.9 04-Dec-2000  tsubai Move INTSTK and SPILLSTK definitions to locore.[Ss] to allow allocation of
them in early startup.
 1.8 16-Nov-2000  thorpej branches: 1.8.2;
Use <powerpc/powerpc/trap_subr.S>
 1.7 21-Aug-2000  tsubai Scheduler locking changes.
 1.6 31-May-2000  thorpej Add a comment about needing to initialize p_cpu when multiple
processors are supported.
 1.5 26-May-2000  thorpej branches: 1.5.2;
First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

- Global state: sched_qs (run queues), sched_whichqs (bitmap
of non-empty run queues), sched_slpque (sleep queues).
NOTE: These may collectively move into a struct schedstate
at some point in the future.

- Per-CPU state, struct schedstate_percpu: spc_runtime
(time process on this CPU started running), spc_flags
(replaces struct proc's p_schedflags), and
spc_curpriority (usrpri of processes on this CPU).

- Every platform must now supply a struct cpu_info and
a curcpu() macro. Simplify existing cpu_info declarations
where appropriate.

- All references to per-CPU scheduler state now made through
curcpu(). NOTE: this will likely be adjusted in the future
after further changes to struct proc are made.

Tested on i386 and Alpha. Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
 1.4 26-May-2000  thorpej Introduce a new process state distinct from SRUN called SONPROC
which indicates that the process is actually running on a
processor. Test against SONPROC as appropriate rather than
combinations of SRUN and curproc. Update all context switch code
to properly set SONPROC when the process becomes the current
process on the CPU.
 1.3 10-May-2000  is fix tyop
 1.2 24-Mar-2000  ws Update several ports to at least work again without IPKDB
after the update of that.
Sorry for breaking this with my last changes :-(.
Fixes PR#9671 by Lennart Augustsson.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.5.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.8.2.6 12-Mar-2001  bouyer Sync with HEAD.
 1.8.2.5 15-Feb-2001  bouyer Re-sync with HEAD files which were out of sync.
 1.8.2.4 08-Dec-2000  bouyer Sync with HEAD.
 1.8.2.3 22-Nov-2000  bouyer Sync with HEAD.
 1.8.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.8.2.1 16-Nov-2000  bouyer file locore.s was added on branch thorpej_scsipi on 2000-11-20 20:23:06 +0000
 1.79 05-Mar-2024  thorpej Move the at-shutdown call to resettodr() from cpu_reboot() to kern_reboot().

It's a small step, but it's a step.
 1.78 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.77 27-Feb-2021  thorpej Don't put #ifdefs in prep_initppc(). Instead, let callers specify the
additional BAT-mapped regions they care about.
 1.76 27-Aug-2018  martin branches: 1.76.12;
Fix initialization order so we can boot again on IBM PPS Model 6015
(which needs pci interrupt fixup quirks).
From Artyom Tarasenko.
 1.75 03-Apr-2014  mrg branches: 1.75.22; 1.75.28; 1.75.30;
GCC 4.8 build fixes from John D. Baker
 1.74 21-Apr-2013  kiyohara branches: 1.74.4;
Fix hangup to interrupt on cascading PIC.
tested on bebox and evbppc/OPENBLOCKS600.
 1.73 30-Jun-2011  matt branches: 1.73.2; 1.73.12;
Modify mapiodev to take a third argument indicating whether the space
should be prefetchable (true) or not (false).
 1.72 20-Jun-2011  matt Cleanup includes. (<net/netisr.h> is handled by softints, not MD anymore,
so this can be nuked).
 1.71 07-Aug-2010  kiyohara branches: 1.71.6;
Remove unnecessary line.
Variable openpic_base exists, if defined PIC_OPENPIC.
 1.70 27-Nov-2009  rmind branches: 1.70.2; 1.70.4;
- Use uvm_lwp_setuarea() instead of directly setting address to lwp_t::l_addr.
- Replace most remaining uses of l_addr with uvm_lwp_getuarea() or lwp_getpcb().
- Amend assembly in ports where it accesses PCB via struct user.
- Rename L_ADDR to L_PCB in few places. Reduce sys/user.h inclusions.
 1.69 18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.68 11-Nov-2008  dyoung branches: 1.68.4;
It is not appropriate to call pmf_system_shutdown(9) from
doshutdownhooks(9): shutdown hooks registered by shutdownhook_establish(9)
expect to be called with interrupts disabled, but shutdown hooks
registered with pmf_device_register1(9) expect to be called with
interrupts enabled. So I have made two changes:

1 Do not call pmf_system_shutdown() from doshutdownhooks(). Instead,
change every call to doshutdownhooks() to a call to doshutdownhooks()
followed by a call to pmf_system_shutdown(). No functional change
is intended by this change.

2 Make i386 re-enable interrupts briefly while it calls
pmf_system_shutdown(). I leave it to others either to fix the
other ports, or to factor out some MI shutdown code, as joerg@
suggests, and fix that. Note that a functional change *is* intended
by this change.

I hope that this patch will stop us from flip-flopping between
calling doshutdownhooks() and pmf_system_shutdown() sometimes with
and sometimes without interrupts enabled.
 1.67 17-Oct-2007  garbled branches: 1.67.16; 1.67.20; 1.67.22; 1.67.26; 1.67.28;
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.66 09-Feb-2007  ad branches: 1.66.6; 1.66.14; 1.66.22; 1.66.24; 1.66.26; 1.66.28;
Merge newlock2 to head.
 1.65 30-Oct-2006  garbled Make these files compile with -Wextra -Wno-unused
 1.64 13-Jul-2006  garbled branches: 1.64.4; 1.64.6;
Rather than hardcode the location of the Interrupt Vector Register, we
try to locate it using the residual data. On some machines this doesn't
work, so we fall back to hardcoding it. This should fix isa interrupts
on the 7025-F40, which has the IVR at a different location.
 1.63 29-Jun-2006  garbled Change how the MPIC/OpenPIC is configured at boot. Rather than scanning
for a magical PCI device location (that is sometimes wrong), we scan the
residual data for an MPIC, and if we find one, wire it up from there.
This will hopefully allow interrupts to work on the MPC750 and the
7025-F40. I suspect however the interrupt vector address on the 7025 will
still need some work.
 1.62 25-May-2006  garbled branches: 1.62.2;
Implement partial support for the RS6K PCI Bridge found on 7025-F40
models. This code was made possible by assistance from Cory Bajus.

Add code that asks the PCI bridge what it's config base address is, and
use that when wiring up an indirect bridge type.
Move prep's user segment register to 10, because the 7025's PCI config
address is at 11, where the user segment used to be.
Add a battable entry for 0xbf800000 for machines with RS6K bridges.

There is still probably work left to be done before a 7025-F40 is fully
supported.
 1.61 09-May-2006  garbled branches: 1.61.2;
KNF these files.
 1.60 08-May-2006  garbled Switch prep over to evcnt(9). While I was here, I also switched it to
use struct cpu_info for the cpu stuff. Tested on 7248 and 7043.
 1.59 03-May-2006  garbled Generic soft interrupt support for prep. Mostly copied from macppc,
tested on 7248 and 7043.
 1.58 16-Mar-2006  garbled branches: 1.58.2;
More changes to prep port:
1) Add the NVRAM device. This device allows us to speak with the nvram on
prep-based machines and read/write to it. Also add a simple IOCTL
interface for speaking with the nvram from userland. This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device. Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
 1.57 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.56 23-Feb-2006  garbled branches: 1.56.2; 1.56.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.55 24-Dec-2005  perry branches: 1.55.2; 1.55.4; 1.55.6;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile
 1.54 24-Dec-2005  perry Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.53 11-Dec-2005  christos merge ktrace-lwp.
 1.52 31-Jan-2005  jkunz branches: 1.52.6;
Only a part of the PCI memory space is mapped via BAT registers in machdep.c.
Depending on where the firmware relocated the OpenPIC register window it may
be unmapped causing a kernel panic early in bootup when the OpenPIC is
initialized. So take care of mapping it if it is outside the already mapped
region. As mapiodev() requires UVM move this initialization to cpu_startup().
 1.51 20-Oct-2003  matt branches: 1.51.2; 1.51.6; 1.51.8; 1.51.10;
Reorganize the way powerpc port install machine specific headers.
Use <powerpc/oea/bat.h> exclusively and remove <machine/bat.h> and
<powerpc/bat.h>. Remove unneeded <machine/cpufunc.h>. To insure
1:1 correspondence of <powerpc/FOO.h> to <machine/FOO.h> include
"../../powerpc/include/Makefile" in "arch/FOO/include/Makefile".
Incororpate <byte_swap.h> into <bswap.h> and then byte_swap.h
 1.50 10-Aug-2003  tsutsui Call prep_bus_space_init() and consinit() after oea_batinit() and oea_init()
because powerpc/bus_space.c:bus_space_init() checks BAT maps. (from mvmeppc)
 1.49 15-Jul-2003  lukem __KERNEL_RCSID()
 1.48 26-Apr-2003  ragge branches: 1.48.2;
Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
 1.47 02-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.46 18-Mar-2003  matt Switch/adapt to new bus space infrastructure.
 1.45 03-Feb-2003  matt Rename PPC_MPC6XX to PPC_OEA (and any mpc6xx reference to oea).
 1.44 22-Jan-2003  kleink G/c the pmap_bootstrap() segtab interface again. Silly me.
 1.43 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.42 25-Sep-2002  thorpej Don't include <sys/map.h>.
 1.41 05-Jul-2002  matt Peform a rototill over the powerpc-based ports.

Move the trap/vector initialization for MPC6xx ports to mpc6xx_machdep.c
Also move softnet, install_extintr, mapiodev, kvtop. Add common BAT
initialization code.

Add user Altivec support.

Fix calls to OF_call_method in macppc/macppc/machdep.c.

Use ci_fpuproc in cpu_info instead of separate fpuproc.

Add separate syscall.c and defined __HAVE_SYSCALL_INTERN.
 1.40 30-May-2002  nonaka Support IBM RS/6000 43P 7043-140.
 1.39 13-May-2002  matt branches: 1.39.2;
Remove declarations for variables that defined elsewhere in MPC6XX code.
 1.38 25-Apr-2002  nonaka Separate consinit.
 1.37 23-Apr-2002  kleink Add a third argument to pmap_bootstrap() which platform-specific
initialization can use to specify additional segment registers to be set
up in the kernel pmap.
 1.36 02-Mar-2002  kleink Give block translations to I/O memory the Guarded attribute; from Matt Thomas.
 1.35 24-Feb-2002  kleink In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.34 24-Feb-2002  kleink Upon reflection, really choose the right pseudo-segment for PCI memory space.
 1.33 24-Feb-2002  kleink Move battable entries for I/O to their correct pseudo-segment offsets;
while BAT spills currently don't happen, it should be possible for the
handlers to find them at the expected address anyway.
 1.32 11-Feb-2002  kleink When enabling hardware interrupts at the end of cpu_startup(), splhigh()
cannot be used to mask them off for deferred processing as autoconfiguration
hasn't even started and thus the IPL_HIGH mask hasn't been calculated yet.

Instead, set the current mask manually to all-masked using splraise().
 1.31 10-Feb-2002  kleink prep_intr_reg is mapped in kva space, so make it vaddr_t.
 1.30 06-Feb-2002  kleink Oops, typo in previous, too.
 1.29 06-Feb-2002  kleink * Fix typos and misusage !PMAP_MAP_POOLPAGE mb_map allocation.
* Use pmap_kenter_pa() for mapiodev().
 1.28 21-Nov-2001  soren prep has no special dependencies on pccons; remove.
 1.27 10-Sep-2001  chris branches: 1.27.4;
Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
 1.26 26-Aug-2001  matt branches: 1.26.2;
Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.25 24-Aug-2001  chs use pmap_k* for buffer cache pages.
 1.24 22-Jul-2001  wiz bcopy -> memcpy, bzero -> memset
 1.23 20-Jun-2001  matt branches: 1.23.2;
Allocate mb_map is PMAP_MAP_POOLPAGE is not defined.
 1.22 20-Jun-2001  nonaka Seprate model depended code. (based on arc 'struct platform')

files.prep:
- add new files entry.

pci_machdep.c:
- use dev/pci/pciconf.c instead of mine for pci io/mem addr/intr fixup.

cpu.c:
- separate code

machdep.c:
- call ident_platform()

mainbus.c:
- call pci_configure_bus(), if defined PCI_NETBSD_CONFIGURE

ibm_machdep.c:
- for IBM PReP generic

ibm_6050.c:
- for IBM Personal Power Series 830/850

ibm_7248.c:
- for IBM RS6000/43P deppendency
 1.21 19-Jun-2001  nonaka Back out last changes.
 1.20 17-Jun-2001  nonaka identified prep model.
 1.19 15-Jun-2001  nonaka Delete unused function.
 1.18 02-Jun-2001  chs replace vm_map{,_entry}_t with struct vm_map{,_entry} *.
 1.17 24-Apr-2001  thorpej Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative. It may be possible to
optimize these a little more.
 1.16 15-Mar-2001  chs eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS 0
KERN_INVALID_ADDRESS EFAULT
KERN_PROTECTION_FAILURE EACCES
KERN_NO_SPACE ENOMEM
KERN_INVALID_ARGUMENT EINVAL
KERN_FAILURE various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE ENOMEM
KERN_NOT_RECEIVER <unused>
KERN_NO_ACCESS <unused>
KERN_PAGES_LOCKED <unused>
 1.15 24-Feb-2001  matt branches: 1.15.2;
Move cpu_sysct and dump{mag,lo,siz} & cpu_dumpconf to powerpc_machdep.c.
dumpsys is still port-specific for now. XXX dumpsys is still a stub
on all powerpc ports.
 1.14 24-Feb-2001  matt Remove setregs since it now lives in powerpc/powerpc/powerpc_machdep.c
 1.13 01-Dec-2000  matt Add support for the IBM ThinkPad 820 G10 display (which is a WD90C24A behind
a funky PCI-VLBUS bridge).
 1.12 27-Nov-2000  matt Rework bus_space to conform the PReP I/O & MEM limits. Add a few debugging
printfs concerning interrupts.
 1.11 13-Sep-2000  thorpej branches: 1.11.2;
Add an align argument to uvm_map() and some callers of that
routine. Works similarly fto pmap_prefer(), but allows callers
to specify a minimum power-of-two alignment of the region.
How we ever got along without this for so long is beyond me.
 1.10 14-Aug-2000  kleink Replace the body of lcsplx() with an open-coded version of spllower()
and return the previous priority level, which is actually expected by
cpu_switch() in order to it be stashed into the PCB.
 1.9 02-Jul-2000  cgd Kwality control:
* put #includes of opt headers and headers to get protos used by
net/netisr_dispatch.h in net/netisr.h (if !defined(_LOCORE)) (rather than
in netisr_dispatch.h itself, and potentially nowhere, respectively).
* require netisr.h to be included before netisr_dispatch.h.
* minor additional cleanup of both netisr.h and netisr_dispatch.h.
* clean up uses to remove now-unnecessary header file inclusions, and
local prototypes of the fns.
* convert netisr dispatch implementations which didn't use
netisr_dispatch.h (pc532) to use it.
 1.8 29-Jun-2000  mrg remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.7 26-Jun-2000  mrg remove/move more mach vm header files:

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

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
 1.6 09-Jun-2000  soda increase number of parameters of pckbc_cnattach(), since offset of command port
is not 4 (KBCMDP), but 1 on jazz based platforms of arc port.
 1.5 26-May-2000  thorpej branches: 1.5.2;
First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

- Global state: sched_qs (run queues), sched_whichqs (bitmap
of non-empty run queues), sched_slpque (sleep queues).
NOTE: These may collectively move into a struct schedstate
at some point in the future.

- Per-CPU state, struct schedstate_percpu: spc_runtime
(time process on this CPU started running), spc_flags
(replaces struct proc's p_schedflags), and
spc_curpriority (usrpri of processes on this CPU).

- Every platform must now supply a struct cpu_info and
a curcpu() macro. Simplify existing cpu_info declarations
where appropriate.

- All references to per-CPU scheduler state now made through
curcpu(). NOTE: this will likely be adjusted in the future
after further changes to struct proc are made.

Tested on i386 and Alpha. Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
 1.4 16-May-2000  thorpej Nuke dk_establish() from orbit except from those ports which still use
it to determine the boot device: mvme68k, pc532, macppc, ofppc. Those
platforms should be changed to use device_register(). In the mean time,
those ports defined __BROKEN_DK_ESTABLISH.
 1.3 03-May-2000  kleink Display the VPD's PrintableModel item on startup.
 1.2 27-Mar-2000  nonaka rewrite some bus_space functions like port-i386.
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.5.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.11.2.5 27-Mar-2001  bouyer Sync with HEAD.
 1.11.2.4 12-Mar-2001  bouyer Sync with HEAD.
 1.11.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.11.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.11.2.1 13-Sep-2000  bouyer file machdep.c was added on branch thorpej_scsipi on 2000-11-20 20:23:06 +0000
 1.15.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.15.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.23.2.9 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.23.2.8 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.23.2.7 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.23.2.6 16-Mar-2002  jdolecek Catch up with -current.
 1.23.2.5 11-Feb-2002  jdolecek Sync w/ -current.
 1.23.2.4 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.23.2.3 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.23.2.2 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.23.2.1 03-Aug-2001  lukem update to -current
 1.26.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.27.4.9 18-Oct-2002  nathanw Catch up to -current.
 1.27.4.8 01-Aug-2002  nathanw Catch up to -current.
 1.27.4.7 20-Jun-2002  nathanw Catch up to -current.
 1.27.4.6 29-May-2002  nathanw #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t
now that <sys/param.h> doesn't include <sys/sa.h>.

(Behold the Power of Ed)
 1.27.4.5 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.27.4.4 28-Feb-2002  nathanw Catch up to -current.
 1.27.4.3 08-Jan-2002  nathanw Catch up to -current.
 1.27.4.2 05-Nov-2001  briggs Initial SA support for ppc. Test-booted on sandpoint, macppc, & walnut.
mcontext and cpu_getmcontext()/cpu_setmcontext() from Klaus Klein
<kleink@netbsd.org>.
 1.27.4.1 10-Sep-2001  briggs file machdep.c was added on branch nathanw_sa on 2001-11-05 19:46:20 +0000
 1.39.2.2 16-Jul-2002  gehenna catch up with -current.
 1.39.2.1 15-Jul-2002  gehenna catch up with -current.
 1.48.2.4 04-Feb-2005  skrll Sync with HEAD.
 1.48.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.48.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.48.2.1 03-Aug-2004  skrll Sync with HEAD
 1.51.10.1 12-Feb-2005  yamt sync with head.
 1.51.8.1 29-Apr-2005  kent sync with -current
 1.51.6.1 17-Mar-2005  he Pull up revision 1.52 (requested by jkunz in ticket #1152):
Ensure that the OpenPIC register window is mapped during
the startup; only parts of the PCI memory space is mapped
already. Move initialization since it requires UVM.
 1.51.2.1 17-Mar-2005  he Pull up revision 1.52 (requested by jkunz in ticket #1152):
Ensure that the OpenPIC register window is mapped during
the startup; only parts of the PCI memory space is mapped
already. Move initialization since it requires UVM.
 1.52.6.4 27-Oct-2007  yamt sync with head.
 1.52.6.3 26-Feb-2007  yamt sync with head.
 1.52.6.2 30-Dec-2006  yamt sync with head.
 1.52.6.1 21-Jun-2006  yamt sync with head.
 1.55.6.2 01-Jun-2006  kardel Sync with head.
 1.55.6.1 22-Apr-2006  simonb Sync with head.
 1.55.4.1 09-Sep-2006  rpaulo sync with head
 1.55.2.1 01-Mar-2006  yamt sync with head.
 1.56.4.2 11-May-2006  elad sync with head
 1.56.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.56.2.5 11-Aug-2006  yamt sync with head
 1.56.2.4 26-Jun-2006  yamt sync with head.
 1.56.2.3 24-May-2006  yamt sync with head.
 1.56.2.2 01-Apr-2006  yamt sync with head.
 1.56.2.1 13-Mar-2006  yamt sync with head.
 1.58.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.61.2.1 19-Jun-2006  chap Sync with head.
 1.62.2.1 13-Jul-2006  gdamore Merge from HEAD.
 1.64.6.1 10-Dec-2006  yamt sync with head.
 1.64.4.2 30-Jan-2007  ad Remove support for SA. Ok core@.
 1.64.4.1 18-Nov-2006  ad Sync with head.
 1.66.28.1 25-Oct-2007  bouyer Sync with HEAD.
 1.66.26.1 18-Oct-2007  yamt sync with head.
 1.66.24.1 06-Nov-2007  matt sync with HEAD
 1.66.22.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.66.14.12 11-Oct-2007  garbled Move a bunch of the macppc SMP code out of macppc, and down into the
generic OEA code. Add a set of md callbacks into these shared routines,
that any oeappc SMP machine needs to provide. This allows for generally
shared SMP startup code, but still allows for machine-specific
differences in the setup and kicking of the new CPU.

Convert macppc to this new layout. Tested by Macallan.

Add an initial attempt at SMP to prep. Tested on UP machine only,
untested on SMP yet.
 1.66.14.11 10-Oct-2007  garbled Change pic_prepivr around a bit. Handle the default IRQ 7 from the 8259
better, and add a new motivr_get_irq(). The motorola machines require an
actual read from the 8259 for PCI irqs, so in that case, we read the
8259, and then read the IVR to ack the irq.

Move i8259_get_irq() to i8259_common.c for above.

Fix some minor typos in the chip id's for prep residual.

Fix ibmnws and prep to properly initialize the prep ivr depending on if
the machine is motorola, or IBM based.

Tested on a 7043 and an MTX604
 1.66.14.10 10-May-2007  garbled More cleanup. mvmeppc and ibmnws are machines that have a PReP memory
map. Rather than have each port roll it's own code, use
oea/prep_machdep.c instead.
 1.66.14.9 10-May-2007  garbled HAVE_GENERIC_SOFTINTRS is no longer optional. Delete ifndef'd code from
oea_machdep.c, and move softintr__init() to oea_startup(). Remove
softintr__init from every port's cpu_startup().
 1.66.14.8 10-May-2007  garbled convert printf's to aprint_*.
 1.66.14.7 10-May-2007  garbled More cleanup:
1) Remove lcsplx, strayintr, and foosoft from all the converted ports.
None of this stuff is needed anymore.
2) because lcsplx is just "return spllower", just call spllower from
locore_subr.S instead.
3) Every port (except macppc) had a pretty similar cpu_configure(), so
take the common parts out and make a genppc_cpu_configure() in an attempt
to stop using imask[] outside of intr.c
 1.66.14.6 09-May-2007  garbled More prep rototill. Utilize the functions provided in
powerpc/oea/prep_machdep.c. While here, clean up some unused functions
and prototypes.
 1.66.14.5 07-May-2007  garbled Convert prep over to new isa_machdep changes.
 1.66.14.4 07-May-2007  garbled Track changes to pic_openpic.
 1.66.14.3 07-May-2007  garbled Prep has the ability to utilize an i8259 interrupt controller, but
generally does not use that code. It was stripped out in the first pass
for the pic sharing, so add it back in now.
 1.66.14.2 03-May-2007  garbled Convert prep over to the shared interrupts. Still alot of cleanup to do
following this change.
 1.66.14.1 01-May-2007  garbled Rename the prep isa io and mem bus space tags to genppc_* to promote
sharing of isa functionality.
 1.66.6.1 23-Oct-2007  ad Sync with head.
 1.67.28.2 28-Apr-2009  skrll Sync with HEAD.
 1.67.28.1 19-Jan-2009  skrll Sync with HEAD.
 1.67.26.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.67.22.2 14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.67.22.1 10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.67.20.3 11-Aug-2010  yamt sync with head.
 1.67.20.2 11-Mar-2010  yamt sync with head
 1.67.20.1 04-May-2009  yamt sync with head.
 1.67.16.1 17-Jan-2009  mjf Sync with HEAD.
 1.68.4.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.70.4.1 05-Mar-2011  rmind sync with head
 1.70.2.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.71.6.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.73.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.73.12.1 23-Jun-2013  tls resync from head
 1.73.2.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.74.4.1 18-May-2014  rmind sync with head
 1.75.30.1 10-Jun-2019  christos Sync with HEAD
 1.75.28.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.75.22.1 28-Aug-2018  snj Pull up following revision(s) (requested by martin in ticket #994):
sys/arch/prep/prep/machdep.c: revision 1.76
sys/arch/prep/prep/mainbus.c: revision 1.34
Fix initialization order so we can boot again on IBM PPS Model 6015
(which needs pci interrupt fixup quirks).
From Artyom Tarasenko.
 1.76.12.1 03-Apr-2021  thorpej Sync with HEAD.
 1.40 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.39 24-Apr-2021  thorpej branches: 1.39.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.38 21-Nov-2020  thorpej branches: 1.38.2;
malloc(9) -> kmem(9)
 1.37 07-Jul-2020  thorpej branches: 1.37.2;
Overhaul the interface to pci_configure_bus():
- Don't expose how PCI bus configuration resource management is implemented.
Provide a new resource provider API:

==> pciconf_resource_init() -- Initialize a PCI configuration resources
container.
==> pciconf_resource_add() -- Add a PCI configuration resource to the
container (I/O, MEM, or prefetchable MEM). Multiple resources of
each type may be added.
==> pciconf_resource_fini() -- Tear down the PCI configurtation resources
container once the bus has been configured.

This is much easier to use than the previous method of providing an
extent map for each kind of resource, and works better for e.g. ACPI
platforms that provide potentially multiple PCI resources in tables
provided by firmware.

- Re-implement PCI configuration resource management using vmem arenas,
rather than extent maps.
 1.36 14-Jun-2020  chs replace EX_NOWAIT with EX_WAITOK in device attach methods.
remove checks for failures that can no longer occur.
 1.35 10-Nov-2019  chs 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.34 27-Aug-2018  martin Fix initialization order so we can boot again on IBM PPS Model 6015
(which needs pci interrupt fixup quirks).
From Artyom Tarasenko.
 1.33 27-Jan-2012  para branches: 1.33.40; 1.33.46; 1.33.48;
converting extent(9) from malloc(9) to kmem(9)
preceding kmem-vmem-pool-uvm patch

releng@ acknowledged
 1.32 01-Jul-2011  dyoung branches: 1.32.2; 1.32.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.31 05-Jun-2011  matt struct device * -> device_t, struct cfdata * -> cfdata_t
CFATTACH_DECL(*, sizeof(struct device), -> CFATTACH_DECL_NEW(&, 0
 1.30 17-May-2011  dyoung branches: 1.30.2;
PCI_FLAGS_IO_ENABLED and PCI_FLAGS_MEM_ENABLED changed their functional
role in NetBSD (drivers are no longer supposed to write these to
pa_flags) without changing name. Correct that.

Rename PCI_FLAGS_IO_ENABLED to PCI_FLAGS_IO_OKAY and
PCI_FLAGS_MEM_ENABLED to PCI_FLAGS_MEM_OKAY, thus making their names
consistent with the other PCI flags and poisoning 3rd-party driver
sources that use the flags in the old bad way.

This patch produces no binary changes in this set of PCI kernels when
they are compiled w/o 'options DIAGNOSTIC' and w/ -V MKREPRO=yes:

algor P4032 P5064 P6032
alpha GENERIC
amd64 GENERIC XEN3_DOM0
arc GENERIC
atari HADES MILAN-PCIIDE
bebox GENERIC
cats GENERIC
cobalt GENERIC
evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE
evbarm-el GUMSTIX HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321
evbarm-el IXDP425 IXM1200 KUROBOX_PRO
evbarm-el LUBBOCK MARVELL_NAS NAPPI NSLU2 SHEEVAPLUG SMDK2800 TEAMASA_NPWR
evbarm-el TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425
evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3
evbmips64-el XLSATX
evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266
evbppc OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT
hp700 GENERIC
i386 ALL XEN3_DOM0 XEN3_DOMU
ibmnws GENERIC
iyonix GENERIC
landisk GENERIC
macppc GENERIC
mvmeppc GENERIC
netwinder GENERIC
ofppc GENERIC
prep GENERIC
sandpoint GENERIC
sbmips-el GENERIC
sgimips GENERIC32_IP2x GENERIC32_IP3x
sparc GENERIC_SUN4U KRUPS
sparc64 GENERIC
 1.29 18-Mar-2009  cegger branches: 1.29.4; 1.29.6;
bzero -> memset
 1.28 28-Apr-2008  garbled branches: 1.28.8; 1.28.14;
Add floppy support to prep (the croud goes wild)

Add an additional argument to pnpbus_intr_establish to allow overriding of
the pnp interrupt type, because some devices lie.
Change how the pnpbus match routine works, to avoid attaching it when we
are probing for cpu's.
Fix a few stray printf's in the autoconf output.
 1.27 17-Oct-2007  garbled branches: 1.27.16; 1.27.18; 1.27.20;
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.26 27-Oct-2006  garbled branches: 1.26.8; 1.26.16; 1.26.26; 1.26.28; 1.26.30; 1.26.32;
A few changes so pnpbus devices can do isadma. Note that isadma still
does not seem to work properly on prep.
 1.25 01-Sep-2006  garbled branches: 1.25.2; 1.25.4;
Fix a horrible bug in how we initialize the 8259 interrupt controller.
The bug displayed itself by locking up console output on a 7043-140
following a powercycle. This may also have been the cause of bogus
interrupts on motorola class machines.
 1.24 27-Jun-2006  garbled branches: 1.24.2;
General fixups:
1) Fix support for the powerstack E1. This machine needs to use the 8259
directly, and cannot use the prep interrupt vector register. Place a
quirk entry in the table for the machine.
2) Add a new com0_vreset boot image. The vreset code only works on a few
machines, and breaks others like the 7025-F40. Its only limitedly useful
when used with the com0, so just make it an optional image the user can
install by hand if they want.
3) Bump the bootloader to 1.8 with the above change.
 1.23 21-Jun-2006  garbled Attach the pnpbus prior to attaching the pci bus on the prep. This
should allow us to probe for both pnp-attached devices and isa-attached
devices while preferring the pnpbus attachment point.
 1.22 09-Jun-2006  garbled branches: 1.22.2;
Completely rework how we look up PCI interrupts on prep:

1) Rather than build an array of the pci->intr mappings, build a proplib
tree.
2) add a SIMPLEQ of device properties to the pci_chipset_tag to hold the
proplib trees of each bus.
3) Move the interrupt routing code from pci_conf_interrupt to pci_map_intr()
4) Deal properly with non-native PCI bridge chips that are not recognized
by the prep firmware, and therefore are not noted in the residual data.

The major win of this restructure is #4. Hopefully I haven't broken
anything. Tested on a 7248-100, 7043-140 and 7024-E20.
 1.21 09-May-2006  garbled branches: 1.21.2;
KNF these files.
 1.20 09-Mar-2006  garbled branches: 1.20.2;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.19 11-Dec-2005  christos branches: 1.19.4; 1.19.6; 1.19.8; 1.19.10;
merge ktrace-lwp.
 1.18 30-Aug-2004  drochner branches: 1.18.12;
Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
 1.17 15-Jul-2003  lukem __KERNEL_RCSID()
 1.16 15-Jun-2003  fvdl branches: 1.16.2;
Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
 1.15 01-Jan-2003  thorpej Use aprint_normal() for cfprint routines.
 1.14 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.13 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.12 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.11 16-May-2002  thorpej branches: 1.11.2;
* Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set to
NULL for root PCI busses. For busses behind a bridge, it points to
a persistent copy of the bridge's pcitag_t. This can be very useful
for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
uses OFW device nodes to enumerate the bus. When a PCI bus that is
behind a bridge is attached, pci_attach_hook() allocates a new PCI
chipset tag for the new bus and sets it's "curnode" to the OFW node
of the bridge. This is used as a starting point when enumerating
that bus. Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
 1.10 02-May-2002  nonaka Added IBM Personal Power Series 830 IDE controller support.
 1.9 02-May-2002  nonaka Added dump residual data routine.
 1.8 24-Feb-2002  kleink In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.7 24-Feb-2002  kleink Get rid of cf_unit misuse.
 1.6 28-Nov-2001  thorpej Add a "cacheline_size" argument to pci_configure_bus(). It is used
to set the cacheline size in the BHLC register. This should be the
size of the largest D-cache line on a system.
 1.5 09-Nov-2001  thorpej Add a "firstbus" argument to pci_configure_bus(), indicating the
first bus number to use, rather than always assuming that we should
start at bus #0.
 1.4 20-Jun-2001  nonaka branches: 1.4.2; 1.4.6; 1.4.8;
Seprate model depended code. (based on arc 'struct platform')

files.prep:
- add new files entry.

pci_machdep.c:
- use dev/pci/pciconf.c instead of mine for pci io/mem addr/intr fixup.

cpu.c:
- separate code

machdep.c:
- call ident_platform()

mainbus.c:
- call pci_configure_bus(), if defined PCI_NETBSD_CONFIGURE

ibm_machdep.c:
- for IBM PReP generic

ibm_6050.c:
- for IBM Personal Power Series 830/850

ibm_7248.c:
- for IBM RS6000/43P deppendency
 1.3 15-Jun-2001  nonaka Use new common bus.h framework.
 1.2 27-Nov-2000  matt branches: 1.2.2;
Rework bus_space to conform the PReP I/O & MEM limits. Add a few debugging
printfs concerning interrupts.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.3 08-Dec-2000  bouyer Sync with HEAD.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file mainbus.c was added on branch thorpej_scsipi on 2000-11-20 20:23:06 +0000
 1.2.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.4.8.6 03-Jan-2003  thorpej Sync with HEAD.
 1.4.8.5 18-Oct-2002  nathanw Catch up to -current.
 1.4.8.4 20-Jun-2002  nathanw Catch up to -current.
 1.4.8.3 28-Feb-2002  nathanw Catch up to -current.
 1.4.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.4.8.1 20-Jun-2001  nathanw file mainbus.c was added on branch nathanw_sa on 2002-01-08 00:27:18 +0000
 1.4.6.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 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 16-Mar-2002  jdolecek Catch up with -current.
 1.4.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.11.2.2 16-May-2002  thorpej * Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set to
NULL for root PCI busses. For busses behind a bridge, it points to
a persistent copy of the bridge's pcitag_t. This can be very useful
for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
uses OFW device nodes to enumerate the bus. When a PCI bus that is
behind a bridge is attached, pci_attach_hook() allocates a new PCI
chipset tag for the new bus and sets it's "curnode" to the OFW node
of the bridge. This is used as a starting point when enumerating
that bus. Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
 1.11.2.1 16-May-2002  thorpej file mainbus.c was added on branch gehenna-devsw on 2002-05-16 01:01:40 +0000
 1.16.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.16.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.16.2.2 03-Sep-2004  skrll Sync with HEAD
 1.16.2.1 03-Aug-2004  skrll Sync with HEAD
 1.18.12.3 27-Oct-2007  yamt sync with head.
 1.18.12.2 30-Dec-2006  yamt sync with head.
 1.18.12.1 21-Jun-2006  yamt sync with head.
 1.19.10.2 11-May-2006  elad sync with head
 1.19.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.19.8.5 03-Sep-2006  yamt sync with head.
 1.19.8.4 11-Aug-2006  yamt sync with head
 1.19.8.3 26-Jun-2006  yamt sync with head.
 1.19.8.2 24-May-2006  yamt sync with head.
 1.19.8.1 13-Mar-2006  yamt sync with head.
 1.19.6.2 01-Jun-2006  kardel Sync with head.
 1.19.6.1 22-Apr-2006  simonb Sync with head.
 1.19.4.1 09-Sep-2006  rpaulo sync with head
 1.20.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.21.2.1 19-Jun-2006  chap Sync with head.
 1.22.2.1 13-Jul-2006  gdamore Merge from HEAD.
 1.24.2.1 02-Sep-2006  riz Pull up following revision(s) (requested by garbled in ticket #93):
sys/arch/prep/pci/pcib.c: revision 1.18
sys/arch/prep/prep/mainbus.c: revision 1.25
Fix a horrible bug in how we initialize the 8259 interrupt controller.
The bug displayed itself by locking up console output on a 7043-140
following a powercycle. This may also have been the cause of bogus
interrupts on motorola class machines.
 1.25.4.1 10-Dec-2006  yamt sync with head.
 1.25.2.1 18-Nov-2006  ad Sync with head.
 1.26.32.1 25-Oct-2007  bouyer Sync with HEAD.
 1.26.30.1 18-Oct-2007  yamt sync with head.
 1.26.28.1 06-Nov-2007  matt sync with HEAD
 1.26.26.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.26.16.7 11-Oct-2007  garbled Move a bunch of the macppc SMP code out of macppc, and down into the
generic OEA code. Add a set of md callbacks into these shared routines,
that any oeappc SMP machine needs to provide. This allows for generally
shared SMP startup code, but still allows for machine-specific
differences in the setup and kicking of the new CPU.

Convert macppc to this new layout. Tested by Macallan.

Add an initial attempt at SMP to prep. Tested on UP machine only,
untested on SMP yet.
 1.26.16.6 10-May-2007  garbled convert printf's to aprint_*.
 1.26.16.5 03-May-2007  garbled Get rid of all the useless stuff in isa_machdep.c, and the things that
call it. TODO, fix isa_intr_alloc to work with new interrupt foo.
 1.26.16.4 01-May-2007  garbled Rename the prep isa io and mem bus space tags to genppc_* to promote
sharing of isa functionality.
 1.26.16.3 01-May-2007  garbled Change some isa things around in the prep port to promote sharing of isa
 1.26.16.2 01-May-2007  garbled change prep_pct to genppc_pct to share better
 1.26.16.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.26.8.1 23-Oct-2007  ad Sync with head.
 1.27.20.2 04-May-2009  yamt sync with head.
 1.27.20.1 16-May-2008  yamt sync with head.
 1.27.18.1 18-May-2008  yamt sync with head.
 1.27.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.28.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.28.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.29.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.29.4.2 12-Jun-2011  rmind sync with head
 1.29.4.1 31-May-2011  rmind sync with head
 1.30.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.32.6.1 18-Feb-2012  mrg merge to -current.
 1.32.2.1 17-Apr-2012  yamt sync with head
 1.33.48.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.33.48.1 10-Jun-2019  christos Sync with HEAD
 1.33.46.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.33.40.1 28-Aug-2018  snj Pull up following revision(s) (requested by martin in ticket #994):
sys/arch/prep/prep/machdep.c: revision 1.76
sys/arch/prep/prep/mainbus.c: revision 1.34
Fix initialization order so we can boot again on IBM PPS Model 6015
(which needs pci interrupt fixup quirks).
From Artyom Tarasenko.
 1.37.2.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.38.2.1 02-Apr-2021  thorpej config_found_ia() -> config_found() w/ CFARG_IATTR.
 1.39.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.3 24-Nov-2003  tsutsui Remove obsolete MD mcclock files.
 1.2 15-Jul-2003  lukem __KERNEL_RCSID()
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file mcclock.c was added on branch thorpej_scsipi on 2000-11-20 20:23:06 +0000
 1.2 24-Nov-2003  tsutsui Remove obsolete MD mcclock files.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file mcclockvar.h was added on branch thorpej_scsipi on 2000-11-20 20:23:06 +0000
 1.2 27-Nov-2000  matt No longer needed. We use MI version now.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.3 08-Dec-2000  bouyer Sync with HEAD.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file md_root.c was added on branch thorpej_scsipi on 2000-11-20 20:23:07 +0000
 1.5 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10;
merge ktrace-lwp.
 1.3 15-Jul-2003  lukem branches: 1.3.16;
__KERNEL_RCSID()
 1.2 02-May-2002  nonaka branches: 1.2.10;
Use PLATFORM_*
 1.1 26-Feb-2002  kleink branches: 1.1.2; 1.1.8;
Add platform support for the Motorola Ultra Plus and Ultra 60x boards.

Note that this currently matches only the boards built into Bull Estrella
systems, as Bull chose to change the board identification string whose
original content is not known at this time.
 1.1.8.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.8.2 16-Mar-2002  jdolecek Catch up with -current.
 1.1.8.1 26-Feb-2002  jdolecek file mot_machdep.c was added on branch kqueue on 2002-03-16 15:59:24 +0000
 1.1.2.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.2.1 26-Feb-2002  nathanw file mot_machdep.c was added on branch nathanw_sa on 2002-02-28 04:11:31 +0000
 1.2.10.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.10.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.10.1 03-Aug-2004  skrll Sync with HEAD
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.4.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.8.1 13-Mar-2006  yamt sync with head.
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.12 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.11 23-Feb-2006  garbled branches: 1.11.2; 1.11.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.10 24-Dec-2005  perry branches: 1.10.2; 1.10.4; 1.10.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.9 11-Dec-2005  christos merge ktrace-lwp.
 1.8 13-Jan-2005  kleink branches: 1.8.10;
Pass the interrupt swizzle down to the platforms' fixup functions.
N.B. Only using it on the ulmb60xa for now.
 1.7 15-Jul-2003  lukem __KERNEL_RCSID()
 1.6 30-May-2002  nonaka branches: 1.6.6;
Support IBM RS/6000 43P 7043-140.
 1.5 15-May-2002  kleink branches: 1.5.2;
Presently lacking a better place (or actually use) for this, record
the MTX's board ID here, too.
 1.4 02-May-2002  nonaka Added IBM Personal Power Series 830 IDE controller support.
 1.3 02-May-2002  nonaka Use PLATFORM_*
 1.2 02-May-2002  nonaka rename reset_ibm_generic() -> reset_prep_generic().
 1.1 26-Feb-2002  kleink branches: 1.1.2; 1.1.8;
Add platform support for the Motorola Ultra Plus and Ultra 60x boards.

Note that this currently matches only the boards built into Bull Estrella
systems, as Bull chose to change the board identification string whose
original content is not known at this time.
 1.1.8.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.8.2 16-Mar-2002  jdolecek Catch up with -current.
 1.1.8.1 26-Feb-2002  jdolecek file mot_ulmb60xa.c was added on branch kqueue on 2002-03-16 15:59:24 +0000
 1.1.2.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.2.1 26-Feb-2002  nathanw file mot_ulmb60xa.c was added on branch nathanw_sa on 2002-02-28 04:11:32 +0000
 1.5.2.1 15-Jul-2002  gehenna catch up with -current.
 1.6.6.4 17-Jan-2005  skrll Sync with HEAD.
 1.6.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.6.1 03-Aug-2004  skrll Sync with HEAD
 1.8.10.1 21-Jun-2006  yamt sync with head.
 1.10.6.1 22-Apr-2006  simonb Sync with head.
 1.10.4.1 09-Sep-2006  rpaulo sync with head
 1.10.2.1 01-Mar-2006  yamt sync with head.
 1.11.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.11.2.1 13-Mar-2006  yamt sync with head.
 1.29 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.28 03-Apr-2014  mrg GCC 4.8 build fixes from John D. Baker
 1.27 26-Mar-2014  christos kill sprintf
 1.26 20-Jun-2011  matt branches: 1.26.2; 1.26.12; 1.26.16;
Cleanup includes. (<net/netisr.h> is handled by softints, not MD anymore,
so this can be nuked).
 1.25 18-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
use device accessors, use device_private.
some softc/device_t splits (macppc needs a bunch more)
aprint*_dev used considerably more
 1.24 28-Apr-2008  martin branches: 1.24.32;
Remove clause 3 and 4 from TNF licenses
 1.23 17-Oct-2007  garbled branches: 1.23.16; 1.23.18; 1.23.20;
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.22 07-Sep-2006  garbled branches: 1.22.10; 1.22.18; 1.22.28; 1.22.30; 1.22.32; 1.22.34;
Now that the interrupt bug on the 7043-140 is fixed, it also fixes the
long standing issue with interrupts onthe PowerStack E1. Remove the
quirk entry for the PowerStack E1 and revert to using the IVR.
Also, add a \n to the attachment of the mk clock printf that was missing.
 1.21 12-Jul-2006  garbled branches: 1.21.2; 1.21.4;
Add support for rebooting 7024 and 7025 models. Since I cannot figure
out how to properly reboot these machines, instead we make use of the
auto-poweron-alarm time, and power cycle the machine to simulate a
reboot. This is a hack, but until I get documentation on these machines,
at least you will be able to reboot them.
 1.20 27-Jun-2006  garbled General fixups:
1) Fix support for the powerstack E1. This machine needs to use the 8259
directly, and cannot use the prep interrupt vector register. Place a
quirk entry in the table for the machine.
2) Add a new com0_vreset boot image. The vreset code only works on a few
machines, and breaks others like the 7025-F40. Its only limitedly useful
when used with the com0, so just make it an optional image the user can
install by hand if they want.
3) Bump the bootloader to 1.8 with the above change.
 1.19 15-Jun-2006  garbled A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part). This was causing the nvram not to work on those
machines. Now the nvram code will recognize this, and wire up the
mkclock as well. The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
 1.18 09-Jun-2006  garbled branches: 1.18.2;
Completely rework how we look up PCI interrupts on prep:

1) Rather than build an array of the pci->intr mappings, build a proplib
tree.
2) add a SIMPLEQ of device properties to the pci_chipset_tag to hold the
proplib trees of each bus.
3) Move the interrupt routing code from pci_conf_interrupt to pci_map_intr()
4) Deal properly with non-native PCI bridge chips that are not recognized
by the prep firmware, and therefore are not noted in the residual data.

The major win of this restructure is #4. Hopefully I haven't broken
anything. Tested on a 7248-100, 7043-140 and 7024-E20.
 1.17 25-May-2006  garbled Implement partial support for the RS6K PCI Bridge found on 7025-F40
models. This code was made possible by assistance from Cory Bajus.

Add code that asks the PCI bridge what it's config base address is, and
use that when wiring up an indirect bridge type.
Move prep's user segment register to 10, because the 7025's PCI config
address is at 11, where the user segment used to be.
Add a battable entry for 0xbf800000 for machines with RS6K bridges.

There is still probably work left to be done before a 7025-F40 is fully
supported.
 1.16 09-May-2006  garbled branches: 1.16.2;
Use inb/outb macros instead of casting things to volatile.
 1.15 09-May-2006  garbled convert some of the simple __asm statements to the standard powerpc
macros, like mtmsr().
 1.14 09-Mar-2006  garbled branches: 1.14.2;
Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.13 23-Feb-2006  garbled branches: 1.13.2; 1.13.4;
Commit support for the IBM Model 7024 E20 and E30. (E30 not tested).

Changes:
Added a pci-EISA bridge device and associated glue to the prep port.
Adapted from i386.
Change pci_intr_fixup_*() to pass the pin argument on all platforms.
Make PCI_NETBSD_CONFIGURE leave the MPIC alone. We map it separately.

7024 kernel was also succ. tested on an IBM 7043, so no regression there.
 1.12 24-Dec-2005  perry branches: 1.12.2; 1.12.4; 1.12.6;
bare asm -> __asm
 1.11 11-Dec-2005  christos merge ktrace-lwp.
 1.10 13-Jan-2005  kleink branches: 1.10.10;
Pass the interrupt swizzle down to the platforms' fixup functions.
N.B. Only using it on the ulmb60xa for now.
 1.9 15-Jul-2003  lukem __KERNEL_RCSID()
 1.8 30-May-2002  nonaka branches: 1.8.6;
Support IBM RS/6000 43P 7043-140.
 1.7 02-May-2002  nonaka branches: 1.7.2;
Added IBM Personal Power Series 830 IDE controller support.
 1.6 02-May-2002  nonaka Use PLATFORM_*
 1.5 02-May-2002  nonaka rename reset_ibm_generic() -> reset_prep_generic().
 1.4 26-Feb-2002  kleink Add platform support for the Motorola Ultra Plus and Ultra 60x boards.

Note that this currently matches only the boards built into Bull Estrella
systems, as Bull chose to change the board identification string whose
original content is not known at this time.
 1.3 24-Feb-2002  kleink In order to support both indirect PCI configuration space access as well
as direct-mapped PCI configuration space access (such as implemented on
the IBM 27-82650 PCI Host Bridge), switch to a function vector based
PCI configuration space access implementation. The appropriate PCI
chipset tag is provided by platform-specific code.
 1.2 26-Aug-2001  matt branches: 1.2.6;
Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
 1.1 20-Jun-2001  nonaka branches: 1.1.2;
Seprate model depended code. (based on arc 'struct platform')

files.prep:
- add new files entry.

pci_machdep.c:
- use dev/pci/pciconf.c instead of mine for pci io/mem addr/intr fixup.

cpu.c:
- separate code

machdep.c:
- call ident_platform()

mainbus.c:
- call pci_configure_bus(), if defined PCI_NETBSD_CONFIGURE

ibm_machdep.c:
- for IBM PReP generic

ibm_6050.c:
- for IBM Personal Power Series 830/850

ibm_7248.c:
- for IBM RS6000/43P deppendency
 1.1.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.1.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.6.3 20-Jun-2002  nathanw Catch up to -current.
 1.2.6.2 28-Feb-2002  nathanw Catch up to -current.
 1.2.6.1 26-Aug-2001  nathanw file platform.c was added on branch nathanw_sa on 2002-02-28 04:11:32 +0000
 1.7.2.1 15-Jul-2002  gehenna catch up with -current.
 1.8.6.4 17-Jan-2005  skrll Sync with HEAD.
 1.8.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.8.6.1 03-Aug-2004  skrll Sync with HEAD
 1.10.10.3 27-Oct-2007  yamt sync with head.
 1.10.10.2 30-Dec-2006  yamt sync with head.
 1.10.10.1 21-Jun-2006  yamt sync with head.
 1.12.6.2 01-Jun-2006  kardel Sync with head.
 1.12.6.1 22-Apr-2006  simonb Sync with head.
 1.12.4.1 09-Sep-2006  rpaulo sync with head
 1.12.2.1 01-Mar-2006  yamt sync with head.
 1.13.4.2 11-May-2006  elad sync with head
 1.13.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.13.2.5 14-Sep-2006  yamt sync with head.
 1.13.2.4 11-Aug-2006  yamt sync with head
 1.13.2.3 26-Jun-2006  yamt sync with head.
 1.13.2.2 24-May-2006  yamt sync with head.
 1.13.2.1 13-Mar-2006  yamt sync with head.
 1.14.2.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.16.2.1 19-Jun-2006  chap Sync with head.
 1.18.2.1 13-Jul-2006  gdamore Merge from HEAD.
 1.21.4.1 18-Nov-2006  ad Sync with head.
 1.21.2.1 09-Sep-2006  tron Pull up following revision(s) (requested by garbled in ticket #138):
sys/arch/prep/prep/platform.c: revision 1.22
sys/arch/prep/pnpbus/nvram_pnpbus.c: revision 1.4
Now that the interrupt bug on the 7043-140 is fixed, it also fixes the
long standing issue with interrupts onthe PowerStack E1. Remove the
quirk entry for the PowerStack E1 and revert to using the IVR.
Also, add a \n to the attachment of the mk clock printf that was missing.
 1.22.34.1 25-Oct-2007  bouyer Sync with HEAD.
 1.22.32.1 18-Oct-2007  yamt sync with head.
 1.22.30.1 06-Nov-2007  matt sync with HEAD
 1.22.28.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.22.18.5 10-Oct-2007  garbled Change pic_prepivr around a bit. Handle the default IRQ 7 from the 8259
better, and add a new motivr_get_irq(). The motorola machines require an
actual read from the 8259 for PCI irqs, so in that case, we read the
8259, and then read the IVR to ack the irq.

Move i8259_get_irq() to i8259_common.c for above.

Fix some minor typos in the chip id's for prep residual.

Fix ibmnws and prep to properly initialize the prep ivr depending on if
the machine is motorola, or IBM based.

Tested on a 7043 and an MTX604
 1.22.18.4 26-Jun-2007  garbled Apply patches from John D. Baker to make INSTALL compile again. Also
cleans up some of the config stuff for the mcclock pnpbus attachment.
 1.22.18.3 10-May-2007  garbled convert printf's to aprint_*.
 1.22.18.2 01-May-2007  garbled change prep_pct to genppc_pct to share better
 1.22.18.1 01-May-2007  garbled Convert prep to use the new generic powerpc PCI stuff. There are
probably a few more things that can be made generic here. Tested on
7248-100.
 1.22.10.1 23-Oct-2007  ad Sync with head.
 1.23.20.1 16-May-2008  yamt sync with head.
 1.23.18.1 18-May-2008  yamt sync with head.
 1.23.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.24.32.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.26.16.1 18-May-2014  rmind sync with head
 1.26.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.26.2.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.3 05-Mar-2003  matt Remove port-specific procfs_machdep.c (since they are all identical and
a better one resides in powerpc/powerpc/).
 1.2 18-Jan-2001  tv No-op commit to force update to a non-"-kk" revision.
 1.1 17-Jan-2001  fvdl branches: 1.1.2;
Add machdep file for procfs. Currently only used for linux-style
/proc/cpuinfo (only active when procfs is mounted with -o linux).
For ports other than the i386 this currently produces an empty
string.
 1.1.2.2 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.1.2.1 17-Jan-2001  bouyer file procfs_machdep.c was added on branch thorpej_scsipi on 2001-01-18 09:22:58 +0000
 1.19 24-Nov-2023  christos Make this compile again with options RESIDUAL_DATA_DUMP (Andrius V)
 1.18 27-Mar-2014  christos correct/add protection against snprintf overflow.
 1.17 26-Mar-2014  christos kill sprintf
 1.16 28-Apr-2008  martin branches: 1.16.34; 1.16.44; 1.16.50;
Remove clause 3 and 4 from TNF licenses
 1.15 15-Feb-2007  ad branches: 1.15.44; 1.15.46; 1.15.48;
Count the number of CPUs at boot and stash in 'ncpu'. Eventually should
have each CPU register at attach, so we can figure out the topology for
the scheduler.
 1.14 23-Jun-2006  garbled 1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet. (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
 1.13 30-May-2006  garbled branches: 1.13.2;
Rewrite the pci bus attribute decodings to be human-readable by using the
proper pcipnp structure file to read them rather than magical array offsets.

Add more complete decoding of the VPD, including extendedvpd, and TLB. While
I was here, fix a bug where we never printed the L1 cache data properly.
 1.12 29-May-2006  garbled Add code to decode small vendor items that are documented. Namely we can
now decode the chipid, and L2 processor affinity data.

Also fix a bug where we were reporting the service processor type as a
memory controller.
 1.11 25-May-2006  garbled Implement partial support for the RS6K PCI Bridge found on 7025-F40
models. This code was made possible by assistance from Cory Bajus.

Add code that asks the PCI bridge what it's config base address is, and
use that when wiring up an indirect bridge type.
Move prep's user segment register to 10, because the 7025's PCI config
address is at 11, where the user segment used to be.
Add a battable entry for 0xbf800000 for machines with RS6K bridges.

There is still probably work left to be done before a 7025-F40 is fully
supported.
 1.10 24-May-2006  garbled Add a small convenience function
 1.9 11-Mar-2006  kleink branches: 1.9.4;
Make this build again with RESIDUAL_DATA_DUMP defined.
 1.8 09-Mar-2006  garbled Prep super-commit:

1) create new pnpbus psuedo bus. This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein. Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient. (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture. Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015. This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
 1.7 23-Feb-2006  garbled branches: 1.7.2; 1.7.4;
1) Change the offset for each of the chunks of printed dump data from
a tab to two spaces. This allows more space for some of the large vendor
items we wish to print.
2) Add decoding of a number of large vendor items of particular interest
to anyone wishing to port NetBSD to a prep machine.
3) Add a small convenience function which will be used by other pnp functions
in the future.
 1.6 22-Feb-2006  garbled Sprinkle const around to make this file actually compile again.
 1.5 11-Dec-2005  christos branches: 1.5.2; 1.5.4; 1.5.6;
merge ktrace-lwp.
 1.4 17-May-2005  christos branches: 1.4.2;
Yes, it was a cool trick >20 years ago to use "0123456789abcdef"[a] to
implement, xtoa(), but I think defining the samestring 50 times is a bit
too much. Defined HEXDIGITS and hexdigits in subr_prf.c and use it...
 1.3 24-Oct-2004  skrll s/Id/NetBSD/
 1.2 15-Jul-2003  lukem __KERNEL_RCSID()
 1.1 02-May-2002  nonaka branches: 1.1.6; 1.1.8; 1.1.14;
Added dump residual data routine.
 1.1.14.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.14.4 02-Nov-2004  skrll Sync with HEAD.
 1.1.14.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.14.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.14.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 02-May-2002  jdolecek file residual.c was added on branch kqueue on 2002-06-23 17:39:55 +0000
 1.1.6.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.6.1 02-May-2002  nathanw file residual.c was added on branch nathanw_sa on 2002-06-20 03:40:43 +0000
 1.4.2.3 26-Feb-2007  yamt sync with head.
 1.4.2.2 30-Dec-2006  yamt sync with head.
 1.4.2.1 21-Jun-2006  yamt sync with head.
 1.5.6.2 01-Jun-2006  kardel Sync with head.
 1.5.6.1 22-Apr-2006  simonb Sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.5.2.1 01-Mar-2006  yamt sync with head.
 1.7.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.7.2.2 26-Jun-2006  yamt sync with head.
 1.7.2.1 13-Mar-2006  yamt sync with head.
 1.9.4.1 19-Jun-2006  chap Sync with head.
 1.13.2.1 13-Jul-2006  gdamore Merge from HEAD.
 1.15.48.1 16-May-2008  yamt sync with head.
 1.15.46.1 18-May-2008  yamt sync with head.
 1.15.44.1 02-Jun-2008  mjf Sync with HEAD.
 1.16.50.1 18-May-2014  rmind sync with head
 1.16.44.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.16.34.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.7 30-Apr-2008  garbled Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.
 1.6 27-Jun-2006  garbled branches: 1.6.58; 1.6.60; 1.6.62;
General fixups:
1) Fix support for the powerstack E1. This machine needs to use the 8259
directly, and cannot use the prep interrupt vector register. Place a
quirk entry in the table for the machine.
2) Add a new com0_vreset boot image. The vreset code only works on a few
machines, and breaks others like the 7025-F40. Its only limitedly useful
when used with the com0, so just make it an optional image the user can
install by hand if they want.
3) Bump the bootloader to 1.8 with the above change.
 1.5 13-Apr-2006  garbled branches: 1.5.4;
Stop building installboot. I'm not sure if it works or not, but it looks
like it wouldn't. Keep the sources around in case I get around to fixing it.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; 1.4.12;
merge ktrace-lwp.
 1.3 12-Dec-2003  jmc branches: 1.3.16;
Add a .WAIT after common so libs get built before they're needed
 1.2 18-Sep-2000  nonaka branches: 1.2.2; 1.2.26;
Added installboot program.
 1.1 29-Feb-2000  nonaka branches: 1.1.4;
Initial import prep port.
 1.1.4.1 20-Sep-2000  nonaka Pull up (approved by thorpej)

- Added installboot program.
 1.2.26.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.26.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.26.1 03-Aug-2004  skrll Sync with HEAD
 1.2.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.2.1 18-Sep-2000  bouyer file Makefile was added on branch thorpej_scsipi on 2000-11-20 20:23:07 +0000
 1.3.16.2 30-Dec-2006  yamt sync with head.
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.4.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.4.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.8.2 11-Aug-2006  yamt sync with head
 1.4.8.1 24-May-2006  yamt sync with head.
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5.4.1 13-Jul-2006  gdamore Merge from HEAD.
 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.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file Makefile.inc was added on branch thorpej_scsipi on 2000-11-20 20:23:07 +0000
 1.3 30-Apr-2008  garbled Remove prep's copy of mkbootimage
 1.2 23-Mar-2006  garbled branches: 1.2.62; 1.2.64; 1.2.66;
update this to match reality
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.46; 1.1.60; 1.1.62; 1.1.64; 1.1.66; 1.1.68;
Initial import prep port.
 1.1.68.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.1.66.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.64.1 01-Apr-2006  yamt sync with head.
 1.1.62.1 22-Apr-2006  simonb Sync with head.
 1.1.60.1 09-Sep-2006  rpaulo sync with head
 1.1.46.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file README was added on branch thorpej_scsipi on 2000-11-20 20:23:07 +0000
 1.2.66.1 16-May-2008  yamt sync with head.
 1.2.64.1 18-May-2008  yamt sync with head.
 1.2.62.1 02-Jun-2008  mjf Sync with HEAD.
 1.2 21-Jul-2000  jdolecek switch to sys/conf/newvers_stand.sh for generation of version file
slighly adjust the Makefile WRT vers.c and SRCS & CLEANFILES
sync the message in boot/version with other ports using newvers_stand.sh
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.33 03-Jun-2023  lukem bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBER

Provide a single variable
CC_WNO_ADDRESS_OF_PACKED_MEMBER
with options for both clang and gcc, to replace
CLANG_NO_ADDR_OF_PACKED_MEMBER
CC_NO_ADDR_OF_PACKED_MEMBER
GCC_NO_ADDR_OF_PACKED_MEMBER

Using the convention CC_compilerflag, where compilerflag
is based on the full compiler flag name.
 1.32 07-Sep-2020  mrg apply some GCC_NO_ADDR_OF_PACKED_MEMBER.
 1.31 03-Sep-2019  martin PR 54394: do not compile in experimental SCSI support by default,
#ifdef it out as it breaks some machines. Based on a patch by
Ulrich Teichert, with #ifdef instead of comments suggested by nonaka@.
 1.30 08-Apr-2017  christos branches: 1.30.14;
centralize vers.c building for standalone programs.
 1.29 08-Aug-2014  joerg branches: 1.29.4; 1.29.8; 1.29.12;
Don't set -mmultiple or -mno-string for PowerPC, the difference is too
small to really matter and it sometimes even increases the size.
 1.28 12-Jan-2014  tsutsui branches: 1.28.2;
Add empty LIBCRTI= as LIBCRT0 to build sa programs without installed DESTDIR.

XXX: probabry we should have bsd.saprog.mk or something.
 1.27 21-Aug-2013  matt Use <bsd.klinks.mk>
Use ${_MKTARGET_LINK}
 1.26 19-May-2012  kiyohara branches: 1.26.2; 1.26.4;
Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.25 22-Jan-2011  joerg branches: 1.25.4; 1.25.8;
Drop bootprog_maker (formerly enabled by -M) and bootprog_date (formerly
disabled by -D) from the output of newvers_stand.sh. Change -D to the
inverted logic, so that it adds the date to bootprog_rev in ().

Change all platforms accordingly. -D is added if MKREPRO is not yes and
wasn't present before. Platforms that didn't use -D don't depend on
MKREPRO now either.
 1.24 21-Jan-2011  joerg Switch remaining platforms to modern CPP for assembler.
 1.23 12-Jan-2009  tsutsui branches: 1.23.6; 1.23.8; 1.23.10;
Warning options should be in CFLAGS, not CPPFLAGS.
 1.22 19-Dec-2007  garbled branches: 1.22.6; 1.22.10; 1.22.18;
Change the prep bootloader to reach over into the
powerpc/stand/mkbootimage directory for the magic.h file.
 1.21 19-Sep-2006  matt branches: 1.21.28; 1.21.38; 1.21.42;
Generate an intermediate boot.elf with symbols.
 1.20 27-Jun-2006  garbled branches: 1.20.4; 1.20.6;
General fixups:
1) Fix support for the powerstack E1. This machine needs to use the 8259
directly, and cannot use the prep interrupt vector register. Place a
quirk entry in the table for the machine.
2) Add a new com0_vreset boot image. The vreset code only works on a few
machines, and breaks others like the 7025-F40. Its only limitedly useful
when used with the com0, so just make it an optional image the user can
install by hand if they want.
3) Bump the bootloader to 1.8 with the above change.
 1.19 13-Apr-2006  garbled branches: 1.19.4;
More major bootblock changes:
1) Rewrite vreset.c completely. Saves about 1k, and now it sets the
screen up much better. Previously the resulting video mode looked bad on
my CRT, and my LCD wouldn't even recognize it as a valid mode. Now it
looks reasonably good and my LCD can talk to it.

2) Call vga_reset unconditionally in the setup process to fix the onboard
VGA. If you have a VGA and use the serial console, this will allow you
to still use the VGA device for getty/wscons. Tested on a 7248 with VGA
and a 7043 without VGA.

3) Change filesystem.c to use nullfs rather than ufs and cd9660. We
don't actually need an fs at all, but it would take a major rewrite to
get rid of them completely. This saves about 6KB on the bootloader.

4) Bump version to 1.7.
 1.18 10-Apr-2006  garbled Clean up the bootloader a little bit. Get rid of some unused code,
set the makefile to build the bootloader without the DB_MONITOR stuff by
default, as it is primarily for debugging. Reduces bootloader size by
about 8k.
 1.17 28-Dec-2005  skrll branches: 1.17.4; 1.17.6; 1.17.8; 1.17.10; 1.17.12;
More ro src breakage.
 1.16 11-Dec-2005  christos merge ktrace-lwp.
 1.15 11-May-2005  jmc branches: 1.15.2;
Rework depends so this works w. -j after .BEGIN fixes
 1.14 10-Mar-2004  nonaka boot-loader can find attached kernel again.
 1.13 05-Jan-2004  nonaka reduce program size.
 1.12 05-Jan-2004  nonaka Use 32bit daddr_t.
 1.11 26-Oct-2003  lukem Use ${HOST_SH} instead of `sh'.

If necessary, pull in <bsd.sys.mk> to get the definition of HOST_SH;
Makefiles that pull in one of (most of) <bsd.*.mk> will get this anyway.
 1.10 08-Oct-2003  simonb Define LIB{CRT0,C,CRTBEGIN,CRTEND} as nothing, we don't need to link
against them.
 1.9 30-Sep-2003  matt Add -ffreestanding
 1.8 12-Dec-2001  lukem branches: 1.8.16;
Set NOxxx= before <bsd.own.mk> is pulled in (even indirectly).
Otherwise the appropriate MKxxx=no won't be defined .
 1.7 12-Dec-2001  tv MKfoo=no -> NOfoo
 1.6 14-Nov-2001  tv ${MAKE} print-objdir -> ${PRINTOBJDIR}
 1.5 19-Jun-2001  nonaka branches: 1.5.2; 1.5.8;
Back out last changes.
 1.4 17-Jun-2001  nonaka identified prep model.
 1.3 14-Aug-2000  nonaka branches: 1.3.2; 1.3.4;
Fix link problem.
 1.2 21-Jul-2000  jdolecek switch to sys/conf/newvers_stand.sh for generation of version file
slighly adjust the Makefile WRT vers.c and SRCS & CLEANFILES
sync the message in boot/version with other ports using newvers_stand.sh
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.3.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.3.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.1 14-Aug-2000  bouyer file Makefile was added on branch thorpej_scsipi on 2000-11-20 20:23:07 +0000
 1.5.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.5.8.1 19-Jun-2001  nathanw file Makefile was added on branch nathanw_sa on 2002-01-08 00:27:19 +0000
 1.5.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.16.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.8.16.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.16.2 18-Sep-2004  skrll Sync with HEAD.
 1.8.16.1 03-Aug-2004  skrll Sync with HEAD
 1.15.2.3 21-Jan-2008  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.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.17.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.17.8.3 11-Aug-2006  yamt sync with head
 1.17.8.2 24-May-2006  yamt sync with head.
 1.17.8.1 11-Apr-2006  yamt sync with head
 1.17.6.1 22-Apr-2006  simonb Sync with head.
 1.17.4.1 09-Sep-2006  rpaulo sync with head
 1.19.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.20.6.1 22-Oct-2006  yamt sync with head
 1.20.4.1 18-Nov-2006  ad Sync with head.
 1.21.42.1 02-Jan-2008  bouyer Sync with HEAD
 1.21.38.1 26-Dec-2007  ad Sync with head.
 1.21.28.1 09-Jan-2008  matt sync with HEAD
 1.22.18.1 19-Jan-2009  skrll Sync with HEAD.
 1.22.10.1 04-May-2009  yamt sync with head.
 1.22.6.1 17-Jan-2009  mjf Sync with HEAD.
 1.23.10.1 08-Feb-2011  bouyer Sync with HEAD
 1.23.8.1 06-Jun-2011  jruoho Sync with HEAD.
 1.23.6.1 05-Mar-2011  rmind sync with head
 1.25.8.1 02-Jun-2012  mrg sync to latest -current.
 1.25.4.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.25.4.1 23-May-2012  yamt sync with head.
 1.26.4.2 18-May-2014  rmind sync with head
 1.26.4.1 28-Aug-2013  rmind sync with head
 1.26.2.2 03-Dec-2017  jdolecek update from HEAD
 1.26.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.28.2.1 10-Aug-2014  tls Rebase.
 1.29.12.1 21-Apr-2017  bouyer Sync with HEAD
 1.29.8.1 26-Apr-2017  pgoyette Sync with HEAD
 1.29.4.1 28-Aug-2017  skrll Sync with HEAD
 1.30.14.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.21 03-Sep-2019  martin PR 54394: do not compile in experimental SCSI support by default,
#ifdef it out as it breaks some machines. Based on a patch by
Ulrich Teichert, with #ifdef instead of comments suggested by nonaka@.
 1.20 08-Aug-2014  joerg branches: 1.20.28;
Mark _rtt as dead
 1.19 19-May-2012  kiyohara branches: 1.19.2; 1.19.12;
Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.18 22-Jan-2011  joerg branches: 1.18.4; 1.18.8;
Drop bootprog_maker (formerly enabled by -M) and bootprog_date (formerly
disabled by -D) from the output of newvers_stand.sh. Change -D to the
inverted logic, so that it adds the date to bootprog_rev in ().

Change all platforms accordingly. -D is added if MKREPRO is not yes and
wasn't present before. Platforms that didn't use -D don't depend on
MKREPRO now either.
 1.17 02-Mar-2010  matt branches: 1.17.2; 1.17.4; 1.17.6;
Add missing <powerpc/FOO/spr.h> to a few files missed on the first pass.
Don't export <machine/spr.h> to userland, only <powerpc/spr.h>
 1.16 14-Mar-2009  dsl branches: 1.16.2;
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.15 10-Jun-2006  tsutsui branches: 1.15.64; 1.15.72; 1.15.78; 1.15.86;
Put newline if there is no input on Boot: prompt.
 1.14 13-Apr-2006  garbled branches: 1.14.2;
More major bootblock changes:
1) Rewrite vreset.c completely. Saves about 1k, and now it sets the
screen up much better. Previously the resulting video mode looked bad on
my CRT, and my LCD wouldn't even recognize it as a valid mode. Now it
looks reasonably good and my LCD can talk to it.

2) Call vga_reset unconditionally in the setup process to fix the onboard
VGA. If you have a VGA and use the serial console, this will allow you
to still use the VGA device for getty/wscons. Tested on a 7248 with VGA
and a 7043 without VGA.

3) Change filesystem.c to use nullfs rather than ufs and cd9660. We
don't actually need an fs at all, but it would take a major rewrite to
get rid of them completely. This saves about 6KB on the bootloader.

4) Bump version to 1.7.
 1.13 10-Apr-2006  garbled de-__P, minor formatting nits, bump version.
 1.12 10-Apr-2006  garbled Clean up the bootloader a little bit. Get rid of some unused code,
set the makefile to build the bootloader without the DB_MONITOR stuff by
default, as it is primarily for debugging. Reduces bootloader size by
about 8k.
 1.11 24-Dec-2005  perry branches: 1.11.4; 1.11.6; 1.11.8; 1.11.10; 1.11.12;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.10 11-Dec-2005  christos merge ktrace-lwp.
 1.9 23-Jun-2004  kleink branches: 1.9.12;
On the 601, simply supply the fixed RTC clocking information.
 1.8 10-Mar-2004  nonaka boot-loader can find attached kernel again.
 1.7 05-Jan-2004  nonaka Use memset() for "Clear all of BSS".

If (edata-address & 3) != (end-address & 3), my own code cause infinity loop.
Fixed it.
 1.6 06-Oct-2003  he Include libkern.h to get definitions for strcpy, strlen, and memset.
 1.5 19-Jun-2001  nonaka branches: 1.5.8; 1.5.24;
Back out last changes.
 1.4 17-Jun-2001  nonaka identified prep model.
 1.3 24-Sep-2000  jdolecek branches: 1.3.2; 1.3.4;
add new macro BOOT_FLAG() (defined in <sys/boot_flag.h>) - this
maps standard boot flags to corresponding RB_* values
use BOOT_FLAG() in port's MD code as appropriate

as discussed on tech-kern, add new boot flags -v, -q for booting
verbosely or quietly, and corresponding AB_VERBOSE/AB_QUIET
boot flags; also add FreeBSD-compatible bootverbose macro and
NetBSD-specific bootquiet macro

for hpcmips, use new bootverbose instead of it's own hpcmips_verbose

Tested on i386, and to limited extend (compile of affected files) also for
mvme68k, hp300, luna68k, sun3.
 1.2 29-Jul-2000  jdolecek g/c RB_DFLTROOT

I've tried hard to find also various usage() messages and remove the
appropriate flag from there as well, hopefully all occurences are covered.
 1.1 29-Feb-2000  nonaka branches: 1.1.4;
Initial import prep port.
 1.1.4.1 13-Aug-2000  jdolecek pullup from trunk (approved by thorpej):
retire RB_DFLTROOT, it's no longer used

revisions pulled up:
arch/i386/stand/lib/netbsd_opts.c 1.3
arch/i386/stand/biosboot/main.c 1.23
arch/i386/stand/dosboot/main.c 1.15
arch/i386/stand/netboot/main.c 1.6
arch/arc/arc/machdep.c 1.42
arch/bebox/stand/boot/boot.c 1.11
arch/hpcmips/hpcmips/machdep.c 1.32
arch/newsmips/newsmips/machdep.c 1.45
arch/pc532/stand/boot/boot.c 1.2
arch/pmax/pmax/machdep.c 1.178
arch/prep/stand/boot/boot.c 1.2
arch/sparc/sparc/autoconf.c 1.141
arch/sparc64/sparc64/autoconf.c 1.38
arch/x68k/stand/loadbsd/loadbsd.c 1.5
arch/mvme68k/stand/libsa/parse_args.c 1.6
compat/osf1/osf1_cvt.c 1.9
sys/reboot.h 1.17
 1.3.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.3.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.1 24-Sep-2000  bouyer file boot.c was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.5.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.24.1 03-Aug-2004  skrll Sync with HEAD
 1.5.8.2 19-Jun-2001  nonaka Back out last changes.
 1.5.8.1 19-Jun-2001  nonaka file boot.c was added on branch nathanw_sa on 2001-06-19 11:56:29 +0000
 1.9.12.1 21-Jun-2006  yamt sync with head.
 1.11.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.11.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.11.8.3 26-Jun-2006  yamt sync with head.
 1.11.8.2 24-May-2006  yamt sync with head.
 1.11.8.1 11-Apr-2006  yamt sync with head
 1.11.6.1 22-Apr-2006  simonb Sync with head.
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.14.2.1 19-Jun-2006  chap Sync with head.
 1.15.86.1 07-Jan-2011  matt Deal with split <spr.h> (and a few other misc fixes).
 1.15.78.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.15.72.1 28-Apr-2009  skrll Sync with HEAD.
 1.15.64.2 11-Mar-2010  yamt sync with head
 1.15.64.1 04-May-2009  yamt sync with head.
 1.16.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.17.6.1 08-Feb-2011  bouyer Sync with HEAD
 1.17.4.1 06-Jun-2011  jruoho Sync with HEAD.
 1.17.2.1 05-Mar-2011  rmind sync with head
 1.18.8.1 02-Jun-2012  mrg sync to latest -current.
 1.18.4.1 23-May-2012  yamt sync with head.
 1.19.12.1 10-Aug-2014  tls Rebase.
 1.19.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.20.28.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.10 19-May-2012  kiyohara Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.9 07-Jul-2011  mrg branches: 1.9.2; 1.9.6;
remove inline from some non-inline function prototypes.
 1.8 20-Jun-2006  garbled Basic prep timecounter support. This greatly increases the stability of
ntp on my 7248, however, my 7043-140 is still a bit flaky. I suspect the
only way to fix the 7043 is going to be writing a timecounter driver for
the 8254 present on these machines. Either way, this makes some of the
machines better, and the other machines are still about the same as they
were before, so it's a net gain for the port.
 1.7 13-Apr-2006  garbled branches: 1.7.4;
More major bootblock changes:
1) Rewrite vreset.c completely. Saves about 1k, and now it sets the
screen up much better. Previously the resulting video mode looked bad on
my CRT, and my LCD wouldn't even recognize it as a valid mode. Now it
looks reasonably good and my LCD can talk to it.

2) Call vga_reset unconditionally in the setup process to fix the onboard
VGA. If you have a VGA and use the serial console, this will allow you
to still use the VGA device for getty/wscons. Tested on a 7248 with VGA
and a 7043 without VGA.

3) Change filesystem.c to use nullfs rather than ufs and cd9660. We
don't actually need an fs at all, but it would take a major rewrite to
get rid of them completely. This saves about 6KB on the bootloader.

4) Bump version to 1.7.
 1.6 10-Apr-2006  garbled de-__P, minor formatting nits, bump version.
 1.5 11-Dec-2005  christos branches: 1.5.4; 1.5.6; 1.5.8; 1.5.10; 1.5.12;
merge ktrace-lwp.
 1.4 10-Mar-2004  nonaka branches: 1.4.16;
boot-loader can find attached kernel again.
 1.3 19-Jun-2001  nonaka branches: 1.3.8; 1.3.24;
Back out last changes.
 1.2 17-Jun-2001  nonaka identified prep model.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.8;
Initial import prep port.
 1.1.8.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file boot.h was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.3.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.24.1 03-Aug-2004  skrll Sync with HEAD
 1.3.8.2 19-Jun-2001  nonaka Back out last changes.
 1.3.8.1 19-Jun-2001  nonaka file boot.h was added on branch nathanw_sa on 2001-06-19 11:56:29 +0000
 1.4.16.1 21-Jun-2006  yamt sync with head.
 1.5.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.5.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.5.8.3 26-Jun-2006  yamt sync with head.
 1.5.8.2 24-May-2006  yamt sync with head.
 1.5.8.1 11-Apr-2006  yamt sync with head
 1.5.6.1 22-Apr-2006  simonb Sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.7.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.9.6.1 02-Jun-2012  mrg sync to latest -current.
 1.9.2.1 23-May-2012  yamt sync with head.
 1.10 02-Mar-2010  matt Add missing <powerpc/FOO/spr.h> to a few files missed on the first pass.
Don't export <machine/spr.h> to userland, only <powerpc/spr.h>
 1.9 10-Apr-2006  garbled branches: 1.9.66; 1.9.86; 1.9.90;
de-__P, minor formatting nits, bump version.
 1.8 24-Dec-2005  perry branches: 1.8.4; 1.8.6; 1.8.8; 1.8.10; 1.8.12;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile
 1.7 24-Dec-2005  perry Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.6 11-Dec-2005  christos merge ktrace-lwp.
 1.5 29-Jun-2004  kleink branches: 1.5.12;
In the delay loop, mark the scratch register as earlyclobber.
 1.4 26-Mar-2002  kleink branches: 1.4.10;
Adapt this to the 601's RTC.
 1.3 04-Feb-2002  nonaka s/asm/__asm__ volatile/
 1.2 17-Nov-2001  kleink Can't pass temporary storage to an inline assembly statement as input
operand; debunked by GCC 2.95.3 as uninitialized.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.10; 1.1.14;
Initial import prep port.
 1.1.14.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.14.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.14.1 08-Jan-2002  nathanw Catch up to -current.
 1.1.10.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.10.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.1.10.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file clock.c was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.4.10.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.10.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.10.1 03-Aug-2004  skrll Sync with HEAD
 1.5.12.1 21-Jun-2006  yamt sync with head.
 1.8.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.8.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.8.8.1 11-Apr-2006  yamt sync with head
 1.8.6.1 22-Apr-2006  simonb Sync with head.
 1.8.4.1 09-Sep-2006  rpaulo sync with head
 1.9.90.1 07-Jan-2011  matt Deal with split <spr.h> (and a few other misc fixes).
 1.9.86.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.9.66.1 11-Mar-2010  yamt sync with head
 1.5 10-Apr-2006  garbled de-__P, minor formatting nits, bump version.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; 1.4.12;
merge ktrace-lwp.
 1.3 06-Oct-2003  he branches: 1.3.16;
Remove argument list from #undef of divrnd macro; fall-out from gcc3?
 1.2 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file com.c was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.4.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.4.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.8.1 11-Apr-2006  yamt sync with head
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.6 19-May-2012  kiyohara Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.5 10-Apr-2006  garbled branches: 1.5.100; 1.5.104;
de-__P, minor formatting nits, bump version.
 1.4 10-Apr-2006  garbled Clean up the bootloader a little bit. Get rid of some unused code,
set the makefile to build the bootloader without the DB_MONITOR stuff by
default, as it is primarily for debugging. Reduces bootloader size by
about 8k.
 1.3 11-Dec-2005  christos branches: 1.3.4; 1.3.6; 1.3.8; 1.3.10; 1.3.12;
merge ktrace-lwp.
 1.2 07-Aug-2003  agc branches: 1.2.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file conf.c was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.2.16.1 21-Jun-2006  yamt sync with head.
 1.3.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.3.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.3.8.1 11-Apr-2006  yamt sync with head
 1.3.6.1 22-Apr-2006  simonb Sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.5.104.1 02-Jun-2012  mrg sync to latest -current.
 1.5.100.1 23-May-2012  yamt sync with head.
 1.8 08-Feb-2011  rmind Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.7 01-Mar-2008  tsutsui branches: 1.7.26; 1.7.32; 1.7.34;
cnscan() should return -1 (no input) if there is no console device.
 1.6 13-Apr-2006  garbled branches: 1.6.38; 1.6.58; 1.6.62;
More major bootblock changes:
1) Rewrite vreset.c completely. Saves about 1k, and now it sets the
screen up much better. Previously the resulting video mode looked bad on
my CRT, and my LCD wouldn't even recognize it as a valid mode. Now it
looks reasonably good and my LCD can talk to it.

2) Call vga_reset unconditionally in the setup process to fix the onboard
VGA. If you have a VGA and use the serial console, this will allow you
to still use the VGA device for getty/wscons. Tested on a 7248 with VGA
and a 7043 without VGA.

3) Change filesystem.c to use nullfs rather than ufs and cd9660. We
don't actually need an fs at all, but it would take a major rewrite to
get rid of them completely. This saves about 6KB on the bootloader.

4) Bump version to 1.7.
 1.5 10-Apr-2006  garbled de-__P, minor formatting nits, bump version.
 1.4 10-Apr-2006  garbled Clean up the bootloader a little bit. Get rid of some unused code,
set the makefile to build the bootloader without the DB_MONITOR stuff by
default, as it is primarily for debugging. Reduces bootloader size by
about 8k.
 1.3 11-Dec-2005  christos branches: 1.3.4; 1.3.6; 1.3.8; 1.3.10; 1.3.12;
merge ktrace-lwp.
 1.2 07-Aug-2003  agc branches: 1.2.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file cons.c was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.2.16.2 17-Mar-2008  yamt sync with head.
 1.2.16.1 21-Jun-2006  yamt sync with head.
 1.3.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.3.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.3.8.2 24-May-2006  yamt sync with head.
 1.3.8.1 11-Apr-2006  yamt sync with head
 1.3.6.1 22-Apr-2006  simonb Sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.6.62.1 03-Apr-2008  mjf Sync with HEAD.
 1.6.58.1 24-Mar-2008  keiichi sync with head.
 1.6.38.1 23-Mar-2008  matt sync with HEAD
 1.7.34.1 17-Feb-2011  bouyer Sync with HEAD
 1.7.32.1 06-Jun-2011  jruoho Sync with HEAD.
 1.7.26.1 05-Mar-2011  rmind sync with head
 1.5 08-Feb-2011  rmind Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.4 10-Apr-2006  garbled branches: 1.4.88; 1.4.94; 1.4.96;
de-__P, minor formatting nits, bump version.
 1.3 11-Dec-2005  christos branches: 1.3.4; 1.3.6; 1.3.8; 1.3.10; 1.3.12;
merge ktrace-lwp.
 1.2 07-Aug-2003  agc branches: 1.2.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file cons.h was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.2.16.1 21-Jun-2006  yamt sync with head.
 1.3.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.3.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.3.8.1 11-Apr-2006  yamt sync with head
 1.3.6.1 22-Apr-2006  simonb Sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.4.96.1 17-Feb-2011  bouyer Sync with HEAD
 1.4.94.1 06-Jun-2011  jruoho Sync with HEAD.
 1.4.88.1 05-Mar-2011  rmind sync with head
 1.6 30-Apr-2022  rin Fix fallout from libsa change; stand.h includes <sys/param.h> now.

Use '\0' instead of NULL for NUL-character.
 1.5 10-Aug-2014  isaki Unify all arch/*/stand's atoi() to MI libsa.
lib/libsa/atoi.c was separated from lib/libsa/bootcfg.c.
PR/49084
 1.4 19-May-2012  kiyohara branches: 1.4.2;
Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.3 10-Apr-2006  garbled branches: 1.3.100; 1.3.104;
de-__P, minor formatting nits, bump version.
 1.2 28-May-2001  kleink branches: 1.2.8; 1.2.40; 1.2.54; 1.2.56; 1.2.58; 1.2.60; 1.2.62;
Need <lib/libkern/libkern.h>.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.8;
Initial import prep port.
 1.1.8.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file devopen.c was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.2.62.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.2.60.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.2.58.1 11-Apr-2006  yamt sync with head
 1.2.56.1 22-Apr-2006  simonb Sync with head.
 1.2.54.1 09-Sep-2006  rpaulo sync with head
 1.2.40.1 21-Jun-2006  yamt sync with head.
 1.2.8.2 28-May-2001  kleink Need <lib/libkern/libkern.h>.
 1.2.8.1 28-May-2001  kleink file devopen.c was added on branch nathanw_sa on 2001-05-28 15:53:52 +0000
 1.3.104.1 02-Jun-2012  mrg sync to latest -current.
 1.3.100.1 23-May-2012  yamt sync with head.
 1.4.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5 10-Apr-2006  garbled Remove unused fd.c and video.c files.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; 1.4.12;
merge ktrace-lwp.
 1.3 04-Dec-2003  keihan branches: 1.3.16;
netbsd.org -> NetBSD.org

All "netbsd.org" is now gone from src/sys/arch.
 1.2 17-Nov-2001  kleink branches: 1.2.16;
In fdopen():
* Defer deref'ing of `un' until it's been initialized.
* Kludge around a false-positive uninitialized warning.
Brought to you by the graces of GCC 2.95.3.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.10; 1.1.14;
Initial import prep port.
 1.1.14.1 08-Jan-2002  nathanw Catch up to -current.
 1.1.10.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file fd.c was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.2.16.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.16.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.16.1 03-Aug-2004  skrll Sync with HEAD
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.4.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.4.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.8.1 11-Apr-2006  yamt sync with head
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.4 19-May-2012  kiyohara Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.3 28-Apr-2008  martin branches: 1.3.34; 1.3.38;
Remove clause 3 and 4 from TNF licenses
 1.2 13-Apr-2006  garbled branches: 1.2.62; 1.2.64; 1.2.66;
More major bootblock changes:
1) Rewrite vreset.c completely. Saves about 1k, and now it sets the
screen up much better. Previously the resulting video mode looked bad on
my CRT, and my LCD wouldn't even recognize it as a valid mode. Now it
looks reasonably good and my LCD can talk to it.

2) Call vga_reset unconditionally in the setup process to fix the onboard
VGA. If you have a VGA and use the serial console, this will allow you
to still use the VGA device for getty/wscons. Tested on a 7248 with VGA
and a 7043 without VGA.

3) Change filesystem.c to use nullfs rather than ufs and cd9660. We
don't actually need an fs at all, but it would take a major rewrite to
get rid of them completely. This saves about 6KB on the bootloader.

4) Bump version to 1.7.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.46; 1.1.60; 1.1.62; 1.1.64; 1.1.66; 1.1.68;
Initial import prep port.
 1.1.68.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.1.66.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.64.1 24-May-2006  yamt sync with head.
 1.1.62.1 22-Apr-2006  simonb Sync with head.
 1.1.60.1 09-Sep-2006  rpaulo sync with head
 1.1.46.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file filesystem.c was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.2.66.1 16-May-2008  yamt sync with head.
 1.2.64.1 18-May-2008  yamt sync with head.
 1.2.62.1 02-Jun-2008  mjf Sync with HEAD.
 1.3.38.1 02-Jun-2012  mrg sync to latest -current.
 1.3.34.1 23-May-2012  yamt sync with head.
 1.2 19-Jun-2001  nonaka Back out last changes.
 1.1 17-Jun-2001  nonaka identified prep model.
 1.9 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.8 19-Dec-2007  garbled branches: 1.8.6; 1.8.8; 1.8.10;
s/prep_magic.h/magic.h/
 1.7 19-Dec-2007  garbled Change the prep bootloader to reach over into the
powerpc/stand/mkbootimage directory for the magic.h file.
 1.6 10-Apr-2006  garbled branches: 1.6.38; 1.6.48; 1.6.52;
de-__P, minor formatting nits, bump version.
 1.5 11-Dec-2005  christos branches: 1.5.4; 1.5.6; 1.5.8; 1.5.10; 1.5.12;
merge ktrace-lwp.
 1.4 10-Mar-2004  nonaka branches: 1.4.16;
boot-loader can find attached kernel again.
 1.3 30-Jan-2003  matt branches: 1.3.2;
Cast daddr_t to long so to avoid
"cast to pointer from integer of different size" warning.
 1.2 27-Jan-2003  kleink Appease GCC's warning after daddr_t having changed to 64 bits.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file inkernel.c was added on branch thorpej_scsipi on 2000-11-20 20:23:08 +0000
 1.3.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.2.1 03-Aug-2004  skrll Sync with HEAD
 1.4.16.2 21-Jan-2008  yamt sync with head
 1.4.16.1 21-Jun-2006  yamt sync with head.
 1.5.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.5.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.5.8.1 11-Apr-2006  yamt sync with head
 1.5.6.1 22-Apr-2006  simonb Sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.6.52.1 02-Jan-2008  bouyer Sync with HEAD
 1.6.48.1 26-Dec-2007  ad Sync with head.
 1.6.38.1 09-Jan-2008  matt sync with HEAD
 1.8.10.1 16-May-2008  yamt sync with head.
 1.8.8.1 18-May-2008  yamt sync with head.
 1.8.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.6 16-Feb-2022  riastradh powerpc: Sprinkle "memory" clobbers on eieio and nearby asm blocks.

Otherwise the compiler may reorder these around loads and stores,
which mostly defeats the purpose. `asm volatile' just ensures the
instruction isn't _deleted_; it may still move around.
 1.5 19-May-2012  kiyohara Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.4 27-Jun-2006  garbled branches: 1.4.96; 1.4.100;
General fixups:
1) Fix support for the powerstack E1. This machine needs to use the 8259
directly, and cannot use the prep interrupt vector register. Place a
quirk entry in the table for the machine.
2) Add a new com0_vreset boot image. The vreset code only works on a few
machines, and breaks others like the 7025-F40. Its only limitedly useful
when used with the com0, so just make it an optional image the user can
install by hand if they want.
3) Bump the bootloader to 1.8 with the above change.
 1.3 13-Apr-2006  garbled branches: 1.3.4;
More major bootblock changes:
1) Rewrite vreset.c completely. Saves about 1k, and now it sets the
screen up much better. Previously the resulting video mode looked bad on
my CRT, and my LCD wouldn't even recognize it as a valid mode. Now it
looks reasonably good and my LCD can talk to it.

2) Call vga_reset unconditionally in the setup process to fix the onboard
VGA. If you have a VGA and use the serial console, this will allow you
to still use the VGA device for getty/wscons. Tested on a 7248 with VGA
and a 7043 without VGA.

3) Change filesystem.c to use nullfs rather than ufs and cd9660. We
don't actually need an fs at all, but it would take a major rewrite to
get rid of them completely. This saves about 6KB on the bootloader.

4) Bump version to 1.7.
 1.2 10-Apr-2006  garbled de-__P, minor formatting nits, bump version.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.46; 1.1.60; 1.1.62; 1.1.64; 1.1.66; 1.1.68;
Initial import prep port.
 1.1.68.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.1.66.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.64.3 11-Aug-2006  yamt sync with head
 1.1.64.2 24-May-2006  yamt sync with head.
 1.1.64.1 11-Apr-2006  yamt sync with head
 1.1.62.1 22-Apr-2006  simonb Sync with head.
 1.1.60.1 09-Sep-2006  rpaulo sync with head
 1.1.46.2 30-Dec-2006  yamt sync with head.
 1.1.46.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file io.c was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.3.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.4.100.1 02-Jun-2012  mrg sync to latest -current.
 1.4.96.1 23-May-2012  yamt sync with head.
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file iso_font.h was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.3 10-Apr-2006  garbled de-__P, minor formatting nits, bump version.
 1.2 10-Apr-2006  garbled Clean up the bootloader a little bit. Get rid of some unused code,
set the makefile to build the bootloader without the DB_MONITOR stuff by
default, as it is primarily for debugging. Reduces bootloader size by
about 8k.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.46; 1.1.60; 1.1.62; 1.1.64; 1.1.66; 1.1.68;
Initial import prep port.
 1.1.68.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.1.66.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.64.1 11-Apr-2006  yamt sync with head
 1.1.62.1 22-Apr-2006  simonb Sync with head.
 1.1.60.1 09-Sep-2006  rpaulo sync with head
 1.1.46.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file kbd.c was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file ld.script was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.9 11-Jun-2016  dholland PR 51200 gets in libsa considered harmful: use kgets
 1.8 03-Feb-2010  wiz branches: 1.8.22; 1.8.40;
Remove extra parenthesis. Found by cppcheck, reported by
Henning Petersen in PR 42729.
 1.7 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.6 10-Apr-2006  garbled branches: 1.6.62; 1.6.64; 1.6.66;
de-__P, minor formatting nits, bump version.
 1.5 10-Apr-2006  garbled Clean up the bootloader a little bit. Get rid of some unused code,
set the makefile to build the bootloader without the DB_MONITOR stuff by
default, as it is primarily for debugging. Reduces bootloader size by
about 8k.
 1.4 24-Dec-2005  perry branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; 1.4.12;
bare asm -> __asm
 1.3 11-Dec-2005  christos merge ktrace-lwp.
 1.2 06-Oct-2003  he branches: 1.2.16;
Include libkern.h to get definitions for strcpy, strlen, and memset.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file monitor.c was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.2.16.1 21-Jun-2006  yamt sync with head.
 1.4.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.4.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.8.1 11-Apr-2006  yamt sync with head
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.6.66.2 11-Mar-2010  yamt sync with head
 1.6.66.1 16-May-2008  yamt sync with head.
 1.6.64.1 18-May-2008  yamt sync with head.
 1.6.62.1 02-Jun-2008  mjf Sync with HEAD.
 1.8.40.1 09-Jul-2016  skrll Sync with HEAD
 1.8.22.1 03-Dec-2017  jdolecek update from HEAD
 1.4 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.3 19-May-2007  tsutsui branches: 1.3.10;
Set DTR and RTS in NS16550_init().
Some terminal requires it even if hardware flow control is disabled.

XXX: should we sync bebox/stand with prep?
 1.2 10-Apr-2006  garbled branches: 1.2.18; 1.2.20; 1.2.26;
de-__P, minor formatting nits, bump version.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.46; 1.1.60; 1.1.62; 1.1.64; 1.1.66; 1.1.68;
Initial import prep port.
 1.1.68.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.1.66.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.64.1 11-Apr-2006  yamt sync with head
 1.1.62.1 22-Apr-2006  simonb Sync with head.
 1.1.60.1 09-Sep-2006  rpaulo sync with head
 1.1.46.2 03-Sep-2007  yamt sync with head.
 1.1.46.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file ns16550.c was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.2.26.1 22-May-2007  matt Update to HEAD.
 1.2.20.1 11-Jul-2007  mjf Sync with head.
 1.2.18.1 27-May-2007  ad Sync with head.
 1.3.10.1 06-Nov-2007  matt sync with HEAD
 1.3 14-May-2006  elad integrate kauth.
 1.2 10-Apr-2006  garbled de-__P, minor formatting nits, bump version.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.46; 1.1.60; 1.1.62; 1.1.64; 1.1.66; 1.1.68;
Initial import prep port.
 1.1.68.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.1.66.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.64.1 11-Apr-2006  yamt sync with head
 1.1.62.1 22-Apr-2006  simonb Sync with head.
 1.1.60.1 09-Sep-2006  rpaulo sync with head
 1.1.46.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file ns16550.h was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.3 11-Dec-2005  christos merge ktrace-lwp.
 1.2 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file pcconstab.US was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.3 16-Feb-2022  riastradh powerpc: Sprinkle "memory" clobbers on eieio and nearby asm blocks.

Otherwise the compiler may reorder these around loads and stores,
which mostly defeats the purpose. `asm volatile' just ensures the
instruction isn't _deleted_; it may still move around.
 1.2 03-Apr-2014  mrg GCC 4.8 build fixes from John D. Baker
 1.1 19-May-2012  kiyohara branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.1.8.1 18-May-2014  rmind sync with head
 1.1.6.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.2 02-Jun-2012  mrg sync to latest -current.
 1.1.4.1 19-May-2012  mrg file pci.c was added on branch jmcneill-usbmp on 2012-06-02 11:09:07 +0000
 1.1.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.1.2.2 23-May-2012  yamt sync with head.
 1.1.2.1 19-May-2012  yamt file pci.c was added on branch yamt-pagecache on 2012-05-23 10:07:48 +0000
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 10-Apr-2006  garbled branches: 1.2.62; 1.2.64; 1.2.66;
de-__P, minor formatting nits, bump version.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.46; 1.1.60; 1.1.62; 1.1.64; 1.1.66; 1.1.68;
Initial import prep port.
 1.1.68.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.1.66.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.64.1 11-Apr-2006  yamt sync with head
 1.1.62.1 22-Apr-2006  simonb Sync with head.
 1.1.60.1 09-Sep-2006  rpaulo sync with head
 1.1.46.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file prf.c was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.2.66.1 16-May-2008  yamt sync with head.
 1.2.64.1 18-May-2008  yamt sync with head.
 1.2.62.1 02-Jun-2008  mjf Sync with HEAD.
 1.6 02-Jul-2024  rin prep: stand: for previous, memset and style fix just for sure
 1.5 02-Jul-2024  rin prep: stand: Appease GCC12 -Warray-bounds, NFCI

except for additional 38-byte of stack being consumed.

Here, GCC12 complains buffer is smaller than
sizeof(*inqbuf) == SCSIPI_INQUIRY_LENGTH_SCSI3 == 74 bytes,
despite members within the first SCSIPI_INQUIRY_LENGTH_SCSI2 == 36 bytes
are actually dereferenced.
 1.4 08-Jan-2019  jdolecek branches: 1.4.36;
no need to include <machine/param.h> if <sys/param.h> already included
 1.3 02-Jan-2015  christos branches: 1.3.16; 1.3.18;
We have three sets of DTYPE_ constants in the kernel:
altq Drop Type
disklabel Disk Type
file Descriptor Type
(not to mention constants that contain the string DTYPE).
Let's make them two, by changing the disklabel one to be DisK TYPE since the
other disklabel constants seem to do that. Not many userland programs use
these constants (and the ones that they do are mostly in ifdefs). They will
be fixed shortly.
 1.2 10-Jun-2014  phx branches: 1.2.4;
Fix SCSI reads beyond block 0x1fffff, by writing the READ_10/READ_16 opcode
into the correct scsipi_rw_10/scsipi_rw_16 command structure.
 1.1 19-May-2012  kiyohara branches: 1.1.2; 1.1.4; 1.1.6; 1.1.16;
Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.1.16.1 10-Aug-2014  tls Rebase.
 1.1.6.2 03-Dec-2017  jdolecek update from HEAD
 1.1.6.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.2 02-Jun-2012  mrg sync to latest -current.
 1.1.4.1 19-May-2012  mrg file sd.c was added on branch jmcneill-usbmp on 2012-06-02 11:09:07 +0000
 1.1.2.2 23-May-2012  yamt sync with head.
 1.1.2.1 19-May-2012  yamt file sd.c was added on branch yamt-pagecache on 2012-05-23 10:07:48 +0000
 1.2.4.1 06-Apr-2015  skrll Sync with HEAD
 1.3.18.1 10-Jun-2019  christos Sync with HEAD
 1.3.16.1 18-Jan-2019  pgoyette Synch with HEAD
 1.4.36.1 02-Aug-2025  perseant Sync with HEAD
 1.1 19-May-2012  kiyohara branches: 1.1.2; 1.1.4;
Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.1.4.2 02-Jun-2012  mrg sync to latest -current.
 1.1.4.1 19-May-2012  mrg file sdvar.h was added on branch jmcneill-usbmp on 2012-06-02 11:09:07 +0000
 1.1.2.2 23-May-2012  yamt sync with head.
 1.1.2.1 19-May-2012  yamt file sdvar.h was added on branch yamt-pagecache on 2012-05-23 10:07:48 +0000
 1.10 02-Jul-2024  rin prep: stand: for previous, memset and style fix just for sure
 1.9 02-Jul-2024  rin prep: stand: Appease GCC12 -Warray-bounds, NFCI

except for additional 38-byte of stack being consumed.

Here, GCC12 complains buffer is smaller than
sizeof(*inqbuf) == SCSIPI_INQUIRY_LENGTH_SCSI3 == 74 bytes,
despite members within the first SCSIPI_INQUIRY_LENGTH_SCSI2 == 36 bytes
are actually dereferenced.
 1.8 08-Feb-2024  andvar branches: 1.8.2;
s/should't/shouldn't/ and s/mistmatch/mismatch/ in comments.
 1.7 19-Jun-2023  msaitoh Fix typo. unknwon -> unknown
 1.6 03-Jun-2022  andvar fix folloing->following typos in more files.
also s/begginning/beginning/.
 1.5 21-Aug-2021  andvar fix mainly same typos as in my previous commit but outside sys/dev/dm.
 1.4 24-Jul-2021  andvar Fix all remaining typos, mainly in comments but also in few definitions and log messages, reported by me in PR kern/54889.
Also fixed some additional typos in comments, found on review of same files or typos.
 1.3 30-Apr-2016  skrll branches: 1.3.34;
Appease gcc - error: 'error' may be used uninitialized in this function
 1.2 03-Apr-2014  mrg branches: 1.2.6;
GCC 4.8 build fixes from John D. Baker
 1.1 19-May-2012  kiyohara branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.1.8.1 18-May-2014  rmind sync with head
 1.1.6.2 03-Dec-2017  jdolecek update from HEAD
 1.1.6.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.2 02-Jun-2012  mrg sync to latest -current.
 1.1.4.1 19-May-2012  mrg file siop.c was added on branch jmcneill-usbmp on 2012-06-02 11:09:07 +0000
 1.1.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.1.2.2 23-May-2012  yamt sync with head.
 1.1.2.1 19-May-2012  yamt file siop.c was added on branch yamt-pagecache on 2012-05-23 10:07:48 +0000
 1.2.6.1 29-May-2016  skrll Sync with HEAD
 1.3.34.1 01-Aug-2021  thorpej Sync with HEAD.
 1.8.2.1 02-Aug-2025  perseant Sync with HEAD
 1.3 11-Dec-2005  christos merge ktrace-lwp.
 1.2 05-Jan-2004  nonaka Use memset() for "Clear all of BSS".

If (edata-address & 3) != (end-address & 3), my own code cause infinity loop.
Fixed it.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file srt0.s was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.5 29-Apr-2022  rin Fix fallout from libsa change; stand.h includes <sys/param.h> now.

SCANWAIT and PWAIT are renamed to SCANDELAY and SCANWAIT, respectively,
in order not to redefine PWAIT.

XXX
Too many copies for tgets.c...
 1.4 10-Apr-2006  garbled de-__P, minor formatting nits, bump version.
 1.3 11-Dec-2005  christos branches: 1.3.4; 1.3.6; 1.3.8; 1.3.10; 1.3.12;
merge ktrace-lwp.
 1.2 07-Aug-2003  agc branches: 1.2.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.30;
Initial import prep port.
 1.1.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.30.1 03-Aug-2004  skrll Sync with HEAD
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file tgets.c was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.2.16.1 21-Jun-2006  yamt sync with head.
 1.3.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.3.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.3.8.1 11-Apr-2006  yamt sync with head
 1.3.6.1 22-Apr-2006  simonb Sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.14 18-Aug-2025  andvar s/Serise/Series/ in the version changes description.
 1.13 19-May-2012  kiyohara Support load kernel from SCSI HDD with siop. It copy from bebox. (EXPERIMENTAL)
 1.12 29-Apr-2007  msaitoh branches: 1.12.70; 1.12.74;
fix typos
 1.11 27-Jun-2006  garbled branches: 1.11.10; 1.11.14; 1.11.16;
General fixups:
1) Fix support for the powerstack E1. This machine needs to use the 8259
directly, and cannot use the prep interrupt vector register. Place a
quirk entry in the table for the machine.
2) Add a new com0_vreset boot image. The vreset code only works on a few
machines, and breaks others like the 7025-F40. Its only limitedly useful
when used with the com0, so just make it an optional image the user can
install by hand if they want.
3) Bump the bootloader to 1.8 with the above change.
 1.10 13-Apr-2006  garbled branches: 1.10.4;
More major bootblock changes:
1) Rewrite vreset.c completely. Saves about 1k, and now it sets the
screen up much better. Previously the resulting video mode looked bad on
my CRT, and my LCD wouldn't even recognize it as a valid mode. Now it
looks reasonably good and my LCD can talk to it.

2) Call vga_reset unconditionally in the setup process to fix the onboard
VGA. If you have a VGA and use the serial console, this will allow you
to still use the VGA device for getty/wscons. Tested on a 7248 with VGA
and a 7043 without VGA.

3) Change filesystem.c to use nullfs rather than ufs and cd9660. We
don't actually need an fs at all, but it would take a major rewrite to
get rid of them completely. This saves about 6KB on the bootloader.

4) Bump version to 1.7.
 1.9 10-Apr-2006  garbled de-__P, minor formatting nits, bump version.
 1.8 26-Mar-2002  kleink branches: 1.8.26; 1.8.40; 1.8.42; 1.8.44; 1.8.46; 1.8.48;
Bump version to note 601 support.
 1.7 09-Nov-2001  scw Bump the version numbers of all bootloaders which use loadfile_elfXX() now
that it tries hard to avoid backwards seeks.
 1.6 02-Aug-2001  bjh21 branches: 1.6.4; 1.6.6;
Bump version numbers of all bootloaders that use loadfile/ELF, to account for
my changes to symbol loading. I should probably have done this at the time,
but it's better late than never.
 1.5 19-Jun-2001  nonaka branches: 1.5.2;
Back out last changes.
 1.4 17-Jun-2001  nonaka identified prep model. (I missed it...)
 1.3 24-Sep-2000  jdolecek branches: 1.3.2; 1.3.4;
add new macro BOOT_FLAG() (defined in <sys/boot_flag.h>) - this
maps standard boot flags to corresponding RB_* values
use BOOT_FLAG() in port's MD code as appropriate

as discussed on tech-kern, add new boot flags -v, -q for booting
verbosely or quietly, and corresponding AB_VERBOSE/AB_QUIET
boot flags; also add FreeBSD-compatible bootverbose macro and
NetBSD-specific bootquiet macro

for hpcmips, use new bootverbose instead of it's own hpcmips_verbose

Tested on i386, and to limited extend (compile of affected files) also for
mvme68k, hp300, luna68k, sun3.
 1.2 21-Jul-2000  jdolecek switch to sys/conf/newvers_stand.sh for generation of version file
slighly adjust the Makefile WRT vers.c and SRCS & CLEANFILES
sync the message in boot/version with other ports using newvers_stand.sh
 1.1 29-Feb-2000  nonaka Initial import prep port.
 1.3.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.3.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.1 24-Sep-2000  bouyer file version was added on branch thorpej_scsipi on 2000-11-20 20:23:09 +0000
 1.5.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.5.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.5.2.1 03-Aug-2001  lukem update to -current
 1.6.6.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.6.6.1 02-Aug-2001  nathanw file version was added on branch nathanw_sa on 2002-04-01 07:42:14 +0000
 1.6.4.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.8.48.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.8.46.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.8.44.3 11-Aug-2006  yamt sync with head
 1.8.44.2 24-May-2006  yamt sync with head.
 1.8.44.1 11-Apr-2006  yamt sync with head
 1.8.42.1 22-Apr-2006  simonb Sync with head.
 1.8.40.1 09-Sep-2006  rpaulo sync with head
 1.8.26.3 03-Sep-2007  yamt sync with head.
 1.8.26.2 30-Dec-2006  yamt sync with head.
 1.8.26.1 21-Jun-2006  yamt sync with head.
 1.10.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.11.16.1 11-Jul-2007  mjf Sync with head.
 1.11.14.1 27-May-2007  ad Sync with head.
 1.11.10.1 07-May-2007  yamt sync with head.
 1.12.74.1 02-Jun-2012  mrg sync to latest -current.
 1.12.70.1 23-May-2012  yamt sync with head.
 1.6 18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.5 10-Apr-2006  garbled branches: 1.5.66; 1.5.74; 1.5.80;
de-__P, minor formatting nits, bump version.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; 1.4.12;
merge ktrace-lwp.
 1.3 06-Oct-2003  he branches: 1.3.16;
Include libkern.h to get definitions for strcpy, strlen, and memset.
 1.2 22-Jul-2001  wiz branches: 1.2.6; 1.2.22;
bcopy -> memmove
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.10;
Initial import prep port.
 1.1.10.1 03-Aug-2001  lukem update to -current
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file vga.c was added on branch thorpej_scsipi on 2000-11-20 20:23:10 +0000
 1.2.22.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.22.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.22.1 03-Aug-2004  skrll Sync with HEAD
 1.2.6.2 22-Jul-2001  wiz bcopy -> memmove
 1.2.6.1 22-Jul-2001  wiz file vga.c was added on branch nathanw_sa on 2001-07-22 14:57:52 +0000
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.4.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.4.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.8.1 11-Apr-2006  yamt sync with head
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5.80.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.5.74.1 28-Apr-2009  skrll Sync with HEAD.
 1.5.66.1 04-May-2009  yamt sync with head.
 1.2 10-Apr-2006  garbled Remove unused fd.c and video.c files.
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.46; 1.1.60; 1.1.62; 1.1.64; 1.1.66; 1.1.68;
Initial import prep port.
 1.1.68.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.1.66.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.1.64.1 11-Apr-2006  yamt sync with head
 1.1.62.1 22-Apr-2006  simonb Sync with head.
 1.1.60.1 09-Sep-2006  rpaulo sync with head
 1.1.46.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file video.c was added on branch thorpej_scsipi on 2000-11-20 20:23:10 +0000
 1.11 06-May-2023  andvar s/regster/register/ in comments and error messages.
 1.10 16-Feb-2022  riastradh powerpc: Sprinkle "memory" clobbers on eieio and nearby asm blocks.

Otherwise the compiler may reorder these around loads and stores,
which mostly defeats the purpose. `asm volatile' just ensures the
instruction isn't _deleted_; it may still move around.
 1.9 03-Apr-2014  mrg GCC 4.8 build fixes from John D. Baker
 1.8 13-Sep-2008  tsutsui branches: 1.8.28; 1.8.38; 1.8.44;
Put a missing newline.
 1.7 28-Apr-2008  martin branches: 1.7.2; 1.7.6;
Remove clause 3 and 4 from TNF licenses
 1.6 27-Jun-2006  garbled branches: 1.6.58; 1.6.60; 1.6.62;
General fixups:
1) Fix support for the powerstack E1. This machine needs to use the 8259
directly, and cannot use the prep interrupt vector register. Place a
quirk entry in the table for the machine.
2) Add a new com0_vreset boot image. The vreset code only works on a few
machines, and breaks others like the 7025-F40. Its only limitedly useful
when used with the com0, so just make it an optional image the user can
install by hand if they want.
3) Bump the bootloader to 1.8 with the above change.
 1.5 13-Apr-2006  garbled branches: 1.5.4;
More major bootblock changes:
1) Rewrite vreset.c completely. Saves about 1k, and now it sets the
screen up much better. Previously the resulting video mode looked bad on
my CRT, and my LCD wouldn't even recognize it as a valid mode. Now it
looks reasonably good and my LCD can talk to it.

2) Call vga_reset unconditionally in the setup process to fix the onboard
VGA. If you have a VGA and use the serial console, this will allow you
to still use the VGA device for getty/wscons. Tested on a 7248 with VGA
and a 7043 without VGA.

3) Change filesystem.c to use nullfs rather than ufs and cd9660. We
don't actually need an fs at all, but it would take a major rewrite to
get rid of them completely. This saves about 6KB on the bootloader.

4) Bump version to 1.7.
 1.4 10-Apr-2006  garbled de-__P, minor formatting nits, bump version.
 1.3 29-Jan-2006  dsl branches: 1.3.2; 1.3.4; 1.3.6; 1.3.8; 1.3.10;
Make almost everything #include <sys/bswap.h> instead of <machine/bswap.h>
The bswap.h and endian.h files are all rather incestuous, but I want to
get the constant folding stuff into one place - sys/bswap.h
 1.2 24-Dec-2005  perry branches: 1.2.2;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.46;
Initial import prep port.
 1.1.46.2 30-Dec-2006  yamt sync with head.
 1.1.46.1 21-Jun-2006  yamt sync with head.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file vreset.c was added on branch thorpej_scsipi on 2000-11-20 20:23:10 +0000
 1.2.2.1 01-Feb-2006  yamt sync with head.
 1.3.10.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.3.8.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.3.6.3 11-Aug-2006  yamt sync with head
 1.3.6.2 24-May-2006  yamt sync with head.
 1.3.6.1 11-Apr-2006  yamt sync with head
 1.3.4.1 22-Apr-2006  simonb Sync with head.
 1.3.2.1 09-Sep-2006  rpaulo sync with head
 1.5.4.1 13-Jul-2006  gdamore Merge from HEAD.
 1.6.62.2 04-May-2009  yamt sync with head.
 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.2 28-Sep-2008  mjf Sync with HEAD.
 1.6.58.1 02-Jun-2008  mjf Sync with HEAD.
 1.7.6.1 19-Oct-2008  haad Sync with HEAD.
 1.7.2.1 24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.8.44.1 18-May-2014  rmind sync with head
 1.8.38.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.28.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.1 29-Feb-2000  nonaka branches: 1.1.6;
Initial import prep port.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file Makefile was added on branch thorpej_scsipi on 2000-11-20 20:23:10 +0000
 1.1 27-Jun-2006  garbled branches: 1.1.2; 1.1.6; 1.1.10; 1.1.16;
General fixups:
1) Fix support for the powerstack E1. This machine needs to use the 8259
directly, and cannot use the prep interrupt vector register. Place a
quirk entry in the table for the machine.
2) Add a new com0_vreset boot image. The vreset code only works on a few
machines, and breaks others like the 7025-F40. Its only limitedly useful
when used with the com0, so just make it an optional image the user can
install by hand if they want.
3) Bump the bootloader to 1.8 with the above change.
 1.1.16.2 30-Dec-2006  yamt sync with head.
 1.1.16.1 27-Jun-2006  yamt file Makefile was added on branch yamt-lazymbuf on 2006-12-30 20:46:50 +0000
 1.1.10.2 09-Sep-2006  rpaulo sync with head
 1.1.10.1 27-Jun-2006  rpaulo file Makefile was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:42:51 +0000
 1.1.6.2 11-Aug-2006  yamt sync with head
 1.1.6.1 27-Jun-2006  yamt file Makefile was added on branch yamt-pdpolicy on 2006-08-11 15:42:46 +0000
 1.1.2.2 13-Jul-2006  gdamore Merge from HEAD.
 1.1.2.1 27-Jun-2006  gdamore file Makefile was added on branch gdamore-uart on 2006-07-13 17:49:02 +0000
 1.12 08-Aug-2014  joerg Don't set -mmultiple or -mno-string for PowerPC, the difference is too
small to really matter and it sometimes even increases the size.
 1.11 21-Aug-2013  matt branches: 1.11.2;
Use <bsd.klinks.mk>
Use ${_MKTARGET_LINK}
 1.10 27-May-2010  dholland branches: 1.10.8; 1.10.18; 1.10.22;
Introduce .WAIT into the cleandir rule for blasting the libsa/libkern/etc.
trees, because it can race with the libsa/libkern/etc. makefiles' own
cleandir rules. I think I've found all of the uses of the offending idiom...
Closes PR 43360.
 1.9 10-Apr-2006  garbled branches: 1.9.66; 1.9.86; 1.9.88;
Clean up the bootloader a little bit. Get rid of some unused code,
set the makefile to build the bootloader without the DB_MONITOR stuff by
default, as it is primarily for debugging. Reduces bootloader size by
about 8k.
 1.8 28-Dec-2005  skrll branches: 1.8.4; 1.8.6; 1.8.8; 1.8.10; 1.8.12;
More ro src breakage.
 1.7 11-Dec-2005  christos merge ktrace-lwp.
 1.6 05-Jan-2004  nonaka branches: 1.6.16;
reduce program size.
 1.5 05-Jan-2004  nonaka Use 32bit daddr_t.
 1.4 27-Nov-2003  tsutsui sync with news68k:
> Make sure machine and ${MACHINE_ARCH} symlinks created before make depend.
 1.3 30-Sep-2003  matt Add -ffreestanding
 1.2 12-Dec-2001  tv branches: 1.2.16;
MKfoo=no -> NOfoo
 1.1 29-Feb-2000  nonaka branches: 1.1.6; 1.1.10; 1.1.14;
Initial import prep port.
 1.1.14.1 08-Jan-2002  nathanw Catch up to -current.
 1.1.10.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1 29-Feb-2000  bouyer file Makefile was added on branch thorpej_scsipi on 2000-11-20 20:23:10 +0000
 1.2.16.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.16.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.16.1 03-Aug-2004  skrll Sync with HEAD
 1.6.16.1 21-Jun-2006  yamt sync with head.
 1.8.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.8.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.8.8.1 11-Apr-2006  yamt sync with head
 1.8.6.1 22-Apr-2006  simonb Sync with head.
 1.8.4.1 09-Sep-2006  rpaulo sync with head
 1.9.88.1 30-May-2010  rmind sync with head
 1.9.86.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.9.66.1 11-Aug-2010  yamt sync with head.
 1.10.22.1 28-Aug-2013  rmind sync with head
 1.10.18.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.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.11.2.1 10-Aug-2014  tls Rebase.
 1.2 12-Dec-2001  tv MKfoo=no -> NOfoo
 1.1 18-Sep-2000  nonaka branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12;
Added installboot program.
 1.1.12.1 08-Jan-2002  nathanw Catch up to -current.
 1.1.8.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.4.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.4.1 18-Sep-2000  bouyer file Makefile was added on branch thorpej_scsipi on 2000-11-20 20:23:10 +0000
 1.1.2.2 20-Sep-2000  nonaka Pull up (approved by thorpej)

- Added installboot program.
 1.1.2.1 18-Sep-2000  nonaka file Makefile was added on branch netbsd-1-5 on 2000-09-20 13:58:05 +0000
 1.8 18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.7 11-Dec-2005  christos branches: 1.7.78; 1.7.86; 1.7.92;
merge ktrace-lwp.
 1.6 04-Dec-2003  keihan netbsd.org -> NetBSD.org

All "netbsd.org" is now gone from src/sys/arch.
 1.5 08-Oct-2003  lukem Overhaul MBR handling (part 1):

<sys/bootblock.h>:
* Added definitions for the Master Boot Record (MBR) used by
a variety of systems (primarily i386), including the format
of the BIOS Parameter Block (BPB).
This information was cribbed from a variety of sources
including <sys/disklabel_mbr.h> which this is a superset of.

As part of this, some data structure elements and #defines
were renamed to be more "namespace friendly" and consistent
with other bootblocks and MBR documentation.
Update all uses of the old names to the new names.

<sys/disklabel_mbr.h>:
* Deprecated in favor of <sys/bootblock.h> (the latter is more
"host tool" friendly).

amd64 & i386:
* Renamed /usr/mdec/bootxx_dosfs to /usr/mdec/bootxx_msdos, to
be consistent with the naming convention of the msdosfs tools.

* Removed /usr/mdec/bootxx_ufs, as it's equivalent to bootxx_ffsv1
and it's confusing to have two functionally equivalent bootblocks,
especially given that "ufs" has multiple meanings (it could be
a synonym for "ffs", or the group of ffs/lfs/ext2fs file systems).

* Rework pbr.S (the first sector of bootxx_*):
+ Ensure that BPB (bytes 11..89) and the partition table
(bytes 446..509) do not contain code.
+ Add support for booting from FAT partitions if BOOT_FROM_FAT
is defined. (Only set for bootxx_msdos).
+ Remove "dummy" partition 3; if people want to installboot(8)
these to the start of the disk they can use fdisk(8) to
create a real MBR partition table...
+ Compile with TERSE_ERROR so it fits because of the above.
Whilst this is less user friendly, I feel it's important
to have a valid partition table and BPB in the MBR/PBR.

* Renamed /usr/mdec/biosboot to /usr/mdec/boot, to be consistent
with other platforms.

* Enable SUPPORT_DOSFS in /usr/mdec/boot (stage2), so that
we can boot off FAT partitions.

* Crank version of /usr/mdec/boot to 3.1, and fix some of the other
entries in the version file.

installboot(8) (i386):
* Read the existing MBR of the filesystem and retain the BIOS
Parameter Block (BPB) in bytes 11..89 and the MBR partition
table in bytes 446..509. (Previously installboot(8) would
trash those two sections of the MBR.)

mbrlabel(8):
* Use sys/lib/libkern/xlat_mbr_fstype.c instead of homegrown code
to map the MBR partition type to the NetBSD disklabel type.


Test built "make release" for i386, and new bootblocks verified to work
(even off FAT!).
 1.4 06-Oct-2003  he Include <string.h> for memset and memcmp prototypes.
 1.3 17-Mar-2002  nonaka branches: 1.3.12;
Already MBR_PTYPE_PREP is defined in sys/disklabel_mbr.h.
 1.2 19-Feb-2001  cgd branches: 1.2.4; 1.2.8;
convert to use getprogname()
 1.1 18-Sep-2000  nonaka branches: 1.1.2; 1.1.4;
Added installboot program.
 1.1.4.3 12-Mar-2001  bouyer Sync with HEAD.
 1.1.4.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.4.1 18-Sep-2000  bouyer file installboot.c was added on branch thorpej_scsipi on 2000-11-20 20:23:11 +0000
 1.1.2.2 20-Sep-2000  nonaka Pull up (approved by thorpej)

- Added installboot program.
 1.1.2.1 18-Sep-2000  nonaka file installboot.c was added on branch netbsd-1-5 on 2000-09-20 13:58:05 +0000
 1.2.8.1 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.4.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.3.12.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.12.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.12.1 03-Aug-2004  skrll Sync with HEAD
 1.7.92.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.7.86.1 28-Apr-2009  skrll Sync with HEAD.
 1.7.78.1 04-May-2009  yamt sync with head.

RSS XML Feed