Home | History | Annotate | only in /src/sys/arch/powerpc/include/ibm4xx
History log of /src/sys/arch/powerpc/include/ibm4xx
RevisionDateAuthorComments
 1.6 25-Feb-2010  matt Split <powerpc/spr.h> into a common <powerpc/spr.h> and <powerpc/XXX/spr.h>
where XXX is ibm4xx or oea.
 1.5 11-Dec-2005  christos branches: 1.5.78; 1.5.98; 1.5.102;
merge ktrace-lwp.
 1.4 19-Jan-2005  chs ibm4xx/pte.h is no more.
 1.3 26-Nov-2002  lukem branches: 1.3.6; 1.3.14;
Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more.
 1.2 10-Apr-2002  briggs Install cpu.h. Noted in PR port-powerpc/16285 from smi@sm.sony.co.jp.
 1.1 13-Jun-2001  simonb branches: 1.1.2; 1.1.8;
Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.1.8.3 11-Dec-2002  thorpej Sync with HEAD.
 1.1.8.2 17-Apr-2002  nathanw Catch up to -current.
 1.1.8.1 13-Jun-2001  nathanw file Makefile was added on branch nathanw_sa on 2002-04-17 00:04:12 +0000
 1.1.2.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.3.14.1 29-Apr-2005  kent sync with -current
 1.3.6.1 24-Jan-2005  skrll Sync with HEAD.
 1.5.102.1 07-Jan-2011  matt Add spr.h
 1.5.98.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.5.78.1 11-Mar-2010  yamt sync with head
 1.1 18-Mar-2010  kiyohara branches: 1.1.2; 1.1.4; 1.1.6;
Support PowerPC 405EX/EXr.
1. Add some new source and header files.
(MAL(split) and RGMII(new) relations for EMAC)
2. Create dcr4xx.h. Its moved from dcr405gp.h. Also remove dcr405xx.h.
3. intr.c supports MULTIUIC with virtual-irq. likes to oea.
support 32-virq/128-hwirq.
4. multiple emac support.
5. WALNUT and VIRTEX_* includes arch/powerpc/conf/files.ibm4xx.
6. WALNUT pci uses arch/powerpc/ibm4xx/pci/.
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 18-Mar-2010  yamt file amcc405ex.h was added on branch yamt-nfs-mp on 2010-08-11 22:52:34 +0000
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 18-Mar-2010  rmind file amcc405ex.h was added on branch rmind-uvmplock on 2010-05-30 05:17:03 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 18-Mar-2010  uebayasi file amcc405ex.h was added on branch uebayasi-xip on 2010-04-30 14:39:43 +0000
 1.4 25-Jul-2003  scw Switch ibm4xx over to using the more flexible powerpc bus_space/bus_dma code.
 1.3 15-Jun-2003  fvdl branches: 1.3.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.2 11-Mar-2003  hannken Add support for the IBM 403GCX cpu. Enabled with "options PPC_IBM403".

- different set of device control registers.
- non-standard access to the time base.
- 16 byte cache lines.

Approved by: Eduardo Horvath <eeh@netbsd.org>
 1.1 09-Dec-2002  scw branches: 1.1.2;
Changes/additions to support evbppc.
 1.1.2.2 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.1 09-Dec-2002  thorpej file bus.h was added on branch nathanw_sa on 2002-12-11 06:11:42 +0000
 1.3.2.1 03-Aug-2004  skrll Sync with HEAD
 1.27 02-Nov-2021  ryo fix build with COPTS=-O0
 1.26 31-May-2021  simonb Include "opt_param.h" (ifdef _KERNEL_OPT) everywhere that MSGBUFSIZE is
referenced since some sources include <machine/param.h>.
 1.25 30-Mar-2021  rin branches: 1.25.2;
Convert walnut to use powerpc/ibm4xx/openbios.
No functional changes.
 1.24 30-Mar-2021  rin G/C bootpath.
 1.23 29-Mar-2021  rin Set com(4) frequency in ibm4xx_device_register() in order to dedup codes.
 1.22 19-Apr-2018  christos branches: 1.22.14; 1.22.16;
s/static inline/static __inline/g for consistency.
 1.21 27-Jul-2012  matt branches: 1.21.38;
Fix some -fno-common fallout
 1.20 20-Jun-2011  matt branches: 1.20.2;
Change IBM4xx to use the common powerpc PIC framework.
Consolidate most ibm4xx initppc function into ibm4xx_init
and Make all IBM4xx use it.
Change explora to use initppc instead of bootstrap.
 1.19 20-Jun-2011  matt Explicitly include <powerpc/psl.h>
 1.18 18-Jun-2011  matt Move PVR definitions to <powerpc/ibm4xx/spr.h>
No need to include <powerpc/cpu.h> in <powerpc/ib4xx/cpu.h>
 1.17 17-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
split device/softc (CFATTACH_DECL_NEW)
use device_accessors and device_private
constify
 1.16 18-Jan-2011  matt branches: 1.16.4;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.
 1.15 18-Mar-2010  kiyohara branches: 1.15.2;
Support PowerPC 405EX/EXr.
1. Add some new source and header files.
(MAL(split) and RGMII(new) relations for EMAC)
2. Create dcr4xx.h. Its moved from dcr405gp.h. Also remove dcr405xx.h.
3. intr.c supports MULTIUIC with virtual-irq. likes to oea.
support 32-virq/128-hwirq.
4. multiple emac support.
5. WALNUT and VIRTEX_* includes arch/powerpc/conf/files.ibm4xx.
6. WALNUT pci uses arch/powerpc/ibm4xx/pci/.
 1.14 14-Mar-2009  dsl branches: 1.14.2; 1.14.4;
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.13 31-Aug-2006  freza branches: 1.13.60; 1.13.68; 1.13.74; 1.13.82;
* add PVR values for Xilinx 405 cores
* don't try to decode vendor-specific PVR, print raw value instead.
* panic() if we see cache wasn't probed, we'd crash later anyway.
* rework the way PVR gets translated to core name.
* while there, normalize printf format ("%s: ...", device_xname(self), ...).

OK by matt@
 1.12 05-May-2006  thorpej Remove the devprop API and switch everthing over to the new proplib. Add
a new device_properties() accessor for device_t that returns the device's
property dictionary.
 1.11 11-Dec-2005  christos branches: 1.11.4; 1.11.6; 1.11.8; 1.11.10; 1.11.12;
merge ktrace-lwp.
 1.10 21-Jan-2005  shige branches: 1.10.8;
Add consinit() and md_consinit funcptr to ibm4xx/machdep.c.
Rename consinit() to obs405_consinit() at evbppc/obs405/consinit.c.

