sparc32: handle leon in cpu.c
A few hardcoded constant were replaced by symbolic versions to improve readability Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Daniel Hellstrom <daniel@gaisler.com> Cc: Konrad Eisele <konrad@gaisler.com>
This commit is contained in:
parent
b08b5c9c9b
commit
d87d8c11f3
@ -35,7 +35,9 @@
|
||||
#define PSR_VERS 0x0f000000 /* cpu-version field */
|
||||
#define PSR_IMPL 0xf0000000 /* cpu-implementation field */
|
||||
|
||||
#define PSR_VERS_SHIFT 24
|
||||
#define PSR_IMPL_SHIFT 28
|
||||
#define PSR_VERS_SHIFTED_MASK 0xf
|
||||
#define PSR_IMPL_SHIFTED_MASK 0xf
|
||||
|
||||
#define PSR_IMPL_TI 0x4
|
||||
|
@ -121,7 +121,7 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
|
||||
FPU(-1, NULL)
|
||||
}
|
||||
},{
|
||||
4,
|
||||
PSR_IMPL_TI,
|
||||
.cpu_info = {
|
||||
CPU(0, "Texas Instruments, Inc. - SuperSparc-(II)"),
|
||||
/* SparcClassic -- borned STP1010TAB-50*/
|
||||
@ -191,7 +191,7 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
|
||||
FPU(-1, NULL)
|
||||
}
|
||||
},{
|
||||
0xF, /* Aeroflex Gaisler */
|
||||
PSR_IMPL_LEON, /* Aeroflex Gaisler */
|
||||
.cpu_info = {
|
||||
CPU(3, "LEON"),
|
||||
CPU(-1, NULL)
|
||||
@ -440,16 +440,16 @@ static int __init cpu_type_probe(void)
|
||||
int psr_impl, psr_vers, fpu_vers;
|
||||
int psr;
|
||||
|
||||
psr_impl = ((get_psr() >> 28) & 0xf);
|
||||
psr_vers = ((get_psr() >> 24) & 0xf);
|
||||
psr_impl = ((get_psr() >> PSR_IMPL_SHIFT) & PSR_IMPL_SHIFTED_MASK);
|
||||
psr_vers = ((get_psr() >> PSR_VERS_SHIFT) & PSR_VERS_SHIFTED_MASK);
|
||||
|
||||
psr = get_psr();
|
||||
put_psr(psr | PSR_EF);
|
||||
#ifdef CONFIG_SPARC_LEON
|
||||
fpu_vers = get_psr() & PSR_EF ? ((get_fsr() >> 17) & 0x7) : 7;
|
||||
#else
|
||||
fpu_vers = ((get_fsr() >> 17) & 0x7);
|
||||
#endif
|
||||
|
||||
if (psr_impl == PSR_IMPL_LEON)
|
||||
fpu_vers = get_psr() & PSR_EF ? ((get_fsr() >> 17) & 0x7) : 7;
|
||||
else
|
||||
fpu_vers = ((get_fsr() >> 17) & 0x7);
|
||||
|
||||
put_psr(psr);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user