Login
Check-in [b50aa7262e]
Login

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

Overview
Comment:Merge 6.5a (i): the devicetree Glint writes for an Arm guest

Reviewed against docs/tasks/6.5a.md; verdict merge, after one review fix (cb450c2b1c: the PSCI node says 0.2, matching PSCI_VERSION). An allocation-free FDT writer and the guest's 12-node tree: RAM, one CPU with PSCI over hvc, GICv3, the virtual timer, PL011, virtio-mmio, xHCI and chosen, placed at 0x40ffe000 with its address in x0. Cleave::Fdt reads it back on the host; the report lists every difference from QEMU's virt tree and why. 339 changed source lines plus 46 of prose: over the ~300 aim, under the 400 stop. Existing functions over 2 KiB (Fdt.open 2,052 on aarch64, NativeTable.locate 2,078 on x86_64) were already over and aren't enlarged. The reviewer booted the guest in BQ2's seed: 'test guest: devicetree 1453 bytes, 12 nodes' among its lines, 'VM: guest memory 36 KiB backed' (the tree adds one page); exit 0.

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: b50aa7262e00d24967ad14ffb7c1abd6e3e7a0c71dbdf3290d3c507ec24eab48
User & Date: x86-1-glint 2026-11-11 04:15:41.635
Context
2026-11-11
04:15
docs/boots: the guest's devicetree, recorded

Claim: the boots page gains 6.5a (i): Glint writes a devicetree for the guest, and the guest walks it. 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 b50aa7262e's tree, built inside BQ2's seed; 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: 89693d3778 user: x86-1-glint tags: trunk

04:15
Merge 6.5a (i): the devicetree Glint writes for an Arm guest

Reviewed against docs/tasks/6.5a.md; verdict merge, after one review fix (cb450c2b1c: the PSCI node says 0.2, matching PSCI_VERSION). An allocation-free FDT writer and the guest's 12-node tree: RAM, one CPU with PSCI over hvc, GICv3, the virtual timer, PL011, virtio-mmio, xHCI and chosen, placed at 0x40ffe000 with its address in x0. Cleave::Fdt reads it back on the host; the report lists every difference from QEMU's virt tree and why. 339 changed source lines plus 46 of prose: over the ~300 aim, under the 400 stop. Existing functions over 2 KiB (Fdt.open 2,052 on aarch64, NativeTable.locate 2,078 on x86_64) were already over and aren't enlarged. The reviewer booted the guest in BQ2's seed: 'test guest: devicetree 1453 bytes, 12 nodes' among its lines, 'VM: guest memory 36 KiB backed' (the tree adds one page); exit 0.

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

04:14
6.5a (i): the guest's PSCI node says 0.2, as Glint's PSCI_VERSION does

Claim: the guest devicetree's psci node is compatible with 'arm,psci-0.2' and 'arm,psci', not 'arm,psci-1.0'. Glint's PSCI_VERSION returns 0x2 (4.4), and QEMU writes this pair for a PSCI 0.2 implementation. The reviewer's task said psci-1.0; Codex followed it and flagged the mismatch. Passage: QEMU 11.1.2 hw/arm/boot.c:403-408, fdt_add_psci_node. Demonstration: spec/guest_fdt_spec.cr reads 'arm,psci-0.2' back with Cleave::Fdt: 6 examples, 0 failures. Format passes. Size: 1 line in boot/guest_fdt.cr, 2 in docs/guest-devicetree.md, 1 in the spec.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX Leaf check-in: cb450c2b1c user: x86-1-glint tags: slice/6.5a-i

03:52
docs/tasks/6.5a.md: guest firmware on Arm, (i) the guest's devicetree

Claim: the task for 6.5a (i): an allocation-free FDT writer and the guest's tree (RAM, one CPU with PSCI over hvc, GICv3, the virtual timer, PL011, virtio-mmio, xHCI, chosen), placed at the top of guest RAM with its address in x0, read back on the host with Cleave::Fdt and at run time by the test guest. (ii), the guest's EFI environment, follows in its own task. Passage: docs/phases/06-interrupts-drivers.md, slice 6.5. Demonstration: the task names its oracle (Cleave::Fdt and 2.4a's reader) and the boot that shows it. Size: one task file.

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

Changes
Unified Diff Side-by-Side Diff Patch
Added boot/fdt_writer.cr.
Added boot/guest_devices.cr.
Added boot/guest_fdt.cr.
Changes to boot/vcpu.cr.
Changes to boot/virtio_mmio.cr.
Added docs/guest-devicetree.md.
Changes to guest/test/README.md.
Changes to guest/test/main.cr.
Added spec/guest_fdt_spec.cr.
Changes to spec/run/pl011_spec.cr.
Changes to spec/run/virtio_console_spec.cr.
Changes to spec/run/xhci_spec.cr.