Set md_consinit to obs405_consinit() at initppc().
Consinit fuction calls a function stored at md_consinit pointer.
 1.9 18-Jan-2005  shige Arrange some machine-dependent code.
- ibm40x_machdep.c: ibm40x specific
. ibm40x_memsize_init
. mem_regions
. other functions are moved to machdep.c or ibm4xx_machdep.c.
- ibm4xx_machdep.c: ibm4xx specific
. ibm4xx_init (moved from ibm40x_machdep.c)
. ibm4xx_install_extint (moved from ibm40x_machdep.c)
. ibm4xx_cpu_startup (moved from ibm40x_machdep.c:ibm4xx_startup)
. ibm4xx_dumpsys
 1.8 17-Jan-2005  shige Remove openbios dependent code from ibm4xx/ibm40x dependent module.
 1.7 13-Jan-2005  shige branches: 1.7.2;
Add externs:
- md_device_register (func ptr)
- ibm4xx_device_register (func)
 1.6 23-Sep-2003  shige branches: 1.6.6;
Add IBM40x specific machdep functions.
 1.5 13-Jun-2003  msaitoh branches: 1.5.2;
Add support IBM 405GPr
 1.4 11-Aug-2002  simonb Define the 4xx PVR values in one place only.
 1.3 13-May-2002  matt branches: 1.3.2; 1.3.6;
Remove redundant declarations.
 1.2 15-Mar-2002  eeh branches: 1.2.4;
