Messages in this thread |  | | Subject | Re: [PATCH v2,RESEND] MIPS: Scan the DMI system information | From | Tiezhu Yang <> | Date | Wed, 5 Feb 2020 10:13:44 +0800 |
| |
On 2/3/20 10:46 PM, Jonas Gorski wrote: > Hi, > > On Thu, 16 Jan 2020 at 14:28, Tiezhu Yang <yangtiezhu@loongson.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@loongson.cn> >> Signed-off-by: Yinglu Yang <yangyinglu@loongson.cn> >> [jiaxun.yang@flygoat.com: Refine definitions and Kconfig] >> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> >> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> >> Reviewed-by: Huacai Chen <chenhc@lemote.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
|  |