Re: [PATCH v2 3/4 RESEND] MIPS: Loongson64: Add /proc/boardinfo

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




于 2020年10月12日 GMT+08:00 下午8:02:25, Tiezhu Yang <yangtiezhu@xxxxxxxxxxx> 写到:
>On 10/12/2020 06:38 PM, Thomas Bogendoerfer wrote:
>> On Sun, Oct 11, 2020 at 07:47:53AM +0800, Tiezhu Yang wrote:
>>> Add /proc/boardinfo to get mainboard and BIOS info easily on the Loongson
>>> platform, this is useful to point out the current used mainboard type and
>>> BIOS version when there exists problems related with hardware or firmware.
>>>
>>> E.g. with this patch:
>>>
>>> [loongson@linux ~]$ cat /proc/boardinfo
>>> Board Info
>>> Manufacturer            : LEMOTE
>>> Board Name              : LEMOTE-LS3A4000-7A1000-1w-V01-pc
>>> Family                  : LOONGSON3
>>>
>>> BIOS Info
>>> Vendor                  : Kunlun
>>> Version                 : Kunlun-A1901-V4.1.3-20200414093938
>>> ROM Size                : 4 KB
>>> Release Date            : 2020-04-14
>> Why does Loongson64 need this extra file no other architecture or MIPS
>> platform need ? Do others provide this information via a different method ?
>> If yes, why can't Loongson64 do the same ?
>
>Hi Thomas,
>
>This is related with the implementation of firmware.
>
>Using dmidecode command can get the similar info if there exists SMBIOS
>in firmware, but the fact is there is no SMBIOS on some machines, we can
>see nothing when execute dmidecode, like this:
>
>[root@linux loongson]# dmidecode
># dmidecode 2.12
># No SMBIOS nor DMI entry point found, sorry.
>
>The following three structures are already defined in the interface
>specification about firmware and kernel on the Loongson platform,
>this is common requirement and specific for Loongson64, so add a
>new boardinfo.c file in arch/mips/loongson64.
>
>arch/mips/include/asm/mach-loongson64/boot_param.h
>struct interface_info {
>     u16 vers; /* version of the specificition */
>     u16 size;
>     u8  flag;
>     char description[64];
>} __packed;
>
>struct board_devices {
>     char name[64];    /* hold the device name */
>     u32 num_resources; /* number of device_resource */
>     /* for each device's resource */
>     struct resource_loongson resource[MAX_RESOURCE_NUMBER];
>     /* arch specific additions */
>     struct archdev_data archdata;
>};
>
>struct loongson_special_attribute {
>     u16 vers;     /* version of this special */
>     char special_name[64]; /* special_atribute_name */
>     u32 loongson_special_type; /* type of special device */
>     /* for each device's resource */
>     struct resource_loongson resource[MAX_RESOURCE_NUMBER];
>};

Hi Tiezhu,

Through I don't think touching top level of proc would be a good idea. It's all about API consistency.

If you intend to provide user an interface then I guess /sys/firmware/lefi
like what DMI did or somewhere less critical is better.

There is no guarantee that Loongson64 device would come with LEFI,
although it's mandatory for now.

Thanks.

- Jiaxun

>
>Thanks,
>Tiezhu
>
>>
>> Thomas.
>>




[Index of Archives]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux