diff options
| author | salmonik <salmonik@tuta.io> | 2026-07-31 16:10:40 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-07-31 16:10:40 +0200 |
| commit | 8b1c1a23382806fcdbd3dbc7336a6ac2da8a995b (patch) | |
| tree | 5d7b039a1baf289638d34b6e2d66c81ba9117560 /CONTEXT.md | |
| parent | style: rustfmt field alignment in RuntimeServices (diff) | |
| download | rs-dos-8b1c1a23382806fcdbd3dbc7336a6ac2da8a995b.tar.gz rs-dos-8b1c1a23382806fcdbd3dbc7336a6ac2da8a995b.zip | |
rtc + pci: CMOS clock with date command, PCI bus enumeration
- rtc.rs: read the PC RTC via CMOS ports 0x70/0x71 (UIP wait, BCD/12h
normalization, century sanity-check with 2000+ fallback); boot prints
the wall clock, shell gains 'date'
- pci.rs: legacy config-space access (0xCF8/0xCFC) with full enumeration
of buses 0-255; boot reports device count, shell gains 'pci' (lspci
style listing with class names)
- QEMU q35 verified: Q35 host bridge, stdvga, e1000, ICH9 LPC
Diffstat (limited to '')
| -rw-r--r-- | CONTEXT.md | 4 |
1 files changed, 4 insertions, 0 deletions
| @@ -96,6 +96,8 @@ Single Rust crate (`x86_64-unknown-uefi` target). Module breakdown: | |||
| 96 | allocator), bitmap page allocator | 96 | allocator), bitmap page allocator |
| 97 | - `paging.rs` — identity page-table helpers (map/unmap/query, large-page split) | 97 | - `paging.rs` — identity page-table helpers (map/unmap/query, large-page split) |
| 98 | - `power.rs` — `ResetSystem`-based shutdown, hlt loop fallback | 98 | - `power.rs` — `ResetSystem`-based shutdown, hlt loop fallback |
| 99 | - `rtc.rs` — CMOS/RTC clock (ports 0x70/0x71), BCD/12h normalization | ||
| 100 | - `pci.rs` — legacy PCI config space (0xCF8/0xCFC), full enumeration | ||
| 99 | - `gop.rs` — framebuffer access and text rendering | 101 | - `gop.rs` — framebuffer access and text rendering |
| 100 | - `font.rs` — 8×16 bitmap font data | 102 | - `font.rs` — 8×16 bitmap font data |
| 101 | - `ps2.rs` — PS/2 keyboard driver (polling) | 103 | - `ps2.rs` — PS/2 keyboard driver (polling) |
| @@ -120,6 +122,8 @@ Single Rust crate (`x86_64-unknown-uefi` target). Module breakdown: | |||
| 120 | ✅ **Shell** — `mmap` dumps the UEFI map, `stress` exercises alloc/free + growth | 122 | ✅ **Shell** — `mmap` dumps the UEFI map, `stress` exercises alloc/free + growth |
| 121 | ✅ **Poweroff** — `poweroff`/`exit` shut down via UEFI `ResetSystem` | 123 | ✅ **Poweroff** — `poweroff`/`exit` shut down via UEFI `ResetSystem` |
| 122 | (ACPI S5; `halt` keeps the plain hlt loop) | 124 | (ACPI S5; `halt` keeps the plain hlt loop) |
| 125 | ✅ **RTC** — CMOS clock read at boot and via `date` (BCD/12h handled) | ||
| 126 | ✅ **PCI** — port-based config access, full bus enumeration via `pci` | ||
| 123 | 127 | ||
| 124 | ## Target audience | 128 | ## Target audience |
| 125 | 129 | ||
