xref: /freebsd/share/man/man4/coreboot.4 (revision 5f74217c05a99f38a31a6e4950220964595d4ac8)
1*5f74217cSAbdelkader Boudih.\" SPDX-License-Identifier: BSD-2-Clause
2*5f74217cSAbdelkader Boudih.\"
3*5f74217cSAbdelkader Boudih.\" Copyright (c) 2026 Abdelkader Boudih <freebsd@seuros.com>
4*5f74217cSAbdelkader Boudih.\"
5*5f74217cSAbdelkader Boudih.\" Redistribution and use in source and binary forms, with or without
6*5f74217cSAbdelkader Boudih.\" modification, are permitted provided that the following conditions
7*5f74217cSAbdelkader Boudih.\" are met:
8*5f74217cSAbdelkader Boudih.\" 1. Redistributions of source code must retain the above copyright
9*5f74217cSAbdelkader Boudih.\"    notice, this list of conditions and the following disclaimer.
10*5f74217cSAbdelkader Boudih.\" 2. Redistributions in binary form must reproduce the above copyright
11*5f74217cSAbdelkader Boudih.\"    notice, this list of conditions and the following disclaimer in the
12*5f74217cSAbdelkader Boudih.\"    documentation and/or other materials provided with the distribution.
13*5f74217cSAbdelkader Boudih.\"
14*5f74217cSAbdelkader Boudih.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15*5f74217cSAbdelkader Boudih.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16*5f74217cSAbdelkader Boudih.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17*5f74217cSAbdelkader Boudih.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18*5f74217cSAbdelkader Boudih.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19*5f74217cSAbdelkader Boudih.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20*5f74217cSAbdelkader Boudih.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21*5f74217cSAbdelkader Boudih.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22*5f74217cSAbdelkader Boudih.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23*5f74217cSAbdelkader Boudih.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24*5f74217cSAbdelkader Boudih.\" SUCH DAMAGE.
25*5f74217cSAbdelkader Boudih.\"
26*5f74217cSAbdelkader Boudih.Dd March 2, 2026
27*5f74217cSAbdelkader Boudih.Dt COREBOOT 4
28*5f74217cSAbdelkader Boudih.Os
29*5f74217cSAbdelkader Boudih.Sh NAME
30*5f74217cSAbdelkader Boudih.Nm coreboot
31*5f74217cSAbdelkader Boudih.Nd coreboot firmware table driver
32*5f74217cSAbdelkader Boudih.Sh SYNOPSIS
33*5f74217cSAbdelkader BoudihTo compile this driver into the kernel,
34*5f74217cSAbdelkader Boudihplace the following line in your
35*5f74217cSAbdelkader Boudihkernel configuration file:
36*5f74217cSAbdelkader Boudih.Bd -ragged -offset indent
37*5f74217cSAbdelkader Boudih.Cd "device coreboot"
38*5f74217cSAbdelkader Boudih.Ed
39*5f74217cSAbdelkader Boudih.Pp
40*5f74217cSAbdelkader BoudihAlternatively, to load the driver as a
41*5f74217cSAbdelkader Boudihmodule at boot time, place the following line in
42*5f74217cSAbdelkader Boudih.Xr loader.conf 5 :
43*5f74217cSAbdelkader Boudih.Bd -literal -offset indent
44*5f74217cSAbdelkader Boudihcoreboot_load="YES"
45*5f74217cSAbdelkader Boudih.Ed
46*5f74217cSAbdelkader Boudih.Sh DESCRIPTION
47*5f74217cSAbdelkader BoudihThe
48*5f74217cSAbdelkader Boudih.Nm
49*5f74217cSAbdelkader Boudihdriver provides access to firmware tables created by the coreboot
50*5f74217cSAbdelkader Boudihopen-source firmware project.
51*5f74217cSAbdelkader BoudihIt discovers the coreboot table by scanning low memory for the
52*5f74217cSAbdelkader Boudih.Dq LBIO
53*5f74217cSAbdelkader Boudihsignature, follows any forward pointer to the real table in high memory,
54*5f74217cSAbdelkader Boudihand validates the IP-style checksums.
55*5f74217cSAbdelkader Boudih.Pp
56*5f74217cSAbdelkader BoudihThe driver exposes firmware information through three interfaces:
57*5f74217cSAbdelkader Boudih.Bl -tag -width "/dev/coreboot_console"
58*5f74217cSAbdelkader Boudih.It Sy sysctl
59*5f74217cSAbdelkader BoudihA
60*5f74217cSAbdelkader Boudih.Xr sysctl 8
61*5f74217cSAbdelkader Boudihtree under
62*5f74217cSAbdelkader Boudih.Va hw.coreboot
63*5f74217cSAbdelkader Boudihprovides access to:
64*5f74217cSAbdelkader Boudih.Bl -bullet -compact
65*5f74217cSAbdelkader Boudih.It
66*5f74217cSAbdelkader Boudihfirmware version, build date, and compiler information
67*5f74217cSAbdelkader Boudih.It
68*5f74217cSAbdelkader Boudihmainboard identification and board configuration
69*5f74217cSAbdelkader Boudih.It
70*5f74217cSAbdelkader BoudihMAC addresses, framebuffer, GPIO, and SPI flash details
71*5f74217cSAbdelkader Boudih.It
72*5f74217cSAbdelkader BoudihTPM information and SMMSTORE configuration
73*5f74217cSAbdelkader Boudih.It
74*5f74217cSAbdelkader BoudihACPI RSDP address, PCIe controller base, and TSC frequency
75*5f74217cSAbdelkader Boudih.It
76*5f74217cSAbdelkader Boudihboot timestamps and CBMEM entry enumeration
77*5f74217cSAbdelkader Boudih.El
78*5f74217cSAbdelkader Boudih.It Pa /dev/coreboot_console
79*5f74217cSAbdelkader BoudihA character device providing read-only access to the CBMEM firmware console
80*5f74217cSAbdelkader Boudihring buffer.
81*5f74217cSAbdelkader BoudihThis contains coreboot's own boot log, analogous to
82*5f74217cSAbdelkader Boudih.Xr dmesg 8
83*5f74217cSAbdelkader Boudihbut for the firmware stage before the OS kernel starts.
84*5f74217cSAbdelkader BoudihThe ring buffer uses bit 31 of its cursor as an overflow indicator;
85*5f74217cSAbdelkader Boudihwhen set, the buffer has wrapped and data is read starting from the
86*5f74217cSAbdelkader Boudihcursor position.
87*5f74217cSAbdelkader Boudih.It Pa /dev/cbmem
88*5f74217cSAbdelkader BoudihA character device providing
89*5f74217cSAbdelkader Boudih.Xr ioctl 2
90*5f74217cSAbdelkader Boudihaccess to individual CBMEM entries.
91*5f74217cSAbdelkader BoudihCBMEM is coreboot's mechanism for passing data between firmware stages
92*5f74217cSAbdelkader Boudihand to the operating system.
93*5f74217cSAbdelkader Boudih.El
94*5f74217cSAbdelkader Boudih.Ss Verbose Output
95*5f74217cSAbdelkader BoudihBy default, the driver prints a single attach summary line showing table
96*5f74217cSAbdelkader Boudihlocation and size.
97*5f74217cSAbdelkader Boudih.Pp
98*5f74217cSAbdelkader BoudihWhen
99*5f74217cSAbdelkader Boudih.Va bootverbose
100*5f74217cSAbdelkader Boudihis set
101*5f74217cSAbdelkader Boudih.Pq e.g., Dq Li boot -v ,
102*5f74217cSAbdelkader Boudihthe driver additionally prints firmware identity and parsed hardware details
103*5f74217cSAbdelkader Boudihsuch as mainboard, board config, MAC count, ACPI RSDP, SPI flash, framebuffer,
104*5f74217cSAbdelkader BoudihGPIO, and TPM summary.
105*5f74217cSAbdelkader Boudih.Pp
106*5f74217cSAbdelkader BoudihWhen
107*5f74217cSAbdelkader Boudih.Va hw.coreboot.debug
108*5f74217cSAbdelkader Boudihis non-zero, the driver prints extra internal diagnostics such as SMMSTORE,
109*5f74217cSAbdelkader Boudihtimestamp, TPM CB log, and FMAP addresses.
110*5f74217cSAbdelkader Boudih.Pp
111*5f74217cSAbdelkader BoudihAll sysctl nodes are registered regardless of verbosity settings.
112*5f74217cSAbdelkader Boudih.Ss sysctl Variables
113*5f74217cSAbdelkader BoudihThe following
114*5f74217cSAbdelkader Boudih.Xr sysctl 8
115*5f74217cSAbdelkader Boudihvariables are available when the driver is loaded
116*5f74217cSAbdelkader Boudih(variables only appear if the corresponding table record exists):
117*5f74217cSAbdelkader Boudih.Bl -tag -width "hw.coreboot.smmstore.com_buffer"
118*5f74217cSAbdelkader Boudih.It Va hw.coreboot.debug
119*5f74217cSAbdelkader BoudihEnable verbose coreboot diagnostics (read-write, default 0).
120*5f74217cSAbdelkader BoudihTunable via
121*5f74217cSAbdelkader Boudih.Xr loader.conf 5
122*5f74217cSAbdelkader Boudihas
123*5f74217cSAbdelkader Boudih.Va hw.coreboot.debug .
124*5f74217cSAbdelkader Boudih.It Va hw.coreboot.version
125*5f74217cSAbdelkader BoudihFirmware version string.
126*5f74217cSAbdelkader Boudih.It Va hw.coreboot.build
127*5f74217cSAbdelkader BoudihBuild date and time.
128*5f74217cSAbdelkader Boudih.It Va hw.coreboot.compile_time
129*5f74217cSAbdelkader BoudihFirmware compile time string.
130*5f74217cSAbdelkader Boudih.It Va hw.coreboot.compiler
131*5f74217cSAbdelkader BoudihCompiler identification string.
132*5f74217cSAbdelkader Boudih.It Va hw.coreboot.extra_version
133*5f74217cSAbdelkader BoudihExtra version information.
134*5f74217cSAbdelkader Boudih.It Va hw.coreboot.platform_blob_version
135*5f74217cSAbdelkader BoudihPlatform blob version string.
136*5f74217cSAbdelkader Boudih.It Va hw.coreboot.serialno
137*5f74217cSAbdelkader BoudihBoard serial number.
138*5f74217cSAbdelkader Boudih.It Va hw.coreboot.version_timestamp
139*5f74217cSAbdelkader BoudihFirmware version timestamp.
140*5f74217cSAbdelkader Boudih.It Va hw.coreboot.table_addr
141*5f74217cSAbdelkader BoudihPhysical address of the coreboot table.
142*5f74217cSAbdelkader Boudih.It Va hw.coreboot.table_size
143*5f74217cSAbdelkader BoudihTotal size of the coreboot table in bytes.
144*5f74217cSAbdelkader Boudih.It Va hw.coreboot.mainboard.vendor
145*5f74217cSAbdelkader BoudihMainboard vendor name.
146*5f74217cSAbdelkader Boudih.It Va hw.coreboot.mainboard.part
147*5f74217cSAbdelkader BoudihMainboard part number.
148*5f74217cSAbdelkader Boudih.It Va hw.coreboot.serial.baseaddr
149*5f74217cSAbdelkader BoudihSerial port base address.
150*5f74217cSAbdelkader Boudih.It Va hw.coreboot.serial.baud
151*5f74217cSAbdelkader BoudihSerial port baud rate.
152*5f74217cSAbdelkader Boudih.It Va hw.coreboot.serial.regwidth
153*5f74217cSAbdelkader BoudihSerial port register width.
154*5f74217cSAbdelkader Boudih.It Va hw.coreboot.tsc_freq_khz
155*5f74217cSAbdelkader BoudihTSC frequency in kilohertz as reported by firmware.
156*5f74217cSAbdelkader Boudih.It Va hw.coreboot.pcie_ctrl_base
157*5f74217cSAbdelkader BoudihPCIe controller base address.
158*5f74217cSAbdelkader Boudih.It Va hw.coreboot.acpi_rsdp
159*5f74217cSAbdelkader BoudihACPI RSDP physical address.
160*5f74217cSAbdelkader Boudih.It Va hw.coreboot.board.fw_config
161*5f74217cSAbdelkader BoudihFirmware configuration bitmask.
162*5f74217cSAbdelkader Boudih.It Va hw.coreboot.board.board_id
163*5f74217cSAbdelkader BoudihBoard ID.
164*5f74217cSAbdelkader Boudih.It Va hw.coreboot.board.ram_code
165*5f74217cSAbdelkader BoudihRAM code.
166*5f74217cSAbdelkader Boudih.It Va hw.coreboot.board.sku_id
167*5f74217cSAbdelkader BoudihSKU ID.
168*5f74217cSAbdelkader Boudih.It Va hw.coreboot.mac.N
169*5f74217cSAbdelkader BoudihFactory MAC address N (formatted as xx:xx:xx:xx:xx:xx).
170*5f74217cSAbdelkader Boudih.It Va hw.coreboot.boot_media.fmap_offset
171*5f74217cSAbdelkader BoudihFMAP offset from boot media start.
172*5f74217cSAbdelkader Boudih.It Va hw.coreboot.boot_media.cbfs_offset
173*5f74217cSAbdelkader BoudihCBFS offset from boot media start.
174*5f74217cSAbdelkader Boudih.It Va hw.coreboot.boot_media.cbfs_size
175*5f74217cSAbdelkader BoudihCBFS size in bytes.
176*5f74217cSAbdelkader Boudih.It Va hw.coreboot.boot_media.size
177*5f74217cSAbdelkader BoudihBoot media size in bytes.
178*5f74217cSAbdelkader Boudih.It Va hw.coreboot.mmc_early_cmd1_status
179*5f74217cSAbdelkader BoudihEarly eMMC/MMC CMD1 status value.
180*5f74217cSAbdelkader Boudih.It Va hw.coreboot.spi_flash.size
181*5f74217cSAbdelkader BoudihSPI flash size in bytes.
182*5f74217cSAbdelkader Boudih.It Va hw.coreboot.spi_flash.sector_size
183*5f74217cSAbdelkader BoudihSPI flash sector size in bytes.
184*5f74217cSAbdelkader Boudih.It Va hw.coreboot.spi_flash.erase_cmd
185*5f74217cSAbdelkader BoudihSPI flash erase command byte.
186*5f74217cSAbdelkader Boudih.It Va hw.coreboot.console_type
187*5f74217cSAbdelkader BoudihFirmware console type (0=serial8250, 1=VGA, 2=BTEXT, 3=LOGBUF, 4=SROM,
188*5f74217cSAbdelkader Boudih5=EHCI, 6=serial8250mem).
189*5f74217cSAbdelkader Boudih.It Va hw.coreboot.framebuffer.addr
190*5f74217cSAbdelkader BoudihFramebuffer physical address.
191*5f74217cSAbdelkader Boudih.It Va hw.coreboot.framebuffer.x_res
192*5f74217cSAbdelkader BoudihFramebuffer horizontal resolution.
193*5f74217cSAbdelkader Boudih.It Va hw.coreboot.framebuffer.y_res
194*5f74217cSAbdelkader BoudihFramebuffer vertical resolution.
195*5f74217cSAbdelkader Boudih.It Va hw.coreboot.framebuffer.bpp
196*5f74217cSAbdelkader BoudihFramebuffer bits per pixel.
197*5f74217cSAbdelkader Boudih.It Va hw.coreboot.gpio.N.name
198*5f74217cSAbdelkader BoudihGPIO pin N name.
199*5f74217cSAbdelkader Boudih.It Va hw.coreboot.gpio.N.port
200*5f74217cSAbdelkader BoudihGPIO pin N port number.
201*5f74217cSAbdelkader Boudih.It Va hw.coreboot.gpio.N.value
202*5f74217cSAbdelkader BoudihGPIO pin N value.
203*5f74217cSAbdelkader Boudih.It Va hw.coreboot.gpio.N.polarity
204*5f74217cSAbdelkader BoudihGPIO pin N polarity.
205*5f74217cSAbdelkader Boudih.It Va hw.coreboot.tpm.version
206*5f74217cSAbdelkader BoudihTPM version (1=TPM 1.2, 2=TPM 2.0).
207*5f74217cSAbdelkader Boudih.It Va hw.coreboot.tpm.ppi_addr
208*5f74217cSAbdelkader BoudihTPM Physical Presence Interface address.
209*5f74217cSAbdelkader Boudih.It Va hw.coreboot.tpm.cblog_addr
210*5f74217cSAbdelkader BoudihTPM event log physical address.
211*5f74217cSAbdelkader Boudih.It Va hw.coreboot.smmstore.num_blocks
212*5f74217cSAbdelkader BoudihSMMSTORE v2 number of blocks.
213*5f74217cSAbdelkader Boudih.It Va hw.coreboot.smmstore.block_size
214*5f74217cSAbdelkader BoudihSMMSTORE v2 block size in bytes.
215*5f74217cSAbdelkader Boudih.It Va hw.coreboot.smmstore.mmap_addr
216*5f74217cSAbdelkader BoudihSMMSTORE v2 memory-mapped address.
217*5f74217cSAbdelkader Boudih.It Va hw.coreboot.smmstore.com_buffer
218*5f74217cSAbdelkader BoudihSMMSTORE v2 communication buffer address.
219*5f74217cSAbdelkader Boudih.It Va hw.coreboot.smmstore.apm_cmd
220*5f74217cSAbdelkader BoudihSMMSTORE v2 APM command byte.
221*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem_refs.acpi_gnvs
222*5f74217cSAbdelkader BoudihACPI GNVS CBMEM physical address.
223*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem_refs.acpi_cnvs
224*5f74217cSAbdelkader BoudihACPI CNVS CBMEM physical address.
225*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem_refs.vpd
226*5f74217cSAbdelkader BoudihVPD CBMEM physical address.
227*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem_refs.wifi_calibration
228*5f74217cSAbdelkader BoudihWiFi calibration CBMEM physical address.
229*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem_refs.fmap
230*5f74217cSAbdelkader BoudihFMAP CBMEM physical address.
231*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem_refs.vboot_workbuf
232*5f74217cSAbdelkader BoudihVboot work buffer CBMEM physical address.
233*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem_refs.type_c_info
234*5f74217cSAbdelkader BoudihType-C info CBMEM physical address.
235*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem_refs.root_bridge_info
236*5f74217cSAbdelkader BoudihRoot bridge info CBMEM physical address.
237*5f74217cSAbdelkader Boudih.It Va hw.coreboot.timestamps_addr
238*5f74217cSAbdelkader BoudihTimestamps CBMEM physical address.
239*5f74217cSAbdelkader Boudih.It Va hw.coreboot.timestamps
240*5f74217cSAbdelkader BoudihFormatted boot stage timing table (read-only).
241*5f74217cSAbdelkader BoudihEach line shows the timestamp ID, stage name, absolute time in
242*5f74217cSAbdelkader Boudihmicroseconds, and delta from the previous stage.
243*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem.N.id
244*5f74217cSAbdelkader BoudihCBMEM entry ID.
245*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem.N.name
246*5f74217cSAbdelkader BoudihHuman-readable CBMEM entry name.
247*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem.N.address
248*5f74217cSAbdelkader BoudihPhysical address of the CBMEM entry.
249*5f74217cSAbdelkader Boudih.It Va hw.coreboot.cbmem.N.size
250*5f74217cSAbdelkader BoudihSize of the CBMEM entry in bytes.
251*5f74217cSAbdelkader Boudih.El
252*5f74217cSAbdelkader Boudih.Ss ioctl Interface
253*5f74217cSAbdelkader BoudihThe
254*5f74217cSAbdelkader Boudih.Pa /dev/cbmem
255*5f74217cSAbdelkader Boudihdevice supports the following
256*5f74217cSAbdelkader Boudih.Xr ioctl 2
257*5f74217cSAbdelkader Boudihcommands, defined in
258*5f74217cSAbdelkader Boudih.In dev/coreboot/corebootio.h :
259*5f74217cSAbdelkader Boudih.Bl -tag -width CBMEM_IOC_LIST
260*5f74217cSAbdelkader Boudih.It Dv CBMEM_IOC_LIST
261*5f74217cSAbdelkader BoudihReturns a
262*5f74217cSAbdelkader Boudih.Vt struct cbmem_list
263*5f74217cSAbdelkader Boudihcontaining the count and metadata of all discovered CBMEM entries.
264*5f74217cSAbdelkader Boudih.It Dv CBMEM_IOC_READ
265*5f74217cSAbdelkader BoudihReads data from a CBMEM entry identified by its ID.
266*5f74217cSAbdelkader BoudihTakes a
267*5f74217cSAbdelkader Boudih.Vt struct cbmem_read_req
268*5f74217cSAbdelkader Boudihspecifying the entry ID, offset, size, and a userspace buffer.
269*5f74217cSAbdelkader Boudih.El
270*5f74217cSAbdelkader Boudih.Sh FILES
271*5f74217cSAbdelkader Boudih.Bl -tag -width "/dev/coreboot_console"
272*5f74217cSAbdelkader Boudih.It Pa /dev/coreboot_console
273*5f74217cSAbdelkader BoudihFirmware console ring buffer (read-only).
274*5f74217cSAbdelkader Boudih.It Pa /dev/cbmem
275*5f74217cSAbdelkader BoudihCBMEM entry access device.
276*5f74217cSAbdelkader Boudih.El
277*5f74217cSAbdelkader Boudih.Sh EXAMPLES
278*5f74217cSAbdelkader BoudihDisplay the coreboot firmware version:
279*5f74217cSAbdelkader Boudih.Pp
280*5f74217cSAbdelkader Boudih.Dl "sysctl hw.coreboot.version"
281*5f74217cSAbdelkader Boudih.Pp
282*5f74217cSAbdelkader BoudihRead the firmware boot log:
283*5f74217cSAbdelkader Boudih.Pp
284*5f74217cSAbdelkader Boudih.Dl "cat /dev/coreboot_console"
285*5f74217cSAbdelkader Boudih.Pp
286*5f74217cSAbdelkader BoudihList all CBMEM entries:
287*5f74217cSAbdelkader Boudih.Pp
288*5f74217cSAbdelkader Boudih.Dl "sysctl hw.coreboot.cbmem"
289*5f74217cSAbdelkader Boudih.Pp
290*5f74217cSAbdelkader BoudihShow board identification:
291*5f74217cSAbdelkader Boudih.Pp
292*5f74217cSAbdelkader Boudih.Dl "sysctl hw.coreboot.board"
293*5f74217cSAbdelkader Boudih.Pp
294*5f74217cSAbdelkader BoudihShow factory MAC addresses:
295*5f74217cSAbdelkader Boudih.Pp
296*5f74217cSAbdelkader Boudih.Dl "sysctl hw.coreboot.mac"
297*5f74217cSAbdelkader Boudih.Pp
298*5f74217cSAbdelkader BoudihDisplay boot stage timestamps:
299*5f74217cSAbdelkader Boudih.Pp
300*5f74217cSAbdelkader Boudih.Dl "sysctl hw.coreboot.timestamps"
301*5f74217cSAbdelkader Boudih.Pp
302*5f74217cSAbdelkader BoudihEnable debug output and reload the module (the sysctl value resets on
303*5f74217cSAbdelkader Boudihunload, so it must be set again or persisted via
304*5f74217cSAbdelkader Boudih.Xr loader.conf 5 ) :
305*5f74217cSAbdelkader Boudih.Bd -literal -offset indent
306*5f74217cSAbdelkader Boudihkldunload coreboot
307*5f74217cSAbdelkader Boudihkldload coreboot
308*5f74217cSAbdelkader Boudihsysctl hw.coreboot.debug=1
309*5f74217cSAbdelkader Boudihdmesg | grep coreboot
310*5f74217cSAbdelkader Boudih.Ed
311*5f74217cSAbdelkader Boudih.Pp
312*5f74217cSAbdelkader BoudihTo persist debug across reboots, add to
313*5f74217cSAbdelkader Boudih.Xr loader.conf 5 :
314*5f74217cSAbdelkader Boudih.Bd -literal -offset indent
315*5f74217cSAbdelkader Boudihhw.coreboot.debug=1
316*5f74217cSAbdelkader Boudih.Ed
317*5f74217cSAbdelkader Boudih.Sh COMPATIBILITY
318*5f74217cSAbdelkader BoudihThe
319*5f74217cSAbdelkader Boudih.Nm
320*5f74217cSAbdelkader Boudihdriver works with any x86 system running coreboot firmware.
321*5f74217cSAbdelkader BoudihThe coreboot table format uses a stable ABI with forward-compatible
322*5f74217cSAbdelkader Boudihtagged records; unknown tags are safely skipped.
323*5f74217cSAbdelkader Boudih.Pp
324*5f74217cSAbdelkader BoudihLinux provides similar functionality through a custom bus type with
325*5f74217cSAbdelkader Boudihseparate modules for each table record type, exposed via sysfs.
326*5f74217cSAbdelkader BoudihThe
327*5f74217cSAbdelkader Boudih.Fx
328*5f74217cSAbdelkader Boudihdriver uses a single module with native
329*5f74217cSAbdelkader Boudih.Xr sysctl 8
330*5f74217cSAbdelkader Boudihand
331*5f74217cSAbdelkader Boudih.Xr ioctl 2
332*5f74217cSAbdelkader Boudihinterfaces instead.
333*5f74217cSAbdelkader Boudih.Sh SEE ALSO
334*5f74217cSAbdelkader Boudih.Xr ioctl 2 ,
335*5f74217cSAbdelkader Boudih.Xr smbios 4 ,
336*5f74217cSAbdelkader Boudih.Xr sysctl 8
337*5f74217cSAbdelkader Boudih.Sh HISTORY
338*5f74217cSAbdelkader BoudihThe
339*5f74217cSAbdelkader Boudih.Nm
340*5f74217cSAbdelkader Boudihdriver first appeared in
341*5f74217cSAbdelkader Boudih.Fx 16.0 .
342*5f74217cSAbdelkader Boudih.Sh AUTHORS
343*5f74217cSAbdelkader Boudih.An Abdelkader Boudih Aq Mt freebsd@seuros.com .
344*5f74217cSAbdelkader Boudih.Sh CAVEATS
345*5f74217cSAbdelkader BoudihThe driver discovers the coreboot table by scanning physical memory
346*5f74217cSAbdelkader Boudihaddresses 0x0 through 0x1000 for the
347*5f74217cSAbdelkader Boudih.Dq LBIO
348*5f74217cSAbdelkader Boudihsignature.
349*5f74217cSAbdelkader BoudihOn systems without coreboot firmware, the driver will silently
350*5f74217cSAbdelkader Boudihnot attach.
351*5f74217cSAbdelkader Boudih.Pp
352*5f74217cSAbdelkader BoudihThe
353*5f74217cSAbdelkader Boudih.Pa /dev/coreboot_console
354*5f74217cSAbdelkader Boudihcontent is static after boot; coreboot does not write to the
355*5f74217cSAbdelkader Boudihconsole buffer after handing off control to the payload.
356