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

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

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

Per lengthy discussion with Andrew Brown.
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 07-Jan-2003  thorpej Sync with HEAD.
 1.1.8.1 28-May-2001  thorpej file Makefile was added on branch nathanw_sa on 2003-01-07 20:47:12 +0000
 1.2.114.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.2.108.1 04-May-2009  yamt sync with head.
 1.2.104.1 17-Jan-2009  mjf Sync with HEAD.
 1.3.22.1 06-Jun-2011  jruoho Sync with HEAD.
 1.3.16.1 21-Apr-2011  rmind sync with head
 1.2 26-Aug-2016  skrll Adjust evbmips_iointr to pass a clockframe pointer and use it for
pwmclock @ voyager.

Suggested by matt@

Hi macallan!
 1.1 09-Jul-2011  matt branches: 1.1.12; 1.1.30;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.1.30.1 05-Oct-2016  skrll Sync with HEAD
 1.1.12.1 03-Dec-2017  jdolecek update from HEAD
 1.7 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.6 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.5 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4 11-Dec-2005  christos branches: 1.4.74; 1.4.76; 1.4.78;
merge ktrace-lwp.
 1.3 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.2 14-Jun-2001  thorpej branches: 1.2.8; 1.2.24;
When the old PCI address map is in use, disable I/O space. Also disable
I/O space on PBC revs < B2.
 1.1 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.2.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.24.1 03-Aug-2004  skrll Sync with HEAD
 1.2.8.2 14-Jun-2001  thorpej When the old PCI address map is in use, disable I/O space. Also disable
I/O space on PBC revs < B2.
 1.2.8.1 14-Jun-2001  thorpej file algor_p4032_bus_io.c was added on branch nathanw_sa on 2001-06-14 18:52:27 +0000
 1.4.78.1 16-May-2008  yamt sync with head.
 1.4.76.1 18-May-2008  yamt sync with head.
 1.4.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.6 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.5 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 11-Dec-2005  christos branches: 1.3.74; 1.3.76; 1.3.78;
merge ktrace-lwp.
 1.2 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.1 01-Jun-2001  thorpej branches: 1.1.8; 1.1.24;
Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.1.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.8.2 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.1.8.1 01-Jun-2001  thorpej file algor_p4032_bus_locio.c was added on branch nathanw_sa on 2001-06-01 16:00:04 +0000
 1.3.78.1 16-May-2008  yamt sync with head.
 1.3.76.1 18-May-2008  yamt sync with head.
 1.3.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.6 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.5 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4 11-Dec-2005  christos branches: 1.4.74; 1.4.76; 1.4.78;
merge ktrace-lwp.
 1.3 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.2 14-Jun-2001  thorpej branches: 1.2.8; 1.2.24;
Read the PCI memory space base and the PCI DMA window base from the
V3 PBC, and use them in the bus mem tag and the bus dma tag on the
P-4032. This allows us to get much further when PMON has configured
the PBC using the old-style PCI address map.
 1.1 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.2.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.24.1 03-Aug-2004  skrll Sync with HEAD
 1.2.8.2 14-Jun-2001  thorpej Read the PCI memory space base and the PCI DMA window base from the
V3 PBC, and use them in the bus mem tag and the bus dma tag on the
P-4032. This allows us to get much further when PMON has configured
the PBC using the old-style PCI address map.
 1.2.8.1 14-Jun-2001  thorpej file algor_p4032_bus_mem.c was added on branch nathanw_sa on 2001-06-14 17:57:27 +0000
 1.4.78.1 16-May-2008  yamt sync with head.
 1.4.76.1 18-May-2008  yamt sync with head.
 1.4.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.8 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.7 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.6 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.5 11-Dec-2005  christos branches: 1.5.74; 1.5.76; 1.5.78;
merge ktrace-lwp.
 1.4 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.3 22-Jun-2001  thorpej branches: 1.3.8; 1.3.24;
Use the other DMA window (with prefetch enabled) on the P-4032
on-board Ethernet. Suggested by Nigel Stephens <nigel@algor.co.uk>.
 1.2 14-Jun-2001  thorpej Read the PCI memory space base and the PCI DMA window base from the
V3 PBC, and use them in the bus mem tag and the bus dma tag on the
P-4032. This allows us to get much further when PMON has configured
the PBC using the old-style PCI address map.
 1.1 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.3.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.24.1 03-Aug-2004  skrll Sync with HEAD
 1.3.8.2 22-Jun-2001  thorpej Use the other DMA window (with prefetch enabled) on the P-4032
on-board Ethernet. Suggested by Nigel Stephens <nigel@algor.co.uk>.
 1.3.8.1 22-Jun-2001  thorpej file algor_p4032_dma.c was added on branch nathanw_sa on 2001-06-22 05:57:27 +0000
 1.5.78.1 16-May-2008  yamt sync with head.
 1.5.76.1 18-May-2008  yamt sync with head.
 1.5.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.27 14-Nov-2020  thorpej malloc(9) -> kmem(9)
 1.26 10-Nov-2019  chs branches: 1.26.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.25 29-Mar-2014  christos branches: 1.25.30;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.24 09-Jul-2011  matt branches: 1.24.2; 1.24.12; 1.24.16;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.23 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.22 07-Apr-2011  dyoung Fix more const pci_attach_args fallout.
 1.21 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.20 26-May-2008  tsutsui branches: 1.20.16; 1.20.20; 1.20.26; 1.20.28;
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.19 28-Apr-2008  martin branches: 1.19.2;
Remove clause 3 and 4 from TNF licenses
 1.18 03-Feb-2008  tsutsui branches: 1.18.6; 1.18.8; 1.18.10;
Remove an unnecessary initializer.
 1.17 10-Jan-2008  tsutsui Cycles per second values read from the CP0 counter should be doubled
on calculating CPU frequency in CPU_MIPS_DOUBLE_COUNT case,
which is always assumed on this port.
 1.16 09-Jan-2008  wiz Fix typo in macro name and comments.
 1.15 09-Jan-2008  tsutsui Fix another botch on migration to MI mips3_clock.c for algor in 2006:
- in algor_p????_cal_timer() functions, initialize ci_divisor_delay
and ci_cycles_per_hz values in curcpu() for MI mips3_clock.c:mips3_delay()
rather than obsolete and homegrown delay_divisor
- remove old _delay() stuff from locore_machdep.S
- make MI mips3_delay() work even before frequency values in curcpu()
are initialized

Now NetBSD/algor P5064 kernel works on gxemul.

While here, add a hack for emulators:
- ignore a measured CPU frequency if the value looks unlikely

Pullup request for netbsd-4 will be sent later.
 1.14 03-Dec-2007  ad branches: 1.14.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.13 21-Dec-2006  yamt branches: 1.13.6; 1.13.22; 1.13.24; 1.13.30;
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.12 05-Sep-2006  gdamore branches: 1.12.2; 1.12.4; 1.12.6; 1.12.8;
Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.11 15-Apr-2006  simonb Switch Algor port to MIPS generic soft-interrupts implementation.
XXX: Compile tested only.
 1.10 24-Dec-2005  perry branches: 1.10.4; 1.10.6; 1.10.8; 1.10.10; 1.10.12;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.9 11-Dec-2005  christos merge ktrace-lwp.
 1.8 14-Jul-2003  lukem branches: 1.8.16;
add __KERNEL_RCSID()
 1.7 27-Sep-2002  provos branches: 1.7.6;
remove trailing \n in panic(). approved perry.
 1.6 29-Oct-2001  thorpej branches: 1.6.2;
pci_conf_interrupt() takes bus/dev/pin, not bus/dev/func.
 1.5 24-Aug-2001  simonb branches: 1.5.4;
Fix the display of the CPU clock speed.
 1.4 15-Jun-2001  thorpej branches: 1.4.2;
Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.3 10-Jun-2001  thorpej Check in work-in-progress of generic ISA interrupt support. The
goal here is to get the P-5064 PCMCIA slots working, and serve as
the basis for P-6032 interrupt support.

PCMCIA interrupt auto-detection not working -- more work to be
done here.
 1.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.4.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.4.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.5.4.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.6.2.2 18-Oct-2002  nathanw Catch up to -current.
 1.6.2.1 29-Oct-2001  nathanw file algor_p4032_intr.c was added on branch nathanw_sa on 2002-10-18 02:33:47 +0000
 1.7.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.7.6.1 03-Aug-2004  skrll Sync with HEAD
 1.8.16.5 04-Feb-2008  yamt sync with head.
 1.8.16.4 21-Jan-2008  yamt sync with head
 1.8.16.3 07-Dec-2007  yamt sync with head
 1.8.16.2 30-Dec-2006  yamt sync with head.
 1.8.16.1 21-Jun-2006  yamt sync with head.
 1.10.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.10.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.10.8.2 14-Sep-2006  yamt sync with head.
 1.10.8.1 24-May-2006  yamt sync with head.
 1.10.6.1 22-Apr-2006  simonb Sync with head.
 1.10.4.1 09-Sep-2006  rpaulo sync with head
 1.12.8.1 03-Jun-2008  skrll Sync with netbsd-4.
 1.12.6.1 21-Jan-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1040):
sys/arch/algor/isa/mcclock_isa.c: revision 1.9
sys/arch/algor/algor/algor_p5064_intr.c: revision 1.18, 1.20 via patch
sys/arch/algor/algor/algor_p4032_intr.c: revision 1.15, 1.17 via patch
sys/arch/algor/algor/algor_p6032_intr.c: revision 1.12, 1.14 via patch
sys/arch/mips/mips/mips3_clock.c: revision 1.8, 1.9
sys/arch/algor/dev/mcclock_mainbus.c: revision 1.7
sys/arch/algor/algor/locore_machdep.S: revision 1.4
Fix botch on MI todr(9) migration of algor on September 2006:
- year0 should be 1980, not 80
- put a newline after MI mc146818_attach()
- call todr_attach(9)
- in algor_p????_cal_timer() functions, initialize ci_divisor_delay
and ci_cycles_per_hz values in curcpu() for MI mips3_clock.c:mips3_delay()
rather than obsolete and homegrown delay_divisor
- remove old _delay() stuff from locore_machdep.S
- make MI mips3_delay() work even before frequency values in curcpu()
are initialized
Now NetBSD/algor P5064 kernel works on gxemul.
While here, add a hack for emulators:
- ignore a measured CPU frequency if the value looks unlikely
 1.12.4.1 22-Sep-2006  yamt fix softintr for following ports. (hopefully)
hpcmips
evbmips
algor
arc
ews4800mips
newsmips
 1.12.2.1 12-Jan-2007  ad Sync with head.
 1.13.30.2 18-Feb-2008  mjf Sync with HEAD.
 1.13.30.1 08-Dec-2007  mjf Sync with HEAD.
 1.13.24.2 23-Mar-2008  matt sync with HEAD
 1.13.24.1 09-Jan-2008  matt sync with HEAD
 1.13.22.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.13.6.1 03-Dec-2007  ad Sync with HEAD.
 1.14.6.1 10-Jan-2008  bouyer Sync with HEAD
 1.18.10.2 04-May-2009  yamt sync with head.
 1.18.10.1 16-May-2008  yamt sync with head.
 1.18.8.2 04-Jun-2008  yamt sync with head
 1.18.8.1 18-May-2008  yamt sync with head.
 1.18.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.19.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.20.28.1 05-Mar-2011  bouyer Sync with HEAD
 1.20.26.1 06-Jun-2011  jruoho Sync with HEAD.
 1.20.20.2 21-Apr-2011  rmind sync with head
 1.20.20.1 05-Mar-2011  rmind sync with head
 1.20.16.3 24-Dec-2010  matt Adopt the new spl/interrupt framework.
 1.20.16.2 28-Feb-2010  matt #define __INTR_PRIVATE
 1.20.16.1 24-Feb-2010  matt Adapt algor to the new interrupt/spl scheme.
 1.24.16.1 18-May-2014  rmind sync with head
 1.24.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.24.2.1 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.25.30.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.26.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.4 24-May-2024  andvar s/onbord/onboard/ in comment.
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 22-Jun-2001  thorpej branches: 1.2.8; 1.2.126; 1.2.128; 1.2.130;
Use the other DMA window (with prefetch enabled) on the P-4032
on-board Ethernet. Suggested by Nigel Stephens <nigel@algor.co.uk>.
 1.1 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.2.130.1 16-May-2008  yamt sync with head.
 1.2.128.1 18-May-2008  yamt sync with head.
 1.2.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.2.8.2 22-Jun-2001  thorpej Use the other DMA window (with prefetch enabled) on the P-4032
on-board Ethernet. Suggested by Nigel Stephens <nigel@algor.co.uk>.
 1.2.8.1 22-Jun-2001  thorpej file algor_p4032reg.h was added on branch nathanw_sa on 2001-06-22 05:57:27 +0000
 1.8 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 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.
Adapt to new interrupt/spl framework.
 1.5 28-Apr-2008  martin branches: 1.5.18; 1.5.22; 1.5.28; 1.5.30;
Remove clause 3 and 4 from TNF licenses
 1.4 22-Jun-2001  thorpej branches: 1.4.8; 1.4.126; 1.4.128; 1.4.130;
Use the other DMA window (with prefetch enabled) on the P-4032
on-board Ethernet. Suggested by Nigel Stephens <nigel@algor.co.uk>.
 1.3 15-Jun-2001  thorpej Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.4.130.1 16-May-2008  yamt sync with head.
 1.4.128.1 18-May-2008  yamt sync with head.
 1.4.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.4.8.2 22-Jun-2001  thorpej Use the other DMA window (with prefetch enabled) on the P-4032
on-board Ethernet. Suggested by Nigel Stephens <nigel@algor.co.uk>.
 1.4.8.1 22-Jun-2001  thorpej file algor_p4032var.h was added on branch nathanw_sa on 2001-06-22 05:57:28 +0000
 1.5.30.1 05-Mar-2011  bouyer Sync with HEAD
 1.5.28.1 06-Jun-2011  jruoho Sync with HEAD.
 1.5.22.1 05-Mar-2011  rmind sync with head
 1.5.18.1 24-Feb-2010  matt Adapt algor to the new interrupt/spl scheme.
 1.7 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.6 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.5 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4 11-Dec-2005  christos branches: 1.4.74; 1.4.76; 1.4.78;
merge ktrace-lwp.
 1.3 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.2 14-Jun-2001  thorpej branches: 1.2.8; 1.2.24;
Don't use BUS_END to compute SYS_END.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.24.1 03-Aug-2004  skrll Sync with HEAD
 1.2.8.2 14-Jun-2001  thorpej Don't use BUS_END to compute SYS_END.
 1.2.8.1 14-Jun-2001  thorpej file algor_p5064_bus_io.c was added on branch nathanw_sa on 2001-06-14 18:48:24 +0000
 1.4.78.1 16-May-2008  yamt sync with head.
 1.4.76.1 18-May-2008  yamt sync with head.
 1.4.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.6 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.5 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 11-Dec-2005  christos branches: 1.3.74; 1.3.76; 1.3.78;
merge ktrace-lwp.
 1.2 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.24;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file algor_p5064_bus_mem.c was added on branch nathanw_sa on 2001-05-28 16:22:15 +0000
 1.3.78.1 16-May-2008  yamt sync with head.
 1.3.76.1 18-May-2008  yamt sync with head.
 1.3.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.6 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.5 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 11-Dec-2005  christos branches: 1.3.74; 1.3.76; 1.3.78;
merge ktrace-lwp.
 1.2 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.24;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file algor_p5064_dma.c was added on branch nathanw_sa on 2001-05-28 16:22:15 +0000
 1.3.78.1 16-May-2008  yamt sync with head.
 1.3.76.1 18-May-2008  yamt sync with head.
 1.3.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.30 14-Nov-2020  thorpej malloc(9) -> kmem(9)
 1.29 10-Nov-2019  chs branches: 1.29.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.28 29-Mar-2014  christos branches: 1.28.30;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.27 09-Jul-2011  matt branches: 1.27.2; 1.27.12; 1.27.16;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.26 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.25 06-Apr-2011  dyoung Fix fallout from pci_attach_args constification.
 1.24 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.23 26-May-2008  tsutsui branches: 1.23.16; 1.23.20; 1.23.26; 1.23.28;
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.22 28-Apr-2008  martin branches: 1.22.2;
Remove clause 3 and 4 from TNF licenses
 1.21 18-Mar-2008  cube branches: 1.21.2; 1.21.4;
Split device_t and softc for ATA devices, as well as wd(4). Other
cosmetic changes where appropriate.
 1.20 10-Jan-2008  tsutsui branches: 1.20.2; 1.20.6;
Cycles per second values read from the CP0 counter should be doubled
on calculating CPU frequency in CPU_MIPS_DOUBLE_COUNT case,
which is always assumed on this port.
 1.19 09-Jan-2008  wiz Fix typo in macro name and comments.
 1.18 09-Jan-2008  tsutsui Fix another botch on migration to MI mips3_clock.c for algor in 2006:
- in algor_p????_cal_timer() functions, initialize ci_divisor_delay
and ci_cycles_per_hz values in curcpu() for MI mips3_clock.c:mips3_delay()
rather than obsolete and homegrown delay_divisor
- remove old _delay() stuff from locore_machdep.S
- make MI mips3_delay() work even before frequency values in curcpu()
are initialized

Now NetBSD/algor P5064 kernel works on gxemul.

While here, add a hack for emulators:
- ignore a measured CPU frequency if the value looks unlikely

Pullup request for netbsd-4 will be sent later.
 1.17 03-Dec-2007  ad branches: 1.17.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.16 21-Dec-2006  yamt branches: 1.16.6; 1.16.22; 1.16.24; 1.16.30;
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.15 05-Sep-2006  gdamore branches: 1.15.2; 1.15.4; 1.15.6; 1.15.8;
Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.14 15-Apr-2006  simonb Switch Algor port to MIPS generic soft-interrupts implementation.
XXX: Compile tested only.
 1.13 24-Dec-2005  perry branches: 1.13.4; 1.13.6; 1.13.8; 1.13.10; 1.13.12;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.12 11-Dec-2005  christos merge ktrace-lwp.
 1.11 14-Jul-2003  lukem branches: 1.11.16;
add __KERNEL_RCSID()
 1.10 27-Sep-2002  provos branches: 1.10.6;
remove trailing \n in panic(). approved perry.
 1.9 29-Oct-2001  thorpej branches: 1.9.2;
pci_conf_interrupt() takes bus/dev/pin, not bus/dev/func.
 1.8 24-Aug-2001  simonb branches: 1.8.4;
Fix the display of the CPU clock speed.
 1.7 21-Jun-2001  thorpej branches: 1.7.2;
Fix whitespace botch.
 1.6 21-Jun-2001  thorpej Correct the ISA bridge irqmap.
 1.5 21-Jun-2001  thorpej Rototill ISA interrupt code. In particular, I have remembered most
of the horror that is the 8259 PIC.

PCMCIA interrupts still not working yet, but getting closer.
 1.4 15-Jun-2001  thorpej Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.3 10-Jun-2001  thorpej Check in work-in-progress of generic ISA interrupt support. The
goal here is to get the P-5064 PCMCIA slots working, and serve as
the basis for P-6032 interrupt support.

PCMCIA interrupt auto-detection not working -- more work to be
done here.
 1.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.7.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.7.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.7.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.8.4.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.9.2.2 18-Oct-2002  nathanw Catch up to -current.
 1.9.2.1 29-Oct-2001  nathanw file algor_p5064_intr.c was added on branch nathanw_sa on 2002-10-18 02:33:47 +0000
 1.10.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.10.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.10.6.1 03-Aug-2004  skrll Sync with HEAD
 1.11.16.5 24-Mar-2008  yamt sync with head.
 1.11.16.4 21-Jan-2008  yamt sync with head
 1.11.16.3 07-Dec-2007  yamt sync with head
 1.11.16.2 30-Dec-2006  yamt sync with head.
 1.11.16.1 21-Jun-2006  yamt sync with head.
 1.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 14-Sep-2006  yamt sync with head.
 1.13.8.1 24-May-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.15.8.1 03-Jun-2008  skrll Sync with netbsd-4.
 1.15.6.1 21-Jan-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1040):
sys/arch/algor/isa/mcclock_isa.c: revision 1.9
sys/arch/algor/algor/algor_p5064_intr.c: revision 1.18, 1.20 via patch
sys/arch/algor/algor/algor_p4032_intr.c: revision 1.15, 1.17 via patch
sys/arch/algor/algor/algor_p6032_intr.c: revision 1.12, 1.14 via patch
sys/arch/mips/mips/mips3_clock.c: revision 1.8, 1.9
sys/arch/algor/dev/mcclock_mainbus.c: revision 1.7
sys/arch/algor/algor/locore_machdep.S: revision 1.4
Fix botch on MI todr(9) migration of algor on September 2006:
- year0 should be 1980, not 80
- put a newline after MI mc146818_attach()
- call todr_attach(9)
- in algor_p????_cal_timer() functions, initialize ci_divisor_delay
and ci_cycles_per_hz values in curcpu() for MI mips3_clock.c:mips3_delay()
rather than obsolete and homegrown delay_divisor
- remove old _delay() stuff from locore_machdep.S
- make MI mips3_delay() work even before frequency values in curcpu()
are initialized
Now NetBSD/algor P5064 kernel works on gxemul.
While here, add a hack for emulators:
- ignore a measured CPU frequency if the value looks unlikely
 1.15.4.1 22-Sep-2006  yamt fix softintr for following ports. (hopefully)
hpcmips
evbmips
algor
arc
ews4800mips
newsmips
 1.15.2.1 12-Jan-2007  ad Sync with head.
 1.16.30.2 18-Feb-2008  mjf Sync with HEAD.
 1.16.30.1 08-Dec-2007  mjf Sync with HEAD.
 1.16.24.2 23-Mar-2008  matt sync with HEAD
 1.16.24.1 09-Jan-2008  matt sync with HEAD
 1.16.22.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.16.6.1 03-Dec-2007  ad Sync with HEAD.
 1.17.6.1 10-Jan-2008  bouyer Sync with HEAD
 1.20.6.2 02-Jun-2008  mjf Sync with HEAD.
 1.20.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.20.2.1 24-Mar-2008  keiichi sync with head.
 1.21.4.2 04-May-2009  yamt sync with head.
 1.21.4.1 16-May-2008  yamt sync with head.
 1.21.2.2 04-Jun-2008  yamt sync with head
 1.21.2.1 18-May-2008  yamt sync with head.
 1.22.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.23.28.1 05-Mar-2011  bouyer Sync with HEAD
 1.23.26.1 06-Jun-2011  jruoho Sync with HEAD.
 1.23.20.2 21-Apr-2011  rmind sync with head
 1.23.20.1 05-Mar-2011  rmind sync with head
 1.23.16.3 24-Dec-2010  matt Adopt the new spl/interrupt framework.
 1.23.16.2 28-Feb-2010  matt #define __INTR_PRIVATE
 1.23.16.1 24-Feb-2010  matt Adapt algor to the new interrupt/spl scheme.
 1.27.16.1 18-May-2014  rmind sync with head
 1.27.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.27.2.1 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.28.30.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.29.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 20-Feb-2002  simonb branches: 1.2.118; 1.2.120; 1.2.122;
Fix a tyop in a comment.
 1.1 28-May-2001  thorpej branches: 1.1.2; 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-Feb-2002  nathanw Catch up to -current.
 1.1.8.1 28-May-2001  nathanw file algor_p5064reg.h was added on branch nathanw_sa on 2002-02-28 04:06:05 +0000
 1.1.2.1 16-Mar-2002  jdolecek Catch up with -current.
 1.2.122.1 16-May-2008  yamt sync with head.
 1.2.120.1 18-May-2008  yamt sync with head.
 1.2.118.1 02-Jun-2008  mjf Sync with HEAD.
 1.9 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.8 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.7 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.6 28-Apr-2008  martin branches: 1.6.18; 1.6.22; 1.6.28; 1.6.30;
Remove clause 3 and 4 from TNF licenses
 1.5 21-Jun-2001  thorpej branches: 1.5.8; 1.5.126; 1.5.128; 1.5.130;
Rototill ISA interrupt code. In particular, I have remembered most
of the horror that is the 8259 PIC.

PCMCIA interrupts still not working yet, but getting closer.
 1.4 15-Jun-2001  thorpej Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.3 10-Jun-2001  thorpej Check in work-in-progress of generic ISA interrupt support. The
goal here is to get the P-5064 PCMCIA slots working, and serve as
the basis for P-6032 interrupt support.

PCMCIA interrupt auto-detection not working -- more work to be
done here.
 1.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.5.130.1 16-May-2008  yamt sync with head.
 1.5.128.1 18-May-2008  yamt sync with head.
 1.5.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.8.2 21-Jun-2001  thorpej Rototill ISA interrupt code. In particular, I have remembered most
of the horror that is the 8259 PIC.

PCMCIA interrupts still not working yet, but getting closer.
 1.5.8.1 21-Jun-2001  thorpej file algor_p5064var.h was added on branch nathanw_sa on 2001-06-21 05:20:55 +0000
 1.6.30.1 05-Mar-2011  bouyer Sync with HEAD
 1.6.28.1 06-Jun-2011  jruoho Sync with HEAD.
 1.6.22.1 05-Mar-2011  rmind sync with head
 1.6.18.1 24-Feb-2010  matt Adapt algor to the new interrupt/spl scheme.
 1.6 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.5 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 11-Dec-2005  christos branches: 1.3.74; 1.3.76; 1.3.78;
merge ktrace-lwp.
 1.2 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.1 22-Jun-2001  thorpej branches: 1.1.8; 1.1.24;
Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.1.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.8.2 22-Jun-2001  thorpej Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.1.8.1 22-Jun-2001  thorpej file algor_p6032_bus_io.c was added on branch nathanw_sa on 2001-06-22 06:02:55 +0000
 1.3.78.1 16-May-2008  yamt sync with head.
 1.3.76.1 18-May-2008  yamt sync with head.
 1.3.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.6 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.5 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 11-Dec-2005  christos branches: 1.3.74; 1.3.76; 1.3.78;
