|
|
This diff is necessary to make the new T2 systems boot. It shouldn't
hurt other machines, but since we don't know exactly how much stack we
need, having this tested on a variety of sparc64 systems would be
good.
Please send me a short reply with the model you tested and whether it
works with this diff or not.
Thanks,
Mark
Index: locore.s
===================================================================
RCS file: /cvs/src/sys/arch/sparc64/sparc64/locore.s,v
retrieving revision 1.147
diff -u -p -r1.147 locore.s
--- locore.s 21 Jul 2008 13:30:05 -0000 1.147
+++ locore.s 24 Jul 2008 19:02:35 -0000
@@ -347,6 +347,13 @@ _C_LABEL(data_start):
! Start of dat
_C_LABEL(u0): .xword 0
estack0: .xword 0
+/*
+ * This stack is used for bootstrapping and spinning up CPUs.
+ */
+ .space 4096
+ .align 16
+tmpstack:
+
#ifdef DEBUG
/*
* This stack is used when we detect kernel stack corruption.
@@ -4857,6 +4864,11 @@ dostart:
#endif /* 0 */
/*
+ * Switch to temporary stack.
+ */
+ set tmpstack-CC64FSZ-BIAS, %sp
+
+ /*
* Ready to run C code; finish bootstrap.
*/
1:
@@ -4964,12 +4976,6 @@ ENTRY(sun4u_set_tsbs)
#ifdef MULTIPROCESSOR
- .data
- .space 2048
- _ALIGN
-tmpstack:
- .text
-
ENTRY(cpu_mp_startup)
mov %o0, %g2
|
|