]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit - sys/amd64/amd64/machdep.c
Add a routine to dump boot metadata
authormhorne <mhorne@FreeBSD.org>
Thu, 8 Oct 2020 18:02:05 +0000 (18:02 +0000)
committermhorne <mhorne@FreeBSD.org>
Thu, 8 Oct 2020 18:02:05 +0000 (18:02 +0000)
commitecb56912df2b529f1cc38d58eae0b9b1139395b2
tree0a99c12c4ce85aa3e08502213442350ba925894d
parent6373e8ba7567bca08381f5cce28a763f628c2dac
Add a routine to dump boot metadata

The boot metadata (also referred to as modinfo, or preload metadata)
provides information about the size and location of the kernel,
pre-loaded modules, and other metadata (e.g. the EFI framebuffer) to be
consumed during by the kernel during early boot. It is encoded as a
series of type-length-value entries and is usually constructed by
loader(8) and passed to the kernel. It is also faked on some
architectures when booted by other means.

Although much of the module information is available via kldstat(8),
there is no easy way to debug the metadata in its entirety. Add some
routines to parse this data and allow it to be printed to the console
during early boot or output via a sysctl.

Since the output can be lengthly, printing to the console is gated
behind the debug.dump_modinfo_at_boot kenv variable as well as the
BOOTVERBOSE flag. The sysctl to print the metadata is named
debug.dump_modinfo.

Reviewed by: tsoome
Sponsored by: NetApp, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D26687
sys/amd64/amd64/machdep.c
sys/arm/arm/machdep.c
sys/arm64/arm64/machdep.c
sys/kern/subr_module.c
sys/riscv/riscv/machdep.c
sys/sys/linker.h