Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/arch



Module Name:    src
Committed By:   garbled
Date:           Tue Feb  5 18:10:49 UTC 2008

Modified Files:
        src/sys/arch/ofppc/conf: GENERIC GENERIC_B64
        src/sys/arch/ofppc/ofppc: locore.S
        src/sys/arch/powerpc/conf: files.powerpc
        src/sys/arch/powerpc/include: bat.h cpu.h
        src/sys/arch/powerpc/include/oea: bat.h pmap.h pte.h vmparam.h
        src/sys/arch/powerpc/oea: cpu_subr.c genassym.cf ofwoea_machdep.c
            pmap.c
        src/sys/arch/powerpc/powerpc: bus_space.c kgdb_machdep.c locore_subr.S
            pmap_subr.c powerpc_machdep.c trap.c trap_subr.S
Added Files:
        src/sys/arch/powerpc/include/oea: cpufeat.h
        src/sys/arch/powerpc/oea: pmap64.c pmap64_bridge.c

Log Message:
Rewrite a big chunk of the pmap and locore code for powerpc to better
deal with the 64bit bridge mode.  pmap changes by Matt Thomas, rest by myself.

Change pmap.c to work similar to exec_elf.c to allow us to compile in
multiple pmaps to a single kernel.  This allows the pmap for bridge64 to
co-exist with the 32bit pmap.

Yank __HAVE_PMAP_PHYSSEG from all the oea code.

Add a new global, "oeacpufeat", which is used early in locore to determine
certain cpu features.  This allows us to conditionalize code early in the boot
for certain CPUs that have special needs.

Yank most of the ifdef PPC_OEA_BRIDGE64 code from almost every file it was
found in.  Some of it seemed incorrect, and my 7044 booted just fine
without it.  It would appear that the bridge cpus treat BAT instructions
as nops, so they seem to be safe.

In ofppc, check the oeacpufeat, and if we are on a 64bit proc, clear
MSR[SF], and ASR[V].

With all of these changes, a kernel with both PPC_OEA and PPC_OEA_BRIDGE64
will boot on the POWERIII-2 cpu.  However, it will not yet boot on a 32bit
cpu, because of CACHELINESIZE.  Work remains to be done there to fix that.


To generate a diff of this commit:
cvs rdiff -r1.110 -r1.111 src/sys/arch/ofppc/conf/GENERIC
cvs rdiff -r1.1 -r1.2 src/sys/arch/ofppc/conf/GENERIC_B64
cvs rdiff -r1.37 -r1.38 src/sys/arch/ofppc/ofppc/locore.S
cvs rdiff -r1.67 -r1.68 src/sys/arch/powerpc/conf/files.powerpc
cvs rdiff -r1.5 -r1.6 src/sys/arch/powerpc/include/bat.h
cvs rdiff -r1.60 -r1.61 src/sys/arch/powerpc/include/cpu.h
cvs rdiff -r1.8 -r1.9 src/sys/arch/powerpc/include/oea/bat.h \
    src/sys/arch/powerpc/include/oea/pte.h
cvs rdiff -r0 -r1.1 src/sys/arch/powerpc/include/oea/cpufeat.h
cvs rdiff -r1.11 -r1.12 src/sys/arch/powerpc/include/oea/pmap.h \
    src/sys/arch/powerpc/include/oea/vmparam.h
cvs rdiff -r1.41 -r1.42 src/sys/arch/powerpc/oea/cpu_subr.c
cvs rdiff -r1.12 -r1.13 src/sys/arch/powerpc/oea/genassym.cf
cvs rdiff -r1.9 -r1.10 src/sys/arch/powerpc/oea/ofwoea_machdep.c
cvs rdiff -r1.52 -r1.53 src/sys/arch/powerpc/oea/pmap.c
cvs rdiff -r0 -r1.1 src/sys/arch/powerpc/oea/pmap64.c \
    src/sys/arch/powerpc/oea/pmap64_bridge.c
cvs rdiff -r1.13 -r1.14 src/sys/arch/powerpc/powerpc/bus_space.c
cvs rdiff -r1.18 -r1.19 src/sys/arch/powerpc/powerpc/kgdb_machdep.c
cvs rdiff -r1.33 -r1.34 src/sys/arch/powerpc/powerpc/locore_subr.S
cvs rdiff -r1.19 -r1.20 src/sys/arch/powerpc/powerpc/pmap_subr.c
cvs rdiff -r1.36 -r1.37 src/sys/arch/powerpc/powerpc/powerpc_machdep.c
cvs rdiff -r1.123 -r1.124 src/sys/arch/powerpc/powerpc/trap.c
cvs rdiff -r1.60 -r1.61 src/sys/arch/powerpc/powerpc/trap_subr.S

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




Home | Main Index | Thread Index | Old Index