diff options
author | David S. Miller <davem@davemloft.net> | 2012-05-12 10:02:11 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-12 10:02:11 +0200 |
commit | 9b4c514ad218cbefaf13375f11578ef1d78701ff (patch) | |
tree | 0b4c58fbfb44a9e3544660fec9c6ee01a632f2a9 /arch/sparc/kernel/head_32.S | |
parent | sparc32: Trivial removal of sun4c references in comments. (diff) | |
download | linux-9b4c514ad218cbefaf13375f11578ef1d78701ff.tar.xz linux-9b4c514ad218cbefaf13375f11578ef1d78701ff.zip |
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>
Diffstat (limited to 'arch/sparc/kernel/head_32.S')
-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: be go_to_highmem ! this will be a nop then nop + /* Validate that we are in fact running on an + * SRMMU based cpu. + */ + set 0x4000, %g6 + cmp %g7, %g6 + bne not_a_sun4 + nop + +halt_sun4_or_sun4c: + ld [%g7 + 0x68], %o1 + set sun4c_notsup, %o0 + sub %o0, %l6, %o0 + call %o1 + nop + ba halt_me + nop + +not_a_sun4: + lda [%g0] ASI_M_MMUREGS, %g1 + andcc %g1, 1, %g0 + be halt_sun4_or_sun4c + nop + srmmu_remap: /* First, check for a viking (TI) module. */ set 0x40000000, %g2 |