Page MenuHomeFreeBSD

Loader: Reset EFI framebuffer state before kernel transition
Needs ReviewPublic

Authored by kevans on Mar 20 2018, 2:46 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 2 2024, 2:38 AM
Unknown Object (File)
Dec 22 2023, 10:27 PM
Unknown Object (File)
Dec 22 2023, 5:38 AM
Unknown Object (File)
Nov 21 2023, 3:21 AM
Unknown Object (File)
Nov 12 2023, 10:01 PM
Unknown Object (File)
Nov 12 2023, 3:08 PM
Unknown Object (File)
Nov 12 2023, 3:08 PM
Unknown Object (File)
Nov 10 2023, 7:57 PM
Subscribers

Details

Reviewers
imp
mizhka
Summary

Anything before this point can set the console into whatever mode/resolution it feels like. Lacking a better way to determine what the current geometry of the screen looks like, try and reset the screen using GOP to a good mode before we transition into the kernel. This puts the screen into a consistent state so that we can pass the correct framebuffer information into the kernel.

UGA reset is currently a nop.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 15661

Event Timeline

stand/efi/loader/bootinfo.c
282

Isn't this true also of armv7 and i386?

stand/efi/loader/framebuffer.c
444

There are complaints about it always picking the highest pixel count, since some are large and the font is tiny on them.

stand/efi/loader/bootinfo.c
285

We should check the return status here and avoid calling efi_find_framebuffer()

kevans added inline comments.
stand/efi/loader/bootinfo.c
282

I'd have to double-check- that might now be true of all arch's that will compile EFI bits by default. I think @manu had recently stubbed out the struct efi_fb for armv7 at least.

stand/efi/loader/bootinfo.c
282

Yeah armv7 and arm64 have the efi_fb in metadata.h (even if efifb still doesn't work).