Login
Check-in [d41e247c31]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Merge 5.5 and 5.6 (x86_64): virtio-pci through I/O ports, and the same console

Reviewed against docs/tasks/5.4.md part (ii); verdict merge, after one reviewer fix: the task's formula gave the console PCI device ID 0x1002, which is the balloon's; it is now 0x1003, from QEMU's table. boot/virtio_console.cr is byte-for-byte unchanged from part (i). x86 guests reach the console through configuration ports 0xcf8/0xcfc and an I/O-port BAR only; no memory BAR. After the merge, on top of S.1: format passes; outside the seed the x86_64 phase 4, vcpu, fault, UART, virtio console and image checks (12 examples) and 19 host examples pass; the reviewer's boot shows four guest lines in order and 'VM: guest memory 48 KiB backed' (the guest image grew from four pages to eight). Inside BQ2's seed the aarch64 boots (8 examples) and the small-target spec pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX

Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: d41e247c315b65302774aac3c7852bf4568903b013d52b1cc02b7385cf01147d
User & Date: x86-1-glint 2026-11-11 00:14:32.482
Context
2026-11-11
00:14
docs/boots: the x86_64 guest's virtio console on PCI, recorded; Phase 5 complete

Claim: the boots page gains 5.5 and 5.6 on x86_64: the guest finds a virtio console on PCI through I/O ports only and writes a line through its queue. With it, Phase 5's demo passes on both architectures. Passage: the maintainer's request for a recording at each milestone (ocx-console 40c80385db). Demonstration: the cast is the file bin/glint-run wrote on x86-1 at the merge d41e247c31's tree; it exited 0 with the lines the entry quotes. Size: one cast, one page entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX check-in: cdfc7d145c user: x86-1-glint tags: trunk

00:14
Merge 5.5 and 5.6 (x86_64): virtio-pci through I/O ports, and the same console

Reviewed against docs/tasks/5.4.md part (ii); verdict merge, after one reviewer fix: the task's formula gave the console PCI device ID 0x1002, which is the balloon's; it is now 0x1003, from QEMU's table. boot/virtio_console.cr is byte-for-byte unchanged from part (i). x86 guests reach the console through configuration ports 0xcf8/0xcfc and an I/O-port BAR only; no memory BAR. After the merge, on top of S.1: format passes; outside the seed the x86_64 phase 4, vcpu, fault, UART, virtio console and image checks (12 examples) and 19 host examples pass; the reviewer's boot shows four guest lines in order and 'VM: guest memory 48 KiB backed' (the guest image grew from four pages to eight). Inside BQ2's seed the aarch64 boots (8 examples) and the small-target spec pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX check-in: d41e247c31 user: x86-1-glint tags: trunk

00:10
5.5: the console's transitional PCI device ID is 0x1003, as QEMU assigns it

Claim: transitional virtio-pci device IDs come from a table (net 0x1000, block 0x1001, balloon 0x1002, console 0x1003, rng 0x1005), not the formula 0x1000 + type - 1 the task gave, which named the console 0x1002, the balloon's ID. The reviewer's task was wrong; Codex followed it and flagged the difference. Passage: QEMU 11.1.2 include/hw/pci/pci.h:84-91. Demonstration: spec/virtio_pci_spec.cr reads 0x10031af4 from 00:01.0: 4 examples, 0 failures. The guest finds the console by subsystem ID 3, so it is unaffected. Size: 12 lines in boot/virtio_pci.cr, 3 in the README, 2 in the spec.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX Leaf check-in: 5f83af2030 user: x86-1-glint tags: slice/5.5-5.6-x86_64

2026-11-10
23:33
Merge S.1: Crystal on a Cortex-M0+

Reviewed against docs/tasks/S.1.md; verdict merge, after one reviewer fix to the size report's wording. Inside BQ2's seed, Glint's prelude, console, LocateProtocol and shell (with the Track P matcher) compile for cortex-m0plus: 29,846 bytes of code, 23% of BeagleConnect Zepto's 128 KiB of flash, and 52 bytes of static RAM before the stack and provider. The only undefined symbols are the two ARM EHABI unwind personalities, which S.2's link supplies or discards. The x86_64 and aarch64 images were byte-identical to before on S.1's base. 365 changed non-spec lines (275 ignoring whitespace): over the ~250-line target, under the 400-line stop.

One merge conflict, in boot/vcpu.cr: trunk's virtio-mmio registration (5.4) met S.1's 'else' becoming 'elsif flag?(:x86_64)'; both kept. After the merge: format passes; in the seed, the aarch64 virtio console, PL011, phase 4 and image checks (7 examples) and the small-target spec pass; outside it, the x86_64 phase 4, UART, fault and image checks (7 examples) and 25 host examples pass, 0 failures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX check-in: 800a189d34 user: x86-1-glint tags: trunk

Changes
Unified Diff Side-by-Side Diff Patch
Changes to boot/devices.cr.
Added boot/pci.cr.
Changes to boot/vcpu.cr.
Added boot/virtio_pci.cr.
Changes to guest/test/README.md.
Changes to guest/test/call_x86_64.S.
Changes to guest/test/main.cr.
Changes to spec/run/virtio_console_spec.cr.
Added spec/virtio_pci_spec.cr.