Module Name: src Committed By: mrg Date: Fri Nov 25 22:17:20 UTC 2022
Modified Files: src/sys/arch/arm/fdt: acpi_fdt.c src/sys/dev: smbios_platform.c Log Message: move the creation of machdep.smbios into platform_init(). "dmidecode -d /dev/smbios" now works on x86. also tested on arm64 (lx2k.) To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/fdt/acpi_fdt.c cvs rdiff -u -r1.1 -r1.2 src/sys/dev/smbios_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/fdt/acpi_fdt.c diff -u src/sys/arch/arm/fdt/acpi_fdt.c:1.23 src/sys/arch/arm/fdt/acpi_fdt.c:1.24 --- src/sys/arch/arm/fdt/acpi_fdt.c:1.23 Sat Aug 7 16:18:43 2021 +++ src/sys/arch/arm/fdt/acpi_fdt.c Fri Nov 25 22:17:20 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_fdt.c,v 1.23 2021/08/07 16:18:43 thorpej Exp $ */ +/* $NetBSD: acpi_fdt.c,v 1.24 2022/11/25 22:17:20 mrg Exp $ */ /*- * Copyright (c) 2015-2017 Jared McNeill <jmcne...@invisible.ca> @@ -30,7 +30,7 @@ #include "opt_efi.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: acpi_fdt.c,v 1.23 2021/08/07 16:18:43 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi_fdt.c,v 1.24 2022/11/25 22:17:20 mrg Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -41,7 +41,6 @@ __KERNEL_RCSID(0, "$NetBSD: acpi_fdt.c,v #include <sys/lwp.h> #include <sys/kmem.h> #include <sys/queue.h> -#include <sys/sysctl.h> #include <dev/fdt/fdtvar.h> @@ -63,7 +62,6 @@ static void acpi_fdt_attach(device_t, de static void acpi_fdt_poweroff(device_t); static void acpi_fdt_smbios_init(device_t); -static void acpi_fdt_sysctl_init(void); extern struct arm32_bus_dma_tag acpi_coherent_dma_tag; @@ -124,8 +122,6 @@ acpi_fdt_attach(device_t parent, device_ aa.aa_dmat = NULL; aa.aa_dmat64 = NULL; config_found(self, &aa, NULL, CFARGS_NONE); - - acpi_fdt_sysctl_init(); } static void @@ -226,27 +222,3 @@ acpi_fdt_smbios_init(device_t dev) AcpiOsUnmapMemory(sh, sizeof(*sh)); } } - -static void -acpi_fdt_sysctl_init(void) -{ - const struct sysctlnode *rnode; - int error; - - if (smbios_table == 0) { - return; - } - - error = sysctl_createv(NULL, 0, NULL, &rnode, - CTLFLAG_PERMANENT, CTLTYPE_NODE, "machdep", NULL, - NULL, 0, NULL, 0, CTL_MACHDEP, CTL_EOL); - if (error) { - return; - } - - (void)sysctl_createv(NULL, 0, &rnode, NULL, - CTLFLAG_PERMANENT | CTLFLAG_READONLY | CTLFLAG_HEX, CTLTYPE_QUAD, - "smbios", SYSCTL_DESCR("SMBIOS table pointer"), - NULL, 0, &smbios_table, sizeof(smbios_table), - CTL_CREATE, CTL_EOL); -} Index: src/sys/dev/smbios_platform.c diff -u src/sys/dev/smbios_platform.c:1.1 src/sys/dev/smbios_platform.c:1.2 --- src/sys/dev/smbios_platform.c:1.1 Wed Jul 21 23:26:15 2021 +++ src/sys/dev/smbios_platform.c Fri Nov 25 22:17:20 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: smbios_platform.c,v 1.1 2021/07/21 23:26:15 jmcneill Exp $ */ +/* $NetBSD: smbios_platform.c,v 1.2 2022/11/25 22:17:20 mrg Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca> @@ -29,7 +29,7 @@ #include "isa.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smbios_platform.c,v 1.1 2021/07/21 23:26:15 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smbios_platform.c,v 1.2 2022/11/25 22:17:20 mrg Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -76,6 +76,20 @@ platform_init(void) struct smbios_slot *pslot; int nisa, nother; + if (smbios_entry.hdrphys) { + int err; + + err = sysctl_createv(NULL, 0, NULL, NULL, + CTLFLAG_PERMANENT | CTLFLAG_READONLY | CTLFLAG_HEX | + CTLFLAG_IMMEDIATE, CTLTYPE_QUAD, + "smbios", SYSCTL_DESCR("SMBIOS table pointer"), + NULL, smbios_entry.hdrphys, 0, 0, + CTL_MACHDEP, CTL_CREATE, CTL_EOL); + if (err != 0 && err != EEXIST) + printf("platform: sysctl_createv " + "(machdep.smbios) failed, err = %d\n", err); + } + smbios.cookie = 0; if (smbios_find_table(SMBIOS_TYPE_SYSTEM, &smbios)) { psys = smbios.tblhdr;