mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 16:44:10 +08:00
riscv: dmi: Add SMBIOS/DMI support
Enable the dmi driver for riscv which would allow access the SMBIOS info through some userspace file(/sys/firmware/dmi/*). The change was based on that of arm64 and has been verified by dmidecode tool. Signed-off-by: Haibo Xu <haibo1.xu@intel.com> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Atish Patra <atishp@rivosinc.com> Link: https://lore.kernel.org/r/20240613065507.287577-1-haibo1.xu@intel.com Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
50b5bae5be
commit
d6ecd18893
@ -967,6 +967,17 @@ config EFI
|
||||
allow the kernel to be booted as an EFI application. This
|
||||
is only useful on systems that have UEFI firmware.
|
||||
|
||||
config DMI
|
||||
bool "Enable support for SMBIOS (DMI) tables"
|
||||
depends on EFI
|
||||
default y
|
||||
help
|
||||
This enables SMBIOS/DMI feature for systems.
|
||||
|
||||
This option is only useful on systems that have UEFI firmware.
|
||||
However, even with this option, the resultant kernel should
|
||||
continue to boot on existing non-UEFI platforms.
|
||||
|
||||
config CC_HAVE_STACKPROTECTOR_TLS
|
||||
def_bool $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=tp -mstack-protector-guard-offset=0)
|
||||
|
||||
|
24
arch/riscv/include/asm/dmi.h
Normal file
24
arch/riscv/include/asm/dmi.h
Normal file
@ -0,0 +1,24 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2024 Intel Corporation
|
||||
*
|
||||
* based on arch/arm64/include/asm/dmi.h
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_DMI_H
|
||||
#define __ASM_DMI_H
|
||||
|
||||
#include <linux/io.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#define dmi_early_remap(x, l) memremap(x, l, MEMREMAP_WB)
|
||||
#define dmi_early_unmap(x, l) memunmap(x)
|
||||
#define dmi_remap(x, l) memremap(x, l, MEMREMAP_WB)
|
||||
#define dmi_unmap(x) memunmap(x)
|
||||
#define dmi_alloc(l) kzalloc(l, GFP_KERNEL)
|
||||
|
||||
#endif
|
@ -152,3 +152,16 @@ void arch_efi_call_virt_teardown(void)
|
||||
{
|
||||
efi_virtmap_unload();
|
||||
}
|
||||
|
||||
static int __init riscv_dmi_init(void)
|
||||
{
|
||||
/*
|
||||
* On riscv, DMI depends on UEFI, and dmi_setup() needs to
|
||||
* be called early because dmi_id_init(), which is an arch_initcall
|
||||
* itself, depends on dmi_scan_machine() having been called already.
|
||||
*/
|
||||
dmi_setup();
|
||||
|
||||
return 0;
|
||||
}
|
||||
core_initcall(riscv_dmi_init);
|
||||
|
Loading…
Reference in New Issue
Block a user