• Tiezhu Yang's avatar
    LoongArch: Fix wrong "ROM Size" of boardinfo · 45b53c90
    Tiezhu Yang authored
    We can see the "ROM Size" is different in the following outputs:
    
    [root@linux loongson]# cat /sys/firmware/loongson/boardinfo
    BIOS Information
    Vendor                  : Loongson
    Version                 : vUDK2018-LoongArch-V2.0.pre-beta8
    ROM Size                : 63 KB
    Release Date            : 06/15/2022
    
    Board Information
    Manufacturer            : Loongson
    Board Name              : Loongson-LS3A5000-7A1000-1w-A2101
    Family                  : LOONGSON64
    
    [root@linux loongson]# dmidecode | head -11
    ...
    Handle 0x0000, DMI type 0, 26 bytes
    BIOS Information
    	Vendor: Loongson
    	Version: vUDK2018-LoongArch-V2.0.pre-beta8
    	Release Date: 06/15/2022
    	ROM Size: 4 MB
    
    According to "BIOS Information (Type 0) structure" in the SMBIOS
    Reference Specification [1], it shows 64K * (n+1) is the size of
    the physical device containing the BIOS if the size is less than
    16M.
    
    Additionally, we can see the related code in dmidecode [2]:
    
      u64 s = { .l = (code1 + 1) << 6 };
    
    So the output of dmidecode is correct, the output of boardinfo
    is wrong, fix it.
    
    By the way, at present no need to consider the size is 16M or
    greater on LoongArch, because it is usually 4M or 8M which is
    enough to use.
    
    [1] https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.6.0.pdf
    [2] https://git.savannah.nongnu.org/cgit/dmidecode.git/tree/dmidecode.c#n347
    
    Fixes: 628c3bb4 ("LoongArch: Add boot and setup routines")
    Reviewed-by: default avatarWANG Xuerui <git@xen0n.name>
    Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
    Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
    45b53c90
setup.c 8.93 KB