[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <10732371-fbd1-e9f3-6fed-7821a3ce4847@loongson.cn>
Date: Wed, 5 Feb 2020 10:13:44 +0800
From: Tiezhu Yang <yangtiezhu@...ngson.cn>
To: Jonas Gorski <jonas.gorski@...il.com>
Cc: Paul Burton <paulburton@...nel.org>,
Ralf Baechle <ralf@...ux-mips.org>,
Jean Delvare <jdelvare@...e.com>,
Huacai Chen <chenhc@...ote.com>,
Xuefeng Li <lixuefeng@...ngson.cn>, linux-mips@...r.kernel.org,
linux-kernel@...r.kernel.org, Yinglu Yang <yangyinglu@...ngson.cn>,
Jiaxun Yang <jiaxun.yang@...goat.com>,
Jean Delvare <jdelvare@...e.de>
Subject: Re: [PATCH v2,RESEND] MIPS: Scan the DMI system information
On 2/3/20 10:46 PM, Jonas Gorski wrote:
> Hi,
>
> On Thu, 16 Jan 2020 at 14:28, Tiezhu Yang <yangtiezhu@...ngson.cn> wrote:
>> Enable DMI scanning on the MIPS architecture, this setups DMI identifiers
>> (dmi_system_id) for printing it out on task dumps and prepares DIMM entry
>> information (dmi_memdev_info) from the SMBIOS table. With this patch, the
>> driver can easily match various of mainboards.
>>
>> In the SMBIOS reference specification, the table anchor string "_SM_" is
>> present in the address range 0xF0000 to 0xFFFFF on a 16-byte boundary,
>> but there exists a special case for Loongson platform, when call function
>> dmi_early_remap, it should specify the start address to 0xFFFE000 due to
>> it is reserved for SMBIOS and can be normally access in the BIOS.
>>
>> This patch works fine on the Loongson 3A3000 platform which belongs to
>> MIPS architecture and has no influence on the other architectures such
>> as x86 and ARM.
>>
>> Co-developed-by: Yinglu Yang <yangyinglu@...ngson.cn>
>> Signed-off-by: Yinglu Yang <yangyinglu@...ngson.cn>
>> [jiaxun.yang@...goat.com: Refine definitions and Kconfig]
>> Signed-off-by: Jiaxun Yang <jiaxun.yang@...goat.com>
>> Signed-off-by: Tiezhu Yang <yangtiezhu@...ngson.cn>
>> Reviewed-by: Huacai Chen <chenhc@...ote.com>
>> ---
>>
>> v2:
>> - add SMBIOS_ENTRY_POINT_SCAN_START suggested by Jean
>> - refine definitions and Kconfig by Jiaxun
>>
>> arch/mips/Kconfig | 10 ++++++++++
>> arch/mips/include/asm/dmi.h | 20 ++++++++++++++++++++
>> arch/mips/kernel/setup.c | 2 ++
>> drivers/firmware/dmi_scan.c | 6 +++++-
>> 4 files changed, 37 insertions(+), 1 deletion(-)
>> create mode 100644 arch/mips/include/asm/dmi.h
>>
>> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
>> index 4b83507..c097f78 100644
>> --- a/arch/mips/Kconfig
>> +++ b/arch/mips/Kconfig
>> @@ -2773,6 +2773,16 @@ config HW_PERF_EVENTS
>> Enable hardware performance counter support for perf events. If
>> disabled, perf events will use software events only.
>>
>> +config DMI
>> + default y if MACH_LOONGSON64
>> + select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
>> + bool "Enable DMI scanning"
> Is this option harmless to enable for other MIPS platforms? What
> happens if it is enabled on devices where PHYS_OFFSET isn't 0, so
> 0xF0000 is likely not backed by anything and accessing it might hang
> the system?
>
> This probably should depend on MACH_LOONGSON64.
Hi Jonas,
Thanks for your reply and suggestion.
With the current patch, on the MIPS architecture, the DMI option is
default y only if MACH_LOONGSON64 is set, otherwise it is not set.
When enable DMI manually on the MIPS platform which is not LOONGSON64,
the SMBIOS_ENTRY_POINT_SCAN_START is 0xF0000, dmi_early_remap() will
return NULL and goto err to print "DMI not present or invalid."
static void __init dmi_scan_machine(void)
{
...
p = dmi_early_remap(SMBIOS_ENTRY_POINT_SCAN_START, 0x10000);
if (p == NULL)
goto error;
...
error:
pr_info("DMI not present or invalid.\n");
}
It seems harmless and the system can boot successful. However, in order
to avoid the unknown risks on the mips platform which is not LOONGSON64,
I think it is better to depend on MACH_LOONGSON64.
config DMI
bool "Enable DMI scanning"
depends on MACH_LOONGSON64
select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
default y
If other mips platform also needs this DMI feature in the future,
the "depends on" conditon can be modified.
I will do it in the v3 patch.
Thanks,
Tiezhu Yang
>
> Regards
>
> Jonas
Powered by blists - more mailing lists