x86_64/qemu: add an Asterinas root-zone boot mode#341
Closed
tiniham wants to merge 10 commits into
Closed
Conversation
…and use an absolute initramfs output path
dev moved to Kconfig-based board config while this branch was open. Rebased and carried aster_guest forward as a proper Kconfig entry (kconfig/Kconfig + cfg_map.toml) instead of a bare Cargo feature, and pointed run_asterinas.sh at the new "make defconfig" + .config flow since the old FEATURES= build argument no longer exists upstream. No functional changes; qemu/asterinas boot flow re-verified after the rebase.
6c97092 to
595fef2
Compare
595fef2 to
fe03bf2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds a way to boot Asterinas instead of Linux as the root zone on the
existing
qemuboard, plus a small package of guest-side probes used tosanity-check scheduling/IPI/timer behavior once it was up.
board.rs/platform.mk: newaster_guesttoggle. When set, selectsthe Asterinas kernel cmdline, a CPIO initramfs, and adds the
corresponding GRUB entry. Off by default.
platform/x86_64/qemu/asterinas/: the probe package —smp_probe,ipi_pingpong,timer_jitter,ctxsw, plus the scripts that build/runthem and a self-test init used by
run_asterinas.shto confirm the guestactually came up cleanly rather than just "QEMU didn't crash."
aster_guest, a CHANGELOG line.This only really works correctly once the four fixes opened separately in
this queue land — LA57 MMIO decoding, the CPUID/TSC caching, the multiboot
copy-ordering fix, and the q35 PCI window correction all get exercised by
bringing this guest up. They're split out because each stands on its own,
but this PR's diff includes them too since it can't honestly be claimed to
boot without them. Happy to shrink this down once those merge.
Booted this end-to-end under QEMU/KVM three separate times to make sure it
wasn't a fluke: reaches a working BusyBox shell every time, the self-check
reports correct uname/cpu-count/meminfo/rootfs, and prints
asterinas-on-hvisor-okat the end. Build and format checks clean bothwith the toggle on and off.