https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292206
Bug ID: 292206
Summary: loader generates invalid hw.uart.console value when
serial console redirection is disabled, preventing
system from booting
Product: Base System
Version: 15.0-RELEASE
Hardware: amd64
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: misc
Assignee: [email protected]
Reporter: [email protected]
FreeBSD 15.0 fails to boot with UEFI on a Dell PowerEdge T310 when serial
console redirection is off. EFI framebuffer information is printed and the
system them reboots before any kernel messages are printed.
When serial console redirection is off on this system, loader sets
hw.uart.console to
OK show hw.uart.console
db:8,dt:ns8250,mm:0,rs:-4,rw:1,pa:none,br:0,xo=0
Notice mm of 0 and rs of -4. This value causes system to reboot. For
comparison, when serial console redirection to COM1 is on, the value is
OK show hw.uart.console
db:8,dt:ns8250,io:0x3f8,pa:none,br=115200,xo=0
Unsetting the invalid value or setting it to a valid one (e.g. COM1 one) allows
the system to boot.
The problem is that check_acpi_spcr() fails to account for an ACPI SPCR entry
for disabled serial console redirection, i.e. one where the "Base Address"
field (SerialPort in the struct) is zero. The invalid value is set if the
table of disabled redircetion presents a non-PCI device (vendor ID and device
ID are 0xffff).
https://learn.microsoft.com/en-us/windows-hardware/drivers/bringup/serial-port-console-redirection-table
Here is what ACPI SPCR contains on the system when serial console redirection
is off:
# acpidump -T SPCR
/*
SPCR: Length=80, Revision=1, Checksum=235,
OEMID=DELL, OEM Table ID=PE_SC3, OEM Revision=0x1,
Creator ID=DELL, Creator Revision=0x1
InterfaceType=0 (Fully 16550-compatible)
SerialPort=0x0000000000000000:0[0] (Memory)
InterruptType=0x3 (PC/AT IRQ,I/O APIC)
PcInterrupt=4 (Valid)
Interrupt=4
BaudRate=0 (0)
Parity=0
StopBits=1
FlowControl=2
TerminalType=1 (Extended VT100)
PciDeviceId=0xffff
PciVendorId=0xffff
PciBus=0
PciDevice=0
PciFunction=0
PciFlags=0
PciSegment=0
*/
Note that on some systems disabling console redirection removes the ACPI SPCR
table instead of presenting a disabled one (e.g. Lenovo ThinkStation P500).
I have prepared a patch, for which I will shortly create a GitHub pull request
and link it here.
--
You are receiving this mail because:
You are the assignee for the bug.