Commit d87d8c11 authored by Sam Ravnborg's avatar Sam Ravnborg Committed by David S. Miller

sparc32: handle leon in cpu.c

A few hardcoded constant were replaced by symbolic
versions to improve readability
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
Cc: Daniel Hellstrom <daniel@gaisler.com>
Cc: Konrad Eisele <konrad@gaisler.com>
parent b08b5c9c
...@@ -35,7 +35,9 @@ ...@@ -35,7 +35,9 @@
#define PSR_VERS 0x0f000000 /* cpu-version field */ #define PSR_VERS 0x0f000000 /* cpu-version field */
#define PSR_IMPL 0xf0000000 /* cpu-implementation field */ #define PSR_IMPL 0xf0000000 /* cpu-implementation field */
#define PSR_VERS_SHIFT 24
#define PSR_IMPL_SHIFT 28 #define PSR_IMPL_SHIFT 28
#define PSR_VERS_SHIFTED_MASK 0xf
#define PSR_IMPL_SHIFTED_MASK 0xf #define PSR_IMPL_SHIFTED_MASK 0xf
#define PSR_IMPL_TI 0x4 #define PSR_IMPL_TI 0x4
......
...@@ -121,7 +121,7 @@ static const struct manufacturer_info __initconst manufacturer_info[] = { ...@@ -121,7 +121,7 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
FPU(-1, NULL) FPU(-1, NULL)
} }
},{ },{
4, PSR_IMPL_TI,
.cpu_info = { .cpu_info = {
CPU(0, "Texas Instruments, Inc. - SuperSparc-(II)"), CPU(0, "Texas Instruments, Inc. - SuperSparc-(II)"),
/* SparcClassic -- borned STP1010TAB-50*/ /* SparcClassic -- borned STP1010TAB-50*/
...@@ -191,7 +191,7 @@ static const struct manufacturer_info __initconst manufacturer_info[] = { ...@@ -191,7 +191,7 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
FPU(-1, NULL) FPU(-1, NULL)
} }
},{ },{
0xF, /* Aeroflex Gaisler */ PSR_IMPL_LEON, /* Aeroflex Gaisler */
.cpu_info = { .cpu_info = {
CPU(3, "LEON"), CPU(3, "LEON"),
CPU(-1, NULL) CPU(-1, NULL)
...@@ -440,16 +440,16 @@ static int __init cpu_type_probe(void) ...@@ -440,16 +440,16 @@ static int __init cpu_type_probe(void)
int psr_impl, psr_vers, fpu_vers; int psr_impl, psr_vers, fpu_vers;
int psr; int psr;
psr_impl = ((get_psr() >> 28) & 0xf); psr_impl = ((get_psr() >> PSR_IMPL_SHIFT) & PSR_IMPL_SHIFTED_MASK);
psr_vers = ((get_psr() >> 24) & 0xf); psr_vers = ((get_psr() >> PSR_VERS_SHIFT) & PSR_VERS_SHIFTED_MASK);
psr = get_psr(); psr = get_psr();
put_psr(psr | PSR_EF); put_psr(psr | PSR_EF);
#ifdef CONFIG_SPARC_LEON
if (psr_impl == PSR_IMPL_LEON)
fpu_vers = get_psr() & PSR_EF ? ((get_fsr() >> 17) & 0x7) : 7; fpu_vers = get_psr() & PSR_EF ? ((get_fsr() >> 17) & 0x7) : 7;
#else else
fpu_vers = ((get_fsr() >> 17) & 0x7); fpu_vers = ((get_fsr() >> 17) & 0x7);
#endif
put_psr(psr); put_psr(psr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment