riscv: cpu: correctly handle the setting of CPU_FEAT_MMU bit
authorSagar Shrikant Kadam <sagar.kadam@sifive.com>
Sun, 28 Jun 2020 14:45:02 +0000 (07:45 -0700)
committerAndes <uboot@andestech.com>
Wed, 1 Jul 2020 07:01:27 +0000 (15:01 +0800)
The conditional check to read "mmu-type" from the device tree
is not rightly handled due to which the cpu feature doesn't include
CPU_FEAT_MMU even if it's corresponding entry is present in the device
tree.

The initialization of cpu features is now taken care in cpu-uclass
driver, so no need to zero out cpu_freq in riscv_cpu driver and can be
removed.

Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
Reviewed-by: Pragnesh Patel <pragnesh.patel@sifive.com>
Reviewed-by: Bin Meng <bin.meng@windriver.com>
drivers/cpu/riscv_cpu.c

index 76b0489..112690f 100644 (file)
@@ -36,9 +36,6 @@ static int riscv_cpu_get_info(struct udevice *dev, struct cpu_info *info)
        struct clk clk;
        const char *mmu;
 
-       /* Zero out the frequency, in case sizeof(ulong) != sizeof(u32) */
-       info->cpu_freq = 0;
-
        /* First try getting the frequency from the assigned clock */
        ret = clk_get_by_index(dev, 0, &clk);
        if (!ret) {
@@ -52,7 +49,7 @@ static int riscv_cpu_get_info(struct udevice *dev, struct cpu_info *info)
                dev_read_u32(dev, "clock-frequency", (u32 *)&info->cpu_freq);
 
        mmu = dev_read_string(dev, "mmu-type");
-       if (!mmu)
+       if (mmu)
                info->features |= BIT(CPU_FEAT_MMU);
 
        return 0;