merge ktrace-lwp.
 1.2 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.1 22-Jun-2001  thorpej branches: 1.1.8; 1.1.24;
Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.1.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.8.2 22-Jun-2001  thorpej Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.1.8.1 22-Jun-2001  thorpej file algor_p6032_bus_mem.c was added on branch nathanw_sa on 2001-06-22 06:02:55 +0000
 1.3.78.1 16-May-2008  yamt sync with head.
 1.3.76.1 18-May-2008  yamt sync with head.
 1.3.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.7 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.6 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.5 26-Oct-2009  snj Fix a typo in a comment.
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 11-Dec-2005  christos branches: 1.3.74; 1.3.76; 1.3.78;
merge ktrace-lwp.
 1.2 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.1 22-Jun-2001  thorpej branches: 1.1.8; 1.1.24;
Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.1.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.24.1 03-Aug-2004  skrll Sync with HEAD
 1.1.8.2 22-Jun-2001  thorpej Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.1.8.1 22-Jun-2001  thorpej file algor_p6032_dma.c was added on branch nathanw_sa on 2001-06-22 06:02:55 +0000
 1.3.78.2 11-Mar-2010  yamt sync with head
 1.3.78.1 16-May-2008  yamt sync with head.
 1.3.76.1 18-May-2008  yamt sync with head.
 1.3.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.24 14-Nov-2020  thorpej malloc(9) -> kmem(9)
 1.23 10-Nov-2019  chs branches: 1.23.8;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.22 29-Mar-2014  christos branches: 1.22.30;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.21 09-Jul-2011  matt branches: 1.21.2; 1.21.12; 1.21.16;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.20 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.19 07-Apr-2011  dyoung Fix more const pci_attach_args fallout.
 1.18 05-Mar-2011  matt Fix prototype of algor_p6032_iointr.
Fix buffer overrun ( PR algor/42176 ).
Constify a few things.
 1.17 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.16 26-May-2008  tsutsui branches: 1.16.16; 1.16.20; 1.16.26; 1.16.28;
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.15 28-Apr-2008  martin branches: 1.15.2;
Remove clause 3 and 4 from TNF licenses
 1.14 10-Jan-2008  tsutsui branches: 1.14.6; 1.14.8; 1.14.10;
Cycles per second values read from the CP0 counter should be doubled
on calculating CPU frequency in CPU_MIPS_DOUBLE_COUNT case,
which is always assumed on this port.
 1.13 09-Jan-2008  wiz Fix typo in macro name and comments.
 1.12 09-Jan-2008  tsutsui Fix another botch on migration to MI mips3_clock.c for algor in 2006:
- in algor_p????_cal_timer() functions, initialize ci_divisor_delay
and ci_cycles_per_hz values in curcpu() for MI mips3_clock.c:mips3_delay()
rather than obsolete and homegrown delay_divisor
- remove old _delay() stuff from locore_machdep.S
- make MI mips3_delay() work even before frequency values in curcpu()
are initialized

Now NetBSD/algor P5064 kernel works on gxemul.

While here, add a hack for emulators:
- ignore a measured CPU frequency if the value looks unlikely

Pullup request for netbsd-4 will be sent later.
 1.11 03-Dec-2007  ad branches: 1.11.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.10 21-Dec-2006  yamt branches: 1.10.6; 1.10.22; 1.10.24; 1.10.30;
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.9 05-Sep-2006  gdamore branches: 1.9.2; 1.9.4; 1.9.6; 1.9.8;
Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.8 15-Apr-2006  simonb Switch Algor port to MIPS generic soft-interrupts implementation.
XXX: Compile tested only.
 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 14-Jul-2003  lukem branches: 1.6.16;
add __KERNEL_RCSID()
 1.5 27-Sep-2002  provos branches: 1.5.6;
remove trailing \n in panic(). approved perry.
 1.4 29-Oct-2001  thorpej branches: 1.4.2;
pci_conf_interrupt() takes bus/dev/pin, not bus/dev/func.
 1.3 24-Aug-2001  simonb branches: 1.3.4;
Fix the display of the CPU clock speed.
 1.2 22-Jun-2001  thorpej branches: 1.2.2;
Correct a typo.
 1.1 22-Jun-2001  thorpej Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.2.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.3.4.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.4.2.2 18-Oct-2002  nathanw Catch up to -current.
 1.4.2.1 29-Oct-2001  nathanw file algor_p6032_intr.c was added on branch nathanw_sa on 2002-10-18 02:33:47 +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.4 21-Jan-2008  yamt sync with head
 1.6.16.3 07-Dec-2007  yamt sync with head
 1.6.16.2 30-Dec-2006  yamt 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.2 14-Sep-2006  yamt sync with head.
 1.7.8.1 24-May-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.8.1 03-Jun-2008  skrll Sync with netbsd-4.
 1.9.6.1 21-Jan-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1040):
sys/arch/algor/isa/mcclock_isa.c: revision 1.9
sys/arch/algor/algor/algor_p5064_intr.c: revision 1.18, 1.20 via patch
sys/arch/algor/algor/algor_p4032_intr.c: revision 1.15, 1.17 via patch
sys/arch/algor/algor/algor_p6032_intr.c: revision 1.12, 1.14 via patch
sys/arch/mips/mips/mips3_clock.c: revision 1.8, 1.9
sys/arch/algor/dev/mcclock_mainbus.c: revision 1.7
sys/arch/algor/algor/locore_machdep.S: revision 1.4
Fix botch on MI todr(9) migration of algor on September 2006:
- year0 should be 1980, not 80
- put a newline after MI mc146818_attach()
- call todr_attach(9)
- in algor_p????_cal_timer() functions, initialize ci_divisor_delay
and ci_cycles_per_hz values in curcpu() for MI mips3_clock.c:mips3_delay()
rather than obsolete and homegrown delay_divisor
- remove old _delay() stuff from locore_machdep.S
- make MI mips3_delay() work even before frequency values in curcpu()
are initialized
Now NetBSD/algor P5064 kernel works on gxemul.
While here, add a hack for emulators:
- ignore a measured CPU frequency if the value looks unlikely
 1.9.4.1 22-Sep-2006  yamt fix softintr for following ports. (hopefully)
hpcmips
evbmips
algor
arc
ews4800mips
newsmips
 1.9.2.1 12-Jan-2007  ad Sync with head.
 1.10.30.2 18-Feb-2008  mjf Sync with HEAD.
 1.10.30.1 08-Dec-2007  mjf Sync with HEAD.
 1.10.24.2 23-Mar-2008  matt sync with HEAD
 1.10.24.1 09-Jan-2008  matt sync with HEAD
 1.10.22.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.10.6.1 03-Dec-2007  ad Sync with HEAD.
 1.11.6.1 10-Jan-2008  bouyer Sync with HEAD
 1.14.10.2 04-May-2009  yamt sync with head.
 1.14.10.1 16-May-2008  yamt sync with head.
 1.14.8.2 04-Jun-2008  yamt sync with head
 1.14.8.1 18-May-2008  yamt sync with head.
 1.14.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.15.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.16.28.1 05-Mar-2011  bouyer Sync with HEAD
 1.16.26.1 06-Jun-2011  jruoho Sync with HEAD.
 1.16.20.3 21-Apr-2011  rmind sync with head
 1.16.20.2 06-Mar-2011  rmind sync with head (and fix few botches with this)
 1.16.20.1 05-Mar-2011  rmind sync with head
 1.16.16.3 24-Dec-2010  matt Adopt the new spl/interrupt framework.
 1.16.16.2 28-Feb-2010  matt #define __INTR_PRIVATE
 1.16.16.1 24-Feb-2010  matt Adapt algor to the new interrupt/spl scheme.
 1.21.16.1 18-May-2014  rmind sync with head
 1.21.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.21.2.1 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.22.30.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.23.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 22-Jun-2001  thorpej branches: 1.1.8; 1.1.126; 1.1.128; 1.1.130;
Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.1.130.1 16-May-2008  yamt sync with head.
 1.1.128.1 18-May-2008  yamt sync with head.
 1.1.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.8.2 22-Jun-2001  thorpej Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.1.8.1 22-Jun-2001  thorpej file algor_p6032reg.h was added on branch nathanw_sa on 2001-06-22 06:02:55 +0000
 1.5 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.4 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.3 05-Mar-2011  matt Fix prototype of algor_p6032_iointr.
Fix buffer overrun ( PR algor/42176 ).
Constify a few things.
 1.2 28-Apr-2008  martin branches: 1.2.22; 1.2.28;
Remove clause 3 and 4 from TNF licenses
 1.1 22-Jun-2001  thorpej branches: 1.1.8; 1.1.126; 1.1.128; 1.1.130;
Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.1.130.1 16-May-2008  yamt sync with head.
 1.1.128.1 18-May-2008  yamt sync with head.
 1.1.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.8.2 22-Jun-2001  thorpej Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.1.8.1 22-Jun-2001  thorpej file algor_p6032var.h was added on branch nathanw_sa on 2001-06-22 06:02:55 +0000
 1.2.28.1 06-Jun-2011  jruoho Sync with HEAD.
 1.2.22.1 06-Mar-2011  rmind sync with head (and fix few botches with this)
 1.23 03-Oct-2025  thorpej Use device_setprop_data() to set the "mac-address" property.
 1.22 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.21 29-Jul-2012  mlelstv branches: 1.21.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.20 09-Jul-2011  matt branches: 1.20.2; 1.20.8;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.19 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.18 22-Jan-2010  martin Unify the name of the device property to hold a MAC address - there was
no clear majority for either "mac-addr" vs. "mac-address", but a quick
gallup poll among developers selected the latter.
 1.17 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.16 22-Feb-2007  thorpej branches: 1.16.42; 1.16.44; 1.16.46;
TRUE -> true, FALSE -> false
 1.15 17-Nov-2006  tsutsui branches: 1.15.4;
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.14 05-May-2006  thorpej branches: 1.14.8; 1.14.10;
Remove the devprop API and switch everthing over to the new proplib. Add
a new device_properties() accessor for device_t that returns the device's
property dictionary.
 1.13 23-Feb-2006  thorpej branches: 1.13.2; 1.13.4; 1.13.6;
Use device_is_a().
 1.12 23-Feb-2006  thorpej Use device_parent().
 1.11 18-Feb-2006  thorpej Need <dev/pci/pcivar.h> in the non-P4032 case.
 1.10 18-Feb-2006  thorpej Don't use sizeof() on an incomplete type.
 1.9 18-Feb-2006  thorpej Fix a typo. Pointed out by yamt.
 1.8 18-Feb-2006  thorpej - Don't expose dev_propdb directly -- provide devprop_*() wrappers instead.
- Rework the ARMADILLO / epe device properties interaction so that it actually
associates the MAC address property with the epe device instance.
 1.7 16-Feb-2006  thorpej Remove the ugly algor_get_ethaddr() hack. We have a properties infrastructure
now, so use that to provide the Ethernet address of the built-in Ethernet.
XXX Still a little ugly in the tlp driver, but fixing that would require
XXX reworking the SROM usage in a broader sense.

While here, do the P4032 DMA window hack in device_register() as well.
 1.6 11-Dec-2005  christos branches: 1.6.2; 1.6.4; 1.6.6;
merge ktrace-lwp.
 1.5 09-Jun-2005  he branches: 1.5.2;
Adapt to compiling with -Wcast-qual by setting the last argument to
config_rootfound() to NULL.
 1.4 23-Oct-2004  thorpej Centralize the declaration of booted_device and booted_partition.
 1.3 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.2 10-Jun-2001  thorpej branches: 1.2.8; 1.2.24;
Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.24.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.2.24.4 02-Nov-2004  skrll Sync with HEAD.
 1.2.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.24.1 03-Aug-2004  skrll Sync with HEAD
 1.2.8.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.2.8.1 10-Jun-2001  thorpej file autoconf.c was added on branch nathanw_sa on 2001-06-10 05:26:59 +0000
 1.5.2.3 26-Feb-2007  yamt sync with head.
 1.5.2.2 30-Dec-2006  yamt sync with head.
 1.5.2.1 21-Jun-2006  yamt sync with head.
 1.6.6.2 01-Jun-2006  kardel Sync with head.
 1.6.6.1 22-Apr-2006  simonb Sync with head.
 1.6.4.1 09-Sep-2006  rpaulo sync with head
 1.6.2.4 01-Mar-2006  yamt sync with head.
 1.6.2.3 18-Feb-2006  yamt pull 1.10 and 1.11. (compilation fix)
 1.6.2.2 18-Feb-2006  yamt pull rev.1.9. (fix typo)
 1.6.2.1 18-Feb-2006  yamt sync with head.
 1.13.6.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.13.4.1 11-May-2006  elad sync with head
 1.13.2.1 24-May-2006  yamt sync with head.
 1.14.10.1 10-Dec-2006  yamt sync with head.
 1.14.8.1 12-Jan-2007  ad Sync with head.
 1.15.4.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.16.46.2 11-Mar-2010  yamt sync with head
 1.16.46.1 16-May-2008  yamt sync with head.
 1.16.44.1 18-May-2008  yamt sync with head.
 1.16.42.1 02-Jun-2008  mjf Sync with HEAD.
 1.20.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.20.2.1 30-Oct-2012  yamt sync with head
 1.21.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.24 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.23 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.22 14-Dec-2009  matt Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.21 21-Aug-2009  thorpej Use bus_dmamem_common.
 1.20 04-Jun-2008  ad branches: 1.20.16;
vm_page: put TAILQ_ENTRY into a union with LIST_ENTRY, so we can use both.
 1.19 28-Apr-2008  martin branches: 1.19.2;
Remove clause 3 and 4 from TNF licenses
 1.18 05-Mar-2007  he branches: 1.18.40; 1.18.42; 1.18.44;
Cast to char* before doing pointer arithmetic.
 1.17 04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.16 01-Mar-2006  yamt branches: 1.16.20;
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.15 11-Dec-2005  christos branches: 1.15.2; 1.15.4; 1.15.6;
merge ktrace-lwp.
 1.14 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.13 01-Apr-2005  yamt branches: 1.13.2; 1.13.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.12 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.11 09-Mar-2005  simonb Add an extra `i' to notifes/notifed.
 1.10 28-Nov-2004  thorpej branches: 1.10.4; 1.10.6;
bus_dmamap_load_mbuf(): Skip zero-length mbufs.
kern/24811
 1.9 29-Jun-2003  fvdl branches: 1.9.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.8 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.7 01-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.6 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.5 14-Nov-2001  thorpej branches: 1.5.2; 1.5.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.4 10-Sep-2001  chris branches: 1.4.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.3 22-Jul-2001  wiz branches: 1.3.2;
bzero -> memset
 1.2 01-Jun-2001  thorpej branches: 1.2.2;
vm_page_t -> struct vm_page *
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.3 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.2 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.2.1 03-Aug-2001  lukem update to -current
 1.3.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.4.2.2 13-Nov-2001  thorpej For the virtually-indexed write-back cache dmamap_sync:

Note that we can only use Inv on PREREAD if the buffer
start/end are cacheline-aligned. If they're not, we
need to use WB_Inv, otherwise we can end up trashing
someone else's data.

XXX For now, simply use WB_Inv for the PREREAD case
always. I will make some other changes later that
will enable the dmamap_sync routine to easily determine
if it's safe to use Inv.

Many thanks to Michael Hitch for tracking this down.
 1.4.2.1 24-Oct-2001  thorpej Adapt to new cache code. bus_dmamap_sync() is now optimized for
virtually-indexed write-back caches.
 1.5.10.1 09-Jul-2002  gehenna catch up with -current.
 1.5.2.4 02-Jul-2002  nathanw curlwp back to curproc; curproc is the correct type here.
 1.5.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.5.2.2 20-Jun-2002  nathanw Catch up to -current.
 1.5.2.1 14-Nov-2001  nathanw file bus_dma.c was added on branch nathanw_sa on 2002-06-20 03:37:25 +0000
 1.9.2.7 11-Dec-2005  christos Sync with head.
 1.9.2.6 01-Apr-2005  skrll Sync with HEAD.
 1.9.2.5 19-Feb-2005  skrll Don't deref a NULL struct lwp *. This shouldn't happen, but...
 1.9.2.4 18-Dec-2004  skrll Sync with HEAD.
 1.9.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.9.2.1 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.10.6.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.10.6.1 13-Feb-2005  yamt use new apis.
 1.10.4.1 29-Apr-2005  kent sync with -current
 1.13.8.1 29-Nov-2005  yamt sync with head.
 1.13.2.2 03-Sep-2007  yamt sync with head.
 1.13.2.1 21-Jun-2006  yamt sync with head.
 1.15.6.1 22-Apr-2006  simonb Sync with head.
 1.15.4.1 09-Sep-2006  rpaulo sync with head
 1.15.2.3 19-Feb-2006  yamt remove an unused variable.
 1.15.2.2 18-Feb-2006  yamt _dm_proc -> _dm_vmspace.
 1.15.2.1 18-Feb-2006  yamt adapt bus_dma implementations.
 1.16.20.1 12-Mar-2007  rmind Sync with HEAD.
 1.18.44.4 11-Mar-2010  yamt sync with head
 1.18.44.3 16-Sep-2009  yamt sync with head
 1.18.44.2 04-May-2009  yamt sync with head.
 1.18.44.1 16-May-2008  yamt sync with head.
 1.18.42.2 17-Jun-2008  yamt sync with head.
 1.18.42.1 18-May-2008  yamt sync with head.
 1.18.40.2 05-Jun-2008  mjf Sync with HEAD.

Also fix build.
 1.18.40.1 02-Jun-2008  mjf Sync with HEAD.
 1.19.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.20.16.1 26-Aug-2009  matt Fixup (all but mipsco) to deal the new realities in mipsland.
 1.5 05-Sep-2006  gdamore Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.8;
merge ktrace-lwp.
 1.3 07-Aug-2003  agc branches: 1.3.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.2 10-Jun-2001  thorpej branches: 1.2.8; 1.2.24;
Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.24.1 03-Aug-2004  skrll Sync with HEAD
 1.2.8.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.2.8.1 10-Jun-2001  thorpej file clock.c was added on branch nathanw_sa on 2001-06-10 05:26:59 +0000
 1.3.16.1 30-Dec-2006  yamt sync with head.
 1.4.8.1 14-Sep-2006  yamt sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5 05-Sep-2006  gdamore Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.8;
merge ktrace-lwp.
 1.3 13-Feb-2004  wiz branches: 1.3.16;
Uppercase CPU, plural is CPUs.
 1.2 10-Jun-2001  thorpej branches: 1.2.8; 1.2.24;
Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.24.1 03-Aug-2004  skrll Sync with HEAD
 1.2.8.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.2.8.1 10-Jun-2001  thorpej file clockvar.h was added on branch nathanw_sa on 2001-06-10 05:26:59 +0000
 1.3.16.1 30-Dec-2006  yamt sync with head.
 1.4.8.1 14-Sep-2006  yamt sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.9 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.8 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.7 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.6 17-Jun-2002  christos MD systrace gluons.
 1.5 16-Mar-2002  martin branches: 1.5.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.4 12-Jan-2002  manu updated chrtoblktbl[]
 1.3 12-Jan-2002  manu Added clockctl
 1.2 03-Oct-2001  simonb branches: 1.2.4;
One copy of <sys/conf.h> will be enough.
 1.1 28-May-2001  thorpej branches: 1.1.2; 1.1.4;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.4.1 11-Oct-2001  fvdl Catch up with -current. Fix some bogons in the sparc64 kbd/ms
attach code. cd18xx conversion provided by mrg.
 1.1.2.5 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.2.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.1.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.4.7 11-Nov-2002  nathanw Catch up to -current
 1.2.4.6 17-Sep-2002  nathanw Catch up to -current.
 1.2.4.5 01-Aug-2002  nathanw Catch up to -current.
 1.2.4.4 20-Jun-2002  nathanw Catch up to -current.
 1.2.4.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.4.2 28-Feb-2002  nathanw Catch up to -current.
 1.2.4.1 03-Oct-2001  nathanw file conf.c was added on branch nathanw_sa on 2002-02-28 04:06:05 +0000
 1.5.4.3 21-Jul-2002  gehenna catch up with -current.
 1.5.4.2 09-Jul-2002  gehenna catch up with -current.
 1.5.4.1 16-May-2002  gehenna Bye block/character device swicth tables.
 1.8 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.7 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.6 11-Dec-2005  christos branches: 1.6.96; 1.6.100; 1.6.106; 1.6.108;
merge ktrace-lwp.
 1.5 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.4 02-Oct-2002  thorpej branches: 1.4.6;
Fix script-o's in last.
 1.3 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.2 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.1 28-May-2001  thorpej branches: 1.1.2; 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.8.1 28-May-2001  nathanw file cpu.c was added on branch nathanw_sa on 2002-10-18 02:33:48 +0000
 1.1.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.4.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.6.1 03-Aug-2004  skrll Sync with HEAD
 1.6.108.1 05-Mar-2011  bouyer Sync with HEAD
 1.6.106.1 06-Jun-2011  jruoho Sync with HEAD.
 1.6.100.1 05-Mar-2011  rmind sync with head
 1.6.96.2 23-Dec-2011  matt Change usage to cpu_identify(self, NULL);
 1.6.96.1 13-Jan-2010  matt Deal with new cpu_identity()
 1.18 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.17 02-Jan-2008  ad Merge vmlocking2 to head.
 1.16 17-Oct-2007  garbled branches: 1.16.2; 1.16.4; 1.16.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.15 08-Oct-2007  ad Merge brelse() changes from the vmlocking branch.
 1.14 29-Jul-2007  ad branches: 1.14.4; 1.14.6; 1.14.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.13 05-Mar-2007  he branches: 1.13.2; 1.13.10; 1.13.12; 1.13.14;
Cast to char* before doing pointer arithmetic.
 1.12 25-Nov-2006  scw branches: 1.12.4;
Partition sizes are specified in terms of the physical sector size of the disk.
 1.11 25-Nov-2006  scw 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.10 11-Dec-2005  christos branches: 1.10.20; 1.10.22;
merge ktrace-lwp.
 1.9 09-Jun-2005  he branches: 1.9.2;
Adapt to compiling with -Wcast-qual by adding a const.
 1.8 10-May-2003  thorpej branches: 1.8.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.7 02-May-2003  dsl Change return type of readdisklabel() to const char *
I hope I've found all the correct places!
 1.6 05-Mar-2002  simonb Don't cast argument to ffs() to long.
Per discussion on port-alpha, noticed by Robert Elz.
 1.5 19-Feb-2002  wiz strategy should have an 'r'. Inspired by similar change in OpenBSD.
 1.4 02-Jan-2002  thorpej Need <sys/systm.h> for ffs() prototype (noticed by gcc 3.1).
 1.3 24-Aug-2001  simonb branches: 1.3.2; 1.3.6;
Whitespace nits.
 1.2 22-Aug-2001  thorpej Don't need to do the Alpha boot block checksum here :-)
 1.1 28-May-2001  thorpej branches: 1.1.2;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.1.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.3.6.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.3.6.3 28-Feb-2002  nathanw Catch up to -current.
 1.3.6.2 11-Jan-2002  nathanw More catchup.
 1.3.6.1 24-Aug-2001  nathanw file disksubr.c was added on branch nathanw_sa on 2002-01-11 23:37:53 +0000
 1.3.2.1 10-Oct-2001  fvdl Convert all remaining devices.
 1.8.2.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.9.2.4 21-Jan-2008  yamt sync with head
 1.9.2.3 27-Oct-2007  yamt sync with head.
 1.9.2.2 03-Sep-2007  yamt sync with head.
 1.9.2.1 30-Dec-2006  yamt sync with head.
 1.10.22.1 10-Dec-2006  yamt sync with head.
 1.10.20.1 12-Jan-2007  ad Sync with head.
 1.12.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.13.14.1 15-Aug-2007  skrll Sync with HEAD.
 1.13.12.1 07-Aug-2007  matt Sync with HEAD.
 1.13.10.2 16-Oct-2007  garbled Sync with HEAD
 1.13.10.1 03-Oct-2007  garbled Sync with HEAD
 1.13.2.2 09-Oct-2007  ad Sync with head.
 1.13.2.1 19-Aug-2007  ad - Back out the biodone() changes.
- Eliminate B_ERROR (from HEAD).
 1.14.8.1 14-Oct-2007  yamt sync with head.
 1.14.6.2 09-Jan-2008  matt sync with HEAD
 1.14.6.1 06-Nov-2007  matt sync with HEAD
 1.14.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.16.8.1 02-Jan-2008  bouyer Sync with HEAD
 1.16.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.16.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.17 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.16 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.15 20-Dec-2010  matt branches: 1.15.2; 1.15.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.14 14-Dec-2009  matt branches: 1.14.4;
Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.13 28-Apr-2008  martin branches: 1.13.18;
Remove clause 3 and 4 from TNF licenses
 1.12 03-Dec-2007  ad branches: 1.12.14; 1.12.16; 1.12.18;
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.11 21-Dec-2006  yamt branches: 1.11.6; 1.11.22; 1.11.24; 1.11.30;
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.10 10-Sep-2006  tsutsui branches: 1.10.2;
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.9 05-Sep-2006  gdamore branches: 1.9.2;
Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.8 15-Apr-2006  simonb Switch Algor port to MIPS generic soft-interrupts implementation.
XXX: Compile tested only.
 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 14-Jul-2003  lukem branches: 1.6.16;
add __KERNEL_RCSID()
 1.5 15-Jun-2001  thorpej branches: 1.5.8; 1.5.24;
Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.4 14-Jun-2001  thorpej Correct a comment.
 1.3 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.2 28-May-2001  thorpej D'oh, clear the soft interrupt bits in CAUSE *before* servicing
soft interrupts, rather than after, so that soft interrupts scheduled
by other soft interrupts don't get lost.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.5.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.24.1 03-Aug-2004  skrll Sync with HEAD
 1.5.8.2 15-Jun-2001  thorpej Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.5.8.1 15-Jun-2001  thorpej file interrupt.c was added on branch nathanw_sa on 2001-06-15 04:01:41 +0000
 1.6.16.3 07-Dec-2007  yamt sync with head
 1.6.16.2 30-Dec-2006  yamt 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.2 14-Sep-2006  yamt sync with head.
 1.7.8.1 24-May-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.2.2 12-Jan-2007  ad Sync with head.
 1.9.2.1 18-Nov-2006  ad Sync with head.
 1.10.2.1 22-Sep-2006  yamt fix softintr for following ports. (hopefully)
hpcmips
evbmips
algor
arc
ews4800mips
newsmips
 1.11.30.1 08-Dec-2007  mjf Sync with HEAD.
 1.11.24.1 09-Jan-2008  matt sync with HEAD
 1.11.22.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.11.6.1 03-Dec-2007  ad Sync with HEAD.
 1.12.18.2 11-Mar-2010  yamt sync with head
 1.12.18.1 16-May-2008  yamt sync with head.
 1.12.16.1 18-May-2008  yamt sync with head.
 1.12.14.1 02-Jun-2008  mjf Sync with HEAD.
 1.13.18.4 28-Feb-2010  matt #define __INTR_PRIVATE
 1.13.18.3 24-Feb-2010  matt Adapt algor to the new interrupt/spl scheme.
 1.13.18.2 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.13.18.1 31-Dec-2009  matt Use mips_page_physload and mips_init_lwp0_uarea.
 1.14.4.1 05-Mar-2011  rmind sync with head
 1.15.4.1 05-Mar-2011  bouyer Sync with HEAD
 1.15.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.8 09-Jun-2015  matt #include <mips/cpuregs.h>
 1.7 09-Jul-2011  matt branches: 1.7.12; 1.7.30;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.6 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.5 11-Dec-2005  christos branches: 1.5.74; 1.5.76; 1.5.78;
merge ktrace-lwp.
 1.4 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.3 22-Jun-2001  thorpej branches: 1.3.8; 1.3.24;
Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.2 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.3.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.24.1 03-Aug-2004  skrll Sync with HEAD
 1.3.8.2 22-Jun-2001  thorpej Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.3.8.1 22-Jun-2001  thorpej file led.c was added on branch nathanw_sa on 2001-06-22 06:02:55 +0000
 1.5.78.1 16-May-2008  yamt sync with head.
 1.5.76.1 18-May-2008  yamt sync with head.
 1.5.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.7.30.1 22-Sep-2015  skrll Sync with HEAD
 1.7.12.1 03-Dec-2017  jdolecek update from HEAD
 1.4 09-Jan-2008  tsutsui Fix another botch on migration to MI mips3_clock.c for algor in 2006:
- in algor_p????_cal_timer() functions, initialize ci_divisor_delay
and ci_cycles_per_hz values in curcpu() for MI mips3_clock.c:mips3_delay()
rather than obsolete and homegrown delay_divisor
- remove old _delay() stuff from locore_machdep.S
- make MI mips3_delay() work even before frequency values in curcpu()
are initialized

Now NetBSD/algor P5064 kernel works on gxemul.

While here, add a hack for emulators:
- ignore a measured CPU frequency if the value looks unlikely

Pullup request for netbsd-4 will be sent later.
 1.3 11-Dec-2005  christos branches: 1.3.24; 1.3.40; 1.3.50; 1.3.56; 1.3.64;
merge ktrace-lwp.
 1.2 31-May-2005  chs branches: 1.2.2;
remove vestigal {,e}intr{names,cnt} symbols now that vmstat doesn't need them.
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.24;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.24.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file locore_machdep.S was added on branch nathanw_sa on 2001-05-28 16:22:16 +0000
 1.2.2.1 21-Jan-2008  yamt sync with head
 1.3.64.1 10-Jan-2008  bouyer Sync with HEAD
 1.3.56.1 18-Feb-2008  mjf Sync with HEAD.
 1.3.50.1 23-Mar-2008  matt sync with HEAD
 1.3.40.1 03-Jun-2008  skrll Sync with netbsd-4.
 1.3.24.1 21-Jan-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1040):
sys/arch/algor/isa/mcclock_isa.c: revision 1.9
sys/arch/algor/algor/algor_p5064_intr.c: revision 1.18, 1.20 via patch
sys/arch/algor/algor/algor_p4032_intr.c: revision 1.15, 1.17 via patch
sys/arch/algor/algor/algor_p6032_intr.c: revision 1.12, 1.14 via patch
sys/arch/mips/mips/mips3_clock.c: revision 1.8, 1.9
sys/arch/algor/dev/mcclock_mainbus.c: revision 1.7
sys/arch/algor/algor/locore_machdep.S: revision 1.4
Fix botch on MI todr(9) migration of algor on September 2006:
- year0 should be 1980, not 80
- put a newline after MI mc146818_attach()
- call todr_attach(9)
- in algor_p????_cal_timer() functions, initialize ci_divisor_delay
and ci_cycles_per_hz values in curcpu() for MI mips3_clock.c:mips3_delay()
rather than obsolete and homegrown delay_divisor
- remove old _delay() stuff from locore_machdep.S
- make MI mips3_delay() work even before frequency values in curcpu()
are initialized
Now NetBSD/algor P5064 kernel works on gxemul.
While here, add a hack for emulators:
- ignore a measured CPU frequency if the value looks unlikely
 1.59 23-Jul-2025  andvar s/boto/boot/ in log message.
 1.58 05-Mar-2024  thorpej branches: 1.58.2;
Move the at-shutdown call to resettodr() from cpu_reboot() to kern_reboot().

It's a small step, but it's a step.
 1.57 17-Aug-2020  simonb Add some compile time asserts for endianness on boards/systems that
only support a single endianness.
 1.56 17-Aug-2020  mrg remove duplicate symbol now published in shared mips.
 1.55 22-Dec-2016  cherry switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.54 30-Jun-2015  matt branches: 1.54.2;
Use cpu_startup_common()
 1.53 24-Mar-2014  christos branches: 1.53.6;
use cpu_{g,s}etmodel
 1.52 02-Mar-2012  matt branches: 1.52.2; 1.52.4;
Remove conflicting/redundant common declarations.
 1.51 09-Jul-2011  matt branches: 1.51.2; 1.51.6;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.50 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.49 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.48 08-Feb-2011  rmind Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.47 14-Jan-2011  rmind branches: 1.47.2; 1.47.4;
Retire struct user, remove sys/user.h inclusions. Note sys/user.h header
as obsolete. Remove USER_TO_UAREA/UAREA_TO_USER macros.

Various #include fixes and review by matt@.
 1.46 15-Nov-2010  uebayasi curlwp needs sys/lwp.h.
 1.45 08-Feb-2010  joerg branches: 1.45.2;
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.44 14-Dec-2009  matt branches: 1.44.2;
Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.43 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.42 26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.41 30-Nov-2008  martin 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.40 12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.39 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.38 02-Jul-2008  ad branches: 1.38.2; 1.38.4; 1.38.10;
Replce exec_map with a pool. Proposed on tech-kern@, reviewed by chs@.
 1.37 28-Apr-2008  martin branches: 1.37.2; 1.37.4;
Remove clause 3 and 4 from TNF licenses
 1.36 17-Oct-2007  garbled branches: 1.36.16; 1.36.18; 1.36.20;
Merge the ppcoea-renovation branch to HEAD.

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

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

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.35 17-May-2007  yamt branches: 1.35.10;
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.34 05-Mar-2007  he branches: 1.34.2; 1.34.4; 1.34.10;
Cast to char* before doing pointer arithmetic.
 1.33 04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.32 22-Feb-2007  thorpej TRUE -> true, FALSE -> false
 1.31 09-Apr-2006  tsutsui branches: 1.31.14;
Remove declarations for cpu_model[] since it's in <sys/systm.h>.
 1.30 16-Feb-2006  thorpej branches: 1.30.2; 1.30.4; 1.30.6;
Remove the ugly algor_get_ethaddr() hack. We have a properties infrastructure
now, so use that to provide the Ethernet address of the built-in Ethernet.
XXX Still a little ugly in the tlp driver, but fixing that would require
XXX reworking the SROM usage in a broader sense.

While here, do the P4032 DMA window hack in device_register() as well.
 1.29 24-Dec-2005  perry branches: 1.29.2; 1.29.4; 1.29.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.28 11-Dec-2005  christos merge ktrace-lwp.
 1.27 25-Apr-2005  lukem branches: 1.27.2;
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.26 30-Dec-2003  pk branches: 1.26.8;
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.25 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.24 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.23 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.22 23-Jun-2003  he branches: 1.22.2;
Extend the P5064 and P6032 comcnattach() with a type argument as well,
I'm assuming these both use COM_TYPE_NORMAL.
 1.21 15-Jun-2003  fvdl Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
 1.20 14-Jun-2003  thorpej Also pass a type argument to comcnattach() and com_kgdb_attach().
comspeed() (and thus cominit()) may need this information.
 1.19 26-Apr-2003  ragge Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
 1.18 01-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
XXX Except for one place, which will require more work.
 1.17 17-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.16 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.15 04-Aug-2002  gmcgarry Merge cpu_sysctl() for all mips ports, based on powerpc and m68k precedent.

For now, only pmax implements CPU_BOOTED_KERNEL. Need to revisit.
 1.14 22-Nov-2001  simonb branches: 1.14.8;
<sys/sysctl.h> doesn't need to be after <uvm/uvm_extern.h> anymore, put
it with the other <sys/_foo_.h> include files.
 1.13 10-Sep-2001  chris branches: 1.13.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.12 22-Aug-2001  thorpej branches: 1.12.2;
Allow a keypress on the console to transition from "halted" to "returning
to monitor".
 1.11 25-Jun-2001  thorpej branches: 1.11.2;
Deal with different `memsize' convention on new PMON revs.
 1.10 22-Jun-2001  thorpej Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.9 14-Jun-2001  thorpej Add MEMSIZE and ETHADDR options, so that they can be set in
