feat(kernel): entropy on the v4 path; QEMU's amd64 CPU has RDRAND, as a PC's
sk_v4_block_chain calls rng_init() after pci_init, with v3's two lines ("entropy: ready" / "entropy:
not available (continuing without)"); genesis on a fresh stick (increment 5) needs it. amd64 QEMU
runs -cpu qemu64,+rdrand (qemu, qemu-stick, qemu-esp) and the amd64 qemu target drops virtio-rng,
so QEMU takes the PC's RDRAND path; aarch64 and riscv64 keep virtio-rng, their only backend.
qemu_session.py: mode entropy (rdrand on amd64, both targets; virtio-rng on aarch64/riscv64; then
entropy: ready). system=v3 sessions get Zuse's raw identity image: v3 never reads a GPT, so the
Zuse stick (Task 1) left v3_keys headless -- found here; CLAUDE.md says so for v3 boots.
Tests: entropy FAIL x4 before, PASS x4 after; v3_keys PASS (rng: backend = rdrand). Acceptance:
amd64, aarch64, riscv64 to [zuse@Hera] ok>, POST 538/538, dict_hash 0xfec8c47cfc6f437f; v4 suite
and test-32 0 failures.
Plan: docs/v4.0.0/plans/2026-10-27-stick-4-one-disk.md, Task 2.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
f5866d39cc
commit
95f5afed5c
@@ -531,6 +531,16 @@ static void sk_v4_block_chain(void)
|
||||
}
|
||||
console_println("PCI: init...");
|
||||
pci_init(sk_v4_boot_info->acpi_table);
|
||||
/* Entropy, as on the v3 path: virtio-rng where the machine has one,
|
||||
* else RDRAND (amd64) -- a PC's backend, and amd64 QEMU's since it is
|
||||
* given RDRAND and no virtio-rng (docs/v4.0.0/STICK.md 9;
|
||||
* plan 2026-10-27-stick-4-one-disk.md, Task 2). Genesis on a fresh
|
||||
* stick needs it (increment 5). */
|
||||
if (rng_init() == 0) {
|
||||
console_println("entropy: ready");
|
||||
} else {
|
||||
console_println("entropy: not available (continuing without)");
|
||||
}
|
||||
if (virtio_blk_find_artemis(&artemis_dev) != 0) {
|
||||
console_println("Artemis: no virtio-blk disk");
|
||||
} else if (blk_subsys_attach_device(&artemis_dev) == BLK_OK) {
|
||||
|
||||
Reference in New Issue
Block a user