1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

Tasks

From tianocore

(Difference between revisions)
Jump to: navigation, search
(2 intermediate revisions not shown)
Line 6: Line 6:
==Open Projects==
==Open Projects==
-
===MP support in UefiCpuPkg/CpuDxe===
+
===Multiprocessor support in UefiCpuPkg/CpuDxe===
-
Enable MP support for IA32 & X64 within UefiCpuPkg/CpuDxe.  (Implement {{Edk2RepoPath|MdePkg/Include/Protocol/MpService.h}})
+
Enable multiprocessor support for IA32 & X64 within UefiCpuPkg/CpuDxe.  (Implement {{Edk2RepoPath|MdePkg/Include/Protocol/MpService.h}})
* Difficulty: Medium
* Difficulty: Medium
-
* Language: C
+
* Language: Assembly, C
* Mentor:
* Mentor:
* Suggested by: {{sfuser|jljusten}}
* Suggested by: {{sfuser|jljusten}}
 +
 +
More information: [[Tasks/UefiCpuPkg/CpuDxe MP support]]
===Read-only ext2 driver===
===Read-only ext2 driver===
Line 84: Line 86:
* Mentor:
* Mentor:
* Suggested by: {{sfuser|bjjohnson}}, {{sfuser|andreiwarkentin}}
* Suggested by: {{sfuser|bjjohnson}}, {{sfuser|andreiwarkentin}}
 +
 +
More information: [[Tasks/Network Block Device]]
===SMB network share support===
===SMB network share support===

Revision as of 17:37, 10 May 2012

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.

Contents

Open Projects

Multiprocessor support in UefiCpuPkg/CpuDxe

Enable multiprocessor support for IA32 & X64 within UefiCpuPkg/CpuDxe. (Implement MdePkg/Include/Protocol/MpService.h )

  • Difficulty: Medium
  • Language: Assembly, C
  • Mentor:
  • Suggested by: jljusten

More information: Tasks/UefiCpuPkg/CpuDxe MP support

Read-only ext2 driver

Develop a read-only ext2 filesystem driver.

  • Difficulty: Medium ... Hard
  • Language: C
  • Mentor:
  • Suggested by: rsun3
  • Status: Significant progress made during GSOC2011 (external repo)

More information: Tasks/ext2 file-system driver

Compatibility Support Module

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: bjjohnson

USB-to-serial driver

Develop a USB driver for a common USB-to-serial adapter.

  • Difficulty: Medium
  • Language: C
  • Mentor:
  • Suggested by: jljusten

More information: Tasks/USB Serial Adapter driver

Enable Link-time Code Optimization for Linux builds

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.

Port EmulatorPkg to Windows

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: andrewfish

More information: Tasks/EmulatorPkg for Windows

Port EmulatorPkg to ARM

Create a ARM based host environment for EmulatorPkg.

  • Difficulty: Medium
  • Language: C
  • Mentor:
  • Suggested by: andrewfish

Port ACPI-CA to a shell application

Port portions of ACPI-CA to a shell application to enable dumping and disassembly of ACPI tables.

EmulatorPkg network support for Linux

Port EmulatorPkg/EmuSnpDxe to support Linux.

  • Difficulty: Medium
  • Language: C
  • Mentor:
  • Suggested by: andrewfish

Network Block Device (NBD) client

http://nbd.sourceforge.net/

More information: Tasks/Network Block Device

SMB network share support

Enable accessing content on an SMB network share

DNS Proxy Support

Implement DNS proxy on EDK II

  • Difficulty:
  • Language: C
  • Mentor:
  • Suggested by: kidzyoung

MP safe Print, DEBUG, and ASSERT

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: andrewfish

SourceLevelDebugPkg & GDB

A fully functional gdb stub for x86/x64, attaching to SourceLevelDebugPkg's remote protocol.

  • Difficulty: Medium ... Hard
  • Language: Python, C
  • Mentor:
  • Suggested by: bjjohnson

Terminal driver improvements

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: bjjohnson

HII command-line browser

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: bjjohnson

DataHub & GCD scalability

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: bjjohnson

Utilize return address information

  • 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.
      1. 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: andrewfish

Various Debug Improvements

Note: There are many ideas here. GSoC students should feel free to gather together any interesting & resonable subset for a project proposal.

  1. Debug version of libraries, and tools to analyze the data:
    1. UefiBootServicesTableLib.h & UefiRuntimeServicesLib.h that can profile EFI services usage.
    2. Debug version of MemoryAllocationLib.h that can detect memory leaks, buffer overruns, etc.
    3. Add a library class for logging the data
      1. Log data directly to image handle, per driver.
      2. Log data to centralized data service.
    4. Add a library class for a module to access/initiate leak checking.
  2. Add sample based profiling to EmulatorPkg/Nt32Pkg. On a Mac this would be figuring out how to use Instruments to profile the emulator.
  3. 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: andrewfish

Optimize OVMF for Xen HVM domains

Add Xen specific support in OVMF to improve boot & runtime performance.

  • Difficulty: Easy ... Hard
  • Language: C
  • Mentor:
  • Suggested by: andreiwarkentin, Bei Guan

Port OpenSSH as a shell application

  • Difficulty: Medium
  • Language: C
  • Mentor:
  • Suggested by: bjjohnson

Previously Complete Projects

Read-only FFS file-system driver

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: mdkinney
  • Status: Ready for integration into main edk2 tree (external repo)

More information: Tasks/Read-only FFS file-system driver

Shell editor improvements

Various improvements for the Shell editor

More information: Tasks/Text Editor

Enable Xen Support in OVMF

Get Xen to boot UEFI with the OVMF platform.

See Also

Personal tools