UEFI boot hangs after loading kernel with efi_max_resolution="4k"

From: Xin Li <delphij_at_delphij.net>
Date: Sat, 30 Jan 2021 01:54:55 -0800
Hi,

It seems that some recent change after 282381aa53a would prevent my
laptop (Lenovo P51, with 4k LCD) from booting.

I have made some attempt to find out why, so far, it seems that setting
efi_max_resolution="480p" or efi_max_resolution="720p" would allow it to
boot to single user mode.

Unfortunately, with KMS modules loaded, the screen would enter high
resolution mode, and the screen output would be garbled.  To make the
situation worse, because I have the following configuration set in
/etc/rc.conf:

	allscreens_flags="-f /usr/share/vt/fonts/terminus-b32.fnt"

the kernel would panic shortly after loading the font:

===
Unread portion of the kernel message buffer:
<118>Configuring vt: blanktime allscreens
panic: free: address 0xffffffff81c6ee00(0xffffffff81c6e000) has not been
allocated.

cpuid = 3
time = 1611996927
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame
0xfffffe0141dbc490
vpanic() at vpanic+0x181/frame 0xfffffe0141dbc4e0
panic() at panic+0x43/frame 0xfffffe0141dbc540
free() at free+0xf8/frame 0xfffffe0141dbc570
vt_change_font() at vt_change_font+0x16f/frame 0xfffffe0141dbc5c0
vtterm_ioctl() at vtterm_ioctl+0xef6/frame 0xfffffe0141dbc610
termtty_ioctl() at termtty_ioctl+0xc3/frame 0xfffffe0141dbc660
tty_ioctl() at tty_ioctl+0x8e/frame 0xfffffe0141dbc6b0
ttydev_ioctl() at ttydev_ioctl+0x247/frame 0xfffffe0141dbc700
devfs_ioctl() at devfs_ioctl+0xcb/frame 0xfffffe0141dbc750
vn_ioctl() at vn_ioctl+0x131/frame 0xfffffe0141dbc860
devfs_ioctl_f() at devfs_ioctl_f+0x1e/frame 0xfffffe0141dbc880
kern_ioctl() at kern_ioctl+0x289/frame 0xfffffe0141dbc8f0
sys_ioctl() at sys_ioctl+0x12a/frame 0xfffffe0141dbc9c0
amd64_syscall() at amd64_syscall+0x12e/frame 0xfffffe0141dbcaf0
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe0141dbcaf0
--- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x80038bc9a, rsp =
0x7fffffffe938, rbp = 0x7fffffffebf0 ---
Uptime: 28s
Dumping 1421 out of 32433
MB:..2%..11%..21%..31%..41%..51%..61%..71%..82%..91%
====

I thought the panic was fixed (bug 252833), but it's probably a
different corner case, which can happen when loader/EFI provided
resolution is different from the current KMS-enabled resolution (haven't
took a closer look yet).

But it's still unclear to me why the screen would go blank when
efi_max_resolution is set to "4k" or unset.  I thought it's probably
panicked somewhere, but it's hard to confirm as I don't have a serial
console with this laptop.

If I replace the loader taken from the 20201231 snapshot (from
282381aa53a), then the laptop would boot just fine.

In summary, what I know so far was:

Old loader: everything would work just fine.

New loader:

efi_max_resolution="4k" in /boot/loader.conf:
	Screen goes blank after "boot" in loader prompt

No efi_max_resolution in /boot/loader.conf:
	'show' gives me efi_max_resolution="1x1" and screen goes blank after
"boot" in loader prompt

efi_max_resolution="720p" or 480p in /boot/loader.conf:
	Kernel boots fine up to single user mode.
	Panic immediately when loading font.

Any suggestion on what this could be?  It's hard to debug boot loader
issues on this laptop as I don't have an usable serial console and blank
screen would make me blind :)

Cheers,
Received on Sat Jan 30 2021 - 08:55:03 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:27 UTC