Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Booting on QEMU Morello #197

Merged
merged 6 commits into from
Aug 16, 2024
Merged

Booting on QEMU Morello #197

merged 6 commits into from
Aug 16, 2024

Conversation

PandaZ3D
Copy link
Contributor

@PandaZ3D PandaZ3D commented Aug 12, 2024

This patch implements the first in a series of patches to port Twizzler to the CHERI Morello system architecture. Morello is an ARMv8-A based platform that implements architectural capabilities. Our first line of work is getting the kernel to boot in a virtualized environment by implementing support for a different interrupt controller (i.e., GICv3). The changes to the code base were mostly architecture-specific with a small change to xtask to use qemu-system-morello. The kernel can process basic interrupts in the QEMU-Morello environment, and run user programs like in a normal ARM system.

The port so far is limited since QEMU-Morello does not perfectly model the system environment of Morello (e.g., device tree). We leave advanced interrupt controller functionality and improvements to the kernel bootstrap implementation for future work.

@PandaZ3D PandaZ3D added enhancement New feature or request build system Relating to the build system labels Aug 12, 2024
@PandaZ3D PandaZ3D self-assigned this Aug 12, 2024
Copy link
Contributor

@gvnn3 gvnn3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a couple of nits to clean up. But I hope the spinlock mentioned in the TODO gets in sooner rather than later.

"[gicv3] GICD_ISENABLER1: {:#x}",
read_reg(self.distr.as_ptr(), 0x0100 + 4 * 1)
);
// emerglogln!("[gicv3] GICD_ISENABLER1: {:#x}", denable);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove commented out lines, and let the VCS do its work.

bootloader_dtb_addr
}
};
// should not fail, but it might ...
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a bit more commentary here? Why might it? This is a very enigmatic comment.

@PandaZ3D PandaZ3D requested a review from gvnn3 August 16, 2024 00:24
Copy link
Contributor

@gvnn3 gvnn3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@PandaZ3D PandaZ3D merged commit 915f1d0 into main Aug 16, 2024
1 check passed
@PandaZ3D PandaZ3D deleted the aaboytes-draft-morello branch August 16, 2024 15:49
dbittman pushed a commit that referenced this pull request Aug 20, 2024
* Added a nvme fs prototype

* Added fat repo as just code instead of submodule

* fmted code and added optimizations

* OS Side FS STD integration

* Added std fs changes to rust

* Added error handling, minor design changes

* Added compaction to fd allocator

* Ran cargo fmt

* Formatted and documented the fs runtimme

* Booting on QEMU Morello (#197)

* Add support for CHERI QEMU

* Add Morello build target

* Implement basic GICv3 support

* Run cargo fmt

* Fix interrupt initialization

* Cleanup and comments

* Changed the rust submodule to point to the twizzler branch

* Moved back rust submodule to previous commit

* Fixed cargo lock because of a typo I made

---------

Co-authored-by: Allen Aboytes <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build system Relating to the build system enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants