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

  1. Getting r-efi ready for use in Rust std: 4 commits
  2. Add TCP6 Protocol: 1 commit
  3. Add EFI_RNG_PROTOCOL: 1 commit
  4. Add EFI_TIMESTAMP_PROTOCOL: 1 commit
  5. Derive Default for Time: 1 commit
  6. Add TCP4 and IP4 protocols: 1 commit
  7. Fix MODE_CREATE value: 1 commit
  8. Make NotifyFunction Optional: 1 commit
  9. Add ICMP Error Definitions: 1 commit
  10. Add EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL and EFI_DEVICE_PATH_TO_TEXT_PROTOCOL: 2 commits
  11. Make RNG protocol members public: 1 commit
  12. Fix timestamp properties: 1 commit
  13. Implement Default for tcp4::ConfigData: 1 commit
  14. Add EFI_SHELL_PROTOCOL: 1 commit
  15. Add UDP Protocols: 2 commit

compiler-builtins

  1. Enable mem for UEFI: 1 commit
  2. Use all of src/math for UEFI: 1 commit

rust


Blog Posts

  1. Google Summer of Code 2022
  2. Use Restricted std in UEFI
  3. Using Rust main from a custom entry point
  4. Writing an Allocator for UEFI
  5. Using Rust main from a custom entry point (Part 2)
  6. GSoC 2022: Progress Report 1
  7. Implementing Stdio for UEFI
  8. GSoC 2022: Progress Report 2
  9. UEFI Rust std has a new home
  10. 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.