[metal] Add a uprintf() routine, for non-emergency boot logging (#905)

* [metal] Add a uprintf() routine, for non-emergency boot logging
* [metal] _Really_ push forward timing of VGA TTY initialization
* [metal] Do something useful with uprintf()
* [metal] Locate some ACPI tables, for later hardware detection

Specifically the code now tries to find the ACPI RSDP,
RSDT/XSDT, FADT, & MADT tables, whether in legacy BIOS
bootup mode or in a UEFI bootup.  These are useful for
figuring out how to (re)enable asynchronous interrupts
in legacy 8259 PIC mode.
This commit is contained in:
tkchia 2023-10-26 05:32:20 +08:00 committed by GitHub
parent 062b2d776e
commit ed17d3008b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 999 additions and 36 deletions

View file

@ -39,9 +39,12 @@ struct mman {
struct { /* 0x1d48 — starting cursor pos. */
unsigned short y, x;
} pc_video_curs_info;
unsigned short pc_video_char_height; /* 0x1d4c — character height (useful
for setting cursor shape
in text mode) */
unsigned short pc_video_char_height; /* 0x1d4c — character height (useful
for setting cursor shape
in text mode) */
uint64_t pc_acpi_rsdp; /* 0x1d50 — pointer to ACPI RSDP;
NULL means to search for
it in legacy BIOS areas */
};
COSMOPOLITAN_C_END_