diff --git a/.gitignore b/.gitignore index fb83a91..82e3c07 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,10 @@ experiments/**/results/*.log Thumbs.db qemu.log +# Framebuffer/Console screendumps — throwaway local verification images, +# never meant to be committed (Captain Bob, 2026-08-07) +fb/ + # Serial acceptance logs and session directories are audit artifacts — tracked in git # logs/ and logs2/ are intentionally NOT ignored # EXCEPTION: ECW-trace sessions generate 500-638MB logs that exceed GitHub's 100MB diff --git a/FABRIC.md b/FABRIC.md index b771a9d..0a1c2c7 100644 --- a/FABRIC.md +++ b/FABRIC.md @@ -3691,6 +3691,13 @@ document and committing that amendment as its own item.* > `imagemagick` isn't installed on this machine. Left as a standalone script, not wired into > a Makefile target, per direction — run directly for now. aarch64/riscv64 not covered by > this script; not needed for 4.3.1's amd64-only diagnostic. + > + > **Reversed same day.** `fb/` is now gitignored after all (Captain Bob: these are + > throwaway local verification images, never meant to be committed). Screenshot paths + > cited in this document's other acceptance notes (4.3.1, 4.3.3, 4.3.3b, 4.3.4) still + > describe what was actually seen at the time, but those files are local-only now, not + > retrievable from git history in their originally-committed form — the commits that added + > them are still in history, just superseded by the untrack commit that follows. - [x] **4.3.3 — Cartesian coordinate machinery.** Origin bottom-left `(0, 0)`, Y-up, plus a new Z axis (depth-into-screen, not height) and a fixed orthographic projection as a @@ -3818,6 +3825,21 @@ document and committing that amendment as its own item.* > face square offset diagonally up-right by exactly the 45° cavalier projection's > depth term, all 12 edges connecting at the right corners, no crossed or broken lines. > + > **Correction, same day: the first pass above was amd64-only, and that wasn't flagged.** + > Asked for cube screenshots on all three ISAs surfaced that aarch64 and riscv64 had no + > framebuffer device at all — both booted with `GOP: protocol not found`. The "all three + > architectures boot clean" acceptance checks run all session were REPL/`dict_hash` + > parity, a different axis entirely from GOP/framebuffer presence; conflating the two was + > an error. Fixed by adding `-device ramfb` (EDK2's firmware-only GOP framebuffer, no + > guest driver needed) to both architectures' `qemu`/`qemu-esp` targets in + > `Makefile.starkernel`. Both now report `GOP: linear framebuffer found` at 800×600 (vs. + > amd64's 1280×800 via `q35`'s implicit default device — no code assumes a fixed + > resolution, so this required no changes elsewhere). Re-ran the same cube test on both: + > `fb/aarch64/cube-4.3.4.png` and `fb/riscv64/cube-4.3.4.png`, both correct. Re-ran the + > standard three-arch acceptance boot afterward — all still clean, `dict_hash` identical + > across all three and unchanged from before this fix (a QEMU device flag, not a kernel + > change). + > > **This is the checkpoint** — 4.3.x groundwork stops here for review per this item's own > acceptance criterion, before scoping whatever comes next. diff --git a/Makefile.starkernel b/Makefile.starkernel index 667ef52..a99f321 100644 --- a/Makefile.starkernel +++ b/Makefile.starkernel @@ -816,6 +816,7 @@ else ifeq ($(ARCH),aarch64) -drive if=virtio,format=raw,file=$(QEMU_ISO),media=cdrom \ -drive id=artdisk,file=$(ARTDISK),format=raw,if=none \ -device virtio-blk-pci,drive=artdisk \ + -device ramfb \ -chardev socket,id=cserial,path=$$SERIAL_SOCK,server=on,wait=off,logfile=$$LOG \ -serial chardev:cserial \ -display none \ @@ -915,6 +916,7 @@ else ifeq ($(ARCH),riscv64) -device virtio-blk-pci,drive=hd0,addr=0x2 \ -drive id=artdisk,file=$(ARTDISK),format=raw,if=none \ -device virtio-blk-pci,drive=artdisk,addr=0x1 \ + -device ramfb \ -chardev socket,id=cserial,path=$$SERIAL_SOCK,server=on,wait=off,logfile=$$LOG \ -serial chardev:cserial \ -display none \ diff --git a/fb/aarch64/.gitkeep b/fb/aarch64/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/fb/amd64/cube-4.3.4.png b/fb/amd64/cube-4.3.4.png deleted file mode 100644 index f5d5d2d..0000000 Binary files a/fb/amd64/cube-4.3.4.png and /dev/null differ diff --git a/fb/amd64/fabric-test-cart-plot.png b/fb/amd64/fabric-test-cart-plot.png deleted file mode 100644 index ce81d4b..0000000 Binary files a/fb/amd64/fabric-test-cart-plot.png and /dev/null differ diff --git a/fb/amd64/geom-test-circle-fixed.png b/fb/amd64/geom-test-circle-fixed.png deleted file mode 100644 index eaf00f6..0000000 Binary files a/fb/amd64/geom-test-circle-fixed.png and /dev/null differ diff --git a/fb/amd64/geom-test-full-wordset.png b/fb/amd64/geom-test-full-wordset.png deleted file mode 100644 index 245ab75..0000000 Binary files a/fb/amd64/geom-test-full-wordset.png and /dev/null differ diff --git a/fb/amd64/qemu-screenshot-20260807-105238.png b/fb/amd64/qemu-screenshot-20260807-105238.png deleted file mode 100644 index 62bd6f2..0000000 Binary files a/fb/amd64/qemu-screenshot-20260807-105238.png and /dev/null differ diff --git a/fb/amd64/qemu-screenshot-20260807-113612.png b/fb/amd64/qemu-screenshot-20260807-113612.png deleted file mode 100644 index 876b11c..0000000 Binary files a/fb/amd64/qemu-screenshot-20260807-113612.png and /dev/null differ diff --git a/fb/riscv64/.gitkeep b/fb/riscv64/.gitkeep deleted file mode 100644 index e69de29..0000000