diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-02-09 05:52:44 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-03-20 04:12:03 -0500 |
commit | d82ace7dc4073b090a55b9740700e32b9a9ae302 (patch) | |
tree | d5aa8e10664b05bbfe31eacf95e2066c03cab102 /include/asm-sparc64/head.h | |
parent | 1d2f1f90a1e004b0c1b8a73ed4394a93f09104b3 (diff) |
[SPARC64]: Detect sun4v early in boot process.
We look for "SUNW,sun4v" in the 'compatible' property
of the root OBP device tree node.
Protect every %ver register access, to make sure it is
not touched on sun4v, as %ver is hyperprivileged there.
Lock kernel TLB entries using hypervisor calls instead of
calls into OBP.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/asm-sparc64/head.h')
-rw-r--r-- | include/asm-sparc64/head.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/asm-sparc64/head.h b/include/asm-sparc64/head.h index ff76c0981b63..c4ac3e87aa50 100644 --- a/include/asm-sparc64/head.h +++ b/include/asm-sparc64/head.h | |||
@@ -24,6 +24,12 @@ | |||
24 | #define PANTHER_IMPL 0x0019 /* Ultra-IV+ */ | 24 | #define PANTHER_IMPL 0x0019 /* Ultra-IV+ */ |
25 | #define SERRANO_IMPL 0x0022 /* Ultra-IIIi+ */ | 25 | #define SERRANO_IMPL 0x0022 /* Ultra-IIIi+ */ |
26 | 26 | ||
27 | #define BRANCH_IF_SUN4V(tmp1,label) \ | ||
28 | sethi %hi(is_sun4v), %tmp1; \ | ||
29 | lduw [%tmp1 + %lo(is_sun4v)], %tmp1; \ | ||
30 | brnz,pn %tmp1, label; \ | ||
31 | nop | ||
32 | |||
27 | #define BRANCH_IF_CHEETAH_BASE(tmp1,tmp2,label) \ | 33 | #define BRANCH_IF_CHEETAH_BASE(tmp1,tmp2,label) \ |
28 | rdpr %ver, %tmp1; \ | 34 | rdpr %ver, %tmp1; \ |
29 | sethi %hi(__CHEETAH_ID), %tmp2; \ | 35 | sethi %hi(__CHEETAH_ID), %tmp2; \ |