aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/asm-offsets.c
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2008-04-10 02:39:18 -0400
committerPaul Mackerras <paulus@samba.org>2008-04-15 07:21:25 -0400
commit3eb9cf076180ed2003db77bd2c33ac4ed0211089 (patch)
treeadddbf53de36e21b015515ab692db05f0fcbec8e /arch/powerpc/kernel/asm-offsets.c
parenta7e695f6bf37f829a01e693a1569e96a842a1017 (diff)
[POWERPC] iSeries: Use alternate paca structure for booting
The iSeries HV only needs the first two fields of the paca statically initialised, so create an alternate paca that contains only those and switch to our real paca immediately after boot. This is in order to make the 1024 cpu patches easier since they will no longer have to statically initialise the pacas for iSeries. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/asm-offsets.c')
-rw-r--r--arch/powerpc/kernel/asm-offsets.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index e932b43bd82f..292c6d8db0e1 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -44,6 +44,9 @@
44#include <asm/mmu.h> 44#include <asm/mmu.h>
45#include <asm/hvcall.h> 45#include <asm/hvcall.h>
46#endif 46#endif
47#ifdef CONFIG_PPC_ISERIES
48#include <asm/iseries/alpaca.h>
49#endif
47 50
48#define DEFINE(sym, val) \ 51#define DEFINE(sym, val) \
49 asm volatile("\n->" #sym " %0 " #val : : "i" (val)) 52 asm volatile("\n->" #sym " %0 " #val : : "i" (val))
@@ -321,6 +324,9 @@ int main(void)
321 DEFINE(PAGE_OFFSET_VSID, KERNEL_VSID(PAGE_OFFSET)); 324 DEFINE(PAGE_OFFSET_VSID, KERNEL_VSID(PAGE_OFFSET));
322 DEFINE(VMALLOC_START_ESID, GET_ESID(VMALLOC_START)); 325 DEFINE(VMALLOC_START_ESID, GET_ESID(VMALLOC_START));
323 DEFINE(VMALLOC_START_VSID, KERNEL_VSID(VMALLOC_START)); 326 DEFINE(VMALLOC_START_VSID, KERNEL_VSID(VMALLOC_START));
327
328 /* alpaca */
329 DEFINE(ALPACA_SIZE, sizeof(struct alpaca));
324#endif 330#endif
325 331
326 DEFINE(PGD_TABLE_SIZE, PGD_TABLE_SIZE); 332 DEFINE(PGD_TABLE_SIZE, PGD_TABLE_SIZE);