Tasks - tianocorecn/tianocorecn.github.io GitHub Wiki
These tasks have been identified by our community. They are currently open for development by community members, and would be a great way to get involved and start contributing.
Please let us know on edk2-devel if you plan to work on one of these tasks to prevent duplicated effort. Also, please provide status updates on edk2-devel so the community will know the project is still being actively developed.
Enable multiprocessor support for IA32 & X64 within UefiCpuPkg/CpuDxe. (Implement )
- Difficulty: Medium
- Language: Assembly, C
- Mentor:
- Suggested by:
Develop a read-only ext2 filesystem driver.
- Difficulty: Medium ... Hard
- Language: C
- Mentor:
- Suggested by:
- Status: Significant progress made during GSOC2011 (external repo)
A CSM allows a UEFI system to boot legacy operating systems on IA32 & X64 systems. In other words, most current production OS's. Strong preference is for a BSD licensed solution, as this is license used by nearly all of our code. A SeaBIOS based solution could be considered, but would not be as widely usable.
- Difficulty: Medium ... Hard
- Language: Assembly, C
- Mentor:
- Suggested by:
Enable Link-time Code Optimization on Linux for either GCC 4.6 or LLVM/CLANG.
This feature hopefully would significantly reduce code generation size for Linux based builds.
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by: ,
Create a windows based host environment for EmulatorPkg. (Could also be developed using mingw-gcc & wine under Linux.)
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by:
Create a ARM based host environment for EmulatorPkg.
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by:
Port portions of ACPI-CA to a shell application to enable dumping and disassembly of ACPI tables.
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by: ,
EmulatorPkg network support for Linux
Port EmulatorPkg/EmuSnpDxe to support Linux.
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by:
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by: ,
Enable accessing content on an SMB network share
- Difficulty: Hard
- Language: C
- Mentor:
- Suggested by: , ,
Implement DNS proxy on EDK II
- Difficulty:
- Language: C
- Mentor:
- Suggested by:
Allow APs to safely print and use DEBUG trace messages.
- Note: This project depends on an open-source MP implementation, which is currently not available.
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by:
A fully functional gdb stub for x86/x64, attaching to SourceLevelDebugPkg's remote protocol.
- Difficulty: Medium ... Hard
- Language: Python, C
- Mentor:
- Suggested by:
Optimize cursor motion sequences; support Linux/UNIX standard (xterm/konsole/gnome-terminal/etc.) key codes and line-drawing characters
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by:
A command-line based HII browser, suitable for automation. Either a shell command or set of commands for locating, dumping, and modifying configuration values, or commands for dumping and loading HII data to/from a file in an easily-edited format.
- Difficulty: Medium ... Hard
- Language: C
- Mentor:
- Suggested by:
The DataHub and GCD layers don't scale well as the number of data items gets large, since they are based on simple linked lists. Find better data structures.
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by:
- Make use of __builtin_return_address(n) & _ReturnAddress to add debug & data gathering capabilities. Some ideas:
- Produce a protocol with info on the image handle so a shell command can dump out the information
- Track, on a per call basis, where resources are being consumed
- Detect memory leaks
- Log information about stall and timer usage
- Collect statistics on BootServices and RuntimeServices calls.
- Performance profile library calls EFI boot and runtime services calls.
- gBS is set up by a library so it could point to a debug wrapper for the functions.
- Post process raw output (PDB name + offset in PE/COFF) to include function names via parsing .map files.
- Difficulty: Medium ... Hard
- Language: C
- Mentor:
- Suggested by:
Note: There are many ideas here. GSoC students should feel free to gather together any interesting & resonable subset for a project proposal.
- Debug version of libraries, and tools to analyze the data:
- UefiBootServicesTableLib.h & UefiRuntimeServicesLib.h that can profile EFI services usage.
- Debug version of MemoryAllocationLib.h that can detect memory leaks, buffer overruns, etc.
- Add a library class for logging the data
- Log data directly to image handle, per driver.
- Log data to centralized data service.
- Add a library class for a module to access/initiate leak checking.
- Add sample based profiling to EmulatorPkg/Nt32Pkg. On a Mac this would be figuring out how to use Instruments to profile the emulator.
- Add a sampling based profiling tool to a real EFI system. Note this requires the ability to capture a stack trace and then post process it (likely on the build system).
- Difficulty: Medium ... Hard
- Language: C
- Mentor:
- Suggested by:
Add Xen specific support in OVMF to improve boot & runtime performance.
- Difficulty: Easy ... Hard
- Language: C
- Mentor:
- Suggested by: , Bei Guan
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by:
Develop a read-only filesystem driver which allows the contents of each PI 1.2 FFS in the system to appear as a pseudo-file system.
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by:
- Status: Ready for integration into main edk2 tree (external repo)
Various improvements for the Shell editor
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by: , ,
- Status: Available in main edk2 tree
Get Xen to boot UEFI with the OVMF platform.
- Difficulty: Easy ... Hard - (depending on tasks taken on)
- Language: C
- Mentor: ,
- Suggested by:
- Status: Available in main edk2 tree
Develop a USB driver for a common USB-to-serial adapter.
- Difficulty: Medium
- Language: C
- Mentor:
- Suggested by: