Subject: CVS commit: syssrc/sys/arch
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 04/04/2002 02:33:36
Module Name:	syssrc
Committed By:	thorpej
Date:		Wed Apr  3 23:33:36 UTC 2002

Modified Files:
	syssrc/sys/arch/acorn32/acorn32: rpc_machdep.c
	syssrc/sys/arch/arm/arm: arm_machdep.c fiq.c vectors.S
	syssrc/sys/arch/arm/arm32: arm32_machdep.c pmap.c vm_machdep.c
	syssrc/sys/arch/arm/include: cpu.h
	syssrc/sys/arch/arm/include/arm32: pmap.h
	syssrc/sys/arch/arm/ofw: ofwgencfg_machdep.c
	syssrc/sys/arch/cats/cats: cats_machdep.c
	syssrc/sys/arch/evbarm/integrator: integrator_machdep.c
	syssrc/sys/arch/evbarm/iq80310: iq80310_machdep.c
	syssrc/sys/arch/evbarm/iq80321: iq80321_machdep.c
	syssrc/sys/arch/hpcarm/hpcarm: hpc_machdep.c
	syssrc/sys/arch/netwinder/netwinder: netwinder_machdep.c
	syssrc/sys/arch/shark/ofw: ofw.c
	syssrc/sys/arch/shark/shark: shark_machdep.c

Log Message:
Clean up handling of the vector page on 32-bit ARM systems:
* Don't refer to VA 0, instead refer to a new variable: vector_page
* Delete the old zero_page_*() functions, replacing them with a new
  one: vector_page_setprot().
* When manipulating vector page mappings in user pmaps, only do so if
  the vector page is below KERNEL_BASE (if it's above KERNEL_BASE, the
  vector page is mapped by the kernel pmap).
* Add a new function, arm32_vector_init(), which takes the virtual
  address of the vector page (which MUST be valid when the function
  is called) and a bitmask of vectors the kernel is going to take
  over, and performs all vector page initialization, including setting
  the V bit in the CPU Control register ("relocate vectors to high
  address"), if necessary.


To generate a diff of this commit:
cvs rdiff -r1.29 -r1.30 syssrc/sys/arch/acorn32/acorn32/rpc_machdep.c
cvs rdiff -r1.4 -r1.5 syssrc/sys/arch/arm/arm/arm_machdep.c \
    syssrc/sys/arch/arm/arm/fiq.c
cvs rdiff -r1.2 -r1.3 syssrc/sys/arch/arm/arm/vectors.S
cvs rdiff -r1.21 -r1.22 syssrc/sys/arch/arm/arm32/arm32_machdep.c
cvs rdiff -r1.75 -r1.76 syssrc/sys/arch/arm/arm32/pmap.c
cvs rdiff -r1.15 -r1.16 syssrc/sys/arch/arm/arm32/vm_machdep.c
cvs rdiff -r1.24 -r1.25 syssrc/sys/arch/arm/include/cpu.h
cvs rdiff -r1.41 -r1.42 syssrc/sys/arch/arm/include/arm32/pmap.h
cvs rdiff -r1.1 -r1.2 syssrc/sys/arch/arm/ofw/ofwgencfg_machdep.c
cvs rdiff -r1.27 -r1.28 syssrc/sys/arch/cats/cats/cats_machdep.c
cvs rdiff -r1.19 -r1.20 \
    syssrc/sys/arch/evbarm/integrator/integrator_machdep.c
cvs rdiff -r1.35 -r1.36 syssrc/sys/arch/evbarm/iq80310/iq80310_machdep.c
cvs rdiff -r1.2 -r1.3 syssrc/sys/arch/evbarm/iq80321/iq80321_machdep.c
cvs rdiff -r1.41 -r1.42 syssrc/sys/arch/hpcarm/hpcarm/hpc_machdep.c
cvs rdiff -r1.28 -r1.29 \
    syssrc/sys/arch/netwinder/netwinder/netwinder_machdep.c
cvs rdiff -r1.11 -r1.12 syssrc/sys/arch/shark/ofw/ofw.c
cvs rdiff -r1.1 -r1.2 syssrc/sys/arch/shark/shark/shark_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.