| Filename | Latest commit message | Latest commit date |
|---|---|---|
On the Ryzen 4600G desktop and the ASUS TUF A15, AMD's GOP "sets" the smaller modes without leaving the panel's native timing and reports the mode's own row length. Every check the loader made passed, and the screen showed three or four squashed copies side by side (1920/640, 2560/640). Nothing the firmware reports can tell such a mode from a real one. So a mode change now asks "Keep this resolution?" in the new mode and keeps it only on Enter within ten seconds. On a mode that does not really work the question cannot be read, and the old mode comes back by itself. And the reason to want a smaller mode was the text: the console font was a fixed 16 px, unreadable on a 1440p monitor. It now scales to about 45 rows, 16 to 40 px per em, on whatever mode the firmware booted in. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4 |
||
| .. | ||
| efi.h | ||
| main.c | ||
| README.md | ||
| startup.nsh | ||
UEFI loader
The loader. This directory once existed only so the BIOS path could be moved
into boot/bios/ without pretending the split was hypothetical; it is now the
only path there is.
See ../README.md for the hand-off contract a loader has to satisfy. The
short version: the kernel wants long mode with paging on, its ELF segments
placed, a 24-byte-entry E820-shaped memory map, and framebuffer geometry — and
it does not care which firmware produced them.
What this will need, in rough order:
- A PE/COFF target. clang can emit one directly
(
--target=x86_64-unknown-windows -fuse-ld=lld-link), so no new toolchain: the same LLVM install already builds every other target here. - The handful of UEFI structures actually used — the system table, boot
services,
LOADED_IMAGE,SIMPLE_FILE_SYSTEM,GRAPHICS_OUTPUT. Written from the specification rather than by importing gnu-efi or EDK II, which is both a licence question and a large dependency for something this small. GetMemoryMaptranslated into the same 24-byte entriese820.calready parses. Not a second format for the kernel to learn.ExitBootServicesbefore touching the memory it described.- Graphics Output Protocol for the framebuffer, filling the same
VBE_INFO_ADDRstructure the kernel reads.
The image goes at EFI/BOOT/BOOTX64.EFI on a FAT ESP, which also means the
ISO carries a single El Torito EFI entry.