History log of /freebsd/stand/libsa/smbios.c (Results 1 – 25 of 26)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: release/13.5.0
# 1ee87149 05-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios_probe(): Strictly obey specified entry point address

When such an address is known, do not search elsewhere, contrary to what
we are doing on non-EFI boot (see SMBIOS_START and SMBIOS_

libsa: smbios_probe(): Strictly obey specified entry point address

When such an address is known, do not search elsewhere, contrary to what
we are doing on non-EFI boot (see SMBIOS_START and SMBIOS_LENGTH).

Reviewed by: markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49291

show more ...


# 9dad0ba2 05-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios_detect(): Return the entry point address

In particular, this allows the caller to know whether the detection was
successful.

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsor

libsa: smbios_detect(): Return the entry point address

In particular, this allows the caller to know whether the detection was
successful.

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49290

show more ...


# c340797e 05-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: Allow to run smbios_probe() multiple times

This is in preparation for modifying the EFI loader to favor a v3 table
if present.

As an impact, caller smbios_match() has been changed so

libsa: smbios: Allow to run smbios_probe() multiple times

This is in preparation for modifying the EFI loader to favor a v3 table
if present.

As an impact, caller smbios_match() has been changed so that it only
calls smbios_probe() with NULL (non-EFI discovery) once.

While here, expand the original XXXRP comment in smbios_match().

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49289

show more ...


# 7f005c66 03-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: Use 64-bit entry point if table below 4GB on non-EFI boot

On amd64, boot blocks and the non-EFI loader are 32-bit compiled as
clients of BTX, so cannot access addresses beyond 4GB. H

libsa: smbios: Use 64-bit entry point if table below 4GB on non-EFI boot

On amd64, boot blocks and the non-EFI loader are 32-bit compiled as
clients of BTX, so cannot access addresses beyond 4GB. However, the
64-bit entry point may refer to a structure table below 4GB, which we
want to use if the BIOS does not provide a 32-bit entry point. The
situation is similar for powerpc64.

Consequently, always compile-in support for the 64-bit entry point, but
ensure that it is not selected on 32-bit-compiled boot loaders if the
structure table it points to grows beyond 4GB (as it is then not
accessible).

PR: 284460
Reviewed by: markj
MFC after: 2 weeks
Relnotes: yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49288

show more ...


# 3f744fb8 03-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: Favor the v3 (64-bit) entry point on non-EFI boot

When both the 32-bit and 64-bit entry points are present, the SMBIOS
specification says that the 64-bit entry point always has at lea

libsa: smbios: Favor the v3 (64-bit) entry point on non-EFI boot

When both the 32-bit and 64-bit entry points are present, the SMBIOS
specification says that the 64-bit entry point always has at least all
the structures the 32-bit entry point refers. In other words, the
32-bit entry point is provided for compatibility, so we assume the
64-bit one has more chances to be filled with adequate values.

Doing this also increases consistency with the kernel's smbios(4)
driver.

Reviewed by: imp, markj
MFC after: 2 weeks
Relnotes: yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49287

show more ...


# 64fc51a9 07-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: Reject a 64-bit entry point with revision 0

According to the specification, such an entry point may have different
data in bytes at offsets 0x0c to 0x17 (included). In such a case,
i

libsa: smbios: Reject a 64-bit entry point with revision 0

According to the specification, such an entry point may have different
data in bytes at offsets 0x0c to 0x17 (included). In such a case,
interpreting them as the Structure Table Maximum Size and Address fields
could have catastrophic consequences.

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49286

show more ...


# 7e61fc76 04-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: Stop parsing on an End-of-Table structure

This structure exists since SMBIOS v2.2 and indicates that there are no
structures to be parsed beyond this point. For backwards compatibili

libsa: smbios: Stop parsing on an End-of-Table structure

This structure exists since SMBIOS v2.2 and indicates that there are no
structures to be parsed beyond this point. For backwards compatibility,
the standard recommends that system software ensures that this structure
covers the rest of the SMBIOS structure table area as reported by the
Structure Table Address, and the Structure Table Maximum Size (64-bit
entry point) or the Structure Table Length (32-bit entry point), which
makes existing parsers continue to work correctly as they usually ignore
unknown structure types. However, this is not a requirement, so be
bullet proof and immediately stop parsing in this case.

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49285

show more ...


# d1f351fc 03-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: probe: BCD revision parsing is v2-only code; Expand comments

The code parsing the BCD revision is only meaningful on v2, so move it
away into the appropriate 'if' branch to ease readi

libsa: smbios: probe: BCD revision parsing is v2-only code; Expand comments

The code parsing the BCD revision is only meaningful on v2, so move it
away into the appropriate 'if' branch to ease reading (and to avoid
a useless test).

Expand comments. In particular, make it clear that setting
'smbios.count' to '-1' removes the limit of the number of structures to
parse.

No functional change.

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49284

show more ...


# 3b2303ba 03-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: Export the used entry point type to the kernel

Via the kenv 'smbios.entry_point_type'.

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Diffe

libsa: smbios: Export the used entry point type to the kernel

Via the kenv 'smbios.entry_point_type'.

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49283

show more ...


# a39ab17c 03-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: Make 'is_64bit_ep' a field of 'smbios'

No functional change.

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https:/

libsa: smbios: Make 'is_64bit_ep' a field of 'smbios'

No functional change.

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49282

show more ...


# 2aa00675 03-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: Rename 64-bit entry point's guards

Rename HAS_SMBV3 to SMBIOS_64BIT_EP, as it will soon be externally
defined in some cases, and 'isv3' to 'is_64bit_ep'. These are more
accurate name

libsa: smbios: Rename 64-bit entry point's guards

Rename HAS_SMBV3 to SMBIOS_64BIT_EP, as it will soon be externally
defined in some cases, and 'isv3' to 'is_64bit_ep'. These are more
accurate names for what they actually control/indicate.

No functional change.

Reviewed by: imp, markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49281

show more ...


# a609592d 03-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: style(9): Entry point parsing comments

Move the comments so that lines stay of reasonable length.

Remove comments that state the obvious.

Reviewed by: markj
MFC after: 2 wee

libsa: smbios: style(9): Entry point parsing comments

Move the comments so that lines stay of reasonable length.

Remove comments that state the obvious.

Reviewed by: markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49280

show more ...


# 085c8bde 03-Mar-2025 Olivier Certner <olce@FreeBSD.org>

libsa: smbios: style(9): SMBIOS_GET8(): Split overlong line

No functional change.

Reviewed by: markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https:

libsa: smbios: style(9): SMBIOS_GET8(): Split overlong line

No functional change.

Reviewed by: markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49279

show more ...


Revision tags: release/14.2.0-p2, release/14.1.0-p8, release/13.4.0-p4, release/14.1.0-p7, release/14.2.0-p1, release/13.4.0-p3, release/14.2.0, release/13.4.0, release/14.1.0, release/13.3.0
# 3e15b01d 22-Feb-2024 Warner Losh <imp@FreeBSD.org>

libsa: Remove redundant sys/cdefs.h

Sponsored by: Netflix


Revision tags: release/14.0.0
# 1d386b48 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# a5b4ec52 01-May-2023 Warner Losh <imp@FreeBSD.org>

stand: More protection against malformed smbios tables

Add some more sanity checks to make sure we don't march off the end of
the table. Typically, smbios structures are well formed, or Windows
woul

stand: More protection against malformed smbios tables

Add some more sanity checks to make sure we don't march off the end of
the table. Typically, smbios structures are well formed, or Windows
wouldn't boot. Sometimes they aren't, and this at least fails safe.

Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D39794

show more ...


# c5e433b9 01-May-2023 Warner Losh <imp@FreeBSD.org>

stand: Avoid unaligned access in smbios code

This code was written on x86 where unaligned accesses were
easy. LinuxBoot running on aarch64 uses mmap of /dev/mem to read the
smbios table. Linux's map

stand: Avoid unaligned access in smbios code

This code was written on x86 where unaligned accesses were
easy. LinuxBoot running on aarch64 uses mmap of /dev/mem to read the
smbios table. Linux's mapping of this memory doesn't allow the normal
unaligned fixup, so we get a bus error instead. We can't use the more
natural le16dec and friends because they optimize into a single,
unaligned memory load. We don't see this issue on aarch64 UEFI because
memory is mapped such that unaligned accesses are fixed up.

Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D39793

show more ...


# 16e9ec44 22-Apr-2023 Warner Losh <imp@FreeBSD.org>

stand: mark unused argment as unused

We don't use the 'ver' argument for uuids sometimes, so mark it unused.

Sponsored by: Netflix


# b5c3ade7 18-Apr-2023 Stephen J. Kiernan <stevek@FreeBSD.org>

libsa: Update comments about SMBIOS specification

Summary:
Include details from the SMBIOS 3 specification and some additional
details for SMBIOS 2.1.

Obtained from: Juniper Networks, Inc.

Reviewe

libsa: Update comments about SMBIOS specification

Summary:
Include details from the SMBIOS 3 specification and some additional
details for SMBIOS 2.1.

Obtained from: Juniper Networks, Inc.

Reviewers: jmg, manu

Subscribers: imp, dab

Differential Revision: https://reviews.freebsd.org/D39635

show more ...


Revision tags: release/13.2.0
# 13597be9 03-Mar-2023 John-Mark Gurney <jmg@FreeBSD.org>

length for the 64-bit entry is 32-bits, not 16-bits.

Reported by: Jérôme Duval (korli on github)


# ee97f198 22-Feb-2023 John-Mark Gurney <jmg@FreeBSD.org>

Support SMBIOS v3 for 64-bit entry systems

Summary:
Under QEMU on arm64 systems, the smbios table is above 4GB
requiring a 64-bit address to access.

Reviewers: manu

Subscribers: imp, bcran, dab

D

Support SMBIOS v3 for 64-bit entry systems

Summary:
Under QEMU on arm64 systems, the smbios table is above 4GB
requiring a 64-bit address to access.

Reviewers: manu

Subscribers: imp, bcran, dab

Differential Revision: https://reviews.freebsd.org/D38721

show more ...


Revision tags: release/12.4.0
# 66c73af7 02-Sep-2022 Kornel Dulęba <kd@FreeBSD.org>

stand: Parse BIOS revision from SMBIOS

Add a smbios.bios.revision kenv, which contains the system BIOS revision
as defined in SMBIOS specification, section 3.3.1.
Since the revision is stored in two

stand: Parse BIOS revision from SMBIOS

Add a smbios.bios.revision kenv, which contains the system BIOS revision
as defined in SMBIOS specification, section 3.3.1.
Since the revision is stored in two separate byte fields,
the smbios_setenv helper can't be used.
Read and construct the kenv manually instead.

Approved by: mw(mentor)
Sponsored by: Stormshield
Obtained from: Semihalf
Differential Revision: https://reviews.freebsd.org/D36413

show more ...


Revision tags: release/13.1.0, release/12.3.0, release/13.0.0, release/12.2.0
# e2515283 27-Aug-2020 Glen Barber <gjb@FreeBSD.org>

MFH

Sponsored by: Rubicon Communications, LLC (netgate.com)


# 9060f2c3 20-Aug-2020 Emmanuel Vadot <manu@FreeBSD.org>

libsa: smbios: Parse the chassis type and export it as smbios.chassis.type

It can be useful to know what type of machine we are running on for desktop
related thing.
It also allow us to support all

libsa: smbios: Parse the chassis type and export it as smbios.chassis.type

It can be useful to know what type of machine we are running on for desktop
related thing.
It also allow us to support all the DMI variable that linux driver can fetch.

MFC after: 1 week
Sponsored by: Sponsored-by: The FreeBSD Foundation

show more ...


Revision tags: release/11.4.0
# 6c140a72 20-Feb-2020 Dimitry Andric <dim@FreeBSD.org>

Merge ^/head r358131 through r358178.


12