#include <debug.h>
-#include <cpus.h>
#include <ppc/asm.h>
#include <ppc/proc_reg.h>
+#include <ppc/spec_reg.h>
+#include <mach/ppc/vm_param.h>
#include <assym.s>
-;
-; NOTE: We need this only if PREEMPTSTACK is set to non-zero in hw_lock.
-; Make sure they are set to the same thing
-;
-#define PREEMPTSTACK 0
-
.data
-/* 1024-byte aligned areas */
+/* 4096-byte aligned areas */
+
+ .globl EXT(PerProcTable)
+ .align 12
+EXT(PerProcTable): ; Per processor table
+ .space (ppeSize*MAX_CPUS),0 ; (filled with 0s)
- .globl EXT(per_proc_info)
- .align 10
-EXT(per_proc_info): ; Per processor data area
- .fill (ppSize*NCPUS)/4,4,0 ; (filled with 0s)
+ .globl EXT(BootProcInfo)
+ .align 12
+EXT(BootProcInfo): ; Per processor data area
+ .space ppSize,0 ; (filled with 0s)
/* 512-byte aligned areas */
.globl EXT(kernel_pmap_store) ; This is the kernel_pmap
.align 8
EXT(kernel_pmap_store):
- .set .,.+PMAP_SIZE
+ .set .,.+pmapSize
/* 256-byte aligned areas */
debstash:
.set .,.+256
- .globl EXT(hw_counts) ; Counter banks per processor
- .align 8
-EXT(hw_counts):
- .set .,.+(NCPUS*256)
-
-#if PREEMPTSTACK
-
-;
-; NOTE: We need this only if PREEMPTSTACK is set to non-zero in hw_lock.
-;
-
- .globl EXT(DBGpreempt) ; preemption debug stack
- .align 8
-EXT(DBGpreempt):
- .set .,.+(NCPUS*PREEMPTSTACK*16)
-#endif
-
-
/* 128-byte aligned areas */
- .globl EXT(saveanchor)
- .align 7
-EXT(saveanchor):
- .set .,.+SVsize
-
.globl EXT(mapCtl)
.align 7
EXT(mapCtl):
.set .,.+mapcsize
- .globl EXT(trcWork)
- .align 7
-EXT(trcWork):
- .long EXT(traceTableBeg) ; The next trace entry to use
-#if DEBUG
-/* .long 0x02000000 */ /* Only alignment exceptions enabled */
- .long 0xFFFFFFFF /* All enabled */
-/* .long 0xFBBFFFFF */ /* EXT and DEC disabled */
-/* .long 0xFFBFFFFF */ /* DEC disabled */
-#else
- .long 0x00000000 ; All disabled on non-debug systems
-#endif
- .long EXT(traceTableBeg) ; Start of the trace table
- .long EXT(traceTableEnd) ; End (wrap point) of the trace
- .long 0 ; Saved mask while in debugger
-
- .long 0
- .long 0
- .long 0
-
-
.globl fwdisplock
.align 7
fwdisplock:
EXT(free_mappings):
.long 0
- .globl EXT(syncClkSpot)
- .align 7
-EXT(syncClkSpot):
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
-
.globl EXT(NMIss)
.align 7
EXT(NMIss):
.long 0x7FFFDEAD /* This is a quiet not-a-number which is a "known" debug value */
.long 0x7FFFDEAD /* This is a quiet not-a-number which is a "known" debug value */
- .globl EXT(dgWork)
- .align 5
-EXT(dgWork):
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
-
-
/* 8-byte aligned areas */
.globl EXT(FloatInit)
.globl EXT(dbspecrs)
.align 3
EXT(dbspecrs):
- .set .,.+(80*4)
+ .set .,.+(336*4)
+
+/*
+ * Boot processor Interrupt and debug stacks go here.
+ */
+
+ /* in the __HIB section since the hibernate restore code uses this stack. */
+ .section __HIB, __data
+
+ .align PPC_PGSHIFT
+
+ .globl EXT(intstack)
+EXT(intstack):
+ .globl EXT(gIOHibernateRestoreStack)
+EXT(gIOHibernateRestoreStack):
+
+ .set .,.+INTSTACK_SIZE
+
+ .globl EXT(gIOHibernateRestoreStackEnd)
+EXT(gIOHibernateRestoreStackEnd):
+
+ /* back to the regular __DATA section. */
+
+ .section __DATA, __data
+ .align PPC_PGSHIFT
+
+/* Debugger stack - used by the debugger if present */
+
+ .globl EXT(debstack)
+EXT(debstack):
+ .set ., .+KERNEL_STACK_SIZE
+
+ .section __DATA, __data
+
+