-
-
Notifications
You must be signed in to change notification settings - Fork 72
Description
i'm part of an open-source project at Microsoft that is implementing UEFI in Rust (primarily DXE as of now).
docs
repo
in particular i've been working on an implementing of spec-compliant ACPI protocols in Rust. i've implemented most of the functionality related to manipulating tables themselves (ie the ACPI Table Protocol ). you can see that implementation here.
i'm now looking into implementing the parts of the ACPI SDT Protocol that deal with parsing and patching AML. this would be functionality like GetOption
, SetOption
, GetChild
etc (with better Rust-y interfaces). i think there is a decent amount of overlap between our goals and yours, especially in the low-level parsing code (for example, our Rust AML implementation would also have to parse opcodes and pkg_lengths).
in the short term my primary goal would be to finish up the SDT protocol but we've discussed long-term goals of providing application-side AML interpretation/execution as well. as such i wanted to start a conversation to see how much we could repurpose/modify parts of the existing acpi
crate for our purposes. (for example, can we expose lower-level parsing for use in our firmware AML implementation, can we modify parts of the existing acpi
code to work with our ACPI table definitions?, etc)
leaving this very open-ended as i am personally not an expert in ACPI. happy to answer any questions; i can also connect you with more senior leadership (i am not the primary owner of Patina.)