GSoC22: Summary Post
Hello everyone. This is probably the final blog post I write before Google Summer of Code 2022 ends (hopefully not the final uefi one). In this post, I will summarize my GSoC22 work to make it more accessible to everyone.
Background
I worked on implementing Rust std for UEFI targets. The current implementation can be found at tianocore/rust. The PR to upstream Rust is already open; however, it has not been merged yet since it is such a large PR and thus will take time.
PRs
Just a list of all PRs I opened as a part of GSoC22. While other people created some additional PRs to fix problems I found during my work; I do not include them since I wasn’t the one who found the solution for those.
r-efi
- Getting r-efi ready for use in Rust std: 4 commits
- Add TCP6 Protocol: 1 commit
- Add EFI_RNG_PROTOCOL: 1 commit
- Add EFI_TIMESTAMP_PROTOCOL: 1 commit
- Derive Default for Time: 1 commit
- Add TCP4 and IP4 protocols: 1 commit
- Fix MODE_CREATE value: 1 commit
- Make NotifyFunction Optional: 1 commit
- Add ICMP Error Definitions: 1 commit
- Add
EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL
andEFI_DEVICE_PATH_TO_TEXT_PROTOCOL
: 2 commits - Make RNG protocol members public: 1 commit
- Fix timestamp properties: 1 commit
- Implement Default for tcp4::ConfigData: 1 commit
- Add EFI_SHELL_PROTOCOL: 1 commit
- Add UDP Protocols: 2 commit
compiler-builtins
- Enable mem for UEFI: 1 commit
- Use all of src/math for UEFI: 1 commit
rust
- Add Rust std support for x86_64-unknown-uefi: 81 commits. Still Open.
Blog Posts
- Google Summer of Code 2022
- Use Restricted std in UEFI
- Using Rust main from a custom entry point
- Writing an Allocator for UEFI
- Using Rust main from a custom entry point (Part 2)
- GSoC 2022: Progress Report 1
- Implementing Stdio for UEFI
- GSoC 2022: Progress Report 2
- UEFI Rust std has a new home
- Writing UEFI Protocol in Rust
Conclusion
I will continue working on getting Rust std PR merged since it is still unmerged. I also have some more UEFI Rust Projects lined up, and I think I will keep working on them for the foreseeable future. Feel free to check out and experiment with using Rust for UEFI (with or without std).
Consider supporting me if you like my work.