the kernel config file, in case you have a buggy PMON which
doesn't provide the environment variables to the kernel.
 1.8 14-Jun-2001  thorpej Initlialize PMON after configuring the console, so we can see
debugging info.
 1.7 14-Jun-2001  thorpej Oops, use the correct space tag when unmapping the RTC on the
P-4032 after calibrating the clock.
 1.6 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.5 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.4 31-May-2001  nisimura Fix minor typos.
 1.3 30-May-2001  lukem add missing #include "opt_kgdb.h"
 1.2 29-May-2001  thorpej Initialize DDB at boot time and break into it if the "d" argument
is specified to the kernel.

XXX PMON doen't load symbols for us -- need a dbsym(1) for ELF.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.11.2.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.11.2.3 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.11.2.2 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.11.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.12.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.13.4.6 05-Oct-2002  gmcgarry LWPify
 1.13.4.5 27-Aug-2002  nathanw Catch up to -current.
 1.13.4.4 13-Aug-2002  nathanw Catch up to -current.
 1.13.4.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.13.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.13.4.1 10-Sep-2001  nathanw file machdep.c was added on branch nathanw_sa on 2002-01-08 00:22:49 +0000
 1.14.8.1 30-Aug-2002  gehenna catch up with -current.
 1.22.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.22.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.22.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.22.2.1 03-Aug-2004  skrll Sync with HEAD
 1.26.8.1 29-Apr-2005  kent sync with -current
 1.27.2.3 03-Sep-2007  yamt sync with head.
 1.27.2.2 26-Feb-2007  yamt sync with head.
 1.27.2.1 21-Jun-2006  yamt sync with head.
 1.29.6.1 22-Apr-2006  simonb Sync with head.
 1.29.4.1 09-Sep-2006  rpaulo sync with head
 1.29.2.1 18-Feb-2006  yamt sync with head.
 1.30.6.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.30.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.30.2.1 11-Apr-2006  yamt sync with head
 1.31.14.3 18-Apr-2007  ad - Further adaptations to MIPS for the yamt-idlelwp branch.
- Make curlwp a register variable on MIPS.
 1.31.14.2 12-Mar-2007  rmind Sync with HEAD.
 1.31.14.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.34.10.1 22-May-2007  matt Update to HEAD.
 1.34.4.1 11-Jul-2007  mjf Sync with head.
 1.34.2.1 27-May-2007  ad Sync with head.
 1.35.10.1 06-Nov-2007  matt sync with HEAD
 1.36.20.3 11-Mar-2010  yamt sync with head
 1.36.20.2 04-May-2009  yamt sync with head.
 1.36.20.1 16-May-2008  yamt sync with head.
 1.36.18.1 18-May-2008  yamt sync with head.
 1.36.16.3 17-Jan-2009  mjf Sync with HEAD.
 1.36.16.2 02-Jul-2008  mjf Sync with HEAD.
 1.36.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.37.4.1 03-Jul-2008  simonb Sync with head.
 1.37.2.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.38.10.8 14-Feb-2012  matt mem_cluster_cnt on mips is now a u_int.
 1.38.10.7 21-Mar-2010  cliff mips_vector_init now takes an argument to specify splsw.
NULL specifies use the default 'std_splsw'
 1.38.10.6 24-Feb-2010  matt Adapt algor to the new interrupt/spl scheme.
 1.38.10.5 01-Feb-2010  matt fix fallout from frame/trapframe merger.
 1.38.10.4 31-Dec-2009  matt Use mips_page_physload and mips_init_lwp0_uarea.
 1.38.10.3 16-Sep-2009  matt Deal with argv on LP64
 1.38.10.2 16-Sep-2009  matt Add ELF64 config for P5064 and do the LP64 dance in mach_init. Deal with
envp being a list of 32bit pointers. XXX still need to do argv.
 1.38.10.1 26-Aug-2009  matt Fixup (all but mipsco) to deal the new realities in mipsland.
 1.38.4.1 19-Jan-2009  skrll Sync with HEAD.
 1.38.2.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.44.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.45.2.1 05-Mar-2011  rmind sync with head
 1.47.4.2 05-Mar-2011  bouyer Sync with HEAD
 1.47.4.1 17-Feb-2011  bouyer Sync with HEAD
 1.47.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.51.6.3 06-Mar-2012  mrg sync to -current
 1.51.6.2 06-Mar-2012  mrg sync to -current
 1.51.6.1 04-Mar-2012  mrg sync to latest -current.
 1.51.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.51.2.1 17-Apr-2012  yamt sync with head
 1.52.4.1 18-May-2014  rmind sync with head
 1.52.2.2 03-Dec-2017  jdolecek update from HEAD
 1.52.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.53.6.2 05-Feb-2017  skrll Sync with HEAD
 1.53.6.1 22-Sep-2015  skrll Sync with HEAD
 1.54.2.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.58.2.1 02-Aug-2025  perseant Sync with HEAD
 1.2 27-Jan-2019  pgoyette branches: 1.2.4;
Merge the [pgoyette-compat] branch
 1.1 24-Sep-2018  pgoyette branches: 1.1.2;
file netbsd32_machdep.c was initially added on branch pgoyette-compat.
 1.1.2.1 24-Sep-2018  pgoyette Work in progress
 1.2.4.2 10-Jun-2019  christos Sync with HEAD
 1.2.4.1 27-Jan-2019  christos file netbsd32_machdep.c was added on branch phil-wifi on 2019-06-10 22:05:45 +0000
 1.2 27-Jan-2019  pgoyette branches: 1.2.4;
Merge the [pgoyette-compat] branch
 1.1 24-Sep-2018  pgoyette branches: 1.1.2;
file netbsd32_machdep_16.c was initially added on branch pgoyette-compat.
 1.1.2.1 24-Sep-2018  pgoyette Work in progress
 1.2.4.2 10-Jun-2019  christos Sync with HEAD
 1.2.4.1 27-Jan-2019  christos file netbsd32_machdep_16.c was added on branch phil-wifi on 2019-06-10 22:05:45 +0000
 1.6 14-Dec-2009  matt Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.5 28-Apr-2008  martin branches: 1.5.18;
Remove clause 3 and 4 from TNF licenses
 1.4 11-Dec-2005  christos branches: 1.4.74; 1.4.76; 1.4.78;
merge ktrace-lwp.
 1.3 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.2 14-Jun-2001  thorpej branches: 1.2.8; 1.2.24;
Insert some debugging code, conditional on PMON_DEBUG.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.24.1 03-Aug-2004  skrll Sync with HEAD
 1.2.8.2 14-Jun-2001  thorpej Insert some debugging code, conditional on PMON_DEBUG.
 1.2.8.1 14-Jun-2001  thorpej file pmon.c was added on branch nathanw_sa on 2001-06-14 15:28:57 +0000
 1.4.78.2 11-Mar-2010  yamt sync with head
 1.4.78.1 16-May-2008  yamt sync with head.
 1.4.76.1 18-May-2008  yamt sync with head.
 1.4.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.18.1 16-Sep-2009  matt Add ELF64 config for P5064 and do the LP64 dance in mach_init. Deal with
envp being a list of 32bit pointers. XXX still need to do argv.
 1.2 13-Mar-2002  simonb All the mips ports had an identical procfs_machdep.c, so use a common
file under arch/mips/mips.
 1.1 28-May-2001  thorpej branches: 1.1.2; 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.8.1 28-May-2001  nathanw file procfs_machdep.c was added on branch nathanw_sa on 2002-04-01 07:38:47 +0000
 1.1.2.1 16-Mar-2002  jdolecek Catch up with -current.
 1.2 06-Jan-2003  lukem Rework how KERNOBJDIR functions; now it's always determined with
cd ${KERNSRCDIR}/${KERNARCHDIR}/compile && ${PRINTOBJDIR}
This is far simpler than the previous system, and more robust with
objdirs built via BSDOBJDIR.

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

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

Per lengthy discussion with Andrew Brown.
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 07-Jan-2003  thorpej Sync with HEAD.
 1.1.8.1 28-May-2001  thorpej file .keep_me was added on branch nathanw_sa on 2003-01-07 20:47:12 +0000
 1.1 06-Jan-2003  lukem branches: 1.1.2;
Rework how KERNOBJDIR functions; now it's always determined with
cd ${KERNSRCDIR}/${KERNARCHDIR}/compile && ${PRINTOBJDIR}
This is far simpler than the previous system, and more robust with
objdirs built via BSDOBJDIR.

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

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

Per lengthy discussion with Andrew Brown.
 1.1.2.2 07-Jan-2003  thorpej Sync with HEAD.
 1.1.2.1 06-Jan-2003  thorpej file Makefile was added on branch nathanw_sa on 2003-01-07 20:47:13 +0000
 1.84 07-Jun-2022  martin This kernels have no midi configured, so comment out pseudo-device sequencer
 1.83 29-Jun-2021  nia Remove uscanner(4) driver

This exists for compatibility with a Linux interface which was apparently
deprecated in Linux 2.6. There are various mailing list threads going
back to 2004 where the usefulness of this driver is discussed, but
the conclusion is that scanner software has all moved to using ugen(4)
instead, and enabling this driver will not help you scan things.
 1.82 16-May-2020  maya branches: 1.82.6;
Remove uyap, USB YAP phone firmware loader.

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

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

Proposed with no objections on netbsd-users on 13 April 2020
 1.81 25-Jan-2020  thorpej Retire "le* at pci?" from the shipped kernel configs:
- If the config had both an le@pci and a pcn, simply remove le@pci
(pcn would match at a higher priority anyway).
- If the config had le@pci enabled, but no pcn, change le@pci to pcn.
- If the config had le@pci commented out, but no pcn, change le@pci
to pcn and leave it commented out.

The pcn driver supports more chips than le@pci and does DMA directly
to/from mbufs rather than memory copies.
 1.80 20-Jan-2020  thorpej Remove FDDI support.
 1.79 13-Apr-2019  isaki branches: 1.79.6;
Add drvctl to kernel which has audio device.
audiocfg(1) requires drvctl(4).
 1.78 06-Feb-2019  rin Add ure(4) to kernel config files. Also add PHY drivers where necessary.
 1.77 06-Sep-2018  maxv Retire the 'midway' driver. Discussed on tech-net@ recently and also three
years ago, part of removing the network ATM code.
 1.76 25-Aug-2018  rin Add (commented out) mue(4) to where appropriate.
Also add MII/PHY drivers for USB NICs if missing.
 1.75 01-Aug-2018  maxv Unreference IPF/PF from all the config files, and enable NPF instead when
wanted. This also fixes some inconsistencies I saw in several files (eg
IPF options while IPF was not compiled, IPF+PF enabled by default, etc).
 1.74 14-Sep-2017  mrg branches: 1.74.2; 1.74.4;
clean up COMPAT_* options for native netbsd code:
- new series of files that are useful for saying "i want everything
since netbsd 1.4", etc.
- use the fact COMPAT_* options have future dependancies to remove
many redundant options.

removes about 3000 lines total across kernel configuration files.
tested about 30 random kernels in the changed list.
 1.73 21-Aug-2015  uebayasi Add `pseudo-device ksyms' where `options DDB' is used, because
config(1)/config(5) can't handle module dependency correctly at this
moment.

