diff options
author | David S. Miller <davem@davemloft.net> | 2012-05-12 04:02:11 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-12 04:02:11 -0400 |
commit | 9b4c514ad218cbefaf13375f11578ef1d78701ff (patch) | |
tree | 0b4c58fbfb44a9e3544660fec9c6ee01a632f2a9 | |
parent | ee906c9e0bc9d3cc7fdfe82fb30f3c3c1318c3ef (diff) |
sparc32: Add back early sun4/sun4c detection so we can warn properly.
We need to do the check before we try to remap the kernel using
SRMMU operations.
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | arch/sparc/kernel/head_32.S | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/sparc/kernel/head_32.S b/arch/sparc/kernel/head_32.S index ea45894db0bd..0d01798bb120 100644 --- a/arch/sparc/kernel/head_32.S +++ b/arch/sparc/kernel/head_32.S | |||
@@ -532,6 +532,29 @@ copy_prom_done: | |||
532 | be go_to_highmem ! this will be a nop then | 532 | be go_to_highmem ! this will be a nop then |
533 | nop | 533 | nop |
534 | 534 | ||
535 | /* Validate that we are in fact running on an | ||
536 | * SRMMU based cpu. | ||
537 | */ | ||
538 | set 0x4000, %g6 | ||
539 | cmp %g7, %g6 | ||
540 | bne not_a_sun4 | ||
541 | nop | ||
542 | |||
543 | halt_sun4_or_sun4c: | ||
544 | ld [%g7 + 0x68], %o1 | ||
545 | set sun4c_notsup, %o0 | ||
546 | sub %o0, %l6, %o0 | ||
547 | call %o1 | ||
548 | nop | ||
549 | ba halt_me | ||
550 | nop | ||
551 | |||
552 | not_a_sun4: | ||
553 | lda [%g0] ASI_M_MMUREGS, %g1 | ||
554 | andcc %g1, 1, %g0 | ||
555 | be halt_sun4_or_sun4c | ||
556 | nop | ||
557 | |||
535 | srmmu_remap: | 558 | srmmu_remap: |
536 | /* First, check for a viking (TI) module. */ | 559 | /* First, check for a viking (TI) module. */ |
537 | set 0x40000000, %g2 | 560 | set 0x40000000, %g2 |