freebsd-dev/sys
Mitchell Horne 22e6a67086 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
2020-10-08 18:02:05 +00:00
..
amd64 Add a routine to dump boot metadata 2020-10-08 18:02:05 +00:00
arm Add a routine to dump boot metadata 2020-10-08 18:02:05 +00:00
arm64 Add a routine to dump boot metadata 2020-10-08 18:02:05 +00:00
bsm
cam cam: Add quirk for Samsung MZ7* behind a SATA-to-SAS interposer 2020-10-07 05:44:35 +00:00
cddl loader: zfs should support bootonce an nextboot 2020-09-21 09:01:10 +00:00
compat LinuxKPI: add a bitfield.h implementation. 2020-10-07 22:07:26 +00:00
conf pwm_backlight: Depend on ext_resources 2020-10-03 14:00:33 +00:00
contrib Explicit CTLFLAG_DYN not needed 2020-10-04 19:37:15 +00:00
crypto libmd: fix assembly optimized skein implementation 2020-10-01 21:05:50 +00:00
ddb ddb: clean up empty lines in .c and .h files 2020-09-01 22:14:30 +00:00
dev Try a bit harder to get the USB device descriptor in case the initial read fails. 2020-10-08 11:30:22 +00:00
dts Remove licenses 2020-06-04 17:20:58 +00:00
fs ext2fs: minor typo. 2020-10-06 21:31:04 +00:00
gdb gdb(4): Don't escape GDB special characters at application layer 2020-09-30 14:55:54 +00:00
geom Move kernel env global variables, etc to sys/kenv.h 2020-10-07 06:16:37 +00:00
gnu Import DTS files for arm, arm64, riscv from Linux 5.8 2020-08-04 19:44:43 +00:00
i386 Print symbol index for unsupported relocation types 2020-10-07 18:48:10 +00:00
isa
kern Add a routine to dump boot metadata 2020-10-08 18:02:05 +00:00
kgssapi State kgssapi dependency on xdr. 2020-09-17 22:29:38 +00:00
libkern arm64: check for CRC32 support via HWCAP 2020-09-08 15:39:19 +00:00
mips Print symbol index for unsupported relocation types 2020-10-07 18:48:10 +00:00
modules pwm_backlight: Add regnode_if.h to SRCS 2020-10-03 14:01:20 +00:00
net Fix typo. 2020-10-07 10:58:56 +00:00
net80211 net80211: whitespace 2020-10-07 22:52:24 +00:00
netgraph ng_l2tp: Fix callout synchronization in the rexmit timeout handler 2020-09-25 18:55:50 +00:00
netinet Minor cleanups. 2020-10-07 15:22:48 +00:00
netinet6 Introduce scalable route multipath. 2020-10-03 10:47:17 +00:00
netipsec net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
netpfil net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
netsmb net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
nfs nfs: clean up empty lines in .c and .h files 2020-09-01 21:25:39 +00:00
nfsclient nfs: clean up empty lines in .c and .h files 2020-09-01 21:25:39 +00:00
nfsserver nfs: clean up empty lines in .c and .h files 2020-09-01 21:25:39 +00:00
nlm nlm: clean up empty lines in .c and .h files 2020-09-01 22:14:52 +00:00
ofed infiniband: Appease Coverty 2020-08-31 16:17:28 +00:00
opencrypto Simplify swcr_authcompute() after removal of deprecated algorithms. 2020-10-06 18:07:52 +00:00
powerpc Print symbol index for unsupported relocation types 2020-10-07 18:48:10 +00:00
riscv Add a routine to dump boot metadata 2020-10-08 18:02:05 +00:00
rpc Fix a potential memory leak in the NFS over TLS handling code. 2020-09-05 00:50:52 +00:00
security mac_framework.h: fix build with DEBUG_VFS_LOCKS and !MAC 2020-09-03 20:30:52 +00:00
sys Add a routine to dump boot metadata 2020-10-08 18:02:05 +00:00
teken Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00
tests Add small tool to invoke kernel test framework tests. 2020-09-02 09:20:40 +00:00
tools Make makesyscalls.lua initialize 'struct sysent' entries using c99 2020-09-25 09:34:00 +00:00
ufs ufs: restore uniqueness of st_dev as returned by ufs_stat() 2020-10-05 18:17:50 +00:00
vm vm_pageout: Avoid rounding down the inactive scan target 2020-10-02 19:16:06 +00:00
x86 Remove unused function cpu_boot() 2020-10-06 23:16:56 +00:00
xdr xdr: clean up empty lines in .c and .h files 2020-09-01 22:13:28 +00:00
xen xen: clean up empty lines in .c and .h files 2020-09-01 21:21:55 +00:00
Makefile