Home | History | Annotate | only in /src/sys/arch/cobalt/cobalt
History log of /src/sys/arch/cobalt/cobalt
RevisionDateAuthorComments
 1.31 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.30 29-Jul-2012  mlelstv branches: 1.30.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.29 09-Jul-2011  matt branches: 1.29.2; 1.29.8;
Cleanup kernel files to use sys variants for bus.h, cpu.h, and intr.h
Use <mips/..> for db_machdep.h and psl.h
 1.28 22-Mar-2008  tsutsui Reorganize interrupt handling on cobalt and allow multiple interrupts on
each icu irq to support multi function PCI devices in the Qube's PCI slot:

- split out interrupt stuff from machdep.c into new interrupt.c
- prepare struct *_intrhead to handle cpu and icu interrupts
- use LIST and malloc(9) to handle multiple interrupts per icu irq
(mostly taken from algor/pci/pcib.c and evbmips/malta/pci/pcib.c)
- move evcnt(9) stuff into *_intrhead from cobalt_intrhand
(i.e. make it per interrupt rather than per handler)
- in pci_intr_map(9) handle CPU interrupt separately and add a sanity check
- fixup interrupt lines for devices on the PCI slot in pci_conf_interrupt(9)
- move some device address definitions into <machine/cpu.h> and
remove <machine/leds.h>
- misc cosmetics

No objection on port-cobalt for three weeks.
 1.27 03-Dec-2007  ad branches: 1.27.14;
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.26 27-Oct-2007  tsutsui branches: 1.26.2;
Use PCI bus/dev/function numbers rather than device unit
to check first tlp in device_register().
 1.25 27-Oct-2007  tsutsui In device_register(), check booted devices more properly:
- check "tlp" name on netboot
- use ata channel and drive numbers to check wd unit
 1.24 17-Nov-2006  tsutsui branches: 1.24.2; 1.24.8; 1.24.18; 1.24.26; 1.24.28; 1.24.32;
Defer _spl0() or _splnone() calls (which enable hardware interrupts)
from cpu_configure(9) to cpu_initclocks(9) on mips ports which use
mips3_clockintr.c:mips3_clockintr() (i.e. CPU INT5 clock) to avoid
hardclock(9) before softclock interrupt is initialized in initclocks().
This should be harmless because initclocks() is a part of configure()
in these days and there is no MI function which expects hardware
interrupts between cpu_configure(9) and cpu_initclocks(9).

Disccussed on tech-kern and port-mips.
 1.23 10-Sep-2006  tsutsui branches: 1.23.2;
Remove or comment out now unused code after MI mips3_clockintr migration.
 1.22 07-Sep-2006  gdamore branches: 1.22.2;
Convert to common mips3_cp0_counter clock.
Convert to timecounters.

From Rivo Nurges (rix at estpak dot ee). ok soren@, tested by simon@.
Note that this means we aren't using the gt clock, and maybe we should clean
that up a bit.
 1.21 18-Jul-2006  tsutsui - always enable options MIPS3_ENABLE_CLOCK_INTR so that spllowerclock(9)
works properly
(XXX: the real fix is to implement proper CLFK_BASEPRI())
- prepare an independent statclock(9) handler which use MIPS3 CPU internal
clock interrupt. Enabled by options ENABLE_INT5_STATCLOCK, but not enabled
by default.
 1.20 31-May-2006  tsutsui Cleanup ICU (i8259 compatible PIC) interrupt handling code:
- move ICU interrupt stuff from pci/pcib.h to cobalt/machdep.c
because ICU should be initialized before pcib is attached
- initialize ICU more properly
- check interrupt types and set ELCR (edge/level control registers)
accordingly in icu_intr_establish()
- check requested IRQ line and call only a necessary hander in icu_intr()
- use specific EOI to ack interrupts rather than AEOI
- use macro defined in <dev/ic/i8259reg.h>
 1.19 21-Apr-2006  tsutsui branches: 1.19.2;
Account interrupts by evcnt(9).
 1.18 21-Apr-2006  tsutsui - initialize cpuspeed and curcpu() according to cobalt model id
- switch to cpu cyclecounter based delay(9), taken from evbmips
 1.17 05-Apr-2006  tsutsui - ANSIfy
- KNF
- u_intXX_t -> uintXX_t
 1.16 25-Feb-2006  thorpej branches: 1.16.2; 1.16.4; 1.16.6;
Use device_is_a().
 1.15 21-Feb-2006  thorpej Use device_class() instead of accessing dv_class directly.
 1.14 11-Dec-2005  christos branches: 1.14.2; 1.14.4; 1.14.6;
merge ktrace-lwp.
 1.13 04-Jun-2005  tsutsui branches: 1.13.2;
Fix config_rootfound() arg.
 1.12 23-Oct-2004  thorpej Centralize the declaration of booted_device and booted_partition.
 1.11 12-Sep-2003  tsutsui Use common mips generic software interrupt routines.
 1.10 15-Jul-2003  lukem __KERNEL_RCSID()
 1.9 27-Sep-2002  thorpej branches: 1.9.6;
Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
 1.8 17-Jun-2001  cyber branches: 1.8.2; 1.8.8;
Change the way boot strings are handled and the way the root device
is determined. This allows multiple internal disks in a raq2 to work.
 1.7 06-Jun-2000  soren branches: 1.7.2; 1.7.4; 1.7.6;
findroot() is static.
 1.6 02-Jun-2000  cgd booted_partition, not booted_parition...
 1.5 01-Jun-2000  matt Fix a missing cases of devpp -> booted_device, partp -> booted_parition
 1.4 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.3 01-Jun-2000  matt Make booted_device global (and booted_parition for consitency).
Eliminate it from header files and other extern definitions.
 1.2 31-Mar-2000  soren branches: 1.2.2;
Some cleanups.
 1.1 19-Mar-2000  soren NetBSD/cobalt. Work-in-progress.
 1.2.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.7.6.1 21-Jun-2001  nathanw Catch up to -current.
 1.7.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.7.4.1 06-Jun-2000  bouyer file autoconf.c was added on branch thorpej_scsipi on 2000-11-20 20:06:59 +0000
 1.7.2.1 17-Jun-2001  cyber Pullup from -current
