diff options
author | Paul Mackerras <paulus@samba.org> | 2006-11-10 04:38:53 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-12-04 04:40:16 -0500 |
commit | 974a76f51355d22f4f63d83d6bb1ccecd019ec58 (patch) | |
tree | 9a6c5745d8e1f592427d96fbf64d8546af4feb39 /arch/ppc | |
parent | 18f2190d796198fbb5d4bc4c87511acf3ced7d47 (diff) |
[POWERPC] Distinguish POWER6 partition modes and tell userspace
This adds code to look at the properties firmware puts in the device
tree to determine what compatibility mode the partition is in on
POWER6 machines, and set the ELF aux vector AT_HWCAP and AT_PLATFORM
entries appropriately.
Specifically, we look at the cpu-version property in the cpu node(s).
If that contains a "logical" PVR value (of the form 0x0f00000x), we
call identify_cpu again with this PVR value. A value of 0x0f000001
indicates the partition is in POWER5+ compatibility mode, and a value
of 0x0f000002 indicates "POWER6 architected" mode, with various
extensions disabled. We also look for various other properties:
ibm,dfp, ibm,purr and ibm,spurr.
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc')
-rw-r--r-- | arch/ppc/kernel/setup.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c index 27faeca2c7a2..3c506af19880 100644 --- a/arch/ppc/kernel/setup.c +++ b/arch/ppc/kernel/setup.c | |||
@@ -313,7 +313,7 @@ early_init(int r3, int r4, int r5) | |||
313 | * Identify the CPU type and fix up code sections | 313 | * Identify the CPU type and fix up code sections |
314 | * that depend on which cpu we have. | 314 | * that depend on which cpu we have. |
315 | */ | 315 | */ |
316 | spec = identify_cpu(offset); | 316 | spec = identify_cpu(offset, mfspr(SPRN_PVR)); |
317 | do_feature_fixups(spec->cpu_features, | 317 | do_feature_fixups(spec->cpu_features, |
318 | PTRRELOC(&__start___ftr_fixup), | 318 | PTRRELOC(&__start___ftr_fixup), |
319 | PTRRELOC(&__stop___ftr_fixup)); | 319 | PTRRELOC(&__stop___ftr_fixup)); |