|
From: Paul M. <le...@us...> - 2006-08-11 11:29:32
|
Update of /cvsroot/linuxsh/linux/arch/sh/kernel/cpu/sh4 In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv10281/arch/sh/kernel/cpu/sh4 Modified Files: probe.c Log Message: Use DSP/L2 detection only on SH-4A. Index: probe.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/cpu/sh4/probe.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- probe.c 10 Aug 2006 10:24:31 -0000 1.11 +++ probe.c 11 Aug 2006 11:29:25 -0000 1.12 @@ -29,7 +29,7 @@ [9] = (1 << 16) }; - pvr = (ctrl_inl(CCN_PVR) >> 8) & 0xffff; + pvr = (ctrl_inl(CCN_PVR) >> 8) & 0xffffff; prr = (ctrl_inl(CCN_PRR) >> 4) & 0xff; cvr = (ctrl_inl(CCN_CVR)); @@ -53,14 +53,24 @@ /* * Setup some generic flags we can probe + * (L2 and DSP detection only work on SH-4A) */ - if ((cvr & 0x02000000) == 0) - cpu_data->flags |= CPU_HAS_L2_CACHE; - if ((cvr & 0x10000000) == 0) - cpu_data->flags |= CPU_HAS_DSP; + if (((pvr >> 16) & 0xff) == 0x10) { + if ((cvr & 0x02000000) == 0) + cpu_data->flags |= CPU_HAS_L2_CACHE; + if ((cvr & 0x10000000) == 0) + cpu_data->flags |= CPU_HAS_DSP; + + cpu_data->flags |= CPU_HAS_LLSC; + } + + /* FPU detection works for everyone */ if ((cvr & 0x20000000) == 1) cpu_data->flags |= CPU_HAS_FPU; + /* Mask off the upper chip ID */ + pvr &= 0xffff; + /* * Probe the underlying processor version/revision and * adjust cpu_data setup accordingly. |