autoconf.c 1.7 -> 1.8
machdep.c 1.32 -> 1.33
reviewed by soren
 1.8.8.2 18-Oct-2002  nathanw Catch up to -current.
 1.8.8.1 17-Jun-2001  nathanw file autoconf.c was added on branch nathanw_sa on 2002-10-18 02:36:15 +0000
 1.8.2.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.9.6.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.9.6.4 02-Nov-2004  skrll Sync with HEAD.
 1.9.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.9.6.1 03-Aug-2004  skrll Sync with HEAD
 1.13.2.5 24-Mar-2008  yamt sync with head.
 1.13.2.4 07-Dec-2007  yamt sync with head
 1.13.2.3 15-Nov-2007  yamt sync with head.
 1.13.2.2 30-Dec-2006  yamt sync with head.
 1.13.2.1 21-Jun-2006  yamt sync with head.
 1.14.6.2 01-Jun-2006  kardel Sync with head.
 1.14.6.1 22-Apr-2006  simonb Sync with head.
 1.14.4.1 09-Sep-2006  rpaulo sync with head
 1.14.2.1 01-Mar-2006  yamt sync with head.
 1.16.6.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.16.4.2 11-May-2006  elad sync with head
 1.16.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.16.2.5 14-Sep-2006  yamt sync with head.
 1.16.2.4 11-Aug-2006  yamt sync with head
 1.16.2.3 26-Jun-2006  yamt sync with head.
 1.16.2.2 24-May-2006  yamt sync with head.
 1.16.2.1 11-Apr-2006  yamt sync with head
 1.19.2.1 19-Jun-2006  chap Sync with head.
 1.22.2.2 12-Jan-2007  ad Sync with head.
 1.22.2.1 18-Nov-2006  ad Sync with head.
 1.23.2.1 10-Dec-2006  yamt sync with head.
 1.24.32.1 13-Nov-2007  bouyer Sync with HEAD
 1.24.28.2 09-Jan-2008  matt sync with HEAD
 1.24.28.1 06-Nov-2007  matt sync with HEAD
 1.24.26.2 09-Dec-2007  jmcneill Sync with HEAD.
 1.24.26.1 28-Oct-2007  joerg Sync with HEAD.
 1.24.18.1 06-Jan-2008  wrstuden Catch up to netbsd-4.0 release.
 1.24.8.2 03-Dec-2007  ad Sync with HEAD.
 1.24.8.1 03-Dec-2007  ad Sync with HEAD.
 1.24.2.1 04-Nov-2007  pavel Pull up following revisions (requested by tsutsui in ticket #974):
sys/arch/cobalt/cobalt/autoconf.c: revision 1.25-1.26
sys/arch/cobalt/cobalt/machdep.c: revision 1.89
sys/arch/cobalt/stand/boot/Makefile: revision 1.12
sys/arch/cobalt/stand/boot/boot.c: revision 1.10
sys/arch/cobalt/stand/boot/boot.h: revision 1.6
sys/arch/cobalt/stand/boot/cache.c: revision 1.1-1.2
sys/arch/cobalt/stand/boot/clock.c: revision 1.2
sys/arch/cobalt/stand/boot/conf.c: revision 1.5
sys/arch/cobalt/stand/boot/devopen.c: revision 1.4
sys/arch/cobalt/stand/boot/nif_tlp.c: revision 1.1
sys/arch/cobalt/stand/boot/start.S: revision 1.6
sys/arch/cobalt/stand/boot/tlp.c: revision 1.1-1.3
sys/arch/cobalt/stand/boot/version: revision 1.6
sys/lib/libsa/dev_net.h: revision 1.5
Add an extern decl of try_bootp variable here since MD sources could set it.

In device_register(), check booted devices more properly:
- check "tlp" name on netboot
- use ata channel and drive numbers to check wd unit

Assume netboot if "nfsroot=/path" is specified in bootstring.

Use PCI bus/dev/function numbers rather than device unit
to check first tlp in device_register().

Add support for netboot via tlp0 with standalone tlp(4) driver
taken from arch/sandpoint/stand/netboot.
There are still some kludge but it just works on RaQ and RaQ2.

Fix my stupid bug in cache flush code and remove one kludge for it.

- use chaned mode for RX descs and allocate only one desc per each cacheline
to avoid possible race condition between CPU writeback vs DMA write
- remove unnecessary FS and LS bits from RxD->xd0
(sys/dev/ic/tulipvar.h sets them but maybe they are ignored?)
 1.26.2.1 08-Dec-2007  mjf Sync with HEAD.
 1.27.14.1 03-Apr-2008  mjf Sync with HEAD.
 1.29.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.29.2.1 30-Oct-2012  yamt sync with head
 1.30.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.46 20-Jan-2018  skrll Switch cobalt to common bus_space.

Tested on raq 2
 1.45 29-Jul-2014  skrll Convert cobalt to generic mips bus_dma.
 1.44 02-Oct-2012  christos branches: 1.44.10;
move common/bus_dma/ -> dev/bus_dma/
 1.43 12-Feb-2012  matt branches: 1.43.6;
Change old-style function defintions to C89 prototypes.

Approved by releng.
 1.42 17-Jul-2011  dyoung branches: 1.42.2; 1.42.6;
Switch MIPS and MIPS-ish architectures to new-style <sys/bus.h>. This
involves moving some inline bus_space(9) implementation into .c files.
 1.41 09-Jul-2011  matt Cleanup kernel files to use sys variants for bus.h, cpu.h, and intr.h
Use <mips/..> for db_machdep.h and psl.h
 1.40 03-May-2011  tsutsui TAB/space cosmetics.
 1.39 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
(XXX generic kernels on raq2 die after interrupts are enabled but gxemul
works fine).
 1.38 14-Dec-2009  matt branches: 1.38.4; 1.38.6; 1.38.8;
Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.37 21-Aug-2009  thorpej Use bus_dmamem_common.
 1.36 20-Aug-2009  tsutsui Add an empty bus_space_mmap(9) function as temporary workaround
for MI pci(4) mmap function in sys/dev/pci/pci_usrreq.c.
 1.35 04-Jun-2008  ad branches: 1.35.8; 1.35.16;
vm_page: put TAILQ_ENTRY into a union with LIST_ENTRY, so we can use both.
 1.34 28-Apr-2008  martin branches: 1.34.2;
Remove clause 3 and 4 from TNF licenses
 1.33 06-Mar-2007  he branches: 1.33.40; 1.33.42; 1.33.44;
Use char* with mtod() when doing pointer arithmetic on the result.
 1.32 04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.31 10-Jun-2006  tsutsui branches: 1.31.12;
space nits.
 1.30 14-May-2006  elad branches: 1.30.2;
integrate kauth.
 1.29 14-May-2006  tsutsui Pull slightly optimized BUS_DMASYNC_PREREAD op from other mips3 ports.
 1.28 16-Apr-2006  tsutsui Mising -> Mixing
 1.27 16-Apr-2006  tsutsui _ds_vaddr member in struct cobalt_bus_dma_segment is a virtual address,
so it should be vaddr_t rather than bus_addr_t.
 1.26 05-Apr-2006  tsutsui - ANSIfy
- KNF
- u_intXX_t -> uintXX_t
 1.25 05-Apr-2006  tsutsui Fix function name in panic messages.
 1.24 01-Mar-2006  yamt branches: 1.24.2; 1.24.4; 1.24.6;
merge yamt-uio_vmspace branch.

- use vmspace rather than proc or lwp where appropriate.
the latter is more natural to specify an address space.
(and less likely to be abused for random purposes.)
- fix a swdmover race.
 1.23 11-Dec-2005  christos branches: 1.23.2; 1.23.4; 1.23.6;
merge ktrace-lwp.
 1.22 24-Nov-2005  yamt bus_dmamem_map: honour BUS_DMA_NOWAIT. noted by Manuel Bouyer.
bus_space_map: always do NOWAIT allocation as it used to be before yamt-km.

we have too many copies!
 1.21 01-Apr-2005  yamt branches: 1.21.2; 1.21.8;
merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
save some resources like pv_entry. also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.
 1.20 09-Mar-2005  matt Add a dm_maxsegsz public member to bus_dmamap_t. This allows a user of the API
to select the maximum segment size for each bus_dmamap_load (up to the maxsegsz
supplied to bus_dmamap_create). dm_maxsegsz is reset to the value supplied to
bus_dmamap_create when the dmamap is unloaded.
 1.19 28-Nov-2004  thorpej branches: 1.19.4; 1.19.6;
bus_dmamap_load_mbuf(): Skip zero-length mbufs.
kern/24811
 1.18 16-Sep-2004  rumble Correct a few comment typos that have propagated through the
tree.
 1.17 15-Jul-2003  lukem __KERNEL_RCSID()
 1.16 29-Jun-2003  fvdl branches: 1.16.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.15 28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.14 02-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.13 02-Jun-2002  drochner move initialization of the "struct pglist" returned by uvm_pglistalloc()
from the calling code into uvm_pglistalloc() itself for consistency
and easier error handling
 1.12 14-Nov-2001  thorpej branches: 1.12.2; 1.12.10;
Merge the thorpej-mips-cache branch onto the trunk. This is an
overhaul of how caches are handled for NetBSD's MIPS ports.
 1.11 10-Sep-2001  chris branches: 1.11.2;
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.10 22-Jul-2001  wiz branches: 1.10.2;
bzero -> memset
 1.9 26-May-2001  chs branches: 1.9.2;
replace vm_page_t with struct vm_page *.
 1.8 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.7 21-Mar-2001  soren s/vm_page_alloc_memory/uvm_pglistalloc/ in panic message.
 1.6 27-Jun-2000  soren branches: 1.6.2; 1.6.4;
Don't include <vm/vm.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 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 29-May-2000  soren branches: 1.3.2;
Whitespace.
 1.2 31-Mar-2000  soren branches: 1.2.2;
Some cleanups.
 1.1 19-Mar-2000  soren NetBSD/cobalt. Work-in-progress.
 1.2.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.3.2.1 30-Jun-2000  simonb Pull up mmap paddr_t/off_t changes from trunk.
 1.6.4.2 21-Jun-2001  nathanw Catch up to -current.
 1.6.4.1 09-Apr-2001  nathanw Catch up with -current.
 1.6.2.3 27-Mar-2001  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 27-Jun-2000  bouyer file bus.c was added on branch thorpej_scsipi on 2000-11-20 20:06:59 +0000
 1.9.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.9.2.3 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.9.2.2 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.9.2.1 03-Aug-2001  lukem update to -current
 1.10.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.11.2.2 13-Nov-2001  thorpej bus_dmamap_sync() optimizes for the virtually-indexed write-back
cache present on the RM52xx CPU that the Cobalt usees.
 1.11.2.1 13-Nov-2001  thorpej Make the cobalt port build with thorpej-mips-cache.
 1.12.10.1 14-Jul-2002  gehenna catch up with -current.
 1.12.2.4 02-Jul-2002  nathanw curlwp back to curproc; curproc is the correct type here.
 1.12.2.3 24-Jun-2002  nathanw Curproc->curlwp renaming.

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

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.12.2.2 20-Jun-2002  nathanw Catch up to -current.
 1.12.2.1 14-Nov-2001  nathanw file bus.c was added on branch nathanw_sa on 2002-06-20 03:38:26 +0000
 1.16.2.8 11-Dec-2005  christos Sync with head.
 1.16.2.7 01-Apr-2005  skrll Sync with HEAD.
 1.16.2.6 19-Feb-2005  skrll Don't deref a NULL struct lwp *. This shouldn't happen, but...
 1.16.2.5 18-Dec-2004  skrll Sync with HEAD.
 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-Aug-2004  skrll Sync with HEAD
 1.16.2.1 02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.19.6.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.19.6.1 11-Feb-2005  yamt use new apis.
 1.19.4.1 29-Apr-2005  kent sync with -current
 1.21.8.1 29-Nov-2005  yamt sync with head.
 1.21.2.2 03-Sep-2007  yamt sync with head.
 1.21.2.1 21-Jun-2006  yamt sync with head.
 1.23.6.2 01-Jun-2006  kardel Sync with head.
 1.23.6.1 22-Apr-2006  simonb Sync with head.
 1.23.4.1 09-Sep-2006  rpaulo sync with head
 1.23.2.3 18-Feb-2006  yamt fix a typo in the previous.
 1.23.2.2 18-Feb-2006  yamt keep vmspace rather than proc in cobalt_bus_dmamap.
 1.23.2.1 18-Feb-2006  yamt adapt bus_dma implementations.
 1.24.6.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.24.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.24.2.3 26-Jun-2006  yamt sync with head.
 1.24.2.2 24-May-2006  yamt sync with head.
 1.24.2.1 11-Apr-2006  yamt sync with head
 1.30.2.1 19-Jun-2006  chap Sync with head.
 1.31.12.1 12-Mar-2007  rmind Sync with HEAD.
 1.33.44.4 11-Mar-2010  yamt sync with head
 1.33.44.3 16-Sep-2009  yamt sync with head
 1.33.44.2 04-May-2009  yamt sync with head.
 1.33.44.1 16-May-2008  yamt sync with head.
 1.33.42.2 17-Jun-2008  yamt sync with head.
 1.33.42.1 18-May-2008  yamt sync with head.
 1.33.40.2 05-Jun-2008  mjf Sync with HEAD.

Also fix build.
 1.33.40.1 02-Jun-2008  mjf Sync with HEAD.
 1.34.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.35.16.4 24-Dec-2010  matt Define bus_space_mmap
 1.35.16.3 20-Jan-2010  matt Adjust things to the new world order.
 1.35.16.2 14-Jan-2010  matt More avail_end/avail_start fallout.
 1.35.16.1 26-Aug-2009  matt Fixup (all but mipsco) to deal the new realities in mipsland.
 1.35.8.1 16-Sep-2009  snj Pull up following revision(s) (requested by mrg in ticket #952):
sys/arch/cobalt/cobalt/bus.c: revision 1.36
sys/arch/cobalt/include/bus.h: revision 1.23
Add an empty bus_space_mmap(9) function as a workaround
for MI pci(4) mmap function in sys/dev/pci/pci_usrreq.c.
 1.38.8.1 05-Mar-2011  bouyer Sync with HEAD
 1.38.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.38.4.2 31-May-2011  rmind sync with head
 1.38.4.1 05-Mar-2011  rmind sync with head
 1.42.6.1 18-Feb-2012  mrg merge to -current.
 1.42.2.2 30-Oct-2012  yamt sync with head
 1.42.2.1 17-Apr-2012  yamt sync with head
 1.43.6.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.43.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.44.10.1 10-Aug-2014  tls Rebase.
 1.16 10-Sep-2006  tsutsui Remove or comment out now unused code after MI mips3_clockintr migration.
 1.15 07-Sep-2006  gdamore branches: 1.15.2;
Convert to common mips3_cp0_counter clock.
Convert to timecounters.

From Rivo Nurges (rix at estpak dot ee). ok soren@, tested by simon@.
Note that this means we aren't using the gt clock, and maybe we should clean
that up a bit.
 1.14 04-Sep-2006  tsutsui Switch cobalt to MI todr.
 1.13 18-Jul-2006  tsutsui - always enable options MIPS3_ENABLE_CLOCK_INTR so that spllowerclock(9)
works properly
(XXX: the real fix is to implement proper CLFK_BASEPRI())
- prepare an independent statclock(9) handler which use MIPS3 CPU internal
clock interrupt. Enabled by options ENABLE_INT5_STATCLOCK, but not enabled
by default.
 1.12 21-Apr-2006  tsutsui - initialize cpuspeed and curcpu() according to cobalt model id
- switch to cpu cyclecounter based delay(9), taken from evbmips
 1.11 15-Apr-2006  tsutsui Switch cobalt port to use MI todr(9) functions and MI mc146818 driver.
Tested on RaQ2 and Qube2 on port-cobalt.
 1.10 05-Apr-2006  tsutsui - ANSIfy
- KNF
- u_intXX_t -> uintXX_t
 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 28-Aug-2004  tsutsui branches: 1.8.12;
- Reset timer0 of GT64111 in gt_attach() and start it
in cpu_initclocks(9) via a callback function.
Fixes the "hardclock(9) is called before cpu_initclocks(9)" problem
reported by KIYOHARA Takashi on port-cobalt.
- Use bus_space(9) functions to access GT64111 registers and
add register definitions for GT64111 in gtreg.h.
(XXX this could be in sys/dev/marvell?)
- Move microtime(9) from machdep.c to clock.c, and read timer0 register
via a callback function. Also change microtime(9) like other ports
to guarantee that the time will be greater than the value obtained
by a previous call.
 1.7 05-Jul-2004  pk Call inittodr() from main(). Let file system code set the recorded `last
update' time (if any) through the new function setrootfstime().
 1.6 15-Jul-2003  lukem __KERNEL_RCSID()
 1.5 28-Apr-2000  soren branches: 1.5.6; 1.5.30;
Make sure to read the clock before we leave the 'cold' state.
 1.4 31-Mar-2000  soren Some cleanups.
 1.3 23-Mar-2000  nisimura - Have physical address for MIPS_PHYS_TO_KSEG1() macro.
- Make consistent function declarations.
- White spaces.
 1.2 22-Mar-2000  soren The firmware uses the clock in BCD mode.
 1.1 19-Mar-2000  soren NetBSD/cobalt. Work-in-progress.
 1.5.30.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.30.3 18-Sep-2004  skrll Sync with HEAD.
 1.5.30.2 03-Sep-2004  skrll Sync with HEAD
 1.5.30.1 03-Aug-2004  skrll Sync with HEAD
 1.5.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.5.6.1 28-Apr-2000  bouyer file clock.c was added on branch thorpej_scsipi on 2000-11-20 20:06:59 +0000
 1.8.12.2 30-Dec-2006  yamt sync with head.
 1.8.12.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.4 14-Sep-2006  yamt sync with head.
 1.9.8.3 11-Aug-2006  yamt sync with head
 1.9.8.2 24-May-2006  yamt sync with head.
 1.9.8.1 11-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.15.2.1 18-Nov-2006  ad Sync with head.
 1.6 10-Sep-2006  tsutsui Remove or comment out now unused code after MI mips3_clockintr migration.
 1.5 07-Sep-2006  gdamore branches: 1.5.2;
Convert to common mips3_cp0_counter clock.
Convert to timecounters.

From Rivo Nurges (rix at estpak dot ee). ok soren@, tested by simon@.
Note that this means we aren't using the gt clock, and maybe we should clean
that up a bit.
 1.4 18-Jul-2006  tsutsui - always enable options MIPS3_ENABLE_CLOCK_INTR so that spllowerclock(9)
works properly
(XXX: the real fix is to implement proper CLFK_BASEPRI())
- prepare an independent statclock(9) handler which use MIPS3 CPU internal
clock interrupt. Enabled by options ENABLE_INT5_STATCLOCK, but not enabled
by default.
 1.3 21-Apr-2006  tsutsui Account interrupts by evcnt(9).
 1.2 11-Dec-2005  christos branches: 1.2.4; 1.2.6; 1.2.8; 1.2.10; 1.2.12;
merge ktrace-lwp.
 1.1 28-Aug-2004  tsutsui branches: 1.1.2; 1.1.14;
- Reset timer0 of GT64111 in gt_attach() and start it
in cpu_initclocks(9) via a callback function.
Fixes the "hardclock(9) is called before cpu_initclocks(9)" problem
reported by KIYOHARA Takashi on port-cobalt.
- Use bus_space(9) functions to access GT64111 registers and
add register definitions for GT64111 in gtreg.h.
(XXX this could be in sys/dev/marvell?)
- Move microtime(9) from machdep.c to clock.c, and read timer0 register
via a callback function. Also change microtime(9) like other ports
to guarantee that the time will be greater than the value obtained
by a previous call.
 1.1.14.2 30-Dec-2006  yamt sync with head.
 1.1.14.1 21-Jun-2006  yamt 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-Sep-2004  skrll Sync with HEAD
 1.1.2.1 28-Aug-2004  skrll file clockvar.h was added on branch ktrace-lwp on 2004-09-03 12:44:29 +0000
 1.2.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.2.10.1 11-May-2006  elad sync with head
 1.2.8.3 14-Sep-2006  yamt sync with head.
 1.2.8.2 11-Aug-2006  yamt sync with head
 1.2.8.1 24-May-2006  yamt sync with head.
 1.2.6.1 22-Apr-2006  simonb Sync with head.
 1.2.4.1 09-Sep-2006  rpaulo sync with head
 1.5.2.1 18-Nov-2006  ad Sync with head.
 1.17 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.16 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.15 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.14 17-Jun-2002  christos MD systrace gluons.
 1.13 16-Mar-2002  martin branches: 1.13.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.12 12-Jan-2002  manu Added clockctl
 1.11 21-Mar-2001  lukem branches: 1.11.2; 1.11.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.10 14-Jan-2001  martin branches: 1.10.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.9 09-Jan-2001  martin When adding isdn devices I forgot to check chrtoblktbl.
Fix this know for the affected archs.
 1.8 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.7 26-Nov-2000  ad lsu -> ld, by popular request.
 1.6 20-Oct-2000  ad branches: 1.6.2;
ca -> lsu
 1.5 13-Jul-2000  soren Fix mem_no. Pointed out by cgd.
 1.4 13-Jul-2000  cgd fix some obvious paste errors in 'uk' cdev inits
 1.3 06-Jun-2000  soren branches: 1.3.2;
Fix pasto.
 1.2 28-Apr-2000  ad branches: 1.2.2;
Add missing cdevsw and chrtoblktbl entries.
 1.1 19-Mar-2000  soren NetBSD/cobalt. Work-in-progress.
 1.2.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.3.2.2 09-Feb-2002  he Pull up revisions 1.6-1.7 (requested by cyber):
Catch up with the renaming ca* -> ld*.
 1.3.2.1 03-Sep-2000  soren Pull up to rev 1.5:
> date: 2000/07/13 18:10:38; author: soren; state: Exp; lines: +2 -2
> Fix mem_no. Pointed out by cgd.
 1.6.2.5 27-Mar-2001  bouyer Sync with HEAD.
 1.6.2.4 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 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 20-Oct-2000  bouyer file conf.c was added on branch thorpej_scsipi on 2000-11-20 20:07:00 +0000
 1.10.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.11.8.7 11-Nov-2002  nathanw Catch up to -current
 1.11.8.6 17-Sep-2002  nathanw Catch up to -current.
 1.11.8.5 01-Aug-2002  nathanw Catch up to -current.
 1.11.8.4 20-Jun-2002  nathanw Catch up to -current.
 1.11.8.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.11.8.2 28-Feb-2002  nathanw Catch up to -current.
 1.11.8.1 21-Mar-2001  nathanw file conf.c was added on branch nathanw_sa on 2002-02-28 04:08:45 +0000
 1.11.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.11.2.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.11.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.11.2.1 11-Feb-2002  jdolecek Sync w/ -current.
 1.13.4.3 21-Jul-2002  gehenna catch up with -current.
 1.13.4.2 14-Jul-2002  gehenna catch up with -current.
 1.13.4.1 16-May-2002  gehenna Bye block/character device swicth tables.
 1.13 04-Sep-2021  tsutsui Use C99 designated initializer.
 1.12 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.11 27-Mar-2008  tsutsui Add kernel support for optional Z85C30 serial console on Cobalt Qube 2700.
There is some interrupt related issue (in MI z8530tty driver?) on heavy load,
but useful enough for debugging.
 1.10 05-Apr-2006  tsutsui branches: 1.10.62;
- ANSIfy
- KNF
- u_intXX_t -> uintXX_t
 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 29-Aug-2004  tsutsui branches: 1.8.12;
- rename comcnprobe() and comcninit() to com_mainbus_cnprobe() and
com_mainbus_cninit() and move these cn functions from cobalt/console.c
to dev/com_mainbus.c
- call cninit() only once
- remove unneeded includes
- use ANSI function decls
 1.7 07-Jan-2004  cdi branches: 1.7.4;
Pass some info from the boot loader to the kernel:

- Kernel image name
- Symbol table
- A flag indicating console presence (could be clobbered if not passed)

Add _rtt() entry to the boot loader code.
 1.6 17-Oct-2003  cdi Change console code to use cninit() and null console. Add serial console
check.
 1.5 12-Sep-2003  tsutsui TAB/space cleanup.
 1.4 15-Jul-2003  lukem __KERNEL_RCSID()
 1.3 14-Jun-2003  thorpej branches: 1.3.2;
Also pass a type argument to comcnattach() and com_kgdb_attach().
comspeed() (and thus cominit()) may need this information.
 1.2 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.1 19-Mar-2000  soren branches: 1.1.6; 1.1.10; 1.1.14; 1.1.22;
NetBSD/cobalt. Work-in-progress.
 1.1.22.1 19-May-2002  gehenna Remove unnecessary #include
 1.1.14.1 17-Sep-2002  nathanw Catch up to -current.
 1.1.10.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.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 19-Mar-2000  bouyer file console.c was added on branch thorpej_scsipi on 2000-11-20 20:07:00 +0000
 1.3.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.3.2.2 03-Sep-2004  skrll Sync with HEAD
 1.3.2.1 03-Aug-2004  skrll Sync with HEAD
 1.7.4.1 16-Dec-2005  jmc Pullup rev 1.8 (requested by tsutsui in ticket #10175)

Cobalt kernel hangs in the second
consinit() call if it is loaded by the native bootloader,
so there is no bootstrap way to install other than to use
an older kernel.
 1.8.12.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 19-Apr-2006  elad sync with head - hopefully this will work
 1.9.8.1 11-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.62.1 03-Apr-2008  mjf Sync with HEAD.
 1.1 27-Mar-2008  tsutsui branches: 1.1.2;
Add kernel support for optional Z85C30 serial console on Cobalt Qube 2700.
There is some interrupt related issue (in MI z8530tty driver?) on heavy load,
but useful enough for debugging.
 1.1.2.2 03-Apr-2008  mjf Sync with HEAD.
 1.1.2.1 27-Mar-2008  mjf file console.h was added on branch mjf-devfs2 on 2008-04-03 12:42:13 +0000
 1.12 03-Mar-2022  riastradh mips: Use device_set_private for cpuN on older ports.

Specifically, for those that don't use cpu_attach_common of
mips_subr.c.
 1.11 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
(XXX generic kernels on raq2 die after interrupts are enabled but gxemul
works fine).
 1.10 09-May-2008  tsutsui branches: 1.10.16; 1.10.20; 1.10.26; 1.10.28;
Split softc/device_t, with misc related changes.
 1.9 05-Apr-2006  tsutsui branches: 1.9.62; 1.9.64; 1.9.66; 1.9.68;
Include "ioconf.h" for struct cfdriver cpu_cd (though it's currently unused).
 1.8 05-Apr-2006  tsutsui - ANSIfy
- KNF
- u_intXX_t -> uintXX_t
 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;
Use CFATTACH_DECL().
 1.4 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.3 14-Nov-2001  thorpej branches: 1.3.2;
Merge the thorpej-mips-cache branch onto the trunk. This is an
overhaul of how caches are handled for NetBSD's MIPS ports.
 1.2 27-Jun-2001  nisimura branches: 1.2.2; 1.2.6;
Cobalt MIPS servers are known to have QED RM5200 processor.
 1.1 19-Mar-2000  soren branches: 1.1.6;
NetBSD/cobalt. Work-in-progress.
 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 19-Mar-2000  bouyer file cpu.c was added on branch thorpej_scsipi on 2000-11-20 20:07:00 +0000
 1.2.6.1 13-Nov-2001  thorpej Make the cobalt port build with thorpej-mips-cache.
 1.2.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.2.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.2 18-Oct-2002  nathanw Catch up to -current.
 1.3.2.1 14-Nov-2001  nathanw file cpu.c was added on branch nathanw_sa on 2002-10-18 02:36:16 +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.1 21-Jun-2006  yamt sync with head.
 1.7.12.1 24-May-2006  tron Merge 2006-05-24 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 11-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.9.68.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.9.66.1 16-May-2008  yamt sync with head.
 1.9.64.1 18-May-2008  yamt sync with head.
 1.9.62.1 02-Jun-2008  mjf Sync with HEAD.
 1.10.28.1 05-Mar-2011  bouyer Sync with HEAD
 1.10.26.1 06-Jun-2011  jruoho Sync with HEAD.
 1.10.20.1 05-Mar-2011  rmind sync with head
 1.10.16.2 23-Dec-2011  matt Change usage to cpu_identify(self, NULL);
 1.10.16.1 13-Jan-2010  matt Deal with new cpu_identity()
 1.27 04-Sep-2021  tsutsui Use MI subr_disk_mbr.c for proper MBR and bi-endian supprot.

No special MD handling in previous. Briefly tested on gxemul 0.6.3.
 1.26 03-Apr-2019  christos centralize setdisklabel(9)
 1.25 16-May-2013  christos branches: 1.25.34;
Complete the dosparts -> mbrparts conversion. Only x86k new uses dosparts
because it also uses struct dos_partition.
 1.24 03-Mar-2008  tsutsui branches: 1.24.38; 1.24.48;
Use xlat_mbr_fstype() so that we can mount FAT removable media properly.
 1.23 02-Jan-2008  ad branches: 1.23.2; 1.23.6;
Merge vmlocking2 to head.
 1.22 17-Oct-2007  garbled branches: 1.22.2; 1.22.4; 1.22.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.21 08-Oct-2007  ad Merge brelse() changes from the vmlocking branch.
 1.20 29-Jul-2007  ad branches: 1.20.4; 1.20.6; 1.20.8;
It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.19 06-Mar-2007  he branches: 1.19.2; 1.19.10; 1.19.12; 1.19.14;
Cast to char* before doing pointer arithmetic.
 1.18 25-Nov-2006  scw branches: 1.18.4;
Replace the myriad copies of bounds_check_with_label() with a single MI
version.

Add disk_blocksize(9) so that disk drivers can record the physical
block size of a disk if it is different to DEV_BSIZE. Right now this
simply initialises dk_blkshift and dk_byteshift according to the
supplied block size. This information is used in the MI version of
bounds_check_with_label().
 1.17 05-Apr-2006  tsutsui branches: 1.17.8; 1.17.10;
- ANSIfy
- KNF
- u_intXX_t -> uintXX_t
 1.16 11-Dec-2005  christos branches: 1.16.4; 1.16.6; 1.16.8; 1.16.10; 1.16.12;
merge ktrace-lwp.
 1.15 04-Jun-2005  tsutsui branches: 1.15.2;
Add const.
 1.14 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.13 12-Sep-2003  tsutsui TAB/space cleanup.
 1.12 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.11 15-Jul-2003  lukem __KERNEL_RCSID()
 1.10 10-May-2003  thorpej branches: 1.10.2;
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.9 02-May-2003  dsl Change return type of readdisklabel() to const char *
I hope I've found all the correct places!
 1.8 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.7 19-Feb-2002  wiz strategy should have an 'r'. Inspired by similar change in OpenBSD.
 1.6 20-Nov-2000  chs branches: 1.6.2; 1.6.4; 1.6.6; 1.6.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.5 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.4 31-Mar-2000  soren Some cleanups.
 1.3 22-Mar-2000  soren Revert to the same scheme as the other MBR-using ports.
 1.2 21-Mar-2000  soren Add bounds_check_with_label().
 1.1 19-Mar-2000  soren NetBSD/cobalt. Work-in-progress.
 1.6.10.1 28-Feb-2002  nathanw Catch up to -current.
 1.6.6.1 16-Mar-2002  jdolecek Catch up with -current.
 1.6.4.1 10-Oct-2001  fvdl Convert all remaining devices.
 1.6.2.3 22-Nov-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 20-Nov-2000  bouyer file disksubr.c was added on branch thorpej_scsipi on 2000-11-20 20:07:00 +0000
 1.10.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.10.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.10.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.10.2.1 03-Aug-2004  skrll Sync with HEAD
 1.15.2.6 17-Mar-2008  yamt sync with head.
 1.15.2.5 21-Jan-2008  yamt sync with head
 1.15.2.4 27-Oct-2007  yamt sync with head.
 1.15.2.3 03-Sep-2007  yamt sync with head.
 1.15.2.2 30-Dec-2006  yamt sync with head.
 1.15.2.1 21-Jun-2006  yamt sync with head.
 1.16.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.16.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.16.8.1 11-Apr-2006  yamt sync with head
 1.16.6.1 22-Apr-2006  simonb Sync with head.
 1.16.4.1 09-Sep-2006  rpaulo sync with head
 1.17.10.1 10-Dec-2006  yamt sync with head.
 1.17.8.1 12-Jan-2007  ad Sync with head.
 1.18.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.19.14.1 15-Aug-2007  skrll Sync with HEAD.
 1.19.12.1 07-Aug-2007  matt Sync with HEAD.
 1.19.10.2 16-Oct-2007  garbled Sync with HEAD
 1.19.10.1 03-Oct-2007  garbled Sync with HEAD
 1.19.2.2 09-Oct-2007  ad Sync with head.
 1.19.2.1 19-Aug-2007  ad - Back out the biodone() changes.
- Eliminate B_ERROR (from HEAD).
 1.20.8.1 14-Oct-2007  yamt sync with head.
 1.20.6.3 23-Mar-2008  matt sync with HEAD
 1.20.6.2 09-Jan-2008  matt sync with HEAD
 1.20.6.1 06-Nov-2007  matt sync with HEAD
 1.20.4.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.8.1 02-Jan-2008  bouyer Sync with HEAD
 1.22.4.1 31-Dec-2007  ad Make compile with new buffer cache locking scheme.

XXX This should be largely MI, please do not make another clone of disksubr.c.
 1.22.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.23.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.23.2.1 24-Mar-2008  keiichi sync with head.
 1.24.48.1 23-Jun-2013  tls resync from head
 1.24.38.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.25.34.1 10-Jun-2019  christos Sync with HEAD
 1.11 21-Nov-2020  thorpej malloc(9) -> kmem(9)
 1.10 10-Nov-2019  chs branches: 1.10.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.9 06-Jun-2018  maya branches: 1.9.2;
Remove duplicate ;
 1.8 20-Jan-2018  skrll branches: 1.8.2;
Switch cobalt to common bus_space.

Tested on raq 2
 1.7 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.6 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
(XXX generic kernels on raq2 die after interrupts are enabled but gxemul
works fine).
 1.5 20-Dec-2010  matt branches: 1.5.2; 1.5.4;
Move counting of faults, traps, intrs, soft[intr]s, syscalls, and nswtch
from uvmexp to per-cpu cpu_data and move them to 64bits. Remove unneeded
includes of <uvm/uvm_extern.h> and/or <uvm/uvm.h>.
 1.4 14-Dec-2009  matt branches: 1.4.4;
Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.3 14-May-2008  tsutsui branches: 1.3.16;
Normalize my licenses.
 1.2 28-Apr-2008  martin branches: 1.2.2;
Remove clause 3 and 4 from TNF licenses
 1.1 22-Mar-2008  tsutsui branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
Reorganize interrupt handling on cobalt and allow multiple interrupts on
each icu irq to support multi function PCI devices in the Qube's PCI slot:

- split out interrupt stuff from machdep.c into new interrupt.c
- prepare struct *_intrhead to handle cpu and icu interrupts
- use LIST and malloc(9) to handle multiple interrupts per icu irq
(mostly taken from algor/pci/pcib.c and evbmips/malta/pci/pcib.c)
- move evcnt(9) stuff into *_intrhead from cobalt_intrhand
(i.e. make it per interrupt rather than per handler)
- in pci_intr_map(9) handle CPU interrupt separately and add a sanity check
- fixup interrupt lines for devices on the PCI slot in pci_conf_interrupt(9)
- move some device address definitions into <machine/cpu.h> and
remove <machine/leds.h>
- misc cosmetics

No objection on port-cobalt for three weeks.
 1.1.8.2 11-Mar-2010  yamt sync with head
 1.1.8.1 16-May-2008  yamt sync with head.
 1.1.6.1 18-May-2008  yamt sync with head.
 1.1.4.3 02-Jun-2008  mjf Sync with HEAD.
 1.1.4.2 03-Apr-2008  mjf Sync with HEAD.
 1.1.4.1 22-Mar-2008  mjf file interrupt.c was added on branch mjf-devfs2 on 2008-04-03 12:42:13 +0000
 1.1.2.2 24-Mar-2008  yamt sync with head.
 1.1.2.1 22-Mar-2008  yamt file interrupt.c was added on branch yamt-lazymbuf on 2008-03-24 09:38:38 +0000
 1.2.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.3.16.2 28-Feb-2010  matt Adapt to new common interrupts.
Enable cobalt64
 1.3.16.1 05-Feb-2010  matt Change to deal with new method of invoking softints. Remove mips/softintr.c
from config files. Fix SYMTAB_SPACE for WGT62V43
 1.4.4.1 05-Mar-2011  rmind sync with head
 1.5.4.1 05-Mar-2011  bouyer Sync with HEAD
 1.5.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.8.2.1 25-Jun-2018  pgoyette Sync with HEAD
 1.9.2.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.10.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.6 11-Dec-2005  christos merge ktrace-lwp.
 1.5 31-May-2005  chs remove vestigal {,e}intr{names,cnt} symbols now that vmstat doesn't need them.
 1.4 12-Sep-2003  tsutsui Use common mips generic software interrupt routines.
 1.3 31-Mar-2000  soren branches: 1.3.6; 1.3.30;
Some cleanups.
 1.2 22-Mar-2000  soren Note that this is just for compatibility.
 1.1 19-Mar-2000  soren NetBSD/cobalt. Work-in-progress.
 1.3.30.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.3.30.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.30.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.30.1 03-Aug-2004  skrll 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 31-Mar-2000  bouyer file locore_machdep.S was added on branch thorpej_scsipi on 2000-11-20 20:07:00 +0000
 1.124 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.123 23-May-2022  andvar s/boundries/boundaries/, s/itterate/iterate/ and few more typos.
 1.122 06-Feb-2019  mrg compare pointers with NULL not nul.
 1.121 20-Jan-2018  skrll branches: 1.121.4;
Switch cobalt to common bus_space.

Tested on raq 2
 1.120 06-Nov-2017  christos Cleanup and clarify the ELFSIZE mess:

We now have 2 variables automatically set in elf_machdep.h:

ARCH_ELFSIZE: the size for userland binaries
KERN_ELFSIZE: the size for the kernel binaries

DB_ELFSIZE has been deleted and KERN_ELFSIZE should have always the
same values DB_ELFSIZE used to have.

In sys/exec_elf.h, if ELFSIZE is not set, it is set to KERN_ELFSIZE
for the kernel and ARCH_ELFSIZE for userland. These defaults should
eliminate the need for most manual ELFSIZE setting.
 1.119 22-Dec-2016  cherry switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.118 27-Jul-2016  skrll Fix RB_KDB by calling the debugger entry points after pmap_bootstrap, etc
 1.117 29-Jun-2015  matt branches: 1.117.2;
use cpu_startup_common
 1.116 03-Apr-2014  joerg branches: 1.116.6;
GC nsym
 1.115 24-Mar-2014  christos use cpu_{g,s}etmodel
 1.114 28-Jul-2012  matt branches: 1.114.2; 1.114.4;
Fix -fno-common fallout.
 1.113 28-Jul-2012  matt Remove declartions of physmem
 1.112 09-Jul-2011  matt branches: 1.112.2;
Cleanup kernel files to use sys variants for bus.h, cpu.h, and intr.h
Use <mips/..> for db_machdep.h and psl.h
 1.111 20-Feb-2011  tsutsui Remove leftover debug stuff.
 1.110 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
(XXX generic kernels on raq2 die after interrupts are enabled but gxemul
works fine).
 1.109 08-Feb-2010  joerg branches: 1.109.2; 1.109.4; 1.109.6;
Remove separate mb_map. The nmbclusters is computed at boot time based
on the amount of physical memory and limited by NMBCLUSTERS if present.
Architectures without direct mapping also limit it based on the kmem_map
size, which is used as backing store. On i386 and ARM, the maximum KVA
used for mbuf clusters is limited to 64MB by default.

The old default limits and limits based on GATEWAY have been removed.
key_registered_sb_max is hard-wired to a value derived from 2048
clusters.
 1.108 18-Dec-2009  matt branches: 1.108.2;
Cleanup some messages.
Change arguments to sign extend properly.
GENERIC64 now gets to boot prompt in gxemul.
 1.107 17-Dec-2009  matt Enable mips64 support for cobalt.
 1.106 16-Dec-2009  matt Make cobalt build again.
 1.105 14-Dec-2009  matt Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.104 27-Nov-2009  rmind - 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.103 26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.102 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.101 30-Nov-2008  martin branches: 1.101.4;
As discussed on tech-kern: mutex_init is too heavyweight for early bootstrap
phases, so move the initialization of the ksyms mutex back into main via
a function called ksyms_init. Rename the existing (but quite different)
ksyms_init* variations into ksyms_addsyms_elf() and ksyms_addsyms_explicit()
and adapt machdep code accordingly.
 1.100 12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.99 11-Nov-2008  dyoung 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.98 02-Jul-2008  ad branches: 1.98.2; 1.98.4; 1.98.10;
Replce exec_map with a pool. Proposed on tech-kern@, reviewed by chs@.
 1.97 26-May-2008  tsutsui branches: 1.97.2;
Remove all initialization of obsolete ci_divisor_recip in
mips struct cpu_info and related macroes.
The member was prepared for a hack in MD microtime(9) implementation
but it has been superseded by MI timecounter(9).
 1.96 14-May-2008  tsutsui Normalize my licenses.
 1.95 22-Mar-2008  tsutsui branches: 1.95.2; 1.95.4; 1.95.6;
Use C99 initializer.
 1.94 22-Mar-2008  tsutsui Reorganize interrupt handling on cobalt and allow multiple interrupts on
each icu irq to support multi function PCI devices in the Qube's PCI slot:

- split out interrupt stuff from machdep.c into new interrupt.c
- prepare struct *_intrhead to handle cpu and icu interrupts
- use LIST and malloc(9) to handle multiple interrupts per icu irq
(mostly taken from algor/pci/pcib.c and evbmips/malta/pci/pcib.c)
- move evcnt(9) stuff into *_intrhead from cobalt_intrhand
(i.e. make it per interrupt rather than per handler)
- in pci_intr_map(9) handle CPU interrupt separately and add a sanity check
- fixup interrupt lines for devices on the PCI slot in pci_conf_interrupt(9)
- move some device address definitions into <machine/cpu.h> and
remove <machine/leds.h>
- misc cosmetics

No objection on port-cobalt for three weeks.
 1.93 18-Mar-2008  tsutsui Fix botched spl(9) bug I introduced back in 3.99.18 (rev 1.64):
Don't enable unhandled interrupts before all interrupts are processed.

Should fix "long download, network frozen" problems reported on
port-cobalt by several people.
 1.92 09-Jan-2008  wiz branches: 1.92.2; 1.92.6;
Fix typo in macro name and comments.
 1.91 22-Dec-2007  tsutsui In icu_intr_establish(), don't panic if the specified irq
is already in use and just return NULL instead.

Such situation could happen with devices which have
unconfigured PCI interrupt pins (because firmware
doesn't configure multiple function devices) and
each driver could handle the return value properly.
 1.90 03-Dec-2007  ad branches: 1.90.2; 1.90.6;
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.89 27-Oct-2007  tsutsui branches: 1.89.2;
Assume netboot if "nfsroot=/path" is specified in bootstring.
 1.88 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.87 10-Aug-2007  tsutsui branches: 1.87.2; 1.87.6;
More style nits.
 1.86 10-Aug-2007  tsutsui Some style nits.
 1.85 10-Aug-2007  tsutsui Lookup boothowto flags in bootinfo.
 1.84 03-Jul-2007  tsutsui branches: 1.84.4; 1.84.8;
Don't clear BSS even if ksyms(4) is not configured.
 1.83 27-May-2007  tsutsui - Don't clear BSS in mach_init() if a kernel is loaded
by our native bootloader.
- Restore lwp0.l_cpu (which is required for curcpu()) and
cpu_info_store.ci_curlwp after clearing BSS in case
a kernel is loaded by the firmware directly since these
values are in BSS and initilized before mach_init() is called.
(actually they are restored in mips_machdep.c:mips_vector_init()
but we use curcpu() earlier than that point)

Fixes silent hang right after boot on cobalt.
 1.82 17-May-2007  yamt merge yamt-idlelwp branch. asked by core@. some ports still needs work.

from doc/BRANCHES:

idle lwp, and some changes depending on it.

1. separate context switching and thread scheduling.
(cf. gmcgarry_ctxsw)
2. implement idle lwp.
3. clean up related MD/MI interfaces.
4. make scheduler(s) modular.
 1.81 17-Mar-2007  tsutsui branches: 1.81.4;
Use char * where pointer arithmetics are required.
 1.80 05-Mar-2007  dogcow branches: 1.80.2; 1.80.4; 1.80.6;
semimechanically convert 'void foo' -> 'void *foo', as part of the continuing
caddr_t fallout.
 1.79 04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.78 22-Feb-2007  thorpej TRUE -> true, FALSE -> false
 1.77 16-Feb-2007  tsutsui branches: 1.77.2;
Remove hacks for now removed spllowersoftclock(9).
 1.76 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.75 16-Sep-2006  tsutsui branches: 1.75.2; 1.75.4; 1.75.6;
Tweak status value in struct clockframe before calling mips3_clockintr()
so that spllowersoftclock(9) in hardclock(9) will be handled properly.
 1.74 10-Sep-2006  tsutsui Change mips3_clockintr() to take (struct clockframe *) rather than
pc and status since it calls hardclock(9) anyway.
OK'ed by gdamore on port-mips.
 1.73 10-Sep-2006  tsutsui Remove or comment out now unused code after MI mips3_clockintr migration.
 1.72 07-Sep-2006  gdamore branches: 1.72.2;
Convert to common mips3_cp0_counter clock.
Convert to timecounters.

From Rivo Nurges (rix at estpak dot ee). ok soren@, tested by simon@.
Note that this means we aren't using the gt clock, and maybe we should clean
that up a bit.
 1.71 18-Jul-2006  tsutsui - always enable options MIPS3_ENABLE_CLOCK_INTR so that spllowerclock(9)
works properly
(XXX: the real fix is to implement proper CLFK_BASEPRI())
- prepare an independent statclock(9) handler which use MIPS3 CPU internal
clock interrupt. Enabled by options ENABLE_INT5_STATCLOCK, but not enabled
by default.
 1.70 10-Jun-2006  tsutsui space nits.
 1.69 31-May-2006  tsutsui Remove unneeded #include headers.
 1.68 31-May-2006  tsutsui Use __predict_true() and __predict_false() in some critical handlers.
 1.67 31-May-2006  tsutsui Cleanup ICU (i8259 compatible PIC) interrupt handling code:
- move ICU interrupt stuff from pci/pcib.h to cobalt/machdep.c
because ICU should be initialized before pcib is attached
- initialize ICU more properly
- check interrupt types and set ELCR (edge/level control registers)
accordingly in icu_intr_establish()
- check requested IRQ line and call only a necessary hander in icu_intr()
- use specific EOI to ack interrupts rather than AEOI
- use macro defined in <dev/ic/i8259reg.h>
 1.66 21-Apr-2006  tsutsui branches: 1.66.2;
Fix an include path.
 1.65 21-Apr-2006  tsutsui Account interrupts by evcnt(9).
 1.64 21-Apr-2006  tsutsui Handle interrupts in priority order.
 1.63 21-Apr-2006  tsutsui Make a local variable static.
 1.62 21-Apr-2006  tsutsui - initialize cpuspeed and curcpu() according to cobalt model id
- switch to cpu cyclecounter based delay(9), taken from evbmips
 1.61 21-Apr-2006  tsutsui - add prefix ih_ to cookie_type member in struct cobalt_intrhand
- clear the cookie type in disestablish functions
- some cosmetics
 1.60 15-Apr-2006  tsutsui Identify cobalt models at boot and store it to a variable cobalt_id.
Tested on and Qube2 by several people on port-cobalt and my RaQ2.
 1.59 09-Apr-2006  tsutsui Replace some magic numbers with macro.
 1.58 09-Apr-2006  tsutsui Remove declaration for cpu_model[] since it's in <sys/systm.h>.
 1.57 05-Apr-2006  tsutsui - ANSIfy
- KNF
- u_intXX_t -> uintXX_t
 1.56 24-Dec-2005  perry branches: 1.56.4; 1.56.6; 1.56.8; 1.56.10; 1.56.12;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.55 11-Dec-2005  christos merge ktrace-lwp.
 1.54 04-Jun-2005  tsutsui branches: 1.54.2;
Add const and fix for -Wshadow.
 1.53 25-Apr-2005  lukem Move the MI printing of `copyright' to the MD cpu_startup() code
where the printing of `version' is already performed.
This has the benefit of allowing the copyright to be available
via dmesg(8) on platforms which need the `msgbuf' to be setup
in cpu_startup() before printed output is remembered.
 1.52 28-Aug-2004  tsutsui branches: 1.52.4;
- Reset timer0 of GT64111 in gt_attach() and start it
in cpu_initclocks(9) via a callback function.
Fixes the "hardclock(9) is called before cpu_initclocks(9)" problem
reported by KIYOHARA Takashi on port-cobalt.
- Use bus_space(9) functions to access GT64111 registers and
add register definitions for GT64111 in gtreg.h.
(XXX this could be in sys/dev/marvell?)
- Move microtime(9) from machdep.c to clock.c, and read timer0 register
via a callback function. Also change microtime(9) like other ports
to guarantee that the time will be greater than the value obtained
by a previous call.
 1.51 02-Apr-2004  tsutsui Tidy up messages for total/avail memory.

before:
---
NetBSD 2.0B (COLT) #67: Sat Apr 3 06:29:50 JST 2004
tsutsui@mirage:/usr/src/sys/arch/cobalt/compile/COLT
256 MB memory, 247 MB freemainbus0 (root)
com0 at mainbus0 addr 0x1c800000 level 3: st16650a, working fifo
com0: console
---
after:
---
NetBSD 2.0B (COLT) #68: Sat Apr 3 07:54:17 JST 2004
tsutsui@mirage:/usr/src/sys/arch/cobalt/compile/COLT
total memory = 256 MB
avail memory = 247 MB
mainbus0 (root)
com0 at mainbus0 addr 0x1c800000 level 3: st16650a, working fifo
com0: console
---
 1.50 07-Jan-2004  cdi branches: 1.50.2;
Pass some info from the boot loader to the kernel:

- Kernel image name
- Symbol table
- A flag indicating console presence (could be clobbered if not passed)

Add _rtt() entry to the boot loader code.
 1.49 30-Dec-2003  pk Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes). It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms. Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.
 1.48 26-Sep-2003  simonb Cast through (void *) to appease gcc3.
XXX1 - why does this "type-punned pointer" warning only affect little-
endian MIPS and not big-endian MIPS?!
XXX2 - too much duplicated code.
 1.47 12-Sep-2003  tsutsui Use common mips generic software interrupt routines.
 1.46 12-Sep-2003  tsutsui Remove a redundant function declaration.
 1.45 12-Sep-2003  tsutsui TAB/space cleanup.
 1.44 15-Jul-2003  lukem __KERNEL_RCSID()
 1.43 26-Apr-2003  ragge branches: 1.43.2;
Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
 1.42 02-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.41 17-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.40 25-Sep-2002  thorpej Don't include <sys/map.h>.
 1.39 25-Aug-2002  thorpej Make nbuf, nswbuf, and bufpages unsigned. Make all operations on these
variables unsigned, and update places where their values are printed.
 1.38 09-Aug-2002  gmcgarry Garbage-collect cpu_sysctl(). From Shin'ichiro TAYA in PR-17888.
 1.37 13-Jan-2002  augustss branches: 1.37.8;
Implement pci_intr_disestablish().
 1.36 23-Nov-2001  soren Make sure to hook into DDB/KGDB if so requested.
 1.35 10-Sep-2001  chris branches: 1.35.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.34 22-Jul-2001  wiz branches: 1.34.2;
bzero -> memset
 1.33 17-Jun-2001  cyber branches: 1.33.2;
Change the way boot strings are handled and the way the root device
is determined. This allows multiple internal disks in a raq2 to work.
 1.32 02-Jun-2001  chs replace vm_map{,_entry}_t with struct vm_map{,_entry} *.
 1.31 24-Apr-2001  thorpej Do the first allocsys() pass (the pass that computes sizes) before
calling pmap_bootstrap(); pmap_bootstrap() needs some of the size
information computed by allocsys().
 1.30 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.29 23-Apr-2001  thorpej Call pmap_bootstrap() before calling uvm_pageboot_alloc(), so that
the kernel virtual address space bounds will be set up.
 1.28 22-Apr-2001  thorpej Use uvm_pageboot_alloc() for early memory allocation, rather than
calling pmap_steal_memory() directly. On these platforms, since
uvm_pageboot_alloc() is a wrapper around pmap_steal_memory(), there
is no functional change. This is merely for API consistency.
 1.27 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.26 05-Feb-2001  tsutsui branches: 1.26.2;
db_machine_init() is no longer needed.
From Shigeji Ishikawa <psybear@ogre.rim.or.jp> in port-cobalt/12123.
 1.25 15-Jan-2001  thorpej Make softclock a generic soft interrupt of the API is available,
adding the requisite void * argument to softclock().
 1.24 27-Nov-2000  soren Consistently use pmap_steal_memory() to allocate USPACE.
 1.23 05-Oct-2000  cgd branches: 1.23.2;
clean up and consistency for CP0 Count, Compare, Wired, and Config
access function names and prototypes.
 1.22 24-Sep-2000  jdolecek 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.21 13-Sep-2000  thorpej 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.20 14-Jul-2000  jeffs Use cpu_intr() definition from mips/cpu.h instead of local one.
 1.19 27-Jun-2000  soren Don't include <vm/vm.h>.
 1.18 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.17 14-Jun-2000  soren branches: 1.17.2;
Reenable hard interrupts before processing soft interrupts.
 1.16 27-May-2000  soren branches: 1.16.2;
Remove stacktrace() prototype.
 1.15 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.14 29-Apr-2000  soren ECOFF hook is in arch/mips.
 1.13 28-Apr-2000  soren Add microtime().
 1.12 28-Apr-2000  soren Adapt to cpu_intr() change.
 1.11 12-Apr-2000  nisimura Backout the previous change; safepri is an evil idea after all.
 1.10 12-Apr-2000  nisimura MIPS1_PSL_LOWIPL -> PSL_LOWPSL. No functional change is expected.
 1.9 09-Apr-2000  soren Be a little more careful parsing boot parameters.
 1.8 31-Mar-2000  soren Typo.
 1.7 31-Mar-2000  soren Some cleanups.
 1.6 27-Mar-2000  nisimura - Nuke unnecessary cast.
- Change comments on cpu_startup() so as what it does (XXX found mostly
common across ports).
- Retain UNIX heritage of /* Good {morning,afternoon,evening,night} */.
 1.5 27-Mar-2000  nisimura Remove unnecessary bzero() op for proc0's USPACE as pmap_steal_memory()
returns a nullified area.
 1.4 25-Mar-2000  nisimura Make sure proc0 PCB has spl0 condition in CP0 status register field.

cpu_fork() mistakenly created processes forked by proc0, including
kthreads, in splhigh condition, because [1] proc0's PCB was zero
cleared during initialization, and [2] value 0 in status register
field made processes to have splhigh condition when CPU tick was
assigned for them. This mostly doesn't matter as forked processes
dive immediately into user mode through proc_trampoline code path,
however, kthreads never do that and remain in splhigh.

Reported by Ethan Solomita <ethan@geocast.com>.
 1.3 21-Mar-2000  soren Blocking soft interrupts can be useful..
 1.2 21-Mar-2000  soren Extend the evil interrupt kludge to the second ethernet.
 1.1 19-Mar-2000  soren NetBSD/cobalt. Work-in-progress.
 1.16.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.17.2.2 17-Jun-2001  cyber Pullup from -current
autoconf.c 1.7 -> 1.8
machdep.c 1.32 -> 1.33
reviewed by soren
 1.17.2.1 19-Jul-2000  jeffs Pull up cpu_intr() prototype + platform dependent machdeps.
(approved by thorepj).
 1.23.2.7 23-Apr-2001  bouyer Sync with HEAD.
 1.23.2.6 27-Mar-2001  bouyer Sync with HEAD.
 1.23.2.5 11-Feb-2001  bouyer Sync with HEAD.
 1.23.2.4 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.23.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.23.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.23.2.1 05-Oct-2000  bouyer file machdep.c was added on branch thorpej_scsipi on 2000-11-20 20:07:00 +0000
 1.26.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.26.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.33.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.33.2.5 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.33.2.4 11-Feb-2002  jdolecek Sync w/ -current.
 1.33.2.3 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.33.2.2 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.33.2.1 03-Aug-2001  lukem update to -current
 1.34.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.35.4.9 18-Oct-2002  nathanw Catch up to -current.
 1.35.4.8 27-Aug-2002  nathanw Catch up to -current.
 1.35.4.7 13-Aug-2002  nathanw Catch up to -current.
 1.35.4.6 02-Jul-2002  nathanw LWPify. cobalt kernel builds (compile-tested only).
 1.35.4.5 24-Jun-2002  nathanw Curproc->curlwp renaming.

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

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.35.4.4 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.35.4.3 28-Feb-2002  nathanw Catch up to -current.
 1.35.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.35.4.1 10-Sep-2001  nathanw file machdep.c was added on branch nathanw_sa on 2002-01-08 00:23:59 +0000
 1.37.8.1 30-Aug-2002  gehenna catch up with -current.
 1.43.2.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.43.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.43.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.43.2.2 03-Sep-2004  skrll Sync with HEAD
 1.43.2.1 03-Aug-2004  skrll Sync with HEAD
 1.50.2.1 11-Apr-2004  jmc Pullup rev 1.51 (requested by tsutsui in ticket #120)

Tidy up messages for total/avail memory.
 1.52.4.1 29-Apr-2005  kent sync with -current
 1.54.2.8 24-Mar-2008  yamt sync with head.
 1.54.2.7 21-Jan-2008  yamt sync with head
 1.54.2.6 07-Dec-2007  yamt sync with head
 1.54.2.5 15-Nov-2007  yamt sync with head.
 1.54.2.4 03-Sep-2007  yamt sync with head.
 1.54.2.3 26-Feb-2007  yamt sync with head.
 1.54.2.2 30-Dec-2006  yamt sync with head.
 1.54.2.1 21-Jun-2006  yamt sync with head.
 1.56.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.56.10.2 11-May-2006  elad sync with head
 1.56.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.56.8.5 14-Sep-2006  yamt sync with head.
 1.56.8.4 11-Aug-2006  yamt sync with head
 1.56.8.3 26-Jun-2006  yamt sync with head.
 1.56.8.2 24-May-2006  yamt sync with head.
 1.56.8.1 11-Apr-2006  yamt sync with head
 1.56.6.2 01-Jun-2006  kardel Sync with head.
 1.56.6.1 22-Apr-2006  simonb Sync with head.
 1.56.4.1 09-Sep-2006  rpaulo sync with head
 1.66.2.1 19-Jun-2006  chap Sync with head.
 1.72.2.2 12-Jan-2007  ad Sync with head.
 1.72.2.1 18-Nov-2006  ad Sync with head.
 1.75.6.3 03-Jun-2008  skrll Sync with netbsd-4.
 1.75.6.2 06-Jan-2008  wrstuden Catch up to netbsd-4.0 release.
 1.75.6.1 03-Sep-2007  wrstuden Sync w/ NetBSD-4-RC_1
 1.75.4.4 24-Mar-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1104):
sys/arch/cobalt/cobalt/machdep.c: revision 1.93 via patch
Fix botched spl(9) bug I introduced back in 3.99.18 (rev 1.64):
Don't enable unhandled interrupts before all interrupts are processed.
Should fix "long download, network frozen" problems reported on
port-cobalt by several people.
 1.75.4.3 02-Feb-2008  riz Pull up following revision(s) (requested by tsutsui in ticket #1026):
sys/arch/cobalt/cobalt/machdep.c: revision 1.91
In icu_intr_establish(), don't panic if the specified irq
is already in use and just return NULL instead.
Such situation could happen with devices which have
unconfigured PCI interrupt pins (because firmware
doesn't configure multiple function devices) and
each driver could handle the return value properly.
 1.75.4.2 04-Nov-2007  pavel branches: 1.75.4.2.4;
Pull up following revisions (requested by tsutsui in ticket #974):
sys/arch/cobalt/cobalt/autoconf.c: revision 1.25-1.26
sys/arch/cobalt/cobalt/machdep.c: revision 1.89
sys/arch/cobalt/stand/boot/Makefile: revision 1.12
sys/arch/cobalt/stand/boot/boot.c: revision 1.10
sys/arch/cobalt/stand/boot/boot.h: revision 1.6
sys/arch/cobalt/stand/boot/cache.c: revision 1.1-1.2
sys/arch/cobalt/stand/boot/clock.c: revision 1.2
sys/arch/cobalt/stand/boot/conf.c: revision 1.5
sys/arch/cobalt/stand/boot/devopen.c: revision 1.4
sys/arch/cobalt/stand/boot/nif_tlp.c: revision 1.1
sys/arch/cobalt/stand/boot/start.S: revision 1.6
sys/arch/cobalt/stand/boot/tlp.c: revision 1.1-1.3
sys/arch/cobalt/stand/boot/version: revision 1.6
sys/lib/libsa/dev_net.h: revision 1.5
Add an extern decl of try_bootp variable here since MD sources could set it.

In device_register(), check booted devices more properly:
- check "tlp" name on netboot
- use ata channel and drive numbers to check wd unit

Assume netboot if "nfsroot=/path" is specified in bootstring.

Use PCI bus/dev/function numbers rather than device unit
to check first tlp in device_register().

Add support for netboot via tlp0 with standalone tlp(4) driver
taken from arch/sandpoint/stand/netboot.
There are still some kludge but it just works on RaQ and RaQ2.

Fix my stupid bug in cache flush code and remove one kludge for it.

- use chaned mode for RX descs and allocate only one desc per each cacheline
to avoid possible race condition between CPU writeback vs DMA write
- remove unnecessary FS and LS bits from RxD->xd0
(sys/dev/ic/tulipvar.h sets them but maybe they are ignored?)
 1.75.4.1 28-Aug-2007  liamjfoy Pull up following revision(s) (requested by tsutsui in ticket #843):
sys/arch/cobalt/stand/boot/pciide.c: revision 1.6
sys/arch/cobalt/cobalt/machdep.c: revision 1.85
sys/arch/cobalt/stand/boot/com.c: revision 1.5
sys/arch/cobalt/include/bootinfo.h: revision 1.5
sys/arch/cobalt/stand/boot/boot.c: revision 1.6
sys/arch/cobalt/stand/boot/boot.h: revision 1.4
sys/arch/cobalt/stand/boot/boot.c: revision 1.7
sys/arch/cobalt/stand/boot/boot.c: revision 1.8
sys/arch/cobalt/stand/boot/wdvar.h: revision 1.7
sys/arch/cobalt/stand/boot/wd.c: revision 1.6
sys/arch/cobalt/stand/boot/wd.c: revision 1.7
sys/arch/cobalt/stand/boot/prf.c: revision 1.2
sys/arch/cobalt/stand/boot/devopen.c: revision 1.2
sys/arch/cobalt/stand/boot/bootinfo.c: revision 1.3
sys/arch/cobalt/stand/boot/bootinfo.h: revision 1.3
sys/arch/cobalt/stand/boot/wdc.c: revision 1.8
sys/arch/cobalt/stand/boot/version: revision 1.3
sys/arch/cobalt/stand/boot/version: revision 1.4
sys/arch/cobalt/stand/boot/cons.c: revision 1.4
sys/arch/cobalt/stand/boot/ns16550.c: revision 1.2
sys/arch/cobalt/stand/boot/tgets.c: revision 1.3
sys/arch/cobalt/stand/boot/ns16550.h: revision 1.2
Add support for booting off raidframe RAID1 mirrors.

Misc KNF and cosmetics.

Parse boot_flags specified on boot prompt and
pass decoded boothowto value to kernel via bootinfo.

Lookup boothowto flags in bootinfo.

Parse "root=/dev/hdXN" args passed from the firmware and
set default boot device accordingly.
Requested and okay'ed by cyber@.
 1.75.4.2.4.2 03-Sep-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1104):
sys/arch/cobalt/cobalt/machdep.c: revision 1.93 via patch
Fix botched spl(9) bug I introduced back in 3.99.18 (rev 1.64):
Don't enable unhandled interrupts before all interrupts are processed.
Should fix "long download, network frozen" problems reported on
port-cobalt by several people.
 1.75.4.2.4.1 02-Feb-2008  riz Pull up following revision(s) (requested by tsutsui in ticket #1026):
sys/arch/cobalt/cobalt/machdep.c: revision 1.91
In icu_intr_establish(), don't panic if the specified irq
is already in use and just return NULL instead.
Such situation could happen with devices which have
unconfigured PCI interrupt pins (because firmware
doesn't configure multiple function devices) and
each driver could handle the return value properly.
 1.75.2.1 23-Sep-2006  yamt implement splraiseipl for cobalt.
 1.77.2.4 18-Apr-2007  ad - Further adaptations to MIPS for the yamt-idlelwp branch.
- Make curlwp a register variable on MIPS.
 1.77.2.3 24-Mar-2007  yamt sync with head.
 1.77.2.2 12-Mar-2007  rmind Sync with HEAD.
 1.77.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.80.6.1 18-Mar-2007  reinoud First attempt to bring branch in sync with HEAD
 1.80.4.1 11-Jul-2007  mjf Sync with head.
 1.80.2.7 03-Dec-2007  ad Sync with HEAD.
 1.80.2.6 03-Dec-2007  ad Sync with HEAD.
 1.80.2.5 20-Aug-2007  ad Sync with HEAD.
 1.80.2.4 15-Jul-2007  ad Sync with head.
 1.80.2.3 09-Jun-2007  ad Sync with head.
 1.80.2.2 27-May-2007  ad Sync with head.
 1.80.2.1 10-Apr-2007  ad Sync with head.
 1.81.4.3 03-Oct-2007  garbled Sync with HEAD
 1.81.4.2 26-Jun-2007  garbled Sync with HEAD.
 1.81.4.1 22-May-2007  matt Update to HEAD.
 1.84.8.3 09-Dec-2007  jmcneill Sync with HEAD.
 1.84.8.2 28-Oct-2007  joerg Sync with HEAD.
 1.84.8.1 16-Aug-2007  jmcneill Sync with HEAD.
 1.84.4.1 15-Aug-2007  skrll Sync with HEAD.
 1.87.6.1 13-Nov-2007  bouyer Sync with HEAD
 1.87.2.3 23-Mar-2008  matt sync with HEAD
 1.87.2.2 09-Jan-2008  matt sync with HEAD
 1.87.2.1 06-Nov-2007  matt sync with HEAD
 1.89.2.3 18-Feb-2008  mjf Sync with HEAD.
 1.89.2.2 27-Dec-2007  mjf Sync with HEAD.
 1.89.2.1 08-Dec-2007  mjf Sync with HEAD.
 1.90.6.2 10-Jan-2008  bouyer Sync with HEAD
 1.90.6.1 02-Jan-2008  bouyer Sync with HEAD
 1.90.2.1 26-Dec-2007  ad Sync with head.
 1.92.6.4 17-Jan-2009  mjf Sync with HEAD.
 1.92.6.3 02-Jul-2008  mjf Sync with HEAD.
 1.92.6.2 02-Jun-2008  mjf Sync with HEAD.
 1.92.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.92.2.1 24-Mar-2008  keiichi sync with head.
 1.95.6.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.95.6.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.95.4.3 11-Mar-2010  yamt sync with head
 1.95.4.2 04-May-2009  yamt sync with head.
 1.95.4.1 16-May-2008  yamt sync with head.
 1.95.2.2 04-Jun-2008  yamt sync with head
 1.95.2.1 18-May-2008  yamt sync with head.
 1.97.2.1 03-Jul-2008  simonb Sync with head.
 1.98.10.6 14-Feb-2012  matt mem_cluster_cnt on mips is now a u_int.
 1.98.10.5 24-Dec-2010  matt mips_vector_init needs to be called sooner so that the spl routine are
instantiated.
 1.98.10.4 21-Mar-2010  cliff mips_vector_init now takes an argument to specify splsw.
NULL specifies use the default 'std_splsw'
 1.98.10.3 28-Feb-2010  matt Adapt to new common interrupts.
Enable cobalt64
 1.98.10.2 01-Feb-2010  matt fix fallout from frame/trapframe merger.
 1.98.10.1 07-Sep-2009  matt Deal with pcb_context being a label_t
 1.98.4.2 03-Mar-2009  skrll Sync with HEAD.
 1.98.4.1 19-Jan-2009  skrll Sync with HEAD.
 1.98.2.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.101.4.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.108.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.109.6.1 05-Mar-2011  bouyer Sync with HEAD
 1.109.4.1 06-Jun-2011  jruoho Sync with HEAD.
 1.109.2.1 05-Mar-2011  rmind sync with head
 1.112.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.112.2.1 30-Oct-2012  yamt sync with head
 1.114.4.1 18-May-2014  rmind sync with head
 1.114.2.2 03-Dec-2017  jdolecek update from HEAD
 1.114.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.116.6.3 05-Feb-2017  skrll Sync with HEAD
 1.116.6.2 05-Oct-2016  skrll Sync with HEAD
 1.116.6.1 22-Sep-2015  skrll Sync with HEAD
 1.117.2.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.117.2.1 06-Aug-2016  pgoyette Sync with HEAD
 1.121.4.1 10-Jun-2019  christos Sync with HEAD
 1.22 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.21 24-Apr-2021  thorpej branches: 1.21.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.20 20-Jan-2018  skrll branches: 1.20.18;
Switch cobalt to common bus_space.

Tested on raq 2
 1.19 29-Jul-2014  skrll Convert cobalt to generic mips bus_dma.
 1.18 09-May-2008  tsutsui branches: 1.18.42; 1.18.58;
Split softc/device_t, with misc related changes.
 1.17 27-Mar-2008  tsutsui branches: 1.17.2; 1.17.4; 1.17.6;
Add kernel support for optional Z85C30 serial console on Cobalt Qube 2700.
There is some interrupt related issue (in MI z8530tty driver?) on heavy load,
but useful enough for debugging.
 1.16 18-Jul-2006  tsutsui branches: 1.16.58;
Remove obsolete comment.
 1.15 06-Apr-2006  tsutsui Use bus_space_map(9) to get bus_space_handle_t on each driver
and remove bogus bus_space_handle_t member from mainbus_attach_args.
 1.14 05-Apr-2006  tsutsui - ANSIfy
- KNF
- u_intXX_t -> uintXX_t
 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 26-Aug-2005  drochner s/locdesc_t/int/g
 1.11 30-Jun-2005  drochner branches: 1.11.2;
adaptions to config_search() change, and minor autoconf fixes, mostly from Havard Eidnes
 1.10 05-Jun-2005  tsutsui Make sure that struct mainbus_attach_args is actually allocated.

With the previous autoconf.c and mainbus.c, the memory in rodata section
which stores "mainbus" strings (for the second arg in config_rootfound())
is used to fill mainbus_attach_args in mainbus_search(). Oh well...
 1.9 28-Aug-2004  tsutsui - Use bus_space(9) to access PCI configuration registers on GT64111.
- Remove unused pci stuff from mainbus.c.
 1.8 12-Sep-2003  tsutsui TAB/space cleanup.
 1.7 15-Jul-2003  lukem __KERNEL_RCSID()
 1.6 01-Jan-2003  thorpej branches: 1.6.2;
Use aprint_normal() for cfprint routines.
 1.5 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.4 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.3 27-Sep-2002  thorpej Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
 1.2 31-Mar-2000  soren branches: 1.2.6; 1.2.10; 1.2.14;
Some cleanups.
 1.1 19-Mar-2000  soren NetBSD/cobalt. Work-in-progress.
 1.2.14.2 03-Jan-2003  thorpej Sync with HEAD.
 1.2.14.1 18-Oct-2002  nathanw Catch up to -current.
 1.2.10.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.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 31-Mar-2000  bouyer file mainbus.c was added on branch thorpej_scsipi on 2000-11-20 20:07:01 +0000
 1.6.2.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.6.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.6.2.2 03-Sep-2004  skrll Sync with HEAD
 1.6.2.1 03-Aug-2004  skrll Sync with HEAD
 1.11.2.2 30-Dec-2006  yamt sync with head.
 1.11.2.1 21-Jun-2006  yamt sync with head.
 1.13.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.13.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.13.8.2 11-Aug-2006  yamt sync with head
 1.13.8.1 11-Apr-2006  yamt sync with head
 1.13.6.1 22-Apr-2006  simonb Sync with head.
 1.13.4.1 09-Sep-2006  rpaulo sync with head
 1.16.58.2 02-Jun-2008  mjf Sync with HEAD.
 1.16.58.1 03-Apr-2008  mjf Sync with HEAD.
 1.17.6.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.17.4.1 16-May-2008  yamt sync with head.
 1.17.2.1 18-May-2008  yamt sync with head.
 1.18.58.1 10-Aug-2014  tls Rebase.
 1.18.42.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.20.18.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.20.18.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.20.18.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.20.18.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.20.18.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.20.18.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.21.8.1 03-Aug-2021  thorpej Adapt to CFARGS().
 1.2 21-Nov-2000  soren Same as sys/dev/md_root.c.
 1.1 19-Mar-2000  soren branches: 1.1.6;
NetBSD/cobalt. Work-in-progress.
 1.1.6.3 22-Nov-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 19-Mar-2000  bouyer file md_root.c was added on branch thorpej_scsipi on 2000-11-20 20:07:01 +0000
 1.3 13-Mar-2002  simonb All the mips ports had an identical procfs_machdep.c, so use a common
file under arch/mips/mips.
 1.2 18-Jan-2001  tv branches: 1.2.4; 1.2.8;
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:27 +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 16-Mar-2002  jdolecek Catch up with -current.

RSS XML Feed