summaryrefslogtreecommitdiff
path: root/arch/sparc/kernel/head_32.S
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2012-05-12 01:43:49 +0000
committerDavid S. Miller <davem@davemloft.net>2012-05-12 11:32:00 -0700
commitd6ea55733ddfe0d9668096d3de78db479a83cc47 (patch)
tree85f65fadab34b548cf47a43e7e3d9f9e86e953ff /arch/sparc/kernel/head_32.S
parenteb06f476309d42150a54a440d456374475aaacce (diff)
sparc32: simpler cputype check in head_32.S
We know this is not a sun4/sun4c - as we checked earlier. So no need to repeat the check. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> 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.S34
1 files changed, 9 insertions, 25 deletions
diff --git a/arch/sparc/kernel/head_32.S b/arch/sparc/kernel/head_32.S
index 17e00c1ff5d1..9b2d43db2c46 100644
--- a/arch/sparc/kernel/head_32.S
+++ b/arch/sparc/kernel/head_32.S
@@ -699,35 +699,26 @@ execute_in_high_mem:
ba continue_boot
nop
#endif
+
+/* Check to cputype. We may be booted on a sun4u (64 bit box),
+ * and sun4d needs special treatment.
+ */
+
set cputypval, %o2
ldub [%o2 + 0x4], %l1
- cmp %l1, ' '
- be no_sun4c_here
- cmp %l1, 'c'
- be no_sun4c_here
- cmp %l1, 'm'
- be 1f
+ cmp %l1, 'm'
+ be sun4m_init
cmp %l1, 's'
- be 1f
+ be sun4m_init
cmp %l1, 'd'
- be 1f
+ be sun4d_init
cmp %l1, 'e'
be no_sun4e_here ! Could be a sun4e.
nop
b no_sun4u_here ! AIEEE, a V9 sun4u... Get our BIG BROTHER kernel :))
nop
-1: set cputypval, %l1
- ldub [%l1 + 0x4], %l1
- cmp %l1, 'd' ! Let us see how the beast will die
- be sun4d_init
- nop
-
- /* If not sun4d assume sun4m */
- b sun4m_init
- nop
-
/* CPUID in bootbus can be found at PA 0xff0140000 */
#define SUN4D_BOOTBUS_CPUID 0xf0140000
@@ -1026,13 +1017,6 @@ continue_boot:
/* We should not get here. */
call halt_me
nop
-no_sun4c_here:
- ld [%g7 + 0x68], %o1
- set sun4c_notsup, %o0
- call %o1
- nop
- b halt_me
- nop
no_sun4e_here:
ld [%g7 + 0x68], %o1