@@ -12,6 +12,42 @@ All dates use ISO 8601 format (YYYY-MM-DD).
1212
1313## [ Unreleased]
1414
15+ ### Changed
16+
17+ - ** M1-16 Path B** : BIOS boot path lifts every BIOS interrupt
18+ call (INT 13h disk read, INT 15h E820 walk, RSDP scan, MBR
19+ partition lookup, partition bulk-load) into real mode before
20+ CR0.PE in ` rm_phaseb_orchestrate ` ; protected-mode ` kmain `
21+ consumes a ` BootDataBundle ` at phys 0x1000 and never returns
22+ to real mode. The legacy ` call_bios_int ` 32→real→32
23+ trampoline that returned ` AH=0x01 ` is gated behind the
24+ ` legacy_trampoline ` Cargo feature.
25+ - New ` zamak-core::ram_fat32 ` walker — concrete-type FAT32
26+ parser over a borrowed ` &[u8] ` (no trait objects, no
27+ packed-struct casts), with VFAT long-filename reassembly.
28+ Replaces the Path B BIOS path's filesystem layer; UEFI is
29+ unaffected.
30+
31+ ### Fixed
32+
33+ - ` zamak-bios::utils::{memset, memcpy} ` no longer recurse —
34+ the previous Rust-level bodies lowered back into themselves
35+ via ` core::ptr::{write_bytes, copy_nonoverlapping} ` and hung
36+ on the first non-trivial call. They're now hand-written
37+ ` rep stos ` / ` rep movs ` blocks.
38+ - ` zamak-bios::paging::setup_paging ` ignores non-USABLE e820
39+ entries when sizing the HHDM and caps the mapping at 16 GiB.
40+ QEMU's 1 TiB high-memory MMIO entry would otherwise have
41+ exhausted the 4 MiB bump heap on page-table allocation.
42+
43+ ### Re-enabled
44+
45+ - ` bios-boot-smoke ` test in ` zamak-test ` 's ` boot-smoke ` suite,
46+ removed in db68d69 while M1-16 was incomplete. CI now boots
47+ the real BIOS chain (stage1 MBR + stage2 + FAT32 partition)
48+ end-to-end and asserts the ` ZAMAK ` / ` LIMINE_PROTOCOL_OK `
49+ serial sentinels alongside the existing UEFI case.
50+
1551## [ 0.8.5] - 2026-04-24
1652
1753Bundles the M6-3 part 1 boot-phase instrumentation plus a
0 commit comments