diff options
Diffstat (limited to 'arch/ppc/kernel/head_e500.S')
-rw-r--r-- | arch/ppc/kernel/head_e500.S | 81 |
1 files changed, 7 insertions, 74 deletions
diff --git a/arch/ppc/kernel/head_e500.S b/arch/ppc/kernel/head_e500.S index d83353d5eab56..e478de5a92d32 100644 --- a/arch/ppc/kernel/head_e500.S +++ b/arch/ppc/kernel/head_e500.S @@ -33,6 +33,7 @@ */ #include <linux/config.h> +#include <linux/threads.h> #include <asm/processor.h> #include <asm/page.h> #include <asm/mmu.h> @@ -789,8 +790,6 @@ load_up_spe: SYNC rfi - - /* * SPE unavailable trap from kernel - print a message, but let * the task use SPE in the kernel until it returns to user mode. @@ -929,78 +928,13 @@ _GLOBAL(empty_zero_page) _GLOBAL(swapper_pg_dir) .space 4096 +/* Reserved 4k for the critical exception stack & 4k for the machine + * check stack per CPU for kernel mode exceptions */ .section .bss -/* Stack for handling critical exceptions from kernel mode */ -critical_stack_bottom: - .space 4096 -critical_stack_top: - .previous - -/* Stack for handling machine check exceptions from kernel mode */ -mcheck_stack_bottom: - .space 4096 -mcheck_stack_top: - .previous - -/* - * This area is used for temporarily saving registers during the - * critical and machine check exception prologs. It must always - * follow the page aligned allocations, so it starts on a page - * boundary, ensuring that all crit_save areas are in a single - * page. - */ - -/* crit_save */ -_GLOBAL(crit_save) - .space 4 -_GLOBAL(crit_r10) - .space 4 -_GLOBAL(crit_r11) - .space 4 -_GLOBAL(crit_sprg0) - .space 4 -_GLOBAL(crit_sprg1) - .space 4 -_GLOBAL(crit_sprg4) - .space 4 -_GLOBAL(crit_sprg5) - .space 4 -_GLOBAL(crit_sprg7) - .space 4 -_GLOBAL(crit_pid) - .space 4 -_GLOBAL(crit_srr0) - .space 4 -_GLOBAL(crit_srr1) - .space 4 - -/* mcheck_save */ -_GLOBAL(mcheck_save) - .space 4 -_GLOBAL(mcheck_r10) - .space 4 -_GLOBAL(mcheck_r11) - .space 4 -_GLOBAL(mcheck_sprg0) - .space 4 -_GLOBAL(mcheck_sprg1) - .space 4 -_GLOBAL(mcheck_sprg4) - .space 4 -_GLOBAL(mcheck_sprg5) - .space 4 -_GLOBAL(mcheck_sprg7) - .space 4 -_GLOBAL(mcheck_pid) - .space 4 -_GLOBAL(mcheck_srr0) - .space 4 -_GLOBAL(mcheck_srr1) - .space 4 -_GLOBAL(mcheck_csrr0) - .space 4 -_GLOBAL(mcheck_csrr1) - .space 4 + .align 12 +exception_stack_bottom: + .space BOOKE_EXCEPTION_STACK_SIZE * NR_CPUS +_GLOBAL(exception_stack_top) /* * This space gets a copy of optional info passed to us by the bootstrap @@ -1016,4 +950,3 @@ _GLOBAL(cmd_line) abatron_pteptrs: .space 8 - |