According to the configuration information accessible by the CPUCFG
instruction in LoongArch Reference Manual [1], FP_ver is stored in
bit [5: 3] of CPUCFG2, the current code to get fpu version is wrong,
use CPUCFG2_FPVERS to fix it.
[1] https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html
Fixes: 628c3bb40e9a ("LoongArch: Add boot and setup routines")
Signed-off-by: Tiezhu Yang <[email protected]>
---
arch/loongarch/kernel/cpu-probe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/loongarch/kernel/cpu-probe.c b/arch/loongarch/kernel/cpu-probe.c
index 6c87ea3..529ab8f4 100644
--- a/arch/loongarch/kernel/cpu-probe.c
+++ b/arch/loongarch/kernel/cpu-probe.c
@@ -263,7 +263,7 @@ void cpu_probe(void)
c->cputype = CPU_UNKNOWN;
c->processor_id = read_cpucfg(LOONGARCH_CPUCFG0);
- c->fpu_vers = (read_cpucfg(LOONGARCH_CPUCFG2) >> 3) & 0x3;
+ c->fpu_vers = (read_cpucfg(LOONGARCH_CPUCFG2) & CPUCFG2_FPVERS) >> 3;
c->fpu_csr0 = FPU_CSR_RN;
c->fpu_mask = FPU_CSR_RSVD;
--
2.1.0
Hi, Tiezhu,
On Sat, Jun 18, 2022 at 12:50 PM Tiezhu Yang <[email protected]> wrote:
>
> According to the configuration information accessible by the CPUCFG
> instruction in LoongArch Reference Manual [1], FP_ver is stored in
> bit [5: 3] of CPUCFG2, the current code to get fpu version is wrong,
> use CPUCFG2_FPVERS to fix it.
>
> [1] https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html
>
> Fixes: 628c3bb40e9a ("LoongArch: Add boot and setup routines")
> Signed-off-by: Tiezhu Yang <[email protected]>
> ---
> arch/loongarch/kernel/cpu-probe.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/loongarch/kernel/cpu-probe.c b/arch/loongarch/kernel/cpu-probe.c
> index 6c87ea3..529ab8f4 100644
> --- a/arch/loongarch/kernel/cpu-probe.c
> +++ b/arch/loongarch/kernel/cpu-probe.c
> @@ -263,7 +263,7 @@ void cpu_probe(void)
>
> c->cputype = CPU_UNKNOWN;
> c->processor_id = read_cpucfg(LOONGARCH_CPUCFG0);
> - c->fpu_vers = (read_cpucfg(LOONGARCH_CPUCFG2) >> 3) & 0x3;
> + c->fpu_vers = (read_cpucfg(LOONGARCH_CPUCFG2) & CPUCFG2_FPVERS) >> 3;
Looks good to me, thanks.
Huacai
>
> c->fpu_csr0 = FPU_CSR_RN;
> c->fpu_mask = FPU_CSR_RSVD;
> --
> 2.1.0
>