Use properties to pass around board-specific information rather than a
structure.
 1.1 13-Mar-2002  eeh Add this file.
 1.2.4.4 13-Aug-2002  nathanw Catch up to -current.
 1.2.4.3 20-Jun-2002  nathanw Catch up to -current.
 1.2.4.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.4.1 15-Mar-2002  nathanw file cpu.h was added on branch nathanw_sa on 2002-04-01 07:42:05 +0000
 1.3.6.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.3.6.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.3.6.1 13-May-2002  jdolecek file cpu.h was added on branch kqueue on 2002-06-23 17:39:43 +0000
 1.3.2.1 31-Aug-2002  gehenna catch up with -current.
 1.5.2.5 24-Jan-2005  skrll Sync with HEAD.
 1.5.2.4 17-Jan-2005  skrll Sync with HEAD.
 1.5.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.2.1 03-Aug-2004  skrll Sync with HEAD
 1.6.6.1 15-Sep-2005  riz Pull up following revision(s) (requested by shige in ticket #5820):
distrib/evbppc/md-kernel/Makefile 1.3 via patch
etc/etc.evbppc/Makefile.inc 1.3 via patch
sys/arch/evbppc/conf/files.obs405 1.5-1.8 via patch
sys/arch/evbppc/conf/OPENBLOCKS266 1.22,1.25 via patch
sys/arch/evbppc/include/obs266.h 1.1 (new)
sys/arch/evbppc/include/obs405.h 1.1-1.5 (new)
sys/arch/evbppc/include/rbus_machdep.h 1.1 (new)
sys/arch/evbppc/obs405/consinit.c 1.2-1.4
sys/arch/evbppc/obs405/dev/x1226.c deleted
sys/arch/evbppc/obs405/dev/x1226reg.h deleted
sys/arch/evbppc/obs405/machdep.c deleted
sys/arch/evbppc/obs405/obs266_autoconf.c 1.1 (new)
sys/arch/evbppc/obs405/obs266_machdep.c 1.1 (new, plus patch)
sys/arch/evbppc/obs405/obs405_autoconf.c 1.1 (new, plus patch)
sys/arch/evbppc/obs405/obs405_machdep.c 1.1 (new)
sys/arch/evbppc/obs405/rbus_machdep.c 1.1 (new)
sys/arch/powerpc/conf/files.ibm4xx 1.6-1.7
sys/arch/powerpc/ibm4xx/board_prop.c 1.1 (new)
sys/arch/powerpc/ibm4xx/dev/com_opb.c 1.12
sys/arch/powerpc/ibm4xx/dev/comopbvar.h 1.1 (new)
sys/arch/powerpc/ibm4xx/ibm40x_machdep.c 1.3-1.4
sys/arch/powerpc/ibm4xx/ibm4xx_autoconf.c 1.1-1.2 (new)
sys/arch/powerpc/ibm4xx/ibm4xx_machdep.c 1.1-1.3 (new)
sys/arch/powerpc/ibm4xx/ibm4xxgpx_autoconf.c 1.2-1.3
sys/arch/powerpc/ibm4xx/openbios/openbios.c 1.1 (new)
sys/arch/powerpc/include/ibm4xx/cpu.h 1.7-1.10
sys/arch/powerpc/include/ibm4xx/openbios.h 1.1 (new)

Update OpenBlockS266 support to more modern, stable sources.
 1.7.2.1 29-Apr-2005  kent sync with -current
 1.10.8.2 30-Dec-2006  yamt sync with head.
 1.10.8.1 21-Jun-2006  yamt sync with head.
 1.11.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.11.10.1 11-May-2006  elad sync with head
 1.11.8.2 03-Sep-2006  yamt sync with head.
 1.11.8.1 24-May-2006  yamt sync with head.
 1.11.6.1 01-Jun-2006  kardel Sync with head.
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.13.82.1 17-Jan-2011  matt Add SPE (signal processing engine) support for mpc85xx/booke. Think of it
as AltiVec-lite (really lite). Genercize AltiVec support so that it could
the same interface could support SPE as well. Rework the FPU support along
the same lines. Move the __asm() to their own XXX_subr.S (altivec, fpu, spe).
 1.13.74.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.13.68.1 28-Apr-2009  skrll Sync with HEAD.
 1.13.60.2 11-Aug-2010  yamt sync with head.
 1.13.60.1 04-May-2009  yamt sync with head.
 1.14.4.2 05-Mar-2011  rmind sync with head
 1.14.4.1 30-May-2010  rmind sync with head
 1.14.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.15.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.16.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.20.2.1 30-Oct-2012  yamt sync with head
 1.21.38.1 22-Apr-2018  pgoyette Sync with HEAD
 1.22.16.1 03-Apr-2021  thorpej Sync with HEAD.
 1.22.14.1 03-Apr-2021  thorpej Sync with HEAD.
 1.25.2.1 17-Jun-2021  thorpej Sync w/ HEAD.
 1.3 13-Mar-2002  eeh Delete this file. It's only relevent to 405gp.
 1.2 29-Aug-2001  simonb branches: 1.2.6;
Gah, fix a number of channel status/select bitfields.
 1.1 13-Jun-2001  simonb branches: 1.1.2;
Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.1.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.6.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.6.1 29-Aug-2001  nathanw file dcr.h was added on branch nathanw_sa on 2002-04-01 07:42:05 +0000
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 30-May-2006  freza branches: 1.3.60; 1.3.62; 1.3.64;
Remove duplicate definitions of mfdcr()/mtdcr() in favor of a single one
in cpu.h

OK Matt Thomas
 1.2 24-Dec-2005  perry branches: 1.2.4; 1.2.6; 1.2.8; 1.2.14;
bare asm -> __asm
 1.1 11-Mar-2003  hannken branches: 1.1.18;
Add support for the IBM 403GCX cpu. Enabled with "options PPC_IBM403".

- different set of device control registers.
- non-standard access to the time base.
- 16 byte cache lines.

Approved by: Eduardo Horvath <eeh@netbsd.org>
 1.1.18.1 21-Jun-2006  yamt sync with head.
 1.2.14.1 19-Jun-2006  chap Sync with head.
 1.2.8.1 26-Jun-2006  yamt sync with head.
 1.2.6.1 01-Jun-2006  kardel Sync with head.
 1.2.4.1 09-Sep-2006  rpaulo sync with head
 1.3.64.1 16-May-2008  yamt sync with head.
 1.3.62.1 18-May-2008  yamt sync with head.
 1.3.60.1 02-Jun-2008  mjf Sync with HEAD.
 1.6 18-Mar-2010  kiyohara Support PowerPC 405EX/EXr.
1. Add some new source and header files.
(MAL(split) and RGMII(new) relations for EMAC)
2. Create dcr4xx.h. Its moved from dcr405gp.h. Also remove dcr405xx.h.
3. intr.c supports MULTIUIC with virtual-irq. likes to oea.
support 32-virq/128-hwirq.
4. multiple emac support.
5. WALNUT and VIRTEX_* includes arch/powerpc/conf/files.ibm4xx.
6. WALNUT pci uses arch/powerpc/ibm4xx/pci/.
 1.5 30-May-2006  freza branches: 1.5.64; 1.5.78; 1.5.84; 1.5.86;
Remove duplicate definitions of mfdcr()/mtdcr() in favor of a single one
in cpu.h

OK Matt Thomas
 1.4 24-Dec-2005  perry branches: 1.4.4; 1.4.6; 1.4.8; 1.4.14;
bare asm -> __asm
 1.3 11-Dec-2005  christos merge ktrace-lwp.
 1.2 27-Jul-2003  simonb branches: 1.2.16;
Whitespace alignment nits.
 1.1 13-Mar-2002  eeh branches: 1.1.4; 1.1.10; 1.1.16;
405gp-specific DCRs.
 1.1.16.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.16.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.16.1 03-Aug-2004  skrll Sync with HEAD
 1.1.10.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.10.1 13-Mar-2002  jdolecek file dcr405gp.h was added on branch kqueue on 2002-06-23 17:39:44 +0000
 1.1.4.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.1.4.1 13-Mar-2002  nathanw file dcr405gp.h was added on branch nathanw_sa on 2002-04-01 07:42:05 +0000
 1.2.16.1 21-Jun-2006  yamt sync with head.
 1.4.14.1 19-Jun-2006  chap Sync with head.
 1.4.8.1 26-Jun-2006  yamt sync with head.
 1.4.6.1 01-Jun-2006  kardel Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5.86.1 30-May-2010  rmind sync with head
 1.5.84.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.5.78.1 24-Oct-2010  jym Sync with HEAD
 1.5.64.1 11-Aug-2010  yamt sync with head.
 1.6 18-Mar-2010  kiyohara Support PowerPC 405EX/EXr.
1. Add some new source and header files.
(MAL(split) and RGMII(new) relations for EMAC)
2. Create dcr4xx.h. Its moved from dcr405gp.h. Also remove dcr405xx.h.
3. intr.c supports MULTIUIC with virtual-irq. likes to oea.
support 32-virq/128-hwirq.
4. multiple emac support.
5. WALNUT and VIRTEX_* includes arch/powerpc/conf/files.ibm4xx.
6. WALNUT pci uses arch/powerpc/ibm4xx/pci/.
 1.5 30-May-2006  freza branches: 1.5.64; 1.5.78; 1.5.84; 1.5.86;
Remove duplicate definitions of mfdcr()/mtdcr() in favor of a single one
in cpu.h

OK Matt Thomas
 1.4 24-Dec-2005  perry branches: 1.4.4; 1.4.6; 1.4.8; 1.4.14;
bare asm -> __asm
 1.3 11-Dec-2005  christos merge ktrace-lwp.
 1.2 17-Dec-2004  shige branches: 1.2.2; 1.2.12;
Substitute PPC405_ with PPC_IBM405_.
 1.1 01-Dec-2004  shige Add header file for IBM405XX(AMCC405XX) Device Control Registers.
 1.2.12.1 21-Jun-2006  yamt sync with head.
 1.2.2.2 18-Dec-2004  skrll Sync with HEAD.
 1.2.2.1 17-Dec-2004  skrll file dcr405xx.h was added on branch ktrace-lwp on 2004-12-18 09:31:26 +0000
 1.4.14.1 19-Jun-2006  chap Sync with head.
 1.4.8.1 26-Jun-2006  yamt sync with head.
 1.4.6.1 01-Jun-2006  kardel Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5.86.1 30-May-2010  rmind sync with head
 1.5.84.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.5.78.1 24-Oct-2010  jym Sync with HEAD
 1.5.64.1 11-Aug-2010  yamt sync with head.
 1.4 02-Apr-2021  rin Add bit-field definitions for DCR_SDRAM0_B[0-3]CR registers.
 1.3 21-Nov-2013  kiyohara branches: 1.3.42; 1.3.44;
Support Synopsys DesigneWave OTG on PowerPC 405EX.
 1.2 06-Nov-2010  uebayasi branches: 1.2.8; 1.2.18; 1.2.22;
More registers to support IBM405GPr "External Bus".
 1.1 18-Mar-2010  kiyohara branches: 1.1.2; 1.1.4; 1.1.6;
Support PowerPC 405EX/EXr.
1. Add some new source and header files.
(MAL(split) and RGMII(new) relations for EMAC)
2. Create dcr4xx.h. Its moved from dcr405gp.h. Also remove dcr405xx.h.
3. intr.c supports MULTIUIC with virtual-irq. likes to oea.
support 32-virq/128-hwirq.
4. multiple emac support.
5. WALNUT and VIRTEX_* includes arch/powerpc/conf/files.ibm4xx.
6. WALNUT pci uses arch/powerpc/ibm4xx/pci/.
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 18-Mar-2010  yamt file dcr4xx.h was added on branch yamt-nfs-mp on 2010-08-11 22:52:34 +0000
 1.1.4.3 05-Mar-2011  rmind sync with head
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 18-Mar-2010  rmind file dcr4xx.h was added on branch rmind-uvmplock on 2010-05-30 05:17:03 +0000
 1.1.2.3 11-Aug-2010  uebayasi Implement 405GPr's "External Bus" as exb(4).
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 18-Mar-2010  uebayasi file dcr4xx.h was added on branch uebayasi-xip on 2010-04-30 14:39:43 +0000
 1.2.22.1 18-May-2014  rmind sync with head
 1.2.18.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.1 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.44.1 03-Apr-2021  thorpej Sync with HEAD.
 1.3.42.1 03-Apr-2021  thorpej Sync with HEAD.
 1.11 18-Mar-2010  kiyohara Support PowerPC 405EX/EXr.
1. Add some new source and header files.
(MAL(split) and RGMII(new) relations for EMAC)
2. Create dcr4xx.h. Its moved from dcr405gp.h. Also remove dcr405xx.h.
3. intr.c supports MULTIUIC with virtual-irq. likes to oea.
support 32-virq/128-hwirq.
4. multiple emac support.
5. WALNUT and VIRTEX_* includes arch/powerpc/conf/files.ibm4xx.
6. WALNUT pci uses arch/powerpc/ibm4xx/pci/.
 1.10 11-Dec-2005  christos branches: 1.10.78; 1.10.98; 1.10.100;
merge ktrace-lwp.
 1.9 23-Sep-2003  shige Add some PCI definitions listed in evbppc/include/walnut.h.
 1.8 13-Aug-2002  simonb branches: 1.8.6;
Use "ibm4xx" instead of "galaxy"; galaxy was an early code name for the
405GP.
 1.7 13-Aug-2002  simonb Split out device register definitions to their own files as the are
common across many of the 4xx parts. Leaves ibm405gp.h with device
address information specific to the 405GP CPU. Now allows opb.c to
support multiple 4xx CPU types.
 1.6 11-Aug-2002  simonb Define the 4xx PVR values in one place only.
 1.5 21-Oct-2001  simonb branches: 1.5.4; 1.5.12;
Fix typo, noted by Artem Belevich.
 1.4 14-Aug-2001  simonb Fix typo, noted by UCHIYAMA Yasushi in private mail.
 1.3 25-Jun-2001  simonb branches: 1.3.2;
Fix typo in emac0 base address.
 1.2 24-Jun-2001  simonb Move 405GP registers, addresses and other info to ibm405gp.h. Leave only
board-specific addresses and other info in walnut.h.
 1.1 13-Jun-2001  simonb Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.3.2.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 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.12.1 31-Aug-2002  gehenna catch up with -current.
 1.5.4.3 27-Aug-2002  nathanw Catch up to -current.
 1.5.4.2 13-Aug-2002  nathanw Catch up to -current.
 1.5.4.1 21-Oct-2001  nathanw file ibm405gp.h was added on branch nathanw_sa on 2002-08-13 02:18:46 +0000
 1.8.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.8.6.1 03-Aug-2004  skrll Sync with HEAD
 1.10.100.1 30-May-2010  rmind sync with head
 1.10.98.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.10.78.1 11-Aug-2010  yamt sync with head.
 1.21 20-Jun-2011  matt Change IBM4xx to use the common powerpc PIC framework.
Consolidate most ibm4xx initppc function into ibm4xx_init
and Make all IBM4xx use it.
Change explora to use initppc instead of bootstrap.
 1.20 12-May-2011  kiyohara branches: 1.20.2;
Fix spl0(). Our IPL_NONE is not 0.
 1.19 18-Jan-2011  matt Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.
 1.18 24-Apr-2010  kiyohara branches: 1.18.2;
Support 64-bit imask for powerpc/pic.
 1.17 18-Mar-2010  kiyohara Support PowerPC 405EX/EXr.
1. Add some new source and header files.
(MAL(split) and RGMII(new) relations for EMAC)
2. Create dcr4xx.h. Its moved from dcr405gp.h. Also remove dcr405xx.h.
3. intr.c supports MULTIUIC with virtual-irq. likes to oea.
support 32-virq/128-hwirq.
4. multiple emac support.
5. WALNUT and VIRTEX_* includes arch/powerpc/conf/files.ibm4xx.
6. WALNUT pci uses arch/powerpc/ibm4xx/pci/.
 1.16 28-Apr-2008  martin branches: 1.16.20; 1.16.22; 1.16.26;
Remove clause 3 and 4 from TNF licenses
 1.15 03-Dec-2007  ad branches: 1.15.14; 1.15.16; 1.15.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.14 21-Dec-2006  yamt branches: 1.14.6; 1.14.22; 1.14.24; 1.14.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.13 27-Sep-2006  freza Make sure we mask statclock timer on ibm4xx systems. This avoids
pthread "related" panics like:

panic: remrunqueue: bit 18 not set
Stopped in pid 479.3 (exsprite) at netbsd:cpu_Debugger+0x10: lwz
r
0, r1, 0x14
db> bt
0x869abe00: at panic+0x1b4
0x869abe50: at remrunqueue+0x80
0x869abe60: at mi_switch+0x114
0x869abea0: at sa_unblock_userret+0x4e8
0x869abee0: at syscall_plain+0x224
0x869abf40: user SC trap #93 by 0x41949810: srr1=0xc030
r1=0x445fff40 cr=0x40000002 xer=0 ctr=0x41aae208 esr=0 pid=0x36

While there, cleanup IPL_ definitions somewhat and fix interrupt mask
calculation per spl(9).

OK by matt@
 1.12 30-Jun-2006  freza branches: 1.12.4; 1.12.6;
Bring ibm4xx interrupt code up to date:

- generic soft interrupts (ie. use powerpc/softintr.c)
- interrupt event counters (using the ones from powerpc/cpu.h:cpu_info
where appropriate)
- cleanup ibm4xx_intr.h, move implementation details to intr.c

Convert all affected evbppc platforms.

OK by simonb@, some points discussed with matt@
 1.11 31-Dec-2005  hannken branches: 1.11.2; 1.11.6; 1.11.14;
Fix a typo introduced in revision 1.8:

- #define splraiseipl(x) splraise(x)
+ #define splraiseipl(x) splraise(imask[x])

Approved by: YAMAMOTO Takashi <yamt@netbsd.org>
 1.10 24-Dec-2005  perry branches: 1.10.2;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile
 1.9 24-Dec-2005  perry Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.8 27-Nov-2005  yamt implement splraiseipl() for the following ports.
evbppc, evbmips, evbsh3, hp700, mac68k, vax, x68k.
 1.7 04-Sep-2005  kiyohara branches: 1.7.6;
Support the 'PCMCIA adapter BOX' for OpenBlockS266.
 1.6 26-Nov-2003  simonb branches: 1.6.14; 1.6.16;
Fix some white space nits.
 1.5 26-Nov-2003  simonb Remove the prototype for the non-existent intr_md_register() function.
 1.4 03-Sep-2003  matt Move CLKF_BASEPRI to machine specific <intr.h> file since it depends on
the encoding of the spl for the port.
 1.3 05-Aug-2003  simonb Note that the used interrupt bits are 405GP specific.
Fix a tyop.
 1.2 16-Jun-2003  thorpej branches: 1.2.2;
Rename IPL_IMP -> IPL_VM.
 1.1 04-Mar-2003  matt Re-arrange things in evbppc & powerpc to support OEA-based eval boards
in evbppc. OEA-based board(s) to be added later.
 1.2.2.5 11-Dec-2005  christos Sync with head.
 1.2.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.2.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.2.1 03-Aug-2004  skrll Sync with HEAD
 1.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.6.14.1 14-Sep-2005  tron Apply patch (requested by shige in ticket #763):
Synchronize OpenBlockS266 port with NetBSD-current for enhanced stability.
 1.7.6.1 29-Nov-2005  yamt sync with head.
 1.10.2.1 15-Jan-2006  yamt sync with head.
 1.11.14.1 13-Jul-2006  gdamore Merge from HEAD.
 1.11.6.1 11-Aug-2006  yamt sync with head
 1.11.2.1 09-Sep-2006  rpaulo sync with head
 1.12.6.2 22-Oct-2006  yamt sync with head
 1.12.6.1 20-Sep-2006  yamt implement new api for evbppc.
 1.12.4.2 12-Jan-2007  ad Sync with head.
 1.12.4.1 18-Nov-2006  ad Sync with head.
 1.14.30.1 08-Dec-2007  mjf Sync with HEAD.
 1.14.24.1 09-Jan-2008  matt sync with HEAD
 1.14.22.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.14.6.1 03-Dec-2007  ad Sync with HEAD.
 1.15.18.2 11-Aug-2010  yamt sync with head.
 1.15.18.1 16-May-2008  yamt sync with head.
 1.15.16.1 18-May-2008  yamt sync with head.
 1.15.14.1 02-Jun-2008  mjf Sync with HEAD.
 1.16.26.1 07-Jan-2011  matt Remove CLKF_BASEPRI (it's obsolete).
 1.16.22.3 31-May-2011  rmind sync with head
 1.16.22.2 05-Mar-2011  rmind sync with head
 1.16.22.1 30-May-2010  rmind sync with head
 1.16.20.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.18.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.20.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.1 13-Jun-2001  simonb branches: 1.1.8;
Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.1.8.2 13-Jun-2001  simonb Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.1.8.1 13-Jun-2001  simonb file mal405gp.h was added on branch nathanw_sa on 2001-06-13 06:01:50 +0000
 1.3 30-Mar-2021  rin Remove unused "startkernel" argument for openbios_board_init().
 1.2 11-Dec-2005  christos branches: 1.2.178; 1.2.180;
merge ktrace-lwp.
 1.1 17-Jan-2005  shige branches: 1.1.2; 1.1.10; 1.1.14;
Add openbios-board related modules.
- openbios.c
getting board data memory image from openbios.
setting all board data to board properties database.
- board_prop.c
initialize board properties database.
(set/get board properties [macros in ibm4xx/cpu.h])
 1.1.14.2 15-Sep-2005  riz Pull up following revision(s) (requested by shige in ticket #5820):
distrib/evbppc/md-kernel/Makefile 1.3 via patch
etc/etc.evbppc/Makefile.inc 1.3 via patch
sys/arch/evbppc/conf/files.obs405 1.5-1.8 via patch
sys/arch/evbppc/conf/OPENBLOCKS266 1.22,1.25 via patch
sys/arch/evbppc/include/obs266.h 1.1 (new)
sys/arch/evbppc/include/obs405.h 1.1-1.5 (new)
sys/arch/evbppc/include/rbus_machdep.h 1.1 (new)
sys/arch/evbppc/obs405/consinit.c 1.2-1.4
sys/arch/evbppc/obs405/dev/x1226.c deleted
sys/arch/evbppc/obs405/dev/x1226reg.h deleted
sys/arch/evbppc/obs405/machdep.c deleted
sys/arch/evbppc/obs405/obs266_autoconf.c 1.1 (new)
sys/arch/evbppc/obs405/obs266_machdep.c 1.1 (new, plus patch)
sys/arch/evbppc/obs405/obs405_autoconf.c 1.1 (new, plus patch)
sys/arch/evbppc/obs405/obs405_machdep.c 1.1 (new)
sys/arch/evbppc/obs405/rbus_machdep.c 1.1 (new)
sys/arch/powerpc/conf/files.ibm4xx 1.6-1.7
sys/arch/powerpc/ibm4xx/board_prop.c 1.1 (new)
sys/arch/powerpc/ibm4xx/dev/com_opb.c 1.12
sys/arch/powerpc/ibm4xx/dev/comopbvar.h 1.1 (new)
sys/arch/powerpc/ibm4xx/ibm40x_machdep.c 1.3-1.4
sys/arch/powerpc/ibm4xx/ibm4xx_autoconf.c 1.1-1.2 (new)
sys/arch/powerpc/ibm4xx/ibm4xx_machdep.c 1.1-1.3 (new)
sys/arch/powerpc/ibm4xx/ibm4xxgpx_autoconf.c 1.2-1.3
sys/arch/powerpc/ibm4xx/openbios/openbios.c 1.1 (new)
sys/arch/powerpc/include/ibm4xx/cpu.h 1.7-1.10
sys/arch/powerpc/include/ibm4xx/openbios.h 1.1 (new)

Update OpenBlockS266 support to more modern, stable sources.
 1.1.14.1 17-Jan-2005  riz file openbios.h was added on branch netbsd-2 on 2005-09-15 14:28:44 +0000
 1.1.10.2 29-Apr-2005  kent sync with -current
 1.1.10.1 17-Jan-2005  kent file openbios.h was added on branch kent-audio2 on 2005-04-29 11:28:20 +0000
 1.1.2.2 24-Jan-2005  skrll Sync with HEAD.
 1.1.2.1 17-Jan-2005  skrll file openbios.h was added on branch ktrace-lwp on 2005-01-24 08:34:27 +0000
 1.2.180.1 03-Apr-2021  thorpej Sync with HEAD.
 1.2.178.1 03-Apr-2021  thorpej Sync with HEAD.
 1.7 22-Jun-2011  matt Add support pci_intr_setattr.
Export non-inline version of pci api for modules (_MODULE is defined).
Fix definition of pc_conf_hook and pc_conf_interrupt.
Switch to using inlines instead of macros.
Switch ibm4xx to use <powerpc/pci_machdep.h>
 1.6 17-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
split device/softc (CFATTACH_DECL_NEW)
use device_accessors and device_private
constify
 1.5 04-Apr-2011  dyoung branches: 1.5.2;
Neither pci_dma64_available(), pci_probe_device(), pci_mapreg_map(9),
pci_find_rom(), pci_intr_map(9), pci_enumerate_bus(), nor the match
predicate passed to pciide_compat_intr_establish() should ever modify
their pci_attach_args argument, so make their pci_attach_args arguments
const and deal with the fallout throughout the kernel.

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

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

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

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

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

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

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

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

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

### evbmips-el GDIUM

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

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

### ia64 GENERIC

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

### sgimips GENERIC32_IP3x

crmfb.o: In function `crmfb_attach':
crmfb.c:(.text+0x2304): undefined reference to `ddc_read_edid'
crmfb.c:(.text+0x2304): relocation truncated to fit: R_MIPS_26 against `ddc_read_edid'
crmfb.c:(.text+0x234c): undefined reference to `edid_parse'
crmfb.c:(.text+0x234c): relocation truncated to fit: R_MIPS_26 against `edid_parse'
crmfb.c:(.text+0x2354): undefined reference to `edid_print'
crmfb.c:(.text+0x2354): relocation truncated to fit: R_MIPS_26 against `edid_print'
 1.4 11-Dec-2005  christos branches: 1.4.100; 1.4.106;
merge ktrace-lwp.
 1.3 04-Sep-2005  kiyohara Support the 'PCMCIA adapter BOX' for OpenBlockS266.
 1.2 02-Aug-2004  tacha branches: 1.2.10; 1.2.12;
remove obsolete "pci_enumerate_bus" definition.
 1.1 04-Mar-2003  matt branches: 1.1.2;
Re-arrange things in evbppc & powerpc to support OEA-based eval boards
in evbppc. OEA-based board(s) to be added later.
 1.1.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.2.1 03-Aug-2004  skrll Sync with HEAD
 1.2.12.1 21-Jun-2006  yamt sync with head.
 1.2.10.1 14-Sep-2005  tron Apply patch (requested by shige in ticket #763):
Synchronize OpenBlockS266 port with NetBSD-current for enhanced stability.
 1.4.106.1 06-Jun-2011  jruoho Sync with HEAD.
 1.4.100.1 21-Apr-2011  rmind sync with head
 1.5.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.22 28-Sep-2023  skrll Trailing whitespace.
 1.21 14-Mar-2020  ad pmap_remove_all(): Return a boolean value to indicate the behaviour. If
true, all mappings have been removed, the pmap is totally cleared out, and
UVM can then avoid doing the work to call pmap_remove() for each map entry.
If false, either nothing has been done, or some helpful arch-specific voodoo
has taken place.
 1.20 05-Mar-2020  rin Retire tlbpid_t (u_short):

- PID (ctx, ASID) is 8-bit length, not half word.
- For struct pmap, no need to use integer types smaller than word as
pm_ctx because of alignment.
- For ppc4xx_tlb_enter(), we need word-length storage for pid (and msr).

XXX
Better to rewrite pmap module with more suggestive integer types rather
than char, int, long, and so on.
 1.19 17-Jul-2019  skrll branches: 1.19.2;
Spell endianness correctly in comments
 1.18 19-Apr-2018  christos branches: 1.18.2;
s/static inline/static __inline/g for consistency.
 1.17 30-Jun-2011  matt branches: 1.17.52;
Modify mapiodev to take a third argument indicating whether the space
should be prefetchable (true) or not (false).
 1.16 20-Jun-2011  matt PowerPC now exports a common view of cpu.h, vmparam.h and pmap.h
when building a MODULAR kernel or compiling _MODULE.
It should be noted that MODULAR or _MODULE export a view of the kernel
as being MULTIPROCESSOR (even if isn't).
The shared pmap TLB uses mdpg in places where it used mdpg to avoid
deadly embrance inclusion problems.
 1.15 18-Jan-2011  matt branches: 1.15.4;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.
 1.14 09-Dec-2008  pooka branches: 1.14.6; 1.14.8;
Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr,
which is now the "API" provided by the pmap module. pmap_kernel()
remains as the syntactic sugar.

Bonus cosmetics round: move all the pmap_t pointer typedefs into
uvm_pmap.h.

Thanks to Greg Oster for providing cpu muscle for doing test builds.
 1.13 21-Feb-2007  thorpej branches: 1.13.42; 1.13.46; 1.13.52; 1.13.54; 1.13.66;
Replace the Mach-derived boolean_t type with the C99 bool type. A
future commit will replace use of TRUE and FALSE with true and false.
 1.12 24-Dec-2005  perry branches: 1.12.26;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.11 11-Dec-2005  christos merge ktrace-lwp.
 1.10 16-Jan-2005  chs branches: 1.10.8;
implement pmap_wired_count(). fix some places we would forget to splx().
move the parts of pte.h that were used into pmap.c (since they were really
pmap-internal details) and delete ibm4xx/pte.h. other misc cleanup.
 1.9 31-Aug-2004  simonb branches: 1.9.4;
Remove the unused MKTTE macro.
 1.8 17-Aug-2003  chs remove an unused proto.
 1.7 25-Jul-2003  scw Switch ibm4xx over to using the more flexible powerpc bus_space/bus_dma code.
 1.6 02-Apr-2003  thorpej branches: 1.6.2;
Use PAGE_SIZE rather than NBPG.
 1.5 22-Sep-2002  chs it really helps to get the stub right before cutting + pasting it 27 times.
alas, I did not. doh.
 1.4 22-Sep-2002  chs add pmap_remove_all() hook (empty on most platforms so far).
 1.3 13-Mar-2002  eeh pmap improvements:

Remove the cache flush routines that have been moved to cpu.c

Make sure we clear out the unused PA bits in the TTE which causes breakage
on some MMU models.
 1.2 11-Sep-2001  eeh branches: 1.2.4;
Implement pmap_growkernel().
 1.1 13-Jun-2001  simonb branches: 1.1.2; 1.1.4;
Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.1.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.1.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.1.2.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.4.3 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.4.1 11-Sep-2001  nathanw file pmap.h was added on branch nathanw_sa on 2002-04-01 07:42:05 +0000
 1.6.2.5 17-Jan-2005  skrll Sync with HEAD.
 1.6.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.6.2.2 03-Sep-2004  skrll Sync with HEAD
 1.6.2.1 03-Aug-2004  skrll Sync with HEAD
 1.9.4.1 29-Apr-2005  kent sync with -current
 1.10.8.2 26-Feb-2007  yamt sync with head.
 1.10.8.1 21-Jun-2006  yamt sync with head.
 1.12.26.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.13.66.1 07-Jan-2011  matt PMAP_NC -> PMAP_NOCACHE.
 1.13.54.1 19-Jan-2009  skrll Sync with HEAD.
 1.13.52.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.13.46.1 04-May-2009  yamt sync with head.
 1.13.42.1 17-Jan-2009  mjf Sync with HEAD.
 1.14.8.1 06-Jun-2011  jruoho Sync with HEAD.
 1.14.6.1 05-Mar-2011  rmind sync with head
 1.15.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.17.52.1 22-Apr-2018  pgoyette Sync with HEAD
 1.18.2.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.18.2.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.19.2.1 09-Mar-2020  martin Pull up following revision(s) (requested by rin in ticket #773):

sys/arch/powerpc/ibm4xx/pmap.c: revision 1.81
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.82
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.83
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.84
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.85
sys/arch/powerpc/include/ibm4xx/tlb.h: revision 1.6
sys/arch/powerpc/include/ibm4xx/pmap.h: revision 1.20

Misc non-critical fixes.
- __asm --> __asm volatile for sure
- turn DEBUG code in __asm into DIAGNOSTIC code in C
- style

ppc4xx_tlb_enter(): invalidate entry after clearing MSR for sure.

pmap_procwr(): use dcbst instead of dcbf as a tiny optimization.

Retire tlbpid_t (u_short):
- PID (ctx, ASID) is 8-bit length, not half word.
- For struct pmap, no need to use integer types smaller than word as
pm_ctx because of alignment.
- For ppc4xx_tlb_enter(), we need word-length storage for pid (and msr).
XXX
Better to rewrite pmap module with more suggestive integer types rather
than char, int, long, and so on.

Fix pmap_procwr().
While we need to turn off IMMU, DMMU should be kept on. Otherwise,
dcbst (and also icbi probably, though not documented clearly both
for 405 and 403) should not work correctly.
 1.2 16-Jan-2005  chs implement pmap_wired_count(). fix some places we would forget to splx().
move the parts of pte.h that were used into pmap.c (since they were really
pmap-internal details) and delete ibm4xx/pte.h. other misc cleanup.
 1.1 13-Jun-2001  simonb branches: 1.1.8; 1.1.24; 1.1.32;
Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.1.32.1 29-Apr-2005  kent sync with -current
 1.1.24.1 17-Jan-2005  skrll Sync with HEAD.
 1.1.8.2 13-Jun-2001  simonb Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.1.8.1 13-Jun-2001  simonb file pte.h was added on branch nathanw_sa on 2001-06-13 06:01:50 +0000
 1.5 12-Sep-2022  rin Make ibm4xx kernels compiled by clang.

As clang cannot correctly assemble m[ft]pid:
- for asm sources, use m[ft]spr from/to SPR_PID
- for C sources, use M[FT]PID macros (see include/ibm4xx/spr.h)
This is ugly...

No binary changes for GCC-compiled kernels.
 1.4 05-Mar-2021  rin Add 403 family processors other than 403GCX.
 1.3 18-Jun-2011  matt branches: 1.3.66;
Move PVR definitions to <powerpc/ibm4xx/spr.h>
No need to include <powerpc/cpu.h> in <powerpc/ib4xx/cpu.h>
 1.2 18-Mar-2010  kiyohara branches: 1.2.2; 1.2.4; 1.2.10;
Support PowerPC 405EX/EXr.
1. Add some new source and header files.
(MAL(split) and RGMII(new) relations for EMAC)
2. Create dcr4xx.h. Its moved from dcr405gp.h. Also remove dcr405xx.h.
3. intr.c supports MULTIUIC with virtual-irq. likes to oea.
support 32-virq/128-hwirq.
4. multiple emac support.
5. WALNUT and VIRTEX_* includes arch/powerpc/conf/files.ibm4xx.
6. WALNUT pci uses arch/powerpc/ibm4xx/pci/.
 1.1 25-Feb-2010  matt branches: 1.1.2; 1.1.4;
Split <powerpc/spr.h> into a common <powerpc/spr.h> and <powerpc/XXX/spr.h>
where XXX is ibm4xx or oea.
 1.1.4.1 30-May-2010  rmind sync with head
 1.1.2.3 11-Aug-2010  yamt sync with head.
 1.1.2.2 11-Mar-2010  yamt sync with head
 1.1.2.1 25-Feb-2010  yamt file spr.h was added on branch yamt-nfs-mp on 2010-03-11 15:02:50 +0000
 1.2.10.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.2.4.2 07-Jan-2011  matt Split spr.h into generic PPC <powerpc/spr.h> and chip-specific
<powerpc/XXX/spr.h> (XXX=oea, ibm4xx, booke)
 1.2.4.1 18-Mar-2010  matt file spr.h was added on branch matt-nb5-pq3 on 2011-01-07 01:34:23 +0000
 1.2.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.2.2.1 18-Mar-2010  uebayasi file spr.h was added on branch uebayasi-xip on 2010-04-30 14:39:43 +0000
 1.3.66.1 03-Apr-2021  thorpej Sync with HEAD.
 1.7 30-Mar-2021  rin G/C misleading <evbppc/tlb.h>. Use <powerpc/ibm4xx/tlb.h> directly.
 1.6 05-Mar-2020  rin branches: 1.6.4; 1.6.6;
Retire tlbpid_t (u_short):

- PID (ctx, ASID) is 8-bit length, not half word.
- For struct pmap, no need to use integer types smaller than word as
pm_ctx because of alignment.
- For ppc4xx_tlb_enter(), we need word-length storage for pid (and msr).

XXX
Better to rewrite pmap module with more suggestive integer types rather
than char, int, long, and so on.
 1.5 19-Apr-2018  christos branches: 1.5.2; 1.5.6;
s/static inline/static __inline/g for consistency.
 1.4 16-Oct-2006  kiyohara branches: 1.4.142;
* convert ibm4xx-based evbppc from reserved-TLB entry allocation to recently
introduced ppc4xx_tlb_reserve() API.
 1.3 31-Aug-2006  freza branches: 1.3.2; 1.3.4;
* ppc4xx_tlb_reserve(): allocate "reserved" TLB entries dynamically
* ppc4xx_tlb_mapiodev(): resolve pa to va from reserved TLB entries

OK by matt@

XXX we'll keep TLB_NRESERVED defined until we fix explora to use new API
 1.2 12-Jul-2006  simonb Remove unused ppc4xx_tlb_unpin() function.
 1.1 13-Jun-2001  simonb branches: 1.1.8; 1.1.40; 1.1.54; 1.1.58; 1.1.66;
Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.1.66.1 13-Jul-2006  gdamore Merge from HEAD.
 1.1.58.2 03-Sep-2006  yamt sync with head.
 1.1.58.1 11-Aug-2006  yamt sync with head
 1.1.54.1 09-Sep-2006  rpaulo sync with head
 1.1.40.1 30-Dec-2006  yamt sync with head.
 1.1.8.2 13-Jun-2001  simonb Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.1.8.1 13-Jun-2001  simonb file tlb.h was added on branch nathanw_sa on 2001-06-13 06:01:51 +0000
 1.3.4.1 22-Oct-2006  yamt sync with head
 1.3.2.1 18-Nov-2006  ad Sync with head.
 1.4.142.1 22-Apr-2018  pgoyette Sync with HEAD
 1.5.6.1 09-Mar-2020  martin Pull up following revision(s) (requested by rin in ticket #773):

sys/arch/powerpc/ibm4xx/pmap.c: revision 1.81
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.82
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.83
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.84
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.85
sys/arch/powerpc/include/ibm4xx/tlb.h: revision 1.6
sys/arch/powerpc/include/ibm4xx/pmap.h: revision 1.20

Misc non-critical fixes.
- __asm --> __asm volatile for sure
- turn DEBUG code in __asm into DIAGNOSTIC code in C
- style

ppc4xx_tlb_enter(): invalidate entry after clearing MSR for sure.

pmap_procwr(): use dcbst instead of dcbf as a tiny optimization.

Retire tlbpid_t (u_short):
- PID (ctx, ASID) is 8-bit length, not half word.
- For struct pmap, no need to use integer types smaller than word as
pm_ctx because of alignment.
- For ppc4xx_tlb_enter(), we need word-length storage for pid (and msr).
XXX
Better to rewrite pmap module with more suggestive integer types rather
than char, int, long, and so on.

Fix pmap_procwr().
While we need to turn off IMMU, DMMU should be kept on. Otherwise,
dcbst (and also icbi probably, though not documented clearly both
for 405 and 403) should not work correctly.
 1.5.2.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.6.6.1 03-Apr-2021  thorpej Sync with HEAD.
 1.6.4.1 03-Apr-2021  thorpej Sync with HEAD.
 1.12 27-Mar-2019  christos fix protection
 1.11 13-Feb-2017  skrll branches: 1.11.14;
G/C VM_MAX_KERNEL_BUF
 1.10 23-Feb-2015  joerg branches: 1.10.2; 1.10.4;
Use default PAGER_MAP_DEFAULT_SIZE for ARM and PowerPC, exception
acorn26. This bumps the KVA reservation from 4MB to 16MB and avoids
long hangs on my Cubietruck under IO. acorn26 is kept as it does have a
ridiculous low 32MB KVA limit.
 1.9 20-Jun-2011  matt branches: 1.9.12; 1.9.30;
PowerPC now exports a common view of cpu.h, vmparam.h and pmap.h
when building a MODULAR kernel or compiling _MODULE.
It should be noted that MODULAR or _MODULE export a view of the kernel
as being MULTIPROCESSOR (even if isn't).
The shared pmap TLB uses mdpg in places where it used mdpg to avoid
deadly embrance inclusion problems.
 1.8 06-Nov-2010  uebayasi branches: 1.8.6;
Merge from uebayasi-xip:
 1.60.2.5 14-Aug-2010  uebayasi Teach TLB miss handler (pmap_tlbmiss()) to map "Expansion ROM" area as
PA == VA. Now we don't need to reserve a TLB entry for it.
 1.7 06-Nov-2010  uebayasi Remove incomplete, never worked dynamic run-time memory registration
(uvm_page_physload(9)). This functionality will be re-added later.
 1.6 06-Mar-2009  joerg branches: 1.6.2; 1.6.4;
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.5 25-Oct-2007  yamt branches: 1.5.20; 1.5.28; 1.5.34;
defparam PAGER_MAP_SIZE.
 1.4 02-Apr-2003  thorpej branches: 1.4.18; 1.4.60; 1.4.78; 1.4.80; 1.4.84;
Use PAGE_SIZE rather than NBPG.
 1.3 01-Apr-2003  thorpej Make PAGE_SIZE, PAGE_SHIFT, and PAGE_MASK compile-time constants for
PowerPC processors.
 1.2 04-Mar-2003  matt Re-arrange things in evbppc & powerpc to support OEA-based eval boards
in evbppc. OEA-based board(s) to be added later.
 1.1 03-Feb-2003  matt Move ibm4xx vmparam.h to powerpc/include/ibm4xx directory. Add a stub
vmparam.h to choose the right vmparam. This is needed so evbppc can host
both ibm4xx and oea based eval boards.
 1.4.84.1 13-Nov-2007  bouyer Sync with HEAD
 1.4.80.1 06-Nov-2007  matt sync with HEAD
 1.4.78.1 28-Oct-2007  joerg Sync with HEAD.
 1.4.60.1 03-Dec-2007  ad Sync with HEAD.
 1.4.18.1 27-Oct-2007  yamt sync with head.
 1.5.34.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.5.28.1 28-Apr-2009  skrll Sync with HEAD.
 1.5.20.1 04-May-2009  yamt sync with head.
 1.6.4.1 05-Mar-2011  rmind sync with head
 1.6.2.3 14-Aug-2010  uebayasi Teach TLB miss handler (pmap_tlbmiss()) to map "Expansion ROM" area as
PA == VA. Now we don't need to reserve a TLB entry for it.
 1.6.2.2 11-Aug-2010  uebayasi Hook pmap_physseg_{init,fini} on powerpc/ibm4xx.
 1.6.2.1 26-Apr-2010  uebayasi Remove the unfinished code to add a memory segment after uvm_page_init().
It doesn't even compile.

(In the future, we should allocate struct vm_page [] on the added memory
segment for NUMA's sake.)
 1.8.6.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.9.30.2 28-Aug-2017  skrll Sync with HEAD
 1.9.30.1 06-Apr-2015  skrll Sync with HEAD
 1.9.12.1 03-Dec-2017  jdolecek update from HEAD
 1.10.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.10.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.11.14.1 10-Jun-2019  christos Sync with HEAD

RSS XML Feed