]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
cpu: riscv: set correct SMBIOS processor family value
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Thu, 28 Dec 2023 07:30:24 +0000 (08:30 +0100)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tue, 9 Jan 2024 09:09:15 +0000 (10:09 +0100)
The SMBIOS specification requires to set the processor family in the type 4
(Processor Information) table to specific values depending only on the
bitness of the system (0x200 for RV32 and 0x201 for RV64).

With this patch dmidecode shows

    Handle 0x0004, DMI type 4, 48 bytes
    Processor Information
Socket Designation: Not Specified
Type: Central Processor
Family: RV64

for qemu-riscv64_smode_defconfig.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
drivers/cpu/riscv_cpu.c

index d6484d7f4b4079c68440354db96f4a2ef02075cc..034b9b49c05c50afad77e45409e2a49f4fea9543 100644 (file)
@@ -98,6 +98,10 @@ static int riscv_cpu_bind(struct udevice *dev)
 
        /* save the hart id */
        plat->cpu_id = dev_read_addr(dev);
+       if (IS_ENABLED(CONFIG_64BIT))
+               plat->family = 0x201;
+       else
+               plat->family = 0x200;
        /* first examine the property in current cpu node */
        ret = dev_read_u32(dev, "timebase-frequency", &plat->timebase_freq);
        /* if not found, then look at the parent /cpus node */