(This is another proof that shared file definition (`file xxx.c a|b')
is a bad idea.)
 1.72 23-Aug-2014  dholland branches: 1.72.2;
Systematize (and in many cases, fix) the comments on options COMPAT_NN.

There are quite a few configs that are missing some COMPAT_NN options
in ways that don't make sense; this should probably get cleaned up
too, but for the time being I've not added or removed anything.
 1.71 17-Aug-2014  joerg Reorganize symbol table embedding. The existing option SYMTAB_SPACE is
replaced by the make option COPY_SYMTAB set to any value. The copy of
the symbol table is no longer put into a buffer in kern_ksyms.o, but a
small helper object. This object is build first with a dummy size, then
the kernel is linked to compute the real dimension of the symbol table
buffer. After that, the helper object is rebuild and the kernel linked
again.
 1.70 20-Jul-2014  alnsn Add commented out bpfjit options to mips kernels.
While here, add 2 missing RCS ids.
 1.69 05-Jun-2013  christos branches: 1.69.6;
remove obsolete networking options
 1.68 27-Apr-2013  christos more bogus number removal
 1.67 27-Apr-2013  christos the bogus number police
 1.66 27-Apr-2013  christos remove confusing numeric locators where they are unused.
 1.65 02-Mar-2013  christos Under FAST_IPSEC, IPSEC_ESP is mandatory; GC it.
 1.64 17-Aug-2012  abs branches: 1.64.2;
Update all kernel configs mentioning WSEMUL_* but not already including
WSDISPLAY_COMPAT_USL using the following rules:
- If WSEMUL_ is commented out, add commented out out WSDISPLAY_COMPAT_USL
- If INSTALL or obviously memory constrained, add WSDISPLAY_DEFAULTSCREENS=1
and commented out WSDISPLAY_COMPAT_USL
- Otherwise add WSDISPLAY_COMPAT_USL

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

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

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

On 5 June 2012 09:47, David Brownlee <abs@absd.org> wrote:
> wsconscfg(8) requires WSDISPLAY_COMPAT_USL in order to switch virtual
> terminals.
>
> Except when in an exceptionally memory or space constrained
> environment (INSTALL being the obvious case), is there any reason why
> all GENERIC and GENERIC-like kernels which have wscons enabled
> shouldn't also have WSDISPLAY_COMPAT_USL?
 1.63 18-Dec-2011  dholland WABPL is no longer considered experimental (has not been for some time)
so update its comment in config files.
 1.62 15-Dec-2011  kiyohara SYMTAB_SPACE.
 1.61 30-Nov-2011  kiyohara branches: 1.61.2;
Increase SYMTAB_SPACE for evbmips.
 1.60 22-Nov-2011  tls The rnd pseudo-device is not really optional, because it is in the same
source file as the entropy-pool code itself. Move it to std. This
will be cleaned up more when I split the sources up as they should be.

This fixes build breaks on several ports. Thanks to Havard Eidnes for
pointing them out.
 1.59 17-Jul-2011  dyoung branches: 1.59.2;
Increase SYMTAB_SPACE. How do we automate this?
 1.58 09-Jul-2011  dyoung Increase SYMTAB_SPACE, again. Why it should be necessary over and over,
I do not know.
 1.57 30-Jun-2011  wiz dependant -> dependent
 1.56 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.55 21-Jan-2011  he Bump SYMTAB_SPACE so that it fits again.
 1.54 23-Nov-2010  hannken branches: 1.54.2; 1.54.4;
Remove unused count from pseudo-device md.
 1.53 16-Apr-2010  pooka Remove unused count (invariably "4") from pseudo-device fss.
 1.52 07-Mar-2010  plunky branches: 1.52.2;
add uhso(4) device where appropriate
- follow the lead of other USB driver declarations wrt commented out
- (cross-)build tested all these kernels
 1.51 06-Mar-2009  joerg branches: 1.51.2;
Remove SHMMAXPGS from all kernel configs. Dynamically compute the
initial limit as 1/4 of the physical memory. Ensure the limit is at
least 1024 pages, the old default on most platforms.
 1.50 24-Nov-2008  ad branches: 1.50.4;
Remove softdep, pass 1. We are focused on improving journalling.

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

Proposed on tech-kern@.
 1.48 27-Sep-2008  he branches: 1.48.2; 1.48.8;
Bump SYMTAB_SPACE so that the contents fits again.
 1.47 31-Jul-2008  simonb Add "options WAPBL" to standard GENERIC/INSTALL type configs.
 1.46 30-May-2008  tsutsui branches: 1.46.4;
Add options COMPAT_40 to files which have options COMPAT_30.
 1.45 09-Jan-2008  tsutsui branches: 1.45.6; 1.45.8; 1.45.10; 1.45.12;
Add options SYMTAB_SPACE for ksyms(4) and ddb(4).
 1.44 14-Mar-2007  drochner branches: 1.44.16; 1.44.22; 1.44.28;
It doesn't make sense to specify "configuration" and "interface"
locators for uhub because a hub can't have sub-devices.
This might be sanity-checked eventually.
Same for ubt now after the change to device attachment.
 1.43 27-Sep-2006  manu branches: 1.43.4; 1.43.8; 1.43.10;
- Document COMPAT_15 as doing nothing
- Add COMPAT_15 to all the kernel that had COMPAT_14, for the sake of coherency
- Remove the only occurences of #ifdef COMPAT_15 in the tree: for the ARM
ports, COMPAT_15 was always used in conjunction with EXEC_AOUT. Only EXEC_AOUT
matters here.

This address kern/18407
 1.42 14-Aug-2006  skrll branches: 1.42.2; 1.42.4;
s/adpater/adapter/

Prompted by PR/34195
 1.41 28-Mar-2006  pavel Add stf to all kernel configs which have INET6 and gif, except the INSTALL
ones and those for specific machines of developers. PR 32304.

OK'ed by rpaulo.

N.B. stf is a cloning device, so it still must be enabled by
"ifconfig stf0 create".
 1.40 05-Feb-2006  cube branches: 1.40.2; 1.40.4; 1.40.6;
Remove 'count' argument for pseudo-devices that ignore it
(vnd, bpfilter, ppp, gif, gre, tun, sl, strip, faith, stf).
 1.39 04-Feb-2006  rpaulo bpfilter doesn't accept count anymore.
 1.38 07-Dec-2005  tsutsui branches: 1.38.2; 1.38.4; 1.38.6;
Adjust comments for options FFS_NO_SNAPSHOT.

XXX: This option should be mentioned in options(4).
 1.37 19-Aug-2005  christos Enable ptyfs by default on the non-install and non small/tiny/ramdisk kernels
 1.36 19-Aug-2005  christos 64 bit inode changes.
 1.35 05-Aug-2005  skrll Add (commented out) ucycom to various kernel configs.
 1.34 31-Jul-2005  yamt revert "defflag VMSWAP" changes for now.
there seems to be far more people who don't want to edit
their kernel config files than i thought.
 1.33 30-Jul-2005  yamt add "options VMSWAP" to non INSTALL kernels.
 1.32 07-Jul-2005  tron Add (commented out) IPSEC_NAT_T option.
 1.31 31-May-2005  tron branches: 1.31.2;
Remove attachment for the piixide(4) driver from all non-x86 kernel
configurations because Intel IDE disk controllers only exist as part
of Intel chipsets for x86 systems.
 1.30 15-Apr-2005  itohy Add ukyopon(4).
 1.29 25-Feb-2005  simonb branches: 1.29.2;
Add COMPAT_20 (and COMPAT_16 in some cases) to kernel config files
that didn't have those options but had other earlier compat options.
 1.28 18-Feb-2005  dsl Invert FFS_SNAPSHOT to FFS_NO_SNAPSHOT
 1.27 31-Jan-2005  hannken Add file system snapshots to kernel configs.

- Ffs internal snapshots get compiled in unconditionally.

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

Reviewed by: Jason Thorpe <thorpej@netbsd.org>
 1.26 24-Nov-2004  bouyer branches: 1.26.4; 1.26.6;
pdcsata(4), a driver for the Promise SATA150 (aka PDC203xx) serie of
controllers. Tested with a PDC20375 (2 SATA, one PATA) controller on sparc64.
Added to all kernel config file which had pdcide(4).
 1.25 10-Nov-2004  christos Add COMPAT_BSDPTY to the rest of the config files.
 1.24 23-Oct-2004  augustss s/uax/axe/
 1.23 15-Jul-2004  atatat Add "options SYSCTL_INCLUDE_DESCR" to a lot of configs, but commented
out in most of them.
 1.22 13-Feb-2004  wiz branches: 1.22.2;
RealTek -> Realtek.
 1.21 14-Dec-2003  thorpej Split the Intel i31244 SATA controller ("Artisea") driver out of piixide
into its own driver (artsata).
 1.20 13-Dec-2003  thorpej Split out the Silicon Image SATALink support into its own driver,
"satalink".
 1.19 13-Dec-2003  sekiya Remove MIPS3_L2CACHE_ABSENT.
 1.18 25-Oct-2003  simonb Add COMPAT_16 where missing.
Remove the unused COMPAT_15.
Comment out/remove COMPAT_* from INSTALL kernels.
 1.17 18-Oct-2003  lukem Use one 'atabus* at ata?' instead of multiple 'atabus* at FOOide? channel ?'
Use 'atapibus* at atapi?' instead of 'atapibus* at atabus?'
 1.16 08-Oct-2003  bouyer Add new per-chip pciide drivers.
 1.15 08-Oct-2003  bouyer Add atabus
 1.14 10-Apr-2003  christos branches: 1.14.2;
Bye Bye UCONSOLE
 1.13 16-Feb-2003  augustss Add uax(4) (and url(4) in some cases).
 1.12 14-Oct-2002  elric Added commented out cgd(4)s to GENERIC configs.
 1.11 22-Jul-2002  wiz ADW_*_DISABLE -> SCSI_ADW_*_DISABLE in comments.
 1.10 17-Jun-2002  lukem Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
 1.9 25-Apr-2002  atatat branches: 1.9.2; 1.9.4;
Add the INCLUDE_CONFIG_FILE option to all config files. In config
files that are generic (ie, GENERIC, GENERICSBC, GENERIC32, ALL, or
ALPHA), it is uncommented.
 1.8 17-Apr-2002  mycroft Switch from de to tlp by default.
 1.7 10-Feb-2002  wiz Update description for icsphy.
 1.6 27-Jan-2002  jdolecek add options PIPE_SOCKETPAIR to individual kernel configs
the option is commented out on everything but kernels I was able
to recognize as INSTALL-like or ones for small memory machines
 1.5 28-Dec-2001  augustss Update for new uhidev device attachment.
 1.4 20-Nov-2001  lukem cleanup:
options SPACE TAB
makeoptions TAB
psuedo-device TAB
remove trailing whitespace
replace multiple spaces -> tabs
options "FOO" -> options FOO
options "FOO=bar" -> options FOO=bar
options "FOO=\"bar\"" -> options FOO="\"bar\""
 1.3 07-Jul-2001  tsutsui branches: 1.3.2; 1.3.8;
Remove (commented out) ncr* at pci? lines.
 1.2 22-Jun-2001  thorpej Add commented-out examples for how to use MEMSIZE and ETHADDR options
in the event that you need them (really old PMON versions). Add FDESC.
Comment out SCSI-related stuff until I work out why the system goes into
outer orbit when its enabled.
 1.1 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.3.8.6 18-Oct-2002  nathanw Catch up to -current.
 1.3.8.5 01-Aug-2002  nathanw Catch up to -current.
 1.3.8.4 20-Jun-2002  nathanw Catch up to -current.
 1.3.8.3 28-Feb-2002  nathanw Catch up to -current.
 1.3.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.3.8.1 07-Jul-2001  nathanw file P4032 was added on branch nathanw_sa on 2002-01-08 00:22:50 +0000
 1.3.2.5 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.3.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.3.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.3.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.3.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.9.4.2 26-Oct-2005  jmc Pullup (via patch) requested in ticket #5754 by itohy

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

Hi Perry!
 1.14.2.7 04-Feb-2005  skrll Sync with HEAD.
 1.14.2.6 29-Nov-2004  skrll Sync with HEAD.
 1.14.2.5 14-Nov-2004  skrll Sync with HEAD.
 1.14.2.4 02-Nov-2004  skrll Sync with HEAD.
 1.14.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.14.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.14.2.1 03-Aug-2004  skrll Sync with HEAD
 1.22.2.1 15-Jul-2004  he branches: 1.22.2.1.2;
Pull up revision 1.23 (requested by atatat in ticket #663):
Add "options SYSCTL_INCLUDE_DESCR" to a lot of configurations,
but commented out in most of them.
 1.22.2.1.2.2 21-Jul-2005  riz Pull up revision 1.30 (requested by itohy in ticket #1430):
Add ukyopon(4).
 1.22.2.1.2.1 02-Apr-2005  he Pull up revision 1.26 (requested by bouyer in ticket #1019):
Add pdcsata(4), a driver for the Promise SATA150 (aka PDC203xx) series of
controllers.
 1.26.6.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.26.6.1 12-Feb-2005  yamt sync with head.
 1.26.4.1 29-Apr-2005  kent sync with -current
 1.29.2.3 18-Jul-2005  riz Pull up revision 1.32 (requested by tron in ticket #566):
Add (commented out) IPSEC_NAT_T option.
 1.29.2.2 01-Jun-2005  riz Pull up revision 1.31 (requested by tron in ticket #362):
Remove attachment for the piixide(4) driver from all non-x86 kernel
configurations because Intel IDE disk controllers only exist as part
of Intel chipsets for x86 systems.
 1.29.2.1 17-Apr-2005  tron Pull up revision 1.30 (requested by itohy in ticket #160):
Add ukyopon(4).
 1.31.2.4 21-Jan-2008  yamt sync with head
 1.31.2.3 03-Sep-2007  yamt sync with head.
 1.31.2.2 30-Dec-2006  yamt sync with head.
 1.31.2.1 21-Jun-2006  yamt sync with head.
 1.38.6.1 22-Apr-2006  simonb Sync with head.
 1.38.4.1 09-Sep-2006  rpaulo sync with head
 1.38.2.1 18-Feb-2006  yamt sync with head.
 1.40.6.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.40.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.40.2.2 03-Sep-2006  yamt sync with head.
 1.40.2.1 01-Apr-2006  yamt sync with head.
 1.42.4.1 22-Oct-2006  yamt sync with head
 1.42.2.1 18-Nov-2006  ad Sync with head.
 1.43.10.1 11-Jul-2007  mjf Sync with head.
 1.43.8.1 10-Apr-2007  ad Sync with head.
 1.43.4.1 24-Mar-2007  yamt sync with head.
 1.44.28.1 10-Jan-2008  bouyer Sync with HEAD
 1.44.22.1 18-Feb-2008  mjf Sync with HEAD.
 1.44.16.1 23-Mar-2008  matt sync with HEAD
 1.45.12.3 10-Oct-2008  skrll Sync with HEAD.
 1.45.12.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.45.12.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.45.10.3 11-Aug-2010  yamt sync with head.
 1.45.10.2 11-Mar-2010  yamt sync with head
 1.45.10.1 04-May-2009  yamt sync with head.
 1.45.8.1 04-Jun-2008  yamt sync with head
 1.45.6.4 17-Jan-2009  mjf Sync with HEAD.
 1.45.6.3 05-Oct-2008  mjf Sync with HEAD.
 1.45.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.45.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.46.4.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.46.4.1 19-Oct-2008  haad Sync with HEAD.
 1.48.8.1 24-Feb-2010  matt Adapt algor to the new interrupt/spl scheme.
 1.48.2.2 28-Apr-2009  skrll Sync with HEAD.
 1.48.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.50.4.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.51.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.52.2.2 05-Mar-2011  rmind sync with head
 1.52.2.1 30-May-2010  rmind sync with head
 1.54.4.2 05-Mar-2011  bouyer Sync with HEAD
 1.54.4.1 08-Feb-2011  bouyer Sync with HEAD
 1.54.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.59.2.3 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.59.2.2 30-Oct-2012  yamt sync with head
 1.59.2.1 17-Apr-2012  yamt sync with head
 1.61.2.1 18-Feb-2012  mrg merge to -current.
 1.64.2.3 03-Dec-2017  jdolecek update from HEAD
 1.64.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.64.2.1 23-Jun-2013  tls resync from head
 1.69.6.1 10-Aug-2014  tls Rebase.
 1.72.2.1 22-Sep-2015  skrll Sync with HEAD
 1.74.4.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.74.4.1 10-Jun-2019  christos Sync with HEAD
 1.74.2.2 30-Sep-2018  pgoyette Ssync with HEAD
 1.74.2.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.79.6.1 25-Jan-2020  ad Sync with head.
 1.82.6.1 01-Aug-2021  thorpej Sync with HEAD.
 1.96 07-Jun-2022  martin This kernels have no midi configured, so comment out pseudo-device sequencer
 1.95 20-Aug-2021  andvar fix various typos in comments and log messages.
 1.94 29-Jun-2021  nia Remove uscanner(4) driver

This exists for compatibility with a Linux interface which was apparently
deprecated in Linux 2.6. There are various mailing list threads going
back to 2004 where the usefulness of this driver is discussed, but
the conclusion is that scanner software has all moved to using ugen(4)
instead, and enabling this driver will not help you scan things.
 1.93 16-May-2020  maya branches: 1.93.6;
Remove uyap, USB YAP phone firmware loader.

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

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

Proposed with no objections on netbsd-users on 13 April 2020
 1.92 25-Jan-2020  thorpej Retire "le* at pci?" from the shipped kernel configs:
- If the config had both an le@pci and a pcn, simply remove le@pci
(pcn would match at a higher priority anyway).
- If the config had le@pci enabled, but no pcn, change le@pci to pcn.
- If the config had le@pci commented out, but no pcn, change le@pci
to pcn and leave it commented out.

The pcn driver supports more chips than le@pci and does DMA directly
to/from mbufs rather than memory copies.
 1.91 20-Jan-2020  thorpej Remove FDDI support.
 1.90 13-Apr-2019  isaki branches: 1.90.6;
Add drvctl to kernel which has audio device.
audiocfg(1) requires drvctl(4).
 1.89 06-Feb-2019  rin Add ure(4) to kernel config files. Also add PHY drivers where necessary.
 1.88 06-Sep-2018  maxv Retire the 'midway' driver. Discussed on tech-net@ recently and also three
years ago, part of removing the network ATM code.
 1.87 25-Aug-2018  rin Add (commented out) mue(4) to where appropriate.
Also add MII/PHY drivers for USB NICs if missing.
 1.86 01-Aug-2018  maxv Unreference IPF/PF from all the config files, and enable NPF instead when
wanted. This also fixes some inconsistencies I saw in several files (eg
IPF options while IPF was not compiled, IPF+PF enabled by default, etc).
 1.85 14-Sep-2017  mrg branches: 1.85.2; 1.85.4;
clean up COMPAT_* options for native netbsd code:
- new series of files that are useful for saying "i want everything
since netbsd 1.4", etc.
- use the fact COMPAT_* options have future dependancies to remove
many redundant options.

removes about 3000 lines total across kernel configuration files.
tested about 30 random kernels in the changed list.
 1.84 13-Dec-2016  christos wildcard speaker attachments, now that we can handle many of them.
 1.83 21-Aug-2015  uebayasi branches: 1.83.2;
Add `pseudo-device ksyms' where `options DDB' is used, because
config(1)/config(5) can't handle module dependency correctly at this
moment.

(This is another proof that shared file definition (`file xxx.c a|b')
is a bad idea.)
 1.82 23-Aug-2014  dholland branches: 1.82.2;
Systematize (and in many cases, fix) the comments on options COMPAT_NN.

There are quite a few configs that are missing some COMPAT_NN options
in ways that don't make sense; this should probably get cleaned up
too, but for the time being I've not added or removed anything.
 1.81 17-Aug-2014  joerg Reorganize symbol table embedding. The existing option SYMTAB_SPACE is
replaced by the make option COPY_SYMTAB set to any value. The copy of
the symbol table is no longer put into a buffer in kern_ksyms.o, but a
small helper object. This object is build first with a dummy size, then
the kernel is linked to compute the real dimension of the symbol table
buffer. After that, the helper object is rebuild and the kernel linked
again.
 1.80 20-Jul-2014  alnsn Add commented out bpfjit options to mips kernels.
While here, add 2 missing RCS ids.
 1.79 05-Jun-2013  christos branches: 1.79.6;
remove obsolete networking options
 1.78 27-Apr-2013  christos more bogus number removal
 1.77 27-Apr-2013  christos the bogus number police
 1.76 27-Apr-2013  christos remove confusing numeric locators where they are unused.
 1.75 02-Mar-2013  christos Under FAST_IPSEC, IPSEC_ESP is mandatory; GC it.
 1.74 13-Oct-2012  riz Bump SYMTAB_SPACE 475000->485000.
 1.73 17-Aug-2012  abs branches: 1.73.2;
Update all kernel configs mentioning WSEMUL_* but not already including
WSDISPLAY_COMPAT_USL using the following rules:
- If WSEMUL_ is commented out, add commented out out WSDISPLAY_COMPAT_USL
- If INSTALL or obviously memory constrained, add WSDISPLAY_DEFAULTSCREENS=1
and commented out WSDISPLAY_COMPAT_USL
- Otherwise add WSDISPLAY_COMPAT_USL

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

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

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

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

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

This fixes build breaks on several ports. Thanks to Havard Eidnes for
pointing them out.
 1.68 17-Jul-2011  dyoung branches: 1.68.2;
Increase SYMTAB_SPACE. How do we automate this?
 1.67 09-Jul-2011  dyoung Increase SYMTAB_SPACE, again. Why it should be necessary over and over,
I do not know.
 1.66 01-Jul-2011  dyoung Increase SYMTAB_SPACE.
 1.65 30-Jun-2011  wiz dependant -> dependent
 1.64 25-May-2011  dyoung Increase SYMTAB_SPACE.
 1.63 07-Mar-2011  jakllsch Bump SYMTAB_SPACE.
 1.62 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.61 23-Nov-2010  hannken branches: 1.61.2; 1.61.4;
Remove unused count from pseudo-device md.
 1.60 16-Apr-2010  pooka Remove unused count (invariably "4") from pseudo-device fss.
 1.59 07-Mar-2010  plunky branches: 1.59.2;
add uhso(4) device where appropriate
- follow the lead of other USB driver declarations wrt commented out
- (cross-)build tested all these kernels
 1.58 19-Feb-2010  he Bump SYMTAB_SPACE so that it fits again.
 1.57 06-Mar-2009  joerg branches: 1.57.2;
Remove SHMMAXPGS from all kernel configs. Dynamically compute the
initial limit as 1/4 of the physical memory. Ensure the limit is at
least 1024 pages, the old default on most platforms.
 1.56 24-Nov-2008  ad branches: 1.56.4;
Remove softdep, pass 1. We are focused on improving journalling.

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

Proposed on tech-kern@.
 1.54 31-Jul-2008  simonb branches: 1.54.2; 1.54.8;
Add "options WAPBL" to standard GENERIC/INSTALL type configs.
 1.53 30-May-2008  tsutsui branches: 1.53.4;
Add options COMPAT_40 to files which have options COMPAT_30.
 1.52 11-May-2008  he Bump SYMTAB_SPACE so it fits again.
 1.51 09-Jan-2008  tsutsui branches: 1.51.6; 1.51.8; 1.51.10; 1.51.12;
Add options SYMTAB_SPACE for ksyms(4) and ddb(4).
 1.50 14-Mar-2007  drochner branches: 1.50.16; 1.50.22; 1.50.28;
It doesn't make sense to specify "configuration" and "interface"
locators for uhub because a hub can't have sub-devices.
This might be sanity-checked eventually.
Same for ubt now after the change to device attachment.
 1.49 27-Sep-2006  manu branches: 1.49.4; 1.49.8; 1.49.10;
- Document COMPAT_15 as doing nothing
- Add COMPAT_15 to all the kernel that had COMPAT_14, for the sake of coherency
- Remove the only occurences of #ifdef COMPAT_15 in the tree: for the ARM
ports, COMPAT_15 was always used in conjunction with EXEC_AOUT. Only EXEC_AOUT
matters here.

This address kern/18407
 1.48 14-Aug-2006  skrll branches: 1.48.2; 1.48.4;
s/adpater/adapter/

Prompted by PR/34195
 1.47 28-Mar-2006  pavel Add stf to all kernel configs which have INET6 and gif, except the INSTALL
ones and those for specific machines of developers. PR 32304.

OK'ed by rpaulo.

N.B. stf is a cloning device, so it still must be enabled by
"ifconfig stf0 create".
 1.46 05-Feb-2006  cube branches: 1.46.2; 1.46.4; 1.46.6;
Remove 'count' argument for pseudo-devices that ignore it
(vnd, bpfilter, ppp, gif, gre, tun, sl, strip, faith, stf).
 1.45 04-Feb-2006  rpaulo bpfilter doesn't accept count anymore.
 1.44 07-Dec-2005  tsutsui branches: 1.44.2; 1.44.4; 1.44.6;
Adjust comments for options FFS_NO_SNAPSHOT.

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

- Ffs internal snapshots get compiled in unconditionally.

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

Reviewed by: Jason Thorpe <thorpej@netbsd.org>
 1.31 24-Nov-2004  bouyer branches: 1.31.4; 1.31.6;
pdcsata(4), a driver for the Promise SATA150 (aka PDC203xx) serie of
controllers. Tested with a PDC20375 (2 SATA, one PATA) controller on sparc64.
Added to all kernel config file which had pdcide(4).
 1.30 10-Nov-2004  christos Add COMPAT_BSDPTY to the rest of the config files.
 1.29 23-Oct-2004  augustss s/uax/axe/
 1.28 15-Jul-2004  atatat Add "options SYSCTL_INCLUDE_DESCR" to a lot of configs, but commented
out in most of them.
 1.27 13-Feb-2004  wiz branches: 1.27.2;
RealTek -> Realtek.
 1.26 14-Dec-2003  thorpej Split the Intel i31244 SATA controller ("Artisea") driver out of piixide
into its own driver (artsata).
 1.25 13-Dec-2003  thorpej Split out the Silicon Image SATALink support into its own driver,
"satalink".
 1.24 13-Dec-2003  sekiya Remove MIPS3_L2CACHE_ABSENT.
 1.23 25-Oct-2003  simonb Add COMPAT_16 where missing.
Remove the unused COMPAT_15.
Comment out/remove COMPAT_* from INSTALL kernels.
 1.22 18-Oct-2003  lukem Use one 'atabus* at ata?' instead of multiple 'atabus* at FOOide? channel ?'
Use 'atapibus* at atapi?' instead of 'atapibus* at atabus?'
 1.21 08-Oct-2003  bouyer Add new per-chip pciide drivers.
 1.20 08-Oct-2003  bouyer Add atabus
 1.19 10-Apr-2003  christos branches: 1.19.2;
Bye Bye UCONSOLE
 1.18 16-Feb-2003  augustss Add uax(4) (and url(4) in some cases).
 1.17 14-Oct-2002  elric Added commented out cgd(4)s to GENERIC configs.
 1.16 22-Jul-2002  wiz ADW_*_DISABLE -> SCSI_ADW_*_DISABLE in comments.
 1.15 17-Jun-2002  lukem Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
 1.14 25-Apr-2002  atatat branches: 1.14.2; 1.14.4;
Add the INCLUDE_CONFIG_FILE option to all config files. In config
files that are generic (ie, GENERIC, GENERICSBC, GENERIC32, ALL, or
ALPHA), it is uncommented.
 1.13 17-Apr-2002  mycroft Switch from de to tlp by default.
 1.12 10-Feb-2002  wiz Update description for icsphy.
 1.11 27-Jan-2002  jdolecek add options PIPE_SOCKETPAIR to individual kernel configs
the option is commented out on everything but kernels I was able
to recognize as INSTALL-like or ones for small memory machines
 1.10 28-Dec-2001  augustss Update for new uhidev device attachment.
 1.9 20-Nov-2001  lukem cleanup:
options SPACE TAB
makeoptions TAB
psuedo-device TAB
remove trailing whitespace
replace multiple spaces -> tabs
options "FOO" -> options FOO
options "FOO=bar" -> options FOO=bar
options "FOO=\"bar\"" -> options FOO="\"bar\""
 1.8 22-Aug-2001  thorpej branches: 1.8.6;
Set PCI_NETBSD_ENABLE_IDE to 0x01, so that the first IDE channel
will be enabled.
 1.7 22-Jun-2001  thorpej branches: 1.7.2;
Add FDESC.
 1.6 12-Jun-2001  thorpej No longer need MIPS3_5200 here.
 1.5 10-Jun-2001  thorpej Add PCMCIA devices.
 1.4 10-Jun-2001  thorpej Add MIPS3_5200.
 1.3 01-Jun-2001  thorpej Fat-trimming.
 1.2 01-Jun-2001  thorpej Enable SCSI.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.7.2.6 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.7.2.5 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.7.2.4 16-Mar-2002  jdolecek Catch up with -current.
 1.7.2.3 11-Feb-2002  jdolecek Sync w/ -current.
 1.7.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.7.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.8.6.6 18-Oct-2002  nathanw Catch up to -current.
 1.8.6.5 01-Aug-2002  nathanw Catch up to -current.
 1.8.6.4 20-Jun-2002  nathanw Catch up to -current.
 1.8.6.3 28-Feb-2002  nathanw Catch up to -current.
 1.8.6.2 08-Jan-2002  nathanw Catch up to -current.
 1.8.6.1 22-Aug-2001  nathanw file P5064 was added on branch nathanw_sa on 2002-01-08 00:22:50 +0000
 1.14.4.2 26-Oct-2005  jmc Pullup (via patch) requested in ticket #5754 by itohy

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

Hi Perry!
 1.19.2.7 04-Feb-2005  skrll Sync with HEAD.
 1.19.2.6 29-Nov-2004  skrll Sync with HEAD.
 1.19.2.5 14-Nov-2004  skrll Sync with HEAD.
 1.19.2.4 02-Nov-2004  skrll Sync with HEAD.
 1.19.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.19.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.19.2.1 03-Aug-2004  skrll Sync with HEAD
 1.27.2.1 15-Jul-2004  he branches: 1.27.2.1.2;
Pull up revision 1.28 (requested by atatat in ticket #663):
Add "options SYSCTL_INCLUDE_DESCR" to a lot of configurations,
but commented out in most of them.
 1.27.2.1.2.2 21-Jul-2005  riz Pull up revision 1.36 (requested by itohy in ticket #1430):
Add ukyopon(4).
 1.27.2.1.2.1 02-Apr-2005  he Pull up revision 1.31 (requested by bouyer in ticket #1019):
Add pdcsata(4), a driver for the Promise SATA150 (aka PDC203xx) series of
controllers.
 1.31.6.3 26-Mar-2005  yamt sync with head.
 1.31.6.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.31.6.1 12-Feb-2005  yamt sync with head.
 1.31.4.1 29-Apr-2005  kent sync with -current
 1.34.2.3 18-Jul-2005  riz Pull up revision 1.38 (requested by tron in ticket #566):
Add (commented out) IPSEC_NAT_T option.
 1.34.2.2 01-Jun-2005  riz Pull up revision 1.37 (requested by tron in ticket #362):
Remove attachment for the piixide(4) driver from all non-x86 kernel
configurations because Intel IDE disk controllers only exist as part
of Intel chipsets for x86 systems.
 1.34.2.1 17-Apr-2005  tron Pull up revision 1.36 (requested by itohy in ticket #160):
Add ukyopon(4).
 1.37.2.4 21-Jan-2008  yamt sync with head
 1.37.2.3 03-Sep-2007  yamt sync with head.
 1.37.2.2 30-Dec-2006  yamt sync with head.
 1.37.2.1 21-Jun-2006  yamt sync with head.
 1.44.6.1 22-Apr-2006  simonb Sync with head.
 1.44.4.1 09-Sep-2006  rpaulo sync with head
 1.44.2.1 18-Feb-2006  yamt sync with head.
 1.46.6.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.46.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.46.2.2 03-Sep-2006  yamt sync with head.
 1.46.2.1 01-Apr-2006  yamt sync with head.
 1.48.4.1 22-Oct-2006  yamt sync with head
 1.48.2.1 18-Nov-2006  ad Sync with head.
 1.49.10.1 11-Jul-2007  mjf Sync with head.
 1.49.8.1 10-Apr-2007  ad Sync with head.
 1.49.4.1 24-Mar-2007  yamt sync with head.
 1.50.28.1 10-Jan-2008  bouyer Sync with HEAD
 1.50.22.1 18-Feb-2008  mjf Sync with HEAD.
 1.50.16.1 23-Mar-2008  matt sync with HEAD
 1.51.12.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.51.12.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.51.10.4 11-Aug-2010  yamt sync with head.
 1.51.10.3 11-Mar-2010  yamt sync with head
 1.51.10.2 04-May-2009  yamt sync with head.
 1.51.10.1 16-May-2008  yamt sync with head.
 1.51.8.2 04-Jun-2008  yamt sync with head
 1.51.8.1 18-May-2008  yamt sync with head.
 1.51.6.3 17-Jan-2009  mjf Sync with HEAD.
 1.51.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.51.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.53.4.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.53.4.1 19-Oct-2008  haad Sync with HEAD.
 1.54.8.1 29-Jan-2010  matt Change mips kernel options SOFTFLOAT to FPEMUL. Allow a kernel to have
no FP emulation code. Fix insufficient SYMTAB_SPACE. When a kernel without
an FPU and with FPEMUL code, the application will trap with a SIGILL/ILL_ILLOPC
signal, not SIGSEGV/SEGV_MAPERR.
 1.54.2.2 28-Apr-2009  skrll Sync with HEAD.
 1.54.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.56.4.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.57.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.59.2.4 31-May-2011  rmind sync with head
 1.59.2.3 21-Apr-2011  rmind sync with head
 1.59.2.2 05-Mar-2011  rmind sync with head
 1.59.2.1 30-May-2010  rmind sync with head
 1.61.4.1 05-Mar-2011  bouyer Sync with HEAD
 1.61.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.68.2.3 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.68.2.2 30-Oct-2012  yamt sync with head
 1.68.2.1 17-Apr-2012  yamt sync with head
 1.69.2.1 18-Feb-2012  mrg merge to -current.
 1.72.4.1 01-Nov-2012  matt sync with netbsd-6-0-RELEASE.
 1.72.2.1 13-Oct-2012  riz Pull up following revision(s) (requested by riz in ticket #607):
sys/arch/evbmips/conf/MALTA64: revision 1.6
sys/arch/algor/conf/P5064: revision 1.74
Bump SYMTAB_SPACE 475000->485000.
Bump SYMTAB_SPACE 480000->490000
 1.73.2.4 03-Dec-2017  jdolecek update from HEAD
 1.73.2.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.73.2.2 23-Jun-2013  tls resync from head
 1.73.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.79.6.1 10-Aug-2014  tls Rebase.
 1.82.2.2 05-Feb-2017  skrll Sync with HEAD
 1.82.2.1 22-Sep-2015  skrll Sync with HEAD
 1.83.2.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.85.4.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.85.4.1 10-Jun-2019  christos Sync with HEAD
 1.85.2.2 30-Sep-2018  pgoyette Ssync with HEAD
 1.85.2.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.90.6.1 25-Jan-2020  ad Sync with head.
 1.93.6.1 01-Aug-2021  thorpej Sync with HEAD.
 1.5 17-Aug-2014  joerg Reorganize symbol table embedding. The existing option SYMTAB_SPACE is
replaced by the make option COPY_SYMTAB set to any value. The copy of
the symbol table is no longer put into a buffer in kern_ksyms.o, but a
small helper object. This object is build first with a dummy size, then
the kernel is linked to compute the real dimension of the symbol table
buffer. After that, the helper object is rebuild and the kernel linked
again.
 1.4 05-Feb-2012  matt branches: 1.4.6;
Bump SYMTAB_SPACE
 1.3 20-Feb-2011  matt branches: 1.3.4; 1.3.8;
Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.2 14-Dec-2009  matt branches: 1.2.4; 1.2.6; 1.2.8; 1.2.10;
Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.1 16-Sep-2009  matt branches: 1.1.2;
file P5064-64 was initially added on branch matt-nb5-mips64.
 1.1.2.2 29-Jan-2010  matt Change mips kernel options SOFTFLOAT to FPEMUL. Allow a kernel to have
no FP emulation code. Fix insufficient SYMTAB_SPACE. When a kernel without
an FPU and with FPEMUL code, the application will trap with a SIGILL/ILL_ILLOPC
signal, not SIGSEGV/SEGV_MAPERR.
 1.1.2.1 16-Sep-2009  matt Add ELF64 config for P5064 and do the LP64 dance in mach_init. Deal with
envp being a list of 32bit pointers. XXX still need to do argv.
 1.2.10.1 05-Mar-2011  bouyer Sync with HEAD
 1.2.8.1 06-Jun-2011  jruoho Sync with HEAD.
 1.2.6.1 05-Mar-2011  rmind sync with head
 1.2.4.2 11-Mar-2010  yamt sync with head
 1.2.4.1 14-Dec-2009  yamt file P5064-64 was added on branch yamt-nfs-mp on 2010-03-11 15:01:56 +0000
 1.3.8.1 18-Feb-2012  mrg merge to -current.
 1.3.4.1 17-Apr-2012  yamt sync with head
 1.4.6.1 03-Dec-2017  jdolecek update from HEAD
 1.85 07-Jun-2022  martin This kernels have no midi configured, so comment out pseudo-device sequencer
 1.84 29-Jun-2021  nia Remove uscanner(4) driver

This exists for compatibility with a Linux interface which was apparently
deprecated in Linux 2.6. There are various mailing list threads going
back to 2004 where the usefulness of this driver is discussed, but
the conclusion is that scanner software has all moved to using ugen(4)
instead, and enabling this driver will not help you scan things.
 1.83 16-May-2020  maya branches: 1.83.6;
Remove uyap, USB YAP phone firmware loader.

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

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

Proposed with no objections on netbsd-users on 13 April 2020
 1.82 20-Jan-2020  thorpej Remove FDDI support.
 1.81 13-Apr-2019  isaki branches: 1.81.6;
Add drvctl to kernel which has audio device.
audiocfg(1) requires drvctl(4).
 1.80 06-Feb-2019  rin Add ure(4) to kernel config files. Also add PHY drivers where necessary.
 1.79 06-Sep-2018  maxv Retire the 'midway' driver. Discussed on tech-net@ recently and also three
years ago, part of removing the network ATM code.
 1.78 25-Aug-2018  rin Add (commented out) mue(4) to where appropriate.
Also add MII/PHY drivers for USB NICs if missing.
 1.77 01-Aug-2018  maxv Unreference IPF/PF from all the config files, and enable NPF instead when
wanted. This also fixes some inconsistencies I saw in several files (eg
IPF options while IPF was not compiled, IPF+PF enabled by default, etc).
 1.76 14-Sep-2017  mrg branches: 1.76.2; 1.76.4;
clean up COMPAT_* options for native netbsd code:
- new series of files that are useful for saying "i want everything
since netbsd 1.4", etc.
- use the fact COMPAT_* options have future dependancies to remove
many redundant options.

removes about 3000 lines total across kernel configuration files.
tested about 30 random kernels in the changed list.
 1.75 13-Dec-2016  christos wildcard speaker attachments, now that we can handle many of them.
 1.74 21-Aug-2015  uebayasi branches: 1.74.2;
Add `pseudo-device ksyms' where `options DDB' is used, because
config(1)/config(5) can't handle module dependency correctly at this
moment.

(This is another proof that shared file definition (`file xxx.c a|b')
is a bad idea.)
 1.73 23-Aug-2014  dholland branches: 1.73.2;
Systematize (and in many cases, fix) the comments on options COMPAT_NN.

There are quite a few configs that are missing some COMPAT_NN options
in ways that don't make sense; this should probably get cleaned up
too, but for the time being I've not added or removed anything.
 1.72 17-Aug-2014  joerg Reorganize symbol table embedding. The existing option SYMTAB_SPACE is
replaced by the make option COPY_SYMTAB set to any value. The copy of
the symbol table is no longer put into a buffer in kern_ksyms.o, but a
small helper object. This object is build first with a dummy size, then
the kernel is linked to compute the real dimension of the symbol table
buffer. After that, the helper object is rebuild and the kernel linked
again.
 1.71 20-Jul-2014  alnsn Add commented out bpfjit options to mips kernels.
While here, add 2 missing RCS ids.
 1.70 05-Jun-2013  christos branches: 1.70.6;
remove obsolete networking options
 1.69 27-Apr-2013  christos more bogus number removal
 1.68 27-Apr-2013  christos the bogus number police
 1.67 27-Apr-2013  christos remove confusing numeric locators where they are unused.
 1.66 02-Mar-2013  christos Under FAST_IPSEC, IPSEC_ESP is mandatory; GC it.
 1.65 17-Aug-2012  abs branches: 1.65.2;
Update all kernel configs mentioning WSEMUL_* but not already including
WSDISPLAY_COMPAT_USL using the following rules:
- If WSEMUL_ is commented out, add commented out out WSDISPLAY_COMPAT_USL
- If INSTALL or obviously memory constrained, add WSDISPLAY_DEFAULTSCREENS=1
and commented out WSDISPLAY_COMPAT_USL
- Otherwise add WSDISPLAY_COMPAT_USL

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

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

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

On 5 June 2012 09:47, David Brownlee <abs@absd.org> wrote:
> wsconscfg(8) requires WSDISPLAY_COMPAT_USL in order to switch virtual
> terminals.
>
> Except when in an exceptionally memory or space constrained
> environment (INSTALL being the obvious case), is there any reason why
> all GENERIC and GENERIC-like kernels which have wscons enabled
> shouldn't also have WSDISPLAY_COMPAT_USL?
 1.64 18-Dec-2011  dholland WABPL is no longer considered experimental (has not been for some time)
so update its comment in config files.
 1.63 15-Dec-2011  kiyohara SYMTAB_SPACE.
 1.62 01-Dec-2011  kiyohara branches: 1.62.2;
Increase SYMTAB_SPACE for evbmips.
 1.61 22-Nov-2011  tls The rnd pseudo-device is not really optional, because it is in the same
source file as the entropy-pool code itself. Move it to std. This
will be cleaned up more when I split the sources up as they should be.

This fixes build breaks on several ports. Thanks to Havard Eidnes for
pointing them out.
 1.60 09-Jul-2011  dyoung branches: 1.60.2;
Increase SYMTAB_SPACE, again. Why it should be necessary over and over,
I do not know.
 1.59 01-Jul-2011  dyoung Increase SYMTAB_SPACE.
 1.58 30-Jun-2011  wiz dependant -> dependent
 1.57 17-May-2011  dyoung Increase SYMTAB_SPACE to fix compilation of these kernels.
 1.56 07-Apr-2011  dyoung Increase SYMTAB_SPACE so that this kernel will build.
 1.55 05-Mar-2011  matt Increase SYMTAB_SPACE
 1.54 23-Nov-2010  hannken branches: 1.54.2;
Remove unused count from pseudo-device md.
 1.53 13-Nov-2010  uebayasi Bump symtab space (350000 -> 360000).
 1.52 16-Apr-2010  pooka Remove unused count (invariably "4") from pseudo-device fss.
 1.51 07-Mar-2010  plunky branches: 1.51.2;
add uhso(4) device where appropriate
- follow the lead of other USB driver declarations wrt commented out
- (cross-)build tested all these kernels
 1.50 06-Mar-2009  joerg branches: 1.50.2;
Remove SHMMAXPGS from all kernel configs. Dynamically compute the
initial limit as 1/4 of the physical memory. Ensure the limit is at
least 1024 pages, the old default on most platforms.
 1.49 24-Nov-2008  ad branches: 1.49.4;
Remove softdep, pass 1. We are focused on improving journalling.

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

Proposed on tech-kern@.
 1.47 31-Jul-2008  simonb branches: 1.47.2;
Add "options WAPBL" to standard GENERIC/INSTALL type configs.
 1.46 30-May-2008  tsutsui branches: 1.46.4;
Add options COMPAT_40 to files which have options COMPAT_30.
 1.45 09-Jan-2008  tsutsui branches: 1.45.6; 1.45.8; 1.45.10; 1.45.12;
Add options SYMTAB_SPACE for ksyms(4) and ddb(4).
 1.44 14-Mar-2007  drochner branches: 1.44.16; 1.44.22; 1.44.28;
It doesn't make sense to specify "configuration" and "interface"
locators for uhub because a hub can't have sub-devices.
This might be sanity-checked eventually.
Same for ubt now after the change to device attachment.
 1.43 27-Sep-2006  manu branches: 1.43.4; 1.43.8; 1.43.10;
- Document COMPAT_15 as doing nothing
- Add COMPAT_15 to all the kernel that had COMPAT_14, for the sake of coherency
- Remove the only occurences of #ifdef COMPAT_15 in the tree: for the ARM
ports, COMPAT_15 was always used in conjunction with EXEC_AOUT. Only EXEC_AOUT
matters here.

This address kern/18407
 1.42 14-Aug-2006  skrll branches: 1.42.2; 1.42.4;
s/adpater/adapter/

Prompted by PR/34195
 1.41 28-Mar-2006  pavel Add stf to all kernel configs which have INET6 and gif, except the INSTALL
ones and those for specific machines of developers. PR 32304.

OK'ed by rpaulo.

N.B. stf is a cloning device, so it still must be enabled by
"ifconfig stf0 create".
 1.40 05-Feb-2006  cube branches: 1.40.2; 1.40.4; 1.40.6;
Remove 'count' argument for pseudo-devices that ignore it
(vnd, bpfilter, ppp, gif, gre, tun, sl, strip, faith, stf).
 1.39 04-Feb-2006  rpaulo bpfilter doesn't accept count anymore.
 1.38 07-Dec-2005  tsutsui branches: 1.38.2; 1.38.4; 1.38.6;
Adjust comments for options FFS_NO_SNAPSHOT.

XXX: This option should be mentioned in options(4).
 1.37 19-Aug-2005  christos Enable ptyfs by default on the non-install and non small/tiny/ramdisk kernels
 1.36 19-Aug-2005  christos 64 bit inode changes.
 1.35 05-Aug-2005  skrll Add (commented out) ucycom to various kernel configs.
 1.34 31-Jul-2005  yamt revert "defflag VMSWAP" changes for now.
there seems to be far more people who don't want to edit
their kernel config files than i thought.
 1.33 30-Jul-2005  yamt add "options VMSWAP" to non INSTALL kernels.
 1.32 07-Jul-2005  tron Add (commented out) IPSEC_NAT_T option.
 1.31 31-May-2005  tron branches: 1.31.2;
Remove attachment for the piixide(4) driver from all non-x86 kernel
configurations because Intel IDE disk controllers only exist as part
of Intel chipsets for x86 systems.
 1.30 15-Apr-2005  itohy Add ukyopon(4).
 1.29 25-Mar-2005  cube Add attimer(4) configurations everywhere pcppi(4) exists, with the
following rule:
If a pcppi device is enabled for an attachment, enable an attimer for the
same attachement, otherwise comment it.
 1.28 25-Feb-2005  simonb branches: 1.28.2;
Add COMPAT_20 (and COMPAT_16 in some cases) to kernel config files
that didn't have those options but had other earlier compat options.
 1.27 18-Feb-2005  dsl Invert FFS_SNAPSHOT to FFS_NO_SNAPSHOT
 1.26 31-Jan-2005  hannken Add file system snapshots to kernel configs.

- Ffs internal snapshots get compiled in unconditionally.

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

Reviewed by: Jason Thorpe <thorpej@netbsd.org>
 1.25 24-Nov-2004  bouyer branches: 1.25.4; 1.25.6;
pdcsata(4), a driver for the Promise SATA150 (aka PDC203xx) serie of
controllers. Tested with a PDC20375 (2 SATA, one PATA) controller on sparc64.
Added to all kernel config file which had pdcide(4).
 1.24 10-Nov-2004  christos Add COMPAT_BSDPTY to the rest of the config files.
 1.23 23-Oct-2004  augustss s/uax/axe/
 1.22 15-Jul-2004  atatat Add "options SYSCTL_INCLUDE_DESCR" to a lot of configs, but commented
out in most of them.
 1.21 13-Feb-2004  wiz branches: 1.21.2;
RealTek -> Realtek.
 1.20 14-Dec-2003  thorpej Split the Intel i31244 SATA controller ("Artisea") driver out of piixide
into its own driver (artsata).
 1.19 13-Dec-2003  thorpej Split out the Silicon Image SATALink support into its own driver,
"satalink".
 1.18 13-Dec-2003  sekiya Remove MIPS3_L2CACHE_ABSENT.
 1.17 25-Oct-2003  simonb Add COMPAT_16 where missing.
Remove the unused COMPAT_15.
Comment out/remove COMPAT_* from INSTALL kernels.
 1.16 18-Oct-2003  lukem Use one 'atabus* at ata?' instead of multiple 'atabus* at FOOide? channel ?'
Use 'atapibus* at atapi?' instead of 'atapibus* at atabus?'
 1.15 08-Oct-2003  bouyer Add new per-chip pciide drivers.
 1.14 08-Oct-2003  bouyer Add atabus
 1.13 10-Apr-2003  christos branches: 1.13.2;
Bye Bye UCONSOLE
 1.12 16-Feb-2003  augustss Add uax(4) (and url(4) in some cases).
 1.11 14-Oct-2002  elric Added commented out cgd(4)s to GENERIC configs.
 1.10 22-Jul-2002  wiz ADW_*_DISABLE -> SCSI_ADW_*_DISABLE in comments.
 1.9 17-Jun-2002  lukem Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
 1.8 25-Apr-2002  atatat branches: 1.8.2; 1.8.4;
Add the INCLUDE_CONFIG_FILE option to all config files. In config
files that are generic (ie, GENERIC, GENERICSBC, GENERIC32, ALL, or
ALPHA), it is uncommented.
 1.7 17-Apr-2002  mycroft Switch from de to tlp by default.
 1.6 10-Feb-2002  wiz Update description for icsphy.
 1.5 27-Jan-2002  jdolecek add options PIPE_SOCKETPAIR to individual kernel configs
the option is commented out on everything but kernels I was able
to recognize as INSTALL-like or ones for small memory machines
 1.4 08-Jan-2002  thorpej le at pci -> pcn at pci, and add several more phys (most commented out).
 1.3 28-Dec-2001  augustss Update for new uhidev device attachment.
 1.2 20-Nov-2001  lukem cleanup:
options SPACE TAB
makeoptions TAB
psuedo-device TAB
remove trailing whitespace
replace multiple spaces -> tabs
options "FOO" -> options FOO
options "FOO=bar" -> options FOO=bar
options "FOO=\"bar\"" -> options FOO="\"bar\""
 1.1 22-Jun-2001  thorpej branches: 1.1.2; 1.1.8;
Kernel config file for a P-6032.
 1.1.8.7 18-Oct-2002  nathanw Catch up to -current.
 1.1.8.6 01-Aug-2002  nathanw Catch up to -current.
 1.1.8.5 20-Jun-2002  nathanw Catch up to -current.
 1.1.8.4 28-Feb-2002  nathanw Catch up to -current.
 1.1.8.3 11-Jan-2002  nathanw More catchup.
 1.1.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.8.1 22-Jun-2001  nathanw file P6032 was added on branch nathanw_sa on 2002-01-08 00:22:50 +0000
 1.1.2.5 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.1.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.1.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.4.2 26-Oct-2005  jmc Pullup (via patch) requested in ticket #5754 by itohy

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

Hi Perry!
 1.13.2.7 04-Feb-2005  skrll Sync with HEAD.
 1.13.2.6 29-Nov-2004  skrll Sync with HEAD.
 1.13.2.5 14-Nov-2004  skrll Sync with HEAD.
 1.13.2.4 02-Nov-2004  skrll Sync with HEAD.
 1.13.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.13.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.13.2.1 03-Aug-2004  skrll Sync with HEAD
 1.21.2.1 15-Jul-2004  he branches: 1.21.2.1.2;
Pull up revision 1.22 (requested by atatat in ticket #663):
Add "options SYSCTL_INCLUDE_DESCR" to a lot of configurations,
but commented out in most of them.
 1.21.2.1.2.2 21-Jul-2005  riz Pull up revision 1.30 (requested by itohy in ticket #1430):
Add ukyopon(4).
 1.21.2.1.2.1 02-Apr-2005  he Pull up revision 1.25 (requested by bouyer in ticket #1019):
Add pdcsata(4), a driver for the Promise SATA150 (aka PDC203xx) series of
controllers.
 1.25.6.3 26-Mar-2005  yamt sync with head.
 1.25.6.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.25.6.1 12-Feb-2005  yamt sync with head.
 1.25.4.1 29-Apr-2005  kent sync with -current
 1.28.2.3 18-Jul-2005  riz Pull up revision 1.32 (requested by tron in ticket #566):
Add (commented out) IPSEC_NAT_T option.
 1.28.2.2 01-Jun-2005  riz Pull up revision 1.31 (requested by tron in ticket #362):
Remove attachment for the piixide(4) driver from all non-x86 kernel
configurations because Intel IDE disk controllers only exist as part
of Intel chipsets for x86 systems.
 1.28.2.1 17-Apr-2005  tron Pull up revision 1.30 (requested by itohy in ticket #160):
Add ukyopon(4).
 1.31.2.4 21-Jan-2008  yamt sync with head
 1.31.2.3 03-Sep-2007  yamt sync with head.
 1.31.2.2 30-Dec-2006  yamt sync with head.
 1.31.2.1 21-Jun-2006  yamt sync with head.
 1.38.6.1 22-Apr-2006  simonb Sync with head.
 1.38.4.1 09-Sep-2006  rpaulo sync with head
 1.38.2.1 18-Feb-2006  yamt sync with head.
 1.40.6.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.40.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.40.2.2 03-Sep-2006  yamt sync with head.
 1.40.2.1 01-Apr-2006  yamt sync with head.
 1.42.4.1 22-Oct-2006  yamt sync with head
 1.42.2.1 18-Nov-2006  ad Sync with head.
 1.43.10.1 11-Jul-2007  mjf Sync with head.
 1.43.8.1 10-Apr-2007  ad Sync with head.
 1.43.4.1 24-Mar-2007  yamt sync with head.
 1.44.28.1 10-Jan-2008  bouyer Sync with HEAD
 1.44.22.1 18-Feb-2008  mjf Sync with HEAD.
 1.44.16.1 23-Mar-2008  matt sync with HEAD
 1.45.12.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.45.12.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.45.10.3 11-Aug-2010  yamt sync with head.
 1.45.10.2 11-Mar-2010  yamt sync with head
 1.45.10.1 04-May-2009  yamt sync with head.
 1.45.8.1 04-Jun-2008  yamt sync with head
 1.45.6.3 17-Jan-2009  mjf Sync with HEAD.
 1.45.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.45.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.46.4.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.46.4.1 19-Oct-2008  haad Sync with HEAD.
 1.47.2.2 28-Apr-2009  skrll Sync with HEAD.
 1.47.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.49.4.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.50.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.51.2.5 31-May-2011  rmind sync with head
 1.51.2.4 21-Apr-2011  rmind sync with head
 1.51.2.3 06-Mar-2011  rmind sync with head (and fix few botches with this)
 1.51.2.2 05-Mar-2011  rmind sync with head
 1.51.2.1 30-May-2010  rmind sync with head
 1.54.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.60.2.3 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.60.2.2 30-Oct-2012  yamt sync with head
 1.60.2.1 17-Apr-2012  yamt sync with head
 1.62.2.1 18-Feb-2012  mrg merge to -current.
 1.65.2.3 03-Dec-2017  jdolecek update from HEAD
 1.65.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.65.2.1 23-Jun-2013  tls resync from head
 1.70.6.1 10-Aug-2014  tls Rebase.
 1.73.2.2 05-Feb-2017  skrll Sync with HEAD
 1.73.2.1 22-Sep-2015  skrll Sync with HEAD
 1.74.2.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.76.4.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.76.4.1 10-Jun-2019  christos Sync with HEAD
 1.76.2.2 30-Sep-2018  pgoyette Ssync with HEAD
 1.76.2.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.81.6.1 25-Jan-2020  ad Sync with head.
 1.83.6.1 01-Aug-2021  thorpej Sync with HEAD.
 1.31 20-Jul-2014  alnsn Include sljit files.
 1.30 02-Oct-2012  christos branches: 1.30.10;
move common/bus_dma/ -> dev/bus_dma/
 1.29 09-Jul-2011  matt branches: 1.29.2; 1.29.12;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.28 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.27 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.26 21-Aug-2009  thorpej branches: 1.26.4; 1.26.6; 1.26.8;
Use bus_dmamem_common.
 1.25 11-Aug-2009  matt Use arch/mips/files.bonito
 1.24 20-Feb-2008  drochner branches: 1.24.10; 1.24.28;
Since files.wscons et al. are included by ~all ports anyway, include
them in the mi "files" file, and remove include statements from md files.
These shouldn't pull in additional kernel code when not in use, so it
shouldn't do any harm except a risk of namespace collisions which
should be easy to fix.
 1.23 10-Apr-2007  macallan branches: 1.23.14;
include files.wsfb
 1.22 08-Sep-2006  gdamore branches: 1.22.6; 1.22.10; 1.22.12;
Various improvements to make the common mips3 clock handling more generally
useful. The functions delay, cpu_initclocks, and setstatclcokrate have been
renamed to mips3_delay, mips3_initclocks, and mips3_setstatclockrate.

We provide weak aliases for the original names, so machdep code doesn't have
to provide wrapper routines. (Giving good performance.)

I've moved mips3_clockintr, mips3_initclocks, and mips3_setstatclockrate to
their own mips3_clockintr file, because some ports may not be able to use
these, and its senseless to carry that baggage.
 1.21 05-Sep-2006  gdamore branches: 1.21.2;
Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.20 15-Apr-2006  simonb Switch Algor port to MIPS generic soft-interrupts implementation.
XXX: Compile tested only.
 1.19 11-Dec-2005  christos branches: 1.19.4; 1.19.6; 1.19.8; 1.19.10; 1.19.12;
merge ktrace-lwp.
 1.18 13-Mar-2004  bjh21 branches: 1.18.16;
Abstract the interface between pckbc(4), and the pckbd(4) and pms(4)
drivers that attach to it. This allows for other host interface chips
that use the same keyboards and mice, such as the ones in the ARM
IOMD20, ARM7500, and SA-1111. The PC-compatible driver is still
called pckbc(4), and the new abstraction layer is "pckbport", so the
child devices have moved from sys/dev/pckbc to sys/dev/pckbport, which
also contains some code shared between all host controllers. To avoid
incompatibility, pckbdreg.h is still installed in
/usr/include/dev/pckbc.

In theory, this shouldn't cause any behavioural changes in the drivers
concerned. Thy just use rather more function pointers than before. Tested
on i386 and (with a new host driver) acorn32. Compiled on several other
affected architectures.
 1.17 08-Oct-2003  bouyer pciide_machdep.c depends on pciide_common, not pciide.
Pointed out and fix tested by Marc Recht.
 1.16 27-Jul-2003  thorpej Since everyone uses clock_subr.c (or should, if they don't currently),
list it in conf/files instead of in every port's files.*.
 1.15 26-Oct-2002  jdolecek branches: 1.15.6;
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.14 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.13 16-Apr-2002  thorpej branches: 1.13.2;
* Move the mii_bitbang attribute into dev/mii/files.mii
* Pull in dev/mii/files.mii from conf/files, rather than playing
the magic "files include order" dance in N machine-dependent
configuration definitions.
 1.12 13-Mar-2002  simonb All the mips ports had an identical procfs_machdep.c, so use a common
file under arch/mips/mips.
 1.11 09-Jan-2002  thorpej Build bonito_iobc.c
 1.10 28-Nov-2001  lukem - convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups
 1.9 20-Nov-2001  lukem - replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h
 1.8 20-Nov-2001  lukem cleanup:
options SPACE TAB
makeoptions TAB
psuedo-device TAB
remove trailing whitespace
replace multiple spaces -> tabs
options "FOO" -> options FOO
options "FOO=bar" -> options FOO=bar
options "FOO=\"bar\"" -> options FOO="\"bar\""
 1.7 22-Jun-2001  thorpej branches: 1.7.2; 1.7.8;
Sigh, Jason needs to go to sleep.
 1.6 22-Jun-2001  thorpej Add a couple of missing p6032 bits.
 1.5 22-Jun-2001  thorpej Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.4 14-Jun-2001  thorpej Add MEMSIZE and ETHADDR options, so that they can be set in
the kernel config file, in case you have a buggy PMON which
doesn't provide the environment variables to the kernel.
 1.3 10-Jun-2001  thorpej Add PCMCIA devices.
 1.2 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.7.8.8 11-Nov-2002  nathanw Catch up to -current
 1.7.8.7 17-Sep-2002  nathanw Catch up to -current.
 1.7.8.6 20-Jun-2002  nathanw Catch up to -current.
 1.7.8.5 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.7.8.4 28-Feb-2002  nathanw Catch up to -current.
 1.7.8.3 11-Jan-2002  nathanw More catchup.
 1.7.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.7.8.1 22-Jun-2001  nathanw file files.algor was added on branch nathanw_sa on 2002-01-08 00:22:50 +0000
 1.7.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.7.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.7.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.7.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.13.2.2 17-May-2002  gehenna Remove old block majors list.
 1.13.2.1 16-May-2002  gehenna Include the list of block/character major numbers.
 1.15.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.15.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.15.6.1 03-Aug-2004  skrll Sync with HEAD
 1.18.16.4 27-Feb-2008  yamt sync with head.
 1.18.16.3 03-Sep-2007  yamt sync with head.
 1.18.16.2 30-Dec-2006  yamt sync with head.
 1.18.16.1 21-Jun-2006  yamt sync with head.
 1.19.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.19.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.19.8.2 14-Sep-2006  yamt sync with head.
 1.19.8.1 24-May-2006  yamt sync with head.
 1.19.6.1 22-Apr-2006  simonb Sync with head.
 1.19.4.1 09-Sep-2006  rpaulo sync with head
 1.21.2.1 18-Nov-2006  ad Sync with head.
 1.22.12.1 11-Jul-2007  mjf Sync with head.
 1.22.10.1 10-Apr-2007  ad Sync with head.
 1.22.6.1 15-Apr-2007  yamt sync with head.
 1.23.14.1 23-Mar-2008  matt sync with HEAD
 1.24.28.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.24.10.2 16-Sep-2009  yamt sync with head
 1.24.10.1 19-Aug-2009  yamt sync with head.
 1.26.8.1 05-Mar-2011  bouyer Sync with HEAD
 1.26.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.26.4.1 05-Mar-2011  rmind sync with head
 1.29.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.29.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.29.2.1 30-Oct-2012  yamt sync with head
 1.30.10.1 10-Aug-2014  tls Rebase.
 1.30 29-Jun-2021  nia Remove uscanner(4) driver

This exists for compatibility with a Linux interface which was apparently
deprecated in Linux 2.6. There are various mailing list threads going
back to 2004 where the usefulness of this driver is discussed, but
the conclusion is that scanner software has all moved to using ugen(4)
instead, and enabling this driver will not help you scan things.
 1.29 04-Apr-2020  jdolecek branches: 1.29.8;
mark nsmb major obsolete
 1.28 29-Jan-2020  maya remove urio(4), a driver for the Rio500 MP3 player.

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

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

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

Proposed on tech-kern a month ago.
 1.27 28-Jan-2019  dholland branches: 1.27.6;
Systematize handling of removed drivers.

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

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

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

This retires a big user of the mbuf API, and will ease maintenance of the
kernel.
 1.23 08-Dec-2016  nat branches: 1.23.14; 1.23.16;
Add a synthesized pc beeper and keyboard bell for platforms with an audio
device.
 1.22 30-Jun-2011  wiz branches: 1.22.12; 1.22.30; 1.22.34;
dependant -> dependent
 1.21 06-Mar-2010  plunky use a MI major number for uhso(4) driver
(requested by mrg)
 1.20 06-Mar-2010  plunky add major device for usho(4) driver
 1.19 12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.18 31-Dec-2007  ad branches: 1.18.6; 1.18.10; 1.18.16; 1.18.18;
Remove systrace. Ok core@.
 1.17 24-Nov-2006  wiz branches: 1.17.28; 1.17.34; 1.17.42;
s/independant/independent/, from Zafer.
 1.16 11-Dec-2005  christos branches: 1.16.20; 1.16.22;
merge ktrace-lwp.
 1.15 17-Sep-2005  yamt make VMSWAP optional again.
 1.14 31-Jul-2005  yamt revert "defflag VMSWAP" changes for now.
there seems to be far more people who don't want to edit
their kernel config files than i thought.
 1.13 30-Jul-2005  yamt defflag VMSWAP.
 1.12 10-May-2005  jdolecek branches: 1.12.2;
assign major for nsmb(4)
 1.11 10-Dec-2003  jmc Change reference at bottom from sys/dev/majors to sys/conf/majors to match
reality
 1.10 22-Oct-2003  jdolecek add wsfont major to archs which have the other wscons devices
 1.9 10-Oct-2003  jdolecek reassing majors for crypto and pf to use the newly defined MI major
range
 1.8 10-Oct-2003  jdolecek update the comment - the space for machine-dependant majors
is reduced to 0-143
follows discussion on tech-kern
 1.7 05-Oct-2003  jdolecek Add some framework for MI assignment of device majors - add sys/dev/majors
which is automatically included during kernel config, and add comments
to individual machine-dependant majors.* files to assign new MI majors
in MI file.

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

Follows recent discussion on tech-kern@
 1.6 22-Aug-2003  itojun create /dev/crypto
 1.5 27-Jul-2003  itojun reserve cdev major # for PF. ok'ed by technical-exec
 1.4 25-Apr-2003  ragge branches: 1.4.2;
Add ksyms device major.
 1.3 04-Oct-2002  elric branches: 1.3.2;
assign majors for raw and cooked cgd's.
 1.2 06-Sep-2002  gehenna branches: 1.2.2;
Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.1 16-May-2002  gehenna branches: 1.1.2;
file majors.algor was initially added on branch gehenna-devsw.
 1.1.2.3 09-Jul-2002  gehenna catch up with -current.
 1.1.2.2 30-May-2002  gehenna Add $NetBSD$
 1.1.2.1 16-May-2002  gehenna Add the list of block/character majors.
 1.2.2.3 18-Oct-2002  nathanw Catch up to -current.
 1.2.2.2 17-Sep-2002  nathanw Catch up to -current.
 1.2.2.1 06-Sep-2002  nathanw file majors.algor was added on branch nathanw_sa on 2002-09-17 21:12:30 +0000
 1.3.2.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.3.2.1 04-Oct-2002  jdolecek file majors.algor was added on branch kqueue on 2002-10-10 18:30:35 +0000
 1.4.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.4.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.2.1 03-Aug-2004  skrll Sync with HEAD
 1.12.2.3 21-Jan-2008  yamt sync with head
 1.12.2.2 30-Dec-2006  yamt sync with head.
 1.12.2.1 21-Jun-2006  yamt sync with head.
 1.16.22.1 10-Dec-2006  yamt sync with head.
 1.16.20.1 12-Jan-2007  ad Sync with head.
 1.17.42.1 02-Jan-2008  bouyer Sync with HEAD
 1.17.34.1 18-Feb-2008  mjf Sync with HEAD.
 1.17.28.1 09-Jan-2008  matt sync with HEAD
 1.18.18.1 19-Jan-2009  skrll Sync with HEAD.
 1.18.16.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.18.10.1 04-May-2009  yamt sync with head.
 1.18.6.1 17-Jan-2009  mjf Sync with HEAD.
 1.22.34.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.22.30.1 05-Feb-2017  skrll Sync with HEAD
 1.22.12.1 03-Dec-2017  jdolecek update from HEAD
 1.23.16.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.23.16.1 10-Jun-2019  christos Sync with HEAD
 1.23.14.1 30-Sep-2018  pgoyette Ssync with HEAD
 1.27.6.1 29-Feb-2020  ad Sync with head.
 1.29.8.1 01-Aug-2021  thorpej Sync with HEAD.
 1.9 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.8 11-Dec-2005  christos merge ktrace-lwp.
 1.7 17-Sep-2005  yamt include "conf/std".
 1.6 30-Aug-2003  chs branches: 1.6.16;
add "makeoptions MACHINE_ARCH=..." in std.* for mips ports
where it is constant (to ease cross-building).
 1.5 09-Dec-2002  simonb branches: 1.5.6;
Remove the explicit `makeoptions MACHINE_ARCH="mipse{b,l}"' for kernel
builds and use the endianness of the toolchain being used to determine
the endianness of the kernel.
 1.4 23-Oct-2001  thorpej branches: 1.4.4;
For MIPS kernel Makefiles, don't set ENDIAN in std.${MACHINE}. Instead,
explicitly set MACHINE_ARCH to the appropriate thing. Makefile.mips will
then set all of the internal variables it needs to accordingly.
 1.3 22-Aug-2001  thorpej Link the kernel at 1MB.
 1.2 10-Jun-2001  thorpej branches: 1.2.2;
Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.4.4.2 11-Dec-2002  thorpej Sync with HEAD.
 1.4.4.1 23-Oct-2001  thorpej file std.algor was added on branch nathanw_sa on 2002-12-11 05:51:55 +0000
 1.5.6.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 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.3 06-Jun-2021  christos Don't reset MACHINE_ARCH; it can be mipsn64el now, and we need to be able
to find the compiler.
 1.2 14-Dec-2009  matt branches: 1.2.4; 1.2.82; 1.2.86;
Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.1 16-Sep-2009  matt branches: 1.1.2;
file std.algor64 was initially added on branch matt-nb5-mips64.
 1.1.2.1 16-Sep-2009  matt Add ELF64 config for P5064 and do the LP64 dance in mach_init. Deal with
envp being a list of 32bit pointers. XXX still need to do argv.
 1.2.86.1 06-Jun-2021  cjep sync with head
 1.2.82.1 17-Jun-2021  thorpej Sync w/ HEAD.
 1.2.4.2 11-Mar-2010  yamt sync with head
 1.2.4.1 14-Dec-2009  yamt file std.algor64 was added on branch yamt-nfs-mp on 2010-03-11 15:01:56 +0000
 1.19 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.18 24-Apr-2021  thorpej branches: 1.18.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.17 31-May-2016  dholland branches: 1.17.32;
If ALGOR_P6032 is not defined, set sc_bonito to NULL instead of using
random garbage off the stack. PR 51012 from David Binderman.
 1.16 09-Jun-2015  matt #include <mips/cpuregs.h>
 1.15 27-Oct-2012  chs branches: 1.15.14;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.14 09-Jul-2011  matt branches: 1.14.2; 1.14.12;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.13 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.12 17-May-2011  dyoung PCI_FLAGS_IO_ENABLED and PCI_FLAGS_MEM_ENABLED changed their functional
role in NetBSD (drivers are no longer supposed to write these to
pa_flags) without changing name. Correct that.

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

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

algor P4032 P5064 P6032
alpha GENERIC
amd64 GENERIC XEN3_DOM0
arc GENERIC
atari HADES MILAN-PCIIDE
bebox GENERIC
cats GENERIC
cobalt GENERIC
evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE
evbarm-el GUMSTIX HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321
evbarm-el IXDP425 IXM1200 KUROBOX_PRO
evbarm-el LUBBOCK MARVELL_NAS NAPPI NSLU2 SHEEVAPLUG SMDK2800 TEAMASA_NPWR
evbarm-el TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425
evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3
evbmips64-el XLSATX
evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266
evbppc OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT
hp700 GENERIC
i386 ALL XEN3_DOM0 XEN3_DOMU
ibmnws GENERIC
iyonix GENERIC
landisk GENERIC
macppc GENERIC
mvmeppc GENERIC
netwinder GENERIC
ofppc GENERIC
prep GENERIC
sandpoint GENERIC
sbmips-el GENERIC
sgimips GENERIC32_IP2x GENERIC32_IP3x
sparc GENERIC_SUN4U KRUPS
sparc64 GENERIC
 1.11 28-Apr-2008  martin branches: 1.11.22; 1.11.28;
Remove clause 3 and 4 from TNF licenses
 1.10 11-Dec-2005  christos branches: 1.10.74; 1.10.76; 1.10.78;
merge ktrace-lwp.
 1.9 30-Aug-2004  drochner Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
 1.8 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.7 15-Jun-2003  fvdl branches: 1.7.2;
Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
 1.6 01-Jan-2003  thorpej Use aprint_normal() for cfprint() routines.
 1.5 02-Oct-2002  thorpej Fix script-o's in last.
 1.4 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.3 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.2 16-May-2002  thorpej * Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set to
NULL for root PCI busses. For busses behind a bridge, it points to
a persistent copy of the bridge's pcitag_t. This can be very useful
for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
uses OFW device nodes to enumerate the bus. When a PCI bus that is
behind a bridge is attached, pci_attach_hook() allocates a new PCI
chipset tag for the new bus and sets it's "curnode" to the OFW node
of the bridge. This is used as a starting point when enumerating
that bus. Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
 1.1 25-Jun-2001  thorpej branches: 1.1.2; 1.1.8; 1.1.16;
Print more BONITO rev. info.
 1.1.16.1 30-May-2002  gehenna Catch up with -current.
 1.1.8.4 03-Jan-2003  thorpej Sync with HEAD.
 1.1.8.3 18-Oct-2002  nathanw Catch up to -current.
 1.1.8.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.8.1 25-Jun-2001  nathanw file bonito_mainbus.c was added on branch nathanw_sa on 2002-06-20 03:37:26 +0000
 1.1.2.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.2.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.7.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.7.2.2 03-Sep-2004  skrll Sync with HEAD
 1.7.2.1 03-Aug-2004  skrll Sync with HEAD
 1.10.78.1 16-May-2008  yamt sync with head.
 1.10.76.1 18-May-2008  yamt sync with head.
 1.10.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.11.28.1 06-Jun-2011  jruoho Sync with HEAD.
 1.11.22.1 31-May-2011  rmind sync with head
 1.14.12.2 03-Dec-2017  jdolecek update from HEAD
 1.14.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.14.2.1 30-Oct-2012  yamt sync with head
 1.15.14.2 09-Jul-2016  skrll Sync with HEAD
 1.15.14.1 22-Sep-2015  skrll Sync with HEAD
 1.17.32.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.18.8.1 03-Aug-2021  thorpej Adapt to CFARGS().
 1.15 08-Dec-2018  thorpej Clean up initialization of com_regs structure, in preparation for
some additional changers.
 1.14 09-Jul-2011  matt branches: 1.14.52; 1.14.54;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.13 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.12 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.11 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.10 14-Mar-2008  cube branches: 1.10.2; 1.10.4;
Split device_t and softc for all com(4) devices (well, everything that
uses a com_softc backend). Use proper types and ansify where appropriate.
 1.9 29-Feb-2008  dyoung Use pmf_device_register1() instead of shutdownhook_establish() to
register com_cleanup() as the shutdown hook.

Add a generic suspend routine. Suspend and resume com@isa.

Protect against dereferencing a NULL softc in comioctl().

Destroy both a mutex and a callout in com_detach().

Cosmetic: use aprint_*_dev(). Use PMF_FN_ARGS, PMF_FN_PROTO.
 1.8 13-Jul-2006  gdamore branches: 1.8.34; 1.8.54; 1.8.58;
Add an option COM_REGMAP to allow com(4) to use an array of register indices.
This allows us to convert aucom to just another com attachment, and cleanup
some code in the com_arbus.c.

Additionally, we use a common com_cleanup routine rather than having a
zillion copies of it in the attachment points.

This has been tested on a number architectures, and it has been shown to get
close to comparable performance when COM_REGMAP is defined, and comparable
when it is not defined.

Approved by core@. Fixes PR port-evbmips/32362.
 1.7 02-Oct-2002  thorpej branches: 1.7.22; 1.7.36; 1.7.40; 1.7.48;
Fix script-o's in last.
 1.6 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 27-Sep-2002  thorpej Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
 1.3 15-Jun-2001  thorpej branches: 1.3.2; 1.3.8;
Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.3.8.2 18-Oct-2002  nathanw Catch up to -current.
 1.3.8.1 15-Jun-2001  nathanw file com_mainbus.c was added on branch nathanw_sa on 2002-10-18 02:33:50 +0000
 1.3.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.7.48.4 17-Jun-2006  gdamore Undo the undo. Restore COM_INIT_REGS handling.
 1.7.48.3 17-Jun-2006  gdamore Undo the change to use COM_INIT_REGS, and instead use backwards compat
support. For com_arbus and com_aubus, we have to set a new flag, COM_HW_REGMAP
to indicate that we have special mapping considerations so that com_attach_subr
doesn't clobber our register map.
 1.7.48.2 16-Jun-2006  gdamore Use common com_cleanup.
 1.7.48.1 15-Jun-2006  gdamore Another com_mainbus. Again, only compile tested.
 1.7.40.1 11-Aug-2006  yamt sync with head
 1.7.36.1 09-Sep-2006  rpaulo sync with head
 1.7.22.2 17-Mar-2008  yamt sync with head.
 1.7.22.1 30-Dec-2006  yamt sync with head.
 1.8.58.2 02-Jun-2008  mjf Sync with HEAD.
 1.8.58.1 03-Apr-2008  mjf Sync with HEAD.
 1.8.54.1 24-Mar-2008  keiichi sync with head.
 1.8.34.1 23-Mar-2008  matt sync with HEAD
 1.10.4.2 11-Mar-2010  yamt sync with head
 1.10.4.1 16-May-2008  yamt sync with head.
 1.10.2.1 18-May-2008  yamt sync with head.
 1.14.54.1 10-Jun-2019  christos Sync with HEAD
 1.14.52.1 26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.12 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.11 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.10 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.9 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.8 07-Mar-2008  cube branches: 1.8.2; 1.8.4;
Split the softc from the device_t for all lpt(4) variants and attachments
except the ppbus stuff (which doesn't compile) and ulpt(4) which is
unrelated and can be dealt with separately.

As usual, it comes with related cosmetic changes.
 1.7 02-Oct-2002  thorpej branches: 1.7.22; 1.7.84; 1.7.104; 1.7.108;
Fix script-o's in last.
 1.6 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 27-Sep-2002  thorpej Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
 1.3 15-Jun-2001  thorpej branches: 1.3.2; 1.3.8;
Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.3.8.2 18-Oct-2002  nathanw Catch up to -current.
 1.3.8.1 15-Jun-2001  nathanw file lpt_mainbus.c was added on branch nathanw_sa on 2002-10-18 02:33:50 +0000
 1.3.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.7.108.2 02-Jun-2008  mjf Sync with HEAD.
 1.7.108.1 03-Apr-2008  mjf Sync with HEAD.
 1.7.104.1 24-Mar-2008  keiichi sync with head.
 1.7.84.1 23-Mar-2008  matt sync with HEAD
 1.7.22.1 17-Mar-2008  yamt sync with head.
 1.8.4.2 11-Mar-2010  yamt sync with head
 1.8.4.1 16-May-2008  yamt sync with head.
 1.8.2.1 18-May-2008  yamt sync with head.
 1.31 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.30 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.29 24-Apr-2021  thorpej branches: 1.29.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.28 07-Jul-2020  thorpej branches: 1.28.4;
Overhaul the interface to pci_configure_bus():
- Don't expose how PCI bus configuration resource management is implemented.
Provide a new resource provider API:

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

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

- Re-implement PCI configuration resource management using vmem arenas,
rather than extent maps.
 1.27 14-Jun-2020  chs replace EX_NOWAIT with EX_WAITOK in device attach methods.
remove checks for failures that can no longer occur.
 1.26 27-Jan-2012  para converting extent(9) from malloc(9) to kmem(9)
preceding kmem-vmem-pool-uvm patch

releng@ acknowledged
 1.25 09-Jul-2011  matt branches: 1.25.2; 1.25.6;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.24 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.23 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.22 05-Jun-2011  matt struct device * -> device_t, struct cfdata * -> cfdata_t
CFATTACH_DECL(*, sizeof(struct device), -> CFATTACH_DECL_NEW(&, 0
 1.21 20-Feb-2011  matt branches: 1.21.2;
Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.20 28-Apr-2008  martin branches: 1.20.18; 1.20.22; 1.20.28; 1.20.30;
Remove clause 3 and 4 from TNF licenses
 1.19 11-Dec-2005  christos branches: 1.19.74; 1.19.76; 1.19.78;
merge ktrace-lwp.
 1.18 26-Aug-2005  drochner s/locdesc_t/int/g
 1.17 30-Jun-2005  drochner branches: 1.17.2;
adaptions to config_search() change, and minor autoconf fixes, mostly from Havard Eidnes
 1.16 28-Jun-2005  drochner kill questionable uses of config(8) generated xxxlocnames[]
locator information does belong elsewhere and definitely shouldn't
be in the global namespace
 1.15 28-Jun-2005  drochner convert remaining autoconf bus "submatch" functions to use the new
signature (passing locators), and remove some which obviously don't
serve any purpose
(untested, sorry)
 1.14 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.13 01-Jan-2003  thorpej branches: 1.13.2;
Use aprint_normal() for cfprint() routines.
 1.12 02-Oct-2002  thorpej Fix script-o's in last.
 1.11 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.10 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.9 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.8 02-Jan-2002  thorpej Fix a typo.
 1.7 28-Nov-2001  thorpej Add a "cacheline_size" argument to pci_configure_bus(). It is used
to set the cacheline size in the BHLC register. This should be the
size of the largest D-cache line on a system.
 1.6 09-Nov-2001  thorpej branches: 1.6.2;
Add a "firstbus" argument to pci_configure_bus(), indicating the
first bus number to use, rather than always assuming that we should
start at bus #0.
 1.5 20-Oct-2001  simonb branches: 1.5.2;
Fix a tyop in a comment.
 1.4 22-Aug-2001  thorpej If PCI_NETBSD_ENABLE_IDE is set, enable the PIIX{3,4} southbridge
IDE channels on the P-5064 and P-6032, since PMON doesn't do it
for us (thus causing the `pciide' driver to ignore them).
 1.3 22-Jun-2001  thorpej branches: 1.3.2;
Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.2 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.3.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.3.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.5.2.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.6.2.6 03-Jan-2003  thorpej Sync with HEAD.
 1.6.2.5 18-Oct-2002  nathanw Catch up to -current.
 1.6.2.4 28-Feb-2002  nathanw Catch up to -current.
 1.6.2.3 11-Jan-2002  nathanw More catchup.
 1.6.2.2 08-Jan-2002  nathanw Catch up to -current.
 1.6.2.1 09-Nov-2001  nathanw file mainbus.c was added on branch nathanw_sa on 2002-01-08 00:22:50 +0000
 1.13.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.13.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.13.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.13.2.1 03-Aug-2004  skrll Sync with HEAD
 1.17.2.1 21-Jun-2006  yamt sync with head.
 1.19.78.1 16-May-2008  yamt sync with head.
 1.19.76.1 18-May-2008  yamt sync with head.
 1.19.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.20.30.1 05-Mar-2011  bouyer Sync with HEAD
 1.20.28.1 06-Jun-2011  jruoho Sync with HEAD.
 1.20.22.2 12-Jun-2011  rmind sync with head
 1.20.22.1 05-Mar-2011  rmind sync with head
 1.20.18.1 20-Jan-2010  matt Adjust things to the new world order.
 1.21.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.25.6.1 18-Feb-2012  mrg merge to -current.
 1.25.2.1 17-Apr-2012  yamt sync with head
 1.28.4.2 22-Mar-2021  thorpej Audit CFARG_IATTR in config_found() calls, and remove it in situations
where the interface attribute is not ambiguous.
 1.28.4.1 22-Mar-2021  thorpej Mechanical conversion of config_found_sm_loc() -> config_found().
CFARG_IATTR usage needs to be audited.
 1.29.8.1 03-Aug-2021  thorpej Adapt to CFARGS().
 1.3 05-Sep-2006  gdamore Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.2 10-Jun-2001  thorpej branches: 1.2.8; 1.2.40; 1.2.54; 1.2.58;
Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.58.1 14-Sep-2006  yamt sync with head.
 1.2.54.1 09-Sep-2006  rpaulo sync with head
 1.2.40.1 30-Dec-2006  yamt sync with head.
 1.2.8.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.2.8.1 10-Jun-2001  thorpej file mcclock.c was added on branch nathanw_sa on 2001-06-10 05:27:00 +0000
 1.12 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.11 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.10 29-Mar-2008  tsutsui Don't forget to initialize sc_dev.
 1.9 28-Mar-2008  tsutsui Split device_t and softc for MI mc146818 clock,
and other related misc cosmetics.
 1.8 10-Jan-2008  tsutsui branches: 1.8.6;
Move todr_attach(9) calls from each MD attachment to MI mc146818_attach().
 1.7 09-Jan-2008  tsutsui Fix botch on MI todr(9) migration of algor on September 2006:
- year0 should be 1980, not 80
- put a newline after MI mc146818_attach()
- call todr_attach(9)
 1.6 05-Sep-2006  gdamore branches: 1.6.6; 1.6.22; 1.6.32; 1.6.38; 1.6.46;
Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.5 02-Oct-2002  thorpej branches: 1.5.22; 1.5.36; 1.5.40;
Fix script-o's in last.
 1.4 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.3 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.2 27-Sep-2002  thorpej Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
 1.1 01-Jun-2001  thorpej branches: 1.1.2; 1.1.8;
Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.1.8.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.8.1 01-Jun-2001  nathanw file mcclock_mainbus.c was added on branch nathanw_sa on 2002-10-18 02:33:51 +0000
 1.1.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.5.40.1 14-Sep-2006  yamt sync with head.
 1.5.36.1 09-Sep-2006  rpaulo sync with head
 1.5.22.2 21-Jan-2008  yamt sync with head
 1.5.22.1 30-Dec-2006  yamt sync with head.
 1.6.46.1 10-Jan-2008  bouyer Sync with HEAD
 1.6.38.1 18-Feb-2008  mjf Sync with HEAD.
 1.6.32.1 23-Mar-2008  matt sync with HEAD
 1.6.22.1 03-Jun-2008  skrll Sync with netbsd-4.
 1.6.6.1 21-Jan-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1040):
sys/arch/algor/isa/mcclock_isa.c: revision 1.9
sys/arch/algor/algor/algor_p5064_intr.c: revision 1.18, 1.20 via patch
sys/arch/algor/algor/algor_p4032_intr.c: revision 1.15, 1.17 via patch
sys/arch/algor/algor/algor_p6032_intr.c: revision 1.12, 1.14 via patch
sys/arch/mips/mips/mips3_clock.c: revision 1.8, 1.9
sys/arch/algor/dev/mcclock_mainbus.c: revision 1.7
sys/arch/algor/algor/locore_machdep.S: revision 1.4
Fix botch on MI todr(9) migration of algor on September 2006:
- year0 should be 1980, not 80
- put a newline after MI mc146818_attach()
- call todr_attach(9)
- in algor_p????_cal_timer() functions, initialize ci_divisor_delay
and ci_cycles_per_hz values in curcpu() for MI mips3_clock.c:mips3_delay()
rather than obsolete and homegrown delay_divisor
- remove old _delay() stuff from locore_machdep.S
- make MI mips3_delay() work even before frequency values in curcpu()
are initialized
Now NetBSD/algor P5064 kernel works on gxemul.
While here, add a hack for emulators:
- ignore a measured CPU frequency if the value looks unlikely
 1.8.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.2 05-Sep-2006  gdamore Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.40; 1.1.54; 1.1.58;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.58.1 14-Sep-2006  yamt sync with head.
 1.1.54.1 09-Sep-2006  rpaulo sync with head
 1.1.40.1 30-Dec-2006  yamt sync with head.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file mcclockvar.h was added on branch nathanw_sa on 2001-05-28 16:22:17 +0000
 1.21 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.20 24-Apr-2021  thorpej branches: 1.20.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.19 27-Oct-2012  chs branches: 1.19.52;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.18 09-Jul-2011  matt branches: 1.18.2; 1.18.12;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.17 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.16 17-May-2011  dyoung PCI_FLAGS_IO_ENABLED and PCI_FLAGS_MEM_ENABLED changed their functional
role in NetBSD (drivers are no longer supposed to write these to
pa_flags) without changing name. Correct that.

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

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

algor P4032 P5064 P6032
alpha GENERIC
amd64 GENERIC XEN3_DOM0
arc GENERIC
atari HADES MILAN-PCIIDE
bebox GENERIC
cats GENERIC
cobalt GENERIC
evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE
evbarm-el GUMSTIX HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321
evbarm-el IXDP425 IXM1200 KUROBOX_PRO
evbarm-el LUBBOCK MARVELL_NAS NAPPI NSLU2 SHEEVAPLUG SMDK2800 TEAMASA_NPWR
evbarm-el TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425
evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3
evbmips64-el XLSATX
evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266
evbppc OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT
hp700 GENERIC
i386 ALL XEN3_DOM0 XEN3_DOMU
ibmnws GENERIC
iyonix GENERIC
landisk GENERIC
macppc GENERIC
mvmeppc GENERIC
netwinder GENERIC
ofppc GENERIC
prep GENERIC
sandpoint GENERIC
sbmips-el GENERIC
sgimips GENERIC32_IP2x GENERIC32_IP3x
sparc GENERIC_SUN4U KRUPS
sparc64 GENERIC
 1.15 28-Apr-2008  martin branches: 1.15.22; 1.15.28;
Remove clause 3 and 4 from TNF licenses
 1.14 11-Dec-2005  christos branches: 1.14.74; 1.14.76; 1.14.78;
merge ktrace-lwp.
 1.13 30-Aug-2004  drochner Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
 1.12 14-Jul-2003  lukem add __KERNEL_RCSID()
 1.11 15-Jun-2003  fvdl branches: 1.11.2;
Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
 1.10 01-Jan-2003  thorpej Use aprint_normal() for cfprint() routines.
 1.9 02-Oct-2002  thorpej Fix script-o's in last.
 1.8 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.7 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.6 16-May-2002  thorpej * Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set to
NULL for root PCI busses. For busses behind a bridge, it points to
a persistent copy of the bridge's pcitag_t. This can be very useful
for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
uses OFW device nodes to enumerate the bus. When a PCI bus that is
behind a bridge is attached, pci_attach_hook() allocates a new PCI
chipset tag for the new bus and sets it's "curnode" to the OFW node
of the bridge. This is used as a starting point when enumerating
that bus. Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
 1.5 22-Jun-2001  thorpej branches: 1.5.2; 1.5.8; 1.5.16;
A P-6032 will never have a V3 PBC -- don't include its option header.
 1.4 14-Jun-2001  thorpej When the old PCI address map is in use, disable I/O space. Also disable
I/O space on PBC revs < B2.
 1.3 14-Jun-2001  thorpej Read the PCI memory space base and the PCI DMA window base from the
V3 PBC, and use them in the bus mem tag and the bus dma tag on the
P-4032. This allows us to get much further when PMON has configured
the PBC using the old-style PCI address map.
 1.2 10-Jun-2001  thorpej Correct for a data structure change.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.5.16.1 30-May-2002  gehenna Catch up with -current.
 1.5.8.4 03-Jan-2003  thorpej Sync with HEAD.
 1.5.8.3 18-Oct-2002  nathanw Catch up to -current.
 1.5.8.2 20-Jun-2002  nathanw Catch up to -current.
 1.5.8.1 22-Jun-2001  nathanw file vtpbc_mainbus.c was added on branch nathanw_sa on 2002-06-20 03:37:26 +0000
 1.5.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.5.2.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.11.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.11.2.2 03-Sep-2004  skrll Sync with HEAD
 1.11.2.1 03-Aug-2004  skrll Sync with HEAD
 1.14.78.1 16-May-2008  yamt sync with head.
 1.14.76.1 18-May-2008  yamt sync with head.
 1.14.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.15.28.1 06-Jun-2011  jruoho Sync with HEAD.
 1.15.22.1 31-May-2011  rmind sync with head
 1.18.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.18.2.1 30-Oct-2012  yamt sync with head
 1.19.52.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.20.8.1 03-Aug-2021  thorpej Adapt to CFARGS().
 1.17 30-Nov-2024  christos Create a new header lwp_private.h to contain _lwp_getprivate_fast,
_lwp_gettcb_fast, _lwp_settcb and remove them from mcontext.h, so that:
1. we don't need special hacks to hide them
2. we can include <lwp.h> where needed to get the necessary prototypes
without redefining them locally.
 1.16 12-Jul-2018  maxv branches: 1.16.36;
Remove the kernel PMC code. Sent yesterday on tech-kern@.

This change:

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

* Removes the PMC code of ARM XSCALE.

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

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

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

* Removes the pmc_evid_t and pmc_ctr_t types.

* Removes all the associated man pages. The sets are marked as obsolete.
 1.15 21-Dec-2015  christos branches: 1.15.16; 1.15.18;
Add mips fenv.h (From FreeBSD)
 1.14 17-Jul-2011  joerg branches: 1.14.12; 1.14.30;
Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.13 13-Jul-2011  dyoung Havard Eidnes points out that on algor we must not install
<machine/bus.h> any longer.
 1.12 12-Aug-2009  matt Nuke a.out support for MIPS.
 1.11 09-Feb-2007  ad branches: 1.11.48;
Merge newlock2 to head.
 1.10 26-Jul-2006  drochner branches: 1.10.4;
don't install <machine/db_machdep.h>, this is kernel only
 1.9 11-Dec-2005  christos branches: 1.9.4; 1.9.8;
merge ktrace-lwp.
 1.8 08-May-2004  kleink branches: 1.8.12;
Factor out W{CHAR,INT}_{MAX,MIN} into their own header file.
 1.7 17-Jan-2003  thorpej branches: 1.7.2;
Merge the nathanw_sa branch.
 1.6 26-Nov-2002  lukem Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more.
 1.5 07-Aug-2002  briggs Implement pmc(9) -- An interface to hardware performance monitoring
counters. These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface. Initially, the Intel XScale
counters are the only ones supported.
 1.4 06-Jun-2002  simonb Don't install <machine/rnd.h>.
 1.3 28-May-2001  thorpej branches: 1.3.2; 1.3.8; 1.3.16;
Don't have conf.h (pasto).
 1.2 28-May-2001  thorpej Forgot bsd.kinc.mk
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.3.16.2 30-Aug-2002  gehenna catch up with -current.
 1.3.16.1 09-Jul-2002  gehenna catch up with -current.
 1.3.8.5 11-Dec-2002  thorpej Sync with HEAD.
 1.3.8.4 13-Aug-2002  nathanw Catch up to -current.
 1.3.8.3 20-Jun-2002  nathanw Catch up to -current.
 1.3.8.2 17-Nov-2001  wdk mcontext support for MIPS based ports.
 1.3.8.1 28-May-2001  wdk file Makefile was added on branch nathanw_sa on 2001-11-17 23:12:05 +0000
 1.3.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.3.2.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.7.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.7.2.1 03-Aug-2004  skrll Sync with HEAD
 1.8.12.2 26-Feb-2007  yamt sync with head.
 1.8.12.1 30-Dec-2006  yamt sync with head.
 1.9.8.1 11-Aug-2006  yamt sync with head
 1.9.4.1 09-Sep-2006  rpaulo sync with head
 1.10.4.1 01-Feb-2007  ad Header file cleanup.
 1.11.48.1 19-Aug-2009  yamt sync with head.
 1.14.30.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.14.12.1 03-Dec-2017  jdolecek update from HEAD
 1.15.18.1 10-Jun-2019  christos Sync with HEAD
 1.15.16.1 28-Jul-2018  pgoyette Sync with HEAD
 1.16.36.1 02-Aug-2025  perseant Sync with HEAD
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file ansi.h was added on branch nathanw_sa on 2001-05-28 16:22:18 +0000
 1.2 12-Aug-2009  matt Nuke a.out support for MIPS.
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.130; 1.1.144;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.144.1 24-Oct-2010  jym Sync with HEAD
 1.1.130.1 19-Aug-2009  yamt sync with head.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file aout_machdep.h was added on branch nathanw_sa on 2001-05-28 16:22:18 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file asm.h was added on branch nathanw_sa on 2001-05-28 16:22:18 +0000
 1.7 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.6 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.5 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.4 22-Mar-2003  simonb branches: 1.4.126; 1.4.130; 1.4.136; 1.4.138;
Fix a grammatical nit.
 1.3 10-Jun-2001  thorpej branches: 1.3.8;
Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.2 01-Jun-2001  thorpej Add support for the Algorithmics P-4032 board. This is totally
untested, since I have no P-4032 board, but it's no worse than
the current situation, which is "totally non-working P-4032
support in the ARC port, of all places".
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.3.8.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.3.8.1 10-Jun-2001  thorpej file autoconf.h was added on branch nathanw_sa on 2001-06-10 05:27:00 +0000
 1.4.138.1 05-Mar-2011  bouyer Sync with HEAD
 1.4.136.1 06-Jun-2011  jruoho Sync with HEAD.
 1.4.130.1 05-Mar-2011  rmind sync with head
 1.4.126.1 24-Feb-2010  matt Adapt algor to the new interrupt/spl scheme.
 1.2 12-Aug-2009  matt Nuke a.out support for MIPS.
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.130; 1.1.144;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.144.1 24-Oct-2010  jym Sync with HEAD
 1.1.130.1 19-Aug-2009  yamt sync with head.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file bsd-aout.h was added on branch nathanw_sa on 2001-05-28 16:22:18 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file bswap.h was added on branch nathanw_sa on 2001-05-28 16:22:18 +0000
 1.17 13-Jul-2011  dyoung Switch algor to new-style <sys/bus.h>. While I'm here, get rid of
__HAVE_DEVICE_REGISTER.
 1.16 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.15 09-Dec-2010  uebayasi Fix DEBUG build.
 1.14 28-Apr-2008  martin branches: 1.14.22;
Remove clause 3 and 4 from TNF licenses
 1.13 04-Mar-2007  christos branches: 1.13.40; 1.13.42; 1.13.44;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.12 21-Feb-2007  mrg add a pair of new bus_dma(9) functions:
int _bus_dmatag_subregion(bus_dma_tag_t tag,
bus_addr_t min_addr,
bus_addr_t max_addr,
bus_dma_tag_t *newtag,
int flags)
void _bus_dmatag_destroy(bus_dma_tag_t tag)

that allow a (normally broken/limited) device to restrict the bus address
range it can talk to. this is used by bce(4) to limit DMA addresses to
1GB range, the maximum the chip can address.

all this is from Yorick Hardy <yhardy@uj.ac.za> with input from several
people on tech-kern.

XXX: bus_dma(9) needs an update still.
 1.11 01-Mar-2006  yamt branches: 1.11.20;
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.10 11-Dec-2005  christos branches: 1.10.2; 1.10.4; 1.10.6;
merge ktrace-lwp.
 1.9 09-Mar-2005  matt branches: 1.9.4;
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.8 15-Jun-2003  fvdl branches: 1.8.2; 1.8.10; 1.8.12;
Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
 1.7 28-Jan-2003  kent Introduce BUS_DMA_NOCACHE, and bus_dmamem_map() of i386 supports it.
 1.6 17-Mar-2002  simonb Make sure that private DMA flags don't overlap with standard DMA flags;
start these at 0x10000 to leave room for an increase in the latter.
 1.5 14-Nov-2001  thorpej branches: 1.5.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.4 04-Sep-2001  thorpej branches: 1.4.4;
Implement bus_space_mmap().
 1.3 19-Jul-2001  thorpej Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
 1.2 31-May-2001  enami branches: 1.2.2;
s/Alpha/MIPS/ in comment.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.3 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.2 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.2.1 03-Aug-2001  lukem update to -current
 1.4.4.1 24-Oct-2001  thorpej Adapt to new cache code. bus_dmamap_sync() is now optimized for
virtually-indexed write-back caches.
 1.5.2.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.5.2.1 14-Nov-2001  nathanw file bus.h was added on branch nathanw_sa on 2002-04-01 07:38:48 +0000
 1.8.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.8.10.1 29-Apr-2005  kent sync with -current
 1.8.2.1 01-Apr-2005  skrll Sync with HEAD.
 1.9.4.3 03-Sep-2007  yamt sync with head.
 1.9.4.2 26-Feb-2007  yamt sync with head.
 1.9.4.1 21-Jun-2006  yamt sync with head.
 1.10.6.1 22-Apr-2006  simonb Sync with head.
 1.10.4.1 09-Sep-2006  rpaulo sync with head
 1.10.2.1 18-Feb-2006  yamt _dm_proc -> _dm_vmspace.
 1.11.20.2 12-Mar-2007  rmind Sync with HEAD.
 1.11.20.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.13.44.1 16-May-2008  yamt sync with head.
 1.13.42.1 18-May-2008  yamt sync with head.
 1.13.40.1 02-Jun-2008  mjf Sync with HEAD.
 1.14.22.1 05-Mar-2011  rmind sync with head
 1.2 09-Jul-2011  dyoung Use the definitions in mips/bus_{dma,space}_{defs,funcs}.h.
 1.1 01-Jul-2011  dyoung Per discussion at
<http://mail-index.netbsd.org/tech-kern/2010/04/02/msg007941.html>,
divide each machine's bus.h into bus_defs.h (constants & data types)
and bus_funcs.h (macro implementations of bus_space(9) routines and MD
prototypes).

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

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

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

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

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

These #include files are not referenced by any (committed) Makefiles or
header files, yet. Changes to Makefiles, to <sys/bus.h>, and to some
more machine-dependent files will dribble in before I throw the switch.
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file cdefs.h was added on branch nathanw_sa on 2001-05-28 16:22:18 +0000
 1.4 04-Sep-2001  simonb branches: 1.4.6;
May as well include <mips/cpuregs.h> in <mips/cpu.h> once rather than
in every MIPS port's <machine/cpu.h>.
 1.3 04-Sep-2001  simonb Centralise struct cpu_info declaration and related info to <mips/cpu.h>.
 1.2 30-May-2001  mrg branches: 1.2.2;
use _KERNEL_OPT
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.4.6.2 04-Sep-2001  simonb May as well include <mips/cpuregs.h> in <mips/cpu.h> once rather than
in every MIPS port's <machine/cpu.h>.
 1.4.6.1 04-Sep-2001  simonb file cpu.h was added on branch nathanw_sa on 2001-09-04 06:23:16 +0000
 1.1 05-Feb-2003  nakayama Replace machine/rnd.h with more appropriate name to share it
with cycle counter based microtime in kern/kern_microtime.c.
 1.2 09-Jul-2011  matt Default to DB_ELF_SYMBOLS and DB_ELFSIZE 32
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file db_machdep.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.5 30-Aug-2011  bouyer Add getlabelusesmbr(), as proposed in
http://mail-index.netbsd.org/tech-userlevel/2011/08/25/msg005404.html
This is used by disk tools such as disklabel(8) to dynamically decide is
the undelyling platform uses a disklabel-in-mbr-partition or not
(instead of using a compile-time list of ports).
getlabelusesmbr() reads the sysctl kern.labelusesmbr, takes its value from the
machdep #define LABELUSESMBR.
For evbmips, make LABELUSESMBR 1 if the platform uses pmon
as bootloader, and 0 (the previous value) otherwise.
 1.4 23-Nov-2009  pooka If cpu_disklabel includes struct dkbad, define __HAVE_DISKLABEL_DKBAD.
This allows use of subr_disk_mbr on all archs. Default to it for
the rump disk component. No functional change for regular kernels.
(The other option would've been to include dkbad in disklabels
everywhere, but arguably this approach has less possible side-effects,
especially given that wedges and related magic will take over the
world any second now).
 1.3 11-Dec-2005  christos branches: 1.3.78;
merge ktrace-lwp.
 1.2 12-Jun-2005  dyoung Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.24;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.24.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file disklabel.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.3.78.1 11-Mar-2010  yamt sync with head
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file ecoff_machdep.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.2 14-Dec-2009  matt Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.130; 1.1.148;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.148.1 22-Aug-2009  matt Move ELF{32,64}_MACHDEP_ENDIANNESS to <mips/elf_machdep.h>
 1.1.130.1 11-Mar-2010  yamt sync with head
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file elf_machdep.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file endian.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file endian_machdep.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.1 21-Dec-2015  christos branches: 1.1.2; 1.1.18;
Add mips fenv.h (From FreeBSD)
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 21-Dec-2015  jdolecek file fenv.h was added on branch tls-maxphys on 2017-12-03 11:35:45 +0000
 1.1.2.2 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.2.1 21-Dec-2015  skrll file fenv.h was added on branch nick-nhusb on 2015-12-27 12:09:27 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file float.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file ieee.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.2 04-Sep-2001  simonb branches: 1.2.6;
Clean up.
 1.1 28-May-2001  thorpej branches: 1.1.2;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.6.2 04-Sep-2001  simonb Clean up.
 1.2.6.1 04-Sep-2001  simonb file ieeefp.h was added on branch nathanw_sa on 2001-09-04 06:26:19 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file int_const.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file int_fmtio.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file int_limits.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file int_mwgwtypes.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file int_types.h was added on branch nathanw_sa on 2001-05-28 16:22:19 +0000
 1.16 28-Jul-2012  matt Fix -fno-common fallout.
 1.15 09-Jul-2011  matt branches: 1.15.2;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.14 20-Feb-2011  matt Merge forward from matt-nb5-mips64.
Adapt to new interrupt/spl framework.
 1.13 28-Apr-2008  martin branches: 1.13.18; 1.13.22; 1.13.28; 1.13.30;
Remove clause 3 and 4 from TNF licenses
 1.12 04-Jan-2008  ad branches: 1.12.6; 1.12.8; 1.12.10;
Fix includes.
 1.11 03-Dec-2007  ad branches: 1.11.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.10 17-Oct-2007  garbled branches: 1.10.2;
Merge the ppcoea-renovation branch to HEAD.

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

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

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.9 17-Jun-2007  tsutsui branches: 1.9.8; 1.9.10;
Move declaretions of _spl*() and _{clr,set}softintr() functions
(which are in mips/locore.S) into <mips/locore.h>
from various MD files.
 1.8 16-Feb-2007  ad branches: 1.8.6; 1.8.8; 1.8.14;
Remove spllowersoftclock() and CLKF_BASEPRI(), and always dispatch callouts
via a soft interrupt. In the near future, softclock will be run from process
context.
 1.7 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.6 18-Nov-2006  tsutsui Fix wrong prototype declarations of _spl*() functions.
Pointed out by Havard Eidnes.
XXX: should these decls be in <mips/intr.h> or <mips/locore.h>?

While here, remove "extern" keyword from function declarations.
 1.5 15-Apr-2006  simonb branches: 1.5.8; 1.5.10;
Switch Algor port to MIPS generic soft-interrupts implementation.
XXX: Compile tested only.
 1.4 15-Jun-2001  thorpej branches: 1.4.8; 1.4.40; 1.4.54; 1.4.56; 1.4.58; 1.4.60; 1.4.62;
Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.3 10-Jun-2001  thorpej Check in work-in-progress of generic ISA interrupt support. The
goal here is to get the P-5064 PCMCIA slots working, and serve as
the basis for P-6032 interrupt support.

PCMCIA interrupt auto-detection not working -- more work to be
done here.
 1.2 10-Jun-2001  thorpej Rewrite the interrupt handling code:
- Compute the number of CPU pipeline cycles per second using the
mc146818.
- Use the COMPARE interrupt for the hardclock interrupt.
- Collapse all interrupt priorities into a single priority, and use
the CPU interrupt inputs to determine the interrupt source (local
device, PCI device, ISA device, etc.)

This allows us to have interrupt sharing.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.4.62.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.4.60.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.58.1 24-May-2006  yamt sync with head.
 1.4.56.1 22-Apr-2006  simonb Sync with head.
 1.4.54.1 09-Sep-2006  rpaulo sync with head
 1.4.40.6 21-Jan-2008  yamt sync with head
 1.4.40.5 07-Dec-2007  yamt sync with head
 1.4.40.4 03-Sep-2007  yamt sync with head.
 1.4.40.3 26-Feb-2007  yamt sync with head.
 1.4.40.2 30-Dec-2006  yamt sync with head.
 1.4.40.1 21-Jun-2006  yamt sync with head.
 1.4.8.2 15-Jun-2001  thorpej Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.4.8.1 15-Jun-2001  thorpej file intr.h was added on branch nathanw_sa on 2001-06-15 04:01:41 +0000
 1.5.10.3 10-Dec-2006  yamt sync with head.
 1.5.10.2 22-Sep-2006  yamt fix softintr for following ports. (hopefully)
hpcmips
evbmips
algor
arc
ews4800mips
newsmips
 1.5.10.1 21-Sep-2006  yamt - implement splraiseipl for algor, arc, ews4800mips, hpcmips, and newsmips.
- tweak evbmips version to match with others.
XXX i think these ought to be merged.
 1.5.8.1 12-Jan-2007  ad Sync with head.
 1.8.14.1 26-Jun-2007  garbled Sync with HEAD.
 1.8.8.1 11-Jul-2007  mjf Sync with head.
 1.8.6.2 03-Dec-2007  ad Sync with HEAD.
 1.8.6.1 15-Jul-2007  ad Sync with head.
 1.9.10.2 09-Jan-2008  matt sync with HEAD
 1.9.10.1 06-Nov-2007  matt sync with HEAD
 1.9.8.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.10.2.2 18-Feb-2008  mjf Sync with HEAD.
 1.10.2.1 08-Dec-2007  mjf Sync with HEAD.
 1.11.6.1 08-Jan-2008  bouyer Sync with HEAD
 1.12.10.1 16-May-2008  yamt sync with head.
 1.12.8.1 18-May-2008  yamt sync with head.
 1.12.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.13.30.1 05-Mar-2011  bouyer Sync with HEAD
 1.13.28.1 06-Jun-2011  jruoho Sync with HEAD.
 1.13.22.1 05-Mar-2011  rmind sync with head
 1.13.18.2 24-Feb-2010  matt Adapt algor to the new interrupt/spl scheme.
 1.13.18.1 06-Feb-2010  matt <mips/softintr.h> is no longer needed.
 1.15.2.1 30-Oct-2012  yamt sync with head
 1.7 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.6 19-Aug-2009  dyoung (Re-)define isa_detach_hook(), and define isa_dmadestroy(). Update
some isa_chipset_tag_t->ic_detach_hook() definitions.
 1.5 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4 11-Dec-2005  christos branches: 1.4.74; 1.4.76; 1.4.78;
merge ktrace-lwp.
 1.3 14-Sep-2004  simonb White space nit.
 1.2 09-May-2003  fvdl branches: 1.2.2;
A few ISA sound drivers like to share dma channels, and hence deferred
isa_dmamap_create() calls to their open/close entrypoints. This worked
with some luck, but broke on i386 when _bus_dmamap_create started
to allocate bounce buffers upfront, since memory below 16M may well
not be available when the sound devices is opened for the Nth time.

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

All isa_dmamap_create calls can now use BUS_DMA_ALLOCNOW and be done
at attach time.
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file isa_machdep.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.2.2.2 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.2.1 18-Sep-2004  skrll Sync with HEAD.
 1.4.78.2 19-Aug-2009  yamt sync with head.
 1.4.78.1 16-May-2008  yamt sync with head.
 1.4.76.1 18-May-2008  yamt sync with head.
 1.4.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.126; 1.1.128; 1.1.130;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.130.1 16-May-2008  yamt sync with head.
 1.1.128.1 18-May-2008  yamt sync with head.
 1.1.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file isapnp_machdep.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file kcore.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file kdbparam.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.2 31-Aug-2001  simonb branches: 1.2.6;
G/C the unused kernel-only CLK_TCK #define.

XXX: does include/time.h still need <machine/limits.h>?
 1.1 28-May-2001  thorpej branches: 1.1.2;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.6.2 31-Aug-2001  simonb G/C the unused kernel-only CLK_TCK #define.

XXX: does include/time.h still need <machine/limits.h>?
 1.2.6.1 31-Aug-2001  simonb file limits.h was added on branch nathanw_sa on 2001-08-31 03:46:04 +0000
 1.2 31-Aug-2001  simonb branches: 1.2.6;
Remove an unneeded comment; ``sync'' with other "just include <mips/foo.h>"
files.
 1.1 28-May-2001  thorpej branches: 1.1.2;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.6.2 31-Aug-2001  simonb Remove an unneeded comment; ``sync'' with other "just include <mips/foo.h>"
files.
 1.2.6.1 31-Aug-2001  simonb file lock.h was added on branch nathanw_sa on 2001-08-31 03:53:23 +0000
 1.2 05-Jun-2002  simonb Simplify include files that just include <mips/locore.h>.
 1.1 28-May-2001  thorpej branches: 1.1.2; 1.1.8; 1.1.16;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.16.1 09-Jul-2002  gehenna catch up with -current.
 1.1.8.2 20-Jun-2002  nathanw Catch up to -current.
 1.1.8.1 28-May-2001  nathanw file locore.h was added on branch nathanw_sa on 2002-06-20 03:37:27 +0000
 1.1.2.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1 30-Nov-2024  christos branches: 1.1.4;
Create a new header lwp_private.h to contain _lwp_getprivate_fast,
_lwp_gettcb_fast, _lwp_settcb and remove them from mcontext.h, so that:
1. we don't need special hacks to hide them
2. we can include <lwp.h> where needed to get the necessary prototypes
without redefining them locally.
 1.1.4.2 02-Aug-2025  perseant Sync with HEAD
 1.1.4.1 30-Nov-2024  perseant file lwp_private.h was added on branch perseant-exfatfs on 2025-08-02 05:55:21 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file math.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.2 17-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 17-Nov-2001  wdk branches: 1.1.2;
file mcontext.h was initially added on branch nathanw_sa.
 1.1.2.1 17-Nov-2001  wdk mcontext support for MIPS based ports.
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file mips_opcode.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.2 09-Feb-2007  ad branches: 1.2.4;
Merge newlock2 to head.
 1.1 22-Dec-2006  ad branches: 1.1.2;
file mutex.h was initially added on branch newlock2.
 1.1.2.1 22-Dec-2006  ad Pull in CPU specific stubs.
 1.2.4.2 26-Feb-2007  yamt sync with head.
 1.2.4.1 09-Feb-2007  yamt file mutex.h was added on branch yamt-lazymbuf on 2007-02-26 09:05:31 +0000
 1.2 14-Dec-2009  matt branches: 1.2.4;
Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.1 15-Sep-2009  matt branches: 1.1.2;
file netbsd32_machdep.h was initially added on branch matt-nb5-mips64.
 1.1.2.1 15-Sep-2009  matt Add netbsd32_machdep.h for algor64 and sbmips64
 1.2.4.2 11-Mar-2010  yamt sync with head
 1.2.4.1 14-Dec-2009  yamt file netbsd32_machdep.h was added on branch yamt-nfs-mp on 2010-03-11 15:01:56 +0000
 1.12 07-Jan-2019  jdolecek move DEV_BSIZE, DEV_BSHIFT out of MD param.h, they are same on all ports

also move BLKDEV_IOSIZE, MAXPHYS, but allow override since some ports
have different value (powerpc uses NBPG for BLKDEV_IOSIZE, sun2/sun3
have lower MAXPHYS)
 1.11 18-Mar-2011  tsutsui branches: 1.11.54; 1.11.56;
- include <mips/mips_param.h> after MACHINE is defined
- remove redundant comment
 1.10 08-Feb-2011  rmind Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.9 14-Dec-2009  matt branches: 1.9.4; 1.9.6; 1.9.8;
Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.8 13-Aug-2009  matt Move MID_MACHINE to <mips/mips_param.h> and use local values so we don't
need to include exec_aout.h
 1.7 05-Sep-2006  gdamore branches: 1.7.60; 1.7.78;
Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.6 11-Dec-2005  christos branches: 1.6.4; 1.6.8;
merge ktrace-lwp.
 1.5 07-Aug-2003  agc branches: 1.5.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.4 26-Feb-2002  simonb branches: 1.4.16;
Purge CLSIZE, CLSIZELOG2 and MCLOFSET.
Be consistant in the way that MSIZE, MCLSHIFT, MCLBYTES and NMBCLUSTERS
are defined.
Remove old VM constants from cesfic port.
Bump MSIZE to 256 on mipsco (the only one that wasn't already 256).
 1.3 26-Feb-2002  simonb We are not a DECstation.
 1.2 30-May-2001  mrg branches: 1.2.2; 1.2.8;
use _KERNEL_OPT
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.8.2 28-Feb-2002  nathanw Catch up to -current.
 1.2.8.1 30-May-2001  nathanw file param.h was added on branch nathanw_sa on 2002-02-28 04:06:07 +0000
 1.2.2.1 16-Mar-2002  jdolecek Catch up with -current.
 1.4.16.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.16.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.16.1 03-Aug-2004  skrll Sync with HEAD
 1.5.16.1 30-Dec-2006  yamt sync with head.
 1.6.8.1 14-Sep-2006  yamt sync with head.
 1.6.4.1 09-Sep-2006  rpaulo sync with head
 1.7.78.1 22-Aug-2009  matt Move MACHINE_ARCH definition to <mips/mips_param.h>
Move mbuf related defines to <mips/mips_param.h>
 1.7.60.2 11-Mar-2010  yamt sync with head
 1.7.60.1 19-Aug-2009  yamt sync with head.
 1.9.8.1 17-Feb-2011  bouyer Sync with HEAD
 1.9.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.9.4.2 21-Apr-2011  rmind sync with head
 1.9.4.1 05-Mar-2011  rmind sync with head
 1.11.56.1 10-Jun-2019  christos Sync with HEAD
 1.11.54.1 18-Jan-2019  pgoyette Synch with HEAD
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file pcb.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.9 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.8 06-Apr-2011  dyoung Fix fallout from pci_attach_args constification.
 1.7 16-Feb-2006  thorpej branches: 1.7.94; 1.7.100;
Remove the ugly algor_get_ethaddr() hack. We have a properties infrastructure
now, so use that to provide the Ethernet address of the built-in Ethernet.
XXX Still a little ugly in the tlp driver, but fixing that would require
XXX reworking the SROM usage in a broader sense.

While here, do the P4032 DMA window hack in device_register() as well.
 1.6 11-Dec-2005  christos branches: 1.6.2; 1.6.4; 1.6.6;
merge ktrace-lwp.
 1.5 29-Jul-2004  drochner branches: 1.5.12;
remove now unnecessary "pci_enumerate_bus" definitions
 1.4 15-May-2002  thorpej branches: 1.4.10;
Let machine-dependent code specify how to enumerate the bus.
Currently, everyone uses pci_enumerate_bus_generic().
 1.3 29-Oct-2001  thorpej branches: 1.3.2;
pci_conf_interrupt() takes bus/dev/pin, not bus/dev/func.
 1.2 08-Jun-2001  simonb branches: 1.2.2; 1.2.6;
For ports that wire up pciide in compatibility mode, have
them define __HAVE_PCIIDE_MACHDEP_COMPAT_INTR_ESTABLISH
in pci_machdep.h and pciide_map_compat_intr() only calls
pciide_machdep_compat_intr_establish() if that preprocessor
define exists.

Ports that don't need to do this no longer need to supply a
dummy function.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.6.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.2.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.2 20-Jun-2002  nathanw Catch up to -current.
 1.3.2.1 29-Oct-2001  nathanw file pci_machdep.h was added on branch nathanw_sa on 2002-06-20 03:37:27 +0000
 1.4.10.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.10.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.10.1 03-Aug-2004  skrll Sync with HEAD
 1.5.12.1 21-Jun-2006  yamt sync with head.
 1.6.6.1 22-Apr-2006  simonb Sync with head.
 1.6.4.1 09-Sep-2006  rpaulo sync with head
 1.6.2.1 18-Feb-2006  yamt sync with head.
 1.7.100.1 06-Jun-2011  jruoho Sync with HEAD.
 1.7.94.1 21-Apr-2011  rmind sync with head
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file pmap.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.2 12-Jul-2018  maxv Remove the kernel PMC code. Sent yesterday on tech-kern@.

This change:

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

* Removes the PMC code of ARM XSCALE.

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

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

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

* Removes the pmc_evid_t and pmc_ctr_t types.

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

pmc(9) is meant to be a general interface. Initially, the Intel XScale
counters are the only ones supported.
 1.1.204.1 10-Jun-2019  christos Sync with HEAD
 1.1.202.1 28-Jul-2018  pgoyette Sync with HEAD
 1.1.6.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.6.1 07-Aug-2002  jdolecek file pmc.h was added on branch kqueue on 2002-09-06 08:31:19 +0000
 1.1.4.2 30-Aug-2002  gehenna catch up with -current.
 1.1.4.1 07-Aug-2002  gehenna file pmc.h was added on branch gehenna-devsw on 2002-08-30 00:18:46 +0000
 1.1.2.2 13-Aug-2002  nathanw Catch up to -current.
 1.1.2.1 07-Aug-2002  nathanw file pmc.h was added on branch nathanw_sa on 2002-08-13 01:02:38 +0000
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.126; 1.1.128; 1.1.130;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.130.1 16-May-2008  yamt sync with head.
 1.1.128.1 18-May-2008  yamt sync with head.
 1.1.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file pmon.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file proc.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file profile.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file psl.h was added on branch nathanw_sa on 2001-05-28 16:22:20 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file pte.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file ptrace.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file reg.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file regdef.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file regnum.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.2 09-Sep-2001  simonb branches: 1.2.4;
Clean up and standardise across MIPS ports.
 1.1 28-May-2001  thorpej branches: 1.1.2; 1.1.4;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.1.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.4.2 09-Sep-2001  simonb Clean up and standardise across MIPS ports.
 1.2.4.1 09-Sep-2001  simonb file reloc.h was added on branch nathanw_sa on 2001-09-09 04:20:26 +0000
 1.2 05-Feb-2003  nakayama Replace machine/rnd.h with more appropriate name to share it
with cycle counter based microtime in kern/kern_microtime.c.
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file rnd.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.2 09-Feb-2007  ad branches: 1.2.4;
Merge newlock2 to head.
 1.1 22-Dec-2006  ad branches: 1.1.2;
file rwlock.h was initially added on branch newlock2.
 1.1.2.1 22-Dec-2006  ad Pull in CPU specific stubs.
 1.2.4.2 26-Feb-2007  yamt sync with head.
 1.2.4.1 09-Feb-2007  yamt file rwlock.h was added on branch yamt-lazymbuf on 2007-02-26 09:05:31 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file setjmp.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file signal.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.2 17-Jul-2011  joerg Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file stdarg.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file trap.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.7 26-Jan-2017  christos provide __HAVE_COMPAT_NETBSD32 and fix multiple include protection consistently.
 1.6 13-Jul-2011  dyoung branches: 1.6.12; 1.6.30; 1.6.34; 1.6.38;
Switch algor to new-style <sys/bus.h>. While I'm here, get rid of
__HAVE_DEVICE_REGISTER.
 1.5 20-Jan-2008  joerg Now that __HAVE_TIMECOUNTER and __HAVE_GENERIC_TODR are invariants,
remove the conditionals and the code associated with the undef case.
 1.4 17-Oct-2007  garbled branches: 1.4.2; 1.4.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.3 14-Jul-2007  ad branches: 1.3.10;
Generic soft interrupts are mandatory.
 1.2 05-Sep-2006  gdamore branches: 1.2.12; 1.2.20;
Update algor clock handling. This includes using the common mc146818
support code, using the common MIPS 3 cp0 based interrupt code, adding
time counters, and using the generic TODR code.

Unfortunately, due to lack of hardware, I don't know for sure that any
of this works, though the same code in evbmips works. Commiting anyway,
ok'd by simon@.
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.40; 1.1.54; 1.1.58;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.58.1 14-Sep-2006  yamt sync with head.
 1.1.54.1 09-Sep-2006  rpaulo sync with head
 1.1.40.3 21-Jan-2008  yamt sync with head
 1.1.40.2 03-Sep-2007  yamt sync with head.
 1.1.40.1 30-Dec-2006  yamt sync with head.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file types.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.2.20.1 03-Oct-2007  garbled Sync with HEAD
 1.2.12.1 15-Jul-2007  ad Sync with head.
 1.3.10.2 23-Mar-2008  matt sync with HEAD
 1.3.10.1 06-Nov-2007  matt sync with HEAD
 1.4.8.1 23-Jan-2008  bouyer Sync with HEAD.
 1.4.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.6.38.1 21-Apr-2017  bouyer Sync with HEAD
 1.6.34.1 20-Mar-2017  pgoyette Sync with HEAD
 1.6.30.1 05-Feb-2017  skrll Sync with HEAD
 1.6.12.1 03-Dec-2017  jdolecek update from HEAD
 1.2 17-Jul-2011  joerg Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.1 28-May-2001  thorpej branches: 1.1.8;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file varargs.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.2 14-Dec-2009  matt Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.130; 1.1.148;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.148.1 31-Dec-2009  matt Use mips_page_physload and mips_init_lwp0_uarea.
 1.1.130.1 11-Mar-2010  yamt sync with head
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file vmparam.h was added on branch nathanw_sa on 2001-05-28 16:22:21 +0000
 1.2 11-Dec-2005  christos merge ktrace-lwp.
 1.1 08-May-2004  kleink branches: 1.1.2;
Factor out W{CHAR,INT}_{MAX,MIN} into their own header file.
 1.1.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.2.2 03-Aug-2004  skrll Sync with HEAD
 1.1.2.1 08-May-2004  skrll file wchar_limits.h was added on branch ktrace-lwp on 2004-08-03 10:31:02 +0000
 1.2 11-Dec-2005  christos branches: 1.2.18;
merge ktrace-lwp.
 1.1 05-Nov-2005  tsutsui branches: 1.1.2;
Add empty <machine/wired_map.h> for the MI mips/wired_map.c.
 1.1.2.2 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.2.1 05-Nov-2005  skrll file wired_map.h was added on branch ktrace-lwp on 2005-11-10 13:48:21 +0000
 1.2.18.2 21-Jun-2006  yamt sync with head.
 1.2.18.1 11-Dec-2005  yamt file wired_map.h was added on branch yamt-lazymbuf on 2006-06-21 14:48:00 +0000
 1.10 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.9 14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.8 28-Apr-2008  martin branches: 1.8.8; 1.8.14;
Remove clause 3 and 4 from TNF licenses
 1.7 04-Mar-2007  christos branches: 1.7.40; 1.7.42; 1.7.44;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.6 11-Dec-2005  christos branches: 1.6.26;
merge ktrace-lwp.
 1.5 14-Jul-2003  lukem branches: 1.5.16;
add __KERNEL_RCSID()
 1.4 04-Sep-2001  thorpej branches: 1.4.6; 1.4.22;
Implement bus_space_mmap().
 1.3 14-Jun-2001  thorpej branches: 1.3.2;
When the old PCI address map is in use, disable I/O space. Also disable
I/O space on PBC revs < B2.
 1.2 01-Jun-2001  thorpej If a bus doens't want to use an extent, don't force it to.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.3.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.4.22.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.22.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.22.1 03-Aug-2004  skrll Sync with HEAD
 1.4.6.2 04-Sep-2001  thorpej Implement bus_space_mmap().
 1.4.6.1 04-Sep-2001  thorpej file pci_alignstride_bus_io_chipdep.c was added on branch nathanw_sa on 2001-09-04 16:32:44 +0000
 1.5.16.1 03-Sep-2007  yamt sync with head.
 1.6.26.1 12-Mar-2007  rmind Sync with HEAD.
 1.7.44.2 04-May-2009  yamt sync with head.
 1.7.44.1 16-May-2008  yamt sync with head.
 1.7.42.1 18-May-2008  yamt sync with head.
 1.7.40.1 02-Jun-2008  mjf Sync with HEAD.
 1.8.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.8.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.9 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.8 14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.7 28-Apr-2008  martin branches: 1.7.8; 1.7.14;
Remove clause 3 and 4 from TNF licenses
 1.6 04-Mar-2007  christos branches: 1.6.40; 1.6.42; 1.6.44;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.5 11-Dec-2005  christos branches: 1.5.26;
merge ktrace-lwp.
 1.4 14-Jul-2003  lukem branches: 1.4.16;
add __KERNEL_RCSID()
 1.3 20-Oct-2001  simonb branches: 1.3.4; 1.3.20;
Fix typo in mmap hander.
 1.2 04-Sep-2001  thorpej Implement bus_space_mmap().
 1.1 28-May-2001  thorpej branches: 1.1.2;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.3.20.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.20.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.20.1 03-Aug-2004  skrll Sync with HEAD
 1.3.4.2 20-Oct-2001  simonb Fix typo in mmap hander.
 1.3.4.1 20-Oct-2001  simonb file pci_alignstride_bus_mem_chipdep.c was added on branch nathanw_sa on 2001-10-20 05:56:36 +0000
 1.4.16.1 03-Sep-2007  yamt sync with head.
 1.5.26.1 12-Mar-2007  rmind Sync with HEAD.
 1.6.44.2 04-May-2009  yamt sync with head.
 1.6.44.1 16-May-2008  yamt sync with head.
 1.6.42.1 18-May-2008  yamt sync with head.
 1.6.40.1 02-Jun-2008  mjf Sync with HEAD.
 1.7.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.7.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.30 19-Oct-2025  thorpej Use {,e}isabus_attach().
 1.29 08-Feb-2024  andvar s/sharable/shareable in comments and documentation.
 1.28 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.27 24-Apr-2021  thorpej branches: 1.27.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.26 14-Nov-2020  thorpej branches: 1.26.2;
malloc(9) -> kmem(9)
 1.25 10-Nov-2019  chs branches: 1.25.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.24 09-Jul-2011  matt branches: 1.24.54;
Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.23 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.22 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.21 19-Aug-2009  dyoung Define, and hook into the isa_chipset_tag_t, pcib_isa_detach_hook().
 1.20 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.19 28-Apr-2008  martin branches: 1.19.8; 1.19.14;
Remove clause 3 and 4 from TNF licenses
 1.18 12-May-2006  tsutsui branches: 1.18.62; 1.18.64; 1.18.66;
According to the i8259 manual, EOI, R, and SL bits belong to OCW2 register
so rename them OCW3_* -> OCW2_*.
 1.17 11-Dec-2005  christos branches: 1.17.4; 1.17.6; 1.17.8; 1.17.12;
merge ktrace-lwp.
 1.16 30-Aug-2004  drochner branches: 1.16.12;
Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
 1.15 23-Apr-2004  itojun pass string length (= boundary info) to pci_devinfo so that we do not run over
the end of memory region
 1.14 02-Nov-2003  he Fix uninitialized error in pcib_print().
 1.13 01-Jan-2003  thorpej branches: 1.13.2;
Use aprint_normal() for cfprint() routines.
 1.12 02-Oct-2002  thorpej Fix script-o's in last.
 1.11 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.10 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.9 22-Jun-2001  thorpej branches: 1.9.2; 1.9.8;
Check in work-in-progress of P-6032 support. This is not tested,
but is meant for back-up purposes.
 1.8 22-Jun-2001  thorpej Fill in one P-6032 snippet.
 1.7 21-Jun-2001  thorpej More ISA interrupt rototilling. I get *some* interrupts on a:

we1 at isa0 port 0x300-0x31f iomem 0xcc000-0xcffff irq 10
we1: WD8013WC Ethernet (16-bit)
we1: Ethernet address 00:00:c0:94:f6:72

...but still nothing on the PCIC.
 1.6 21-Jun-2001  thorpej Rototill ISA interrupt code. In particular, I have remembered most
of the horror that is the 8259 PIC.

PCMCIA interrupts still not working yet, but getting closer.
 1.5 15-Jun-2001  thorpej Yet more interrupt cleanup -- the platform mater interrupt establish
function now just takes an "irq", which is an index into the irqmap
table for that platform.
 1.4 10-Jun-2001  thorpej Hand off intr evcnt responsiblity in a reasonable way on the 5064.
 1.3 10-Jun-2001  thorpej Check in work-in-progress of generic ISA interrupt support. The
goal here is to get the P-5064 PCMCIA slots working, and serve as
the basis for P-6032 interrupt support.

PCMCIA interrupt auto-detection not working -- more work to be
done here.
 1.2 01-Jun-2001  thorpej The P-4032 has no ISA bridge/bus, so remove all P-4032 conditionals.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.9.8.3 03-Jan-2003  thorpej Sync with HEAD.
 1.9.8.2 18-Oct-2002  nathanw Catch up to -current.
 1.9.8.1 22-Jun-2001  nathanw file pcib.c was added on branch nathanw_sa on 2002-10-18 02:33:52 +0000
 1.9.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.13.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.13.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.13.2.2 03-Sep-2004  skrll Sync with HEAD
 1.13.2.1 03-Aug-2004  skrll Sync with HEAD
 1.16.12.1 21-Jun-2006  yamt sync with head.
 1.17.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.17.8.1 24-May-2006  yamt sync with head.
 1.17.6.1 01-Jun-2006  kardel Sync with head.
 1.17.4.1 09-Sep-2006  rpaulo sync with head
 1.18.66.3 19-Aug-2009  yamt sync with head.
 1.18.66.2 04-May-2009  yamt sync with head.
 1.18.66.1 16-May-2008  yamt sync with head.
 1.18.64.1 18-May-2008  yamt sync with head.
 1.18.62.1 02-Jun-2008  mjf Sync with HEAD.
 1.19.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.19.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.24.54.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.25.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.26.2.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.27.8.1 03-Aug-2021  thorpej Adapt to CFARGS().
 1.6 09-Jul-2011  matt Allow algor kernels to be built under either algor/algor64 or
evbmips-el/evbmips64-el. Note that MAXMAPARITITONS and majors numbers
differ between the two ports which is why two kernels are still needed.
 1.5 08-Jul-2011  matt Major update of algor.
Now uses generic mips bus_space.h bus_dma.h isa_machdep.h pci_machdep.h
Now uses evbmips versions of cpu.c isadma_bounce.c mcclock_isa.c
 1.4 06-Apr-2011  dyoung Fix fallout of pci_attach_args constification. This should be the last
one for algor.
 1.3 18-Mar-2008  cube branches: 1.3.26; 1.3.32;
Split device_t and softc for ATA devices, as well as wd(4). Other
cosmetic changes where appropriate.
 1.2 22-Jun-2001  thorpej branches: 1.2.8; 1.2.40; 1.2.102; 1.2.122; 1.2.126;
Only call through the function pointer if it's not NULL.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.2.126.1 03-Apr-2008  mjf Sync with HEAD.
 1.2.122.1 24-Mar-2008  keiichi sync with head.
 1.2.102.1 23-Mar-2008  matt sync with HEAD
 1.2.40.1 24-Mar-2008  yamt sync with head.
 1.2.8.2 22-Jun-2001  thorpej Only call through the function pointer if it's not NULL.
 1.2.8.1 22-Jun-2001  thorpej file pciide_machdep.c was added on branch nathanw_sa on 2001-06-22 01:42:21 +0000
 1.3.32.1 06-Jun-2011  jruoho Sync with HEAD.
 1.3.26.1 21-Apr-2011  rmind sync with head
 1.10 02-Oct-2015  msaitoh PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific
 1.9 27-Oct-2012  chs branches: 1.9.14;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.8 01-Jul-2011  dyoung branches: 1.8.2; 1.8.12;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.7 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.6 24-Dec-2005  perry branches: 1.6.74; 1.6.76; 1.6.78;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.5 11-Dec-2005  christos merge ktrace-lwp.
 1.4 14-Jul-2003  lukem branches: 1.4.16;
add __KERNEL_RCSID()
 1.3 14-Jun-2001  thorpej branches: 1.3.8; 1.3.24;
When the old PCI address map is in use, disable I/O space. Also disable
I/O space on PBC revs < B2.
 1.2 14-Jun-2001  thorpej Read the PCI memory space base and the PCI DMA window base from the
V3 PBC, and use them in the bus mem tag and the bus dma tag on the
P-4032. This allows us to get much further when PMON has configured
the PBC using the old-style PCI address map.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.3.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.24.1 03-Aug-2004  skrll Sync with HEAD
 1.3.8.2 14-Jun-2001  thorpej When the old PCI address map is in use, disable I/O space. Also disable
I/O space on PBC revs < B2.
 1.3.8.1 14-Jun-2001  thorpej file vtpbc.c was added on branch nathanw_sa on 2001-06-14 18:52:28 +0000
 1.4.16.1 21-Jun-2006  yamt sync with head.
 1.6.78.1 16-May-2008  yamt sync with head.
 1.6.76.1 18-May-2008  yamt sync with head.
 1.6.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.8.12.2 03-Dec-2017  jdolecek update from HEAD
 1.8.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.8.2.1 30-Oct-2012  yamt sync with head
 1.9.14.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2 24-Dec-2005  perry Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.1 28-May-2001  thorpej branches: 1.1.8; 1.1.40;
A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.40.1 21-Jun-2006  yamt sync with head.
 1.1.8.2 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.1.8.1 28-May-2001  thorpej file vtpbcreg.h was added on branch nathanw_sa on 2001-05-28 16:22:22 +0000
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 14-Jun-2001  thorpej branches: 1.3.8; 1.3.126; 1.3.128; 1.3.130;
When the old PCI address map is in use, disable I/O space. Also disable
I/O space on PBC revs < B2.
 1.2 14-Jun-2001  thorpej Read the PCI memory space base and the PCI DMA window base from the
V3 PBC, and use them in the bus mem tag and the bus dma tag on the
P-4032. This allows us to get much further when PMON has configured
the PBC using the old-style PCI address map.
 1.1 28-May-2001  thorpej A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU). There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
 1.3.130.1 16-May-2008  yamt sync with head.
 1.3.128.1 18-May-2008  yamt sync with head.
 1.3.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.3.8.2 14-Jun-2001  thorpej When the old PCI address map is in use, disable I/O space. Also disable
I/O space on PBC revs < B2.
 1.3.8.1 14-Jun-2001  thorpej file vtpbcvar.h was added on branch nathanw_sa on 2001-06-14 18:52:28 +0000

RSS XML Feed