4b513a9954
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.
10 lines
202 B
C
10 lines
202 B
C
/* $NetBSD: bat.h,v 1.6 2008/02/05 18:10:46 garbled Exp $ */
|
|
|
|
#ifdef _KERNEL_OPT
|
|
#include "opt_ppcarch.h"
|
|
#endif
|
|
|
|
#if defined (PPC_OEA) || defined (PPC_OEA64_BRIDGE)
|
|
#include <powerpc/oea/bat.h>
|
|
#endif
|