*Subject:* GSoC 2025: Proposal - Add UEFI Boot Options for NetBSD Dear NetBSD Developers,
I hope this message finds you well. My name is [Your Name], and I’m writing to express my interest in participating in Google Summer of Code 2025 with NetBSD. I’m particularly drawn to the project *“Add UEFI Boot Options”*, which aligns well with my interests in system-level programming and operating system internals. About the Project *Goal:* The primary goal is to enhance the NetBSD UEFI bootloader by adding support for boot options (such as boot entry editing, timeout configuration, boot-next functionality, etc.), allowing users to interactively and programmatically manage UEFI boot variables and entries. *Deliverables:* - Code patches implementing UEFI boot option support in NetBSD’s UEFI bootloader. - Documentation on usage and internals of the added functionality. - Tests and validation setup to ensure robustness and maintainability. *Milestones and Schedule:* - *Community Bonding:* Get familiar with NetBSD’s UEFI boot infrastructure, tools like efiboot, and understand the current bootloader flow. - *Week 1–4:* Implement functionality to read and parse UEFI boot variables; expose them in bootloader. - *Week 5–8:* Enable creation/modification of UEFI boot entries; add UI options if required. - *Midterm:* Basic UEFI boot entry management functional and documented. - *Week 9–12:* Implement advanced features like boot-next, boot-order editing. - *Final Weeks:* Clean up code, write tests and documentation, submit final patch series. *Similar Software:* Linux’s efibootmgr offers similar functionality in userland. FreeBSD and OpenBSD also have partial UEFI support, but NetBSD still lacks dynamic UEFI boot entry management. *Nature of Work:* This will be an *original implementation* or adaptation of existing non-GPL techniques — all written specifically for NetBSD to remain license-compliant. About Me & My NetBSD Experience While I’m new to directly contributing to NetBSD, I have a solid background in system programming (C, Unix, kernel/userland separation, bootloaders) and I'm comfortable working in low-level environments. I’ve set up and experimented with NetBSD in virtualized environments, compiled parts of the kernel and userland, and have been studying its build system and bootloader source code in preparation. I’m currently reading through relevant parts of the NetBSD bootloader codebase, particularly files like stand/efiboot, libsa, and libefi. *Interfaces Involved:* - UEFI runtime services (via libefi) - Bootloader UI and boot selection logic - Possibly stand/common/ and stand/efiboot/efi/efiboot.c *Familiarity:* While I'm still getting fully up to speed with NetBSD internals, I’m very comfortable with C, the UEFI spec, firmware-level programming, Makefiles, and debugging low-level issues. I haven't submitted PRs or patches to NetBSD yet, but I’m eager to start doing so as part of this proposal process. I haven’t yet had discussions with NetBSD developers, but I would love to get feedback and guidance on this project. Warm regards, Vignesh T