High Priority Reverse Engineering Projects
If you are interested in working in one of these areas, or have suggestions for projects that should or shouldn't be on this list, please email us at campaigns@fsf.org.
Also see our other High Priority Projects.
This list is in priority order.
Graphics card reverse engineering
Many graphics processors in laptops, netbooks and desktop machines have a dependency on nonfree firmware or drivers. These dependencies can be replaced with free software.
- Lima Driver
- Help improve the free driver for the Mali graphics processor. See limadriver.org for more information.
- VideoCore IV GPU
- This is the GPU used in the Raspberry PI.
- Vivante GCxxxx GPU line
- This includes the GC1000 used in the One Laptop Per Child computer (OLPC). Get involved with this project here.
- ATI firmware
- Develop a replacement for the nonfree firmware in ATI graphics cards.
- Nouveau
- Support Nouveau, a project creating free replacements for proprietary drivers for nVidia cards
- PowerVR
- PowerVR is a popular 3D graphics engine found in phones, netbooks, and laptops, for which we currently have no free software driver capable of doing 3D graphics acceleration. If you are interested in working on this project, please introduce yourself and help with building the wiki page detailing the work that needs to be done, including making free firmware for the PowerVR graphics processor.
- Allwinner CedarX Audio and Video Hardware Accelerator
- The popular ARM
Processors (A10, A13 and F20) by a Chinese fabless
semiconductor company (Allwinner Tech) have on-board hardware acceleration for audio and video CODECs that is proprietary. There is also a matching proprietary software library, which is in need of reverse-engineering of the low-level portions which interface directly to the on-board CedarX hardware. The higher level portions of the proprietary library that implement actual video CODEC algorithms (especially those that implement non-free CODECs) should be left alone and respected. Clean-room Free Software implementations of Audio and Video CODECs should be implemented.
Processors
- Coda9 VPU (in Freescale iMX6 processor)
- The VPU requires proprietary firmware, which is preventing the Freescale iMX6 from being FSF-endorseable. For more information about this visit Rhombus Tech's page about the processor and the VPU's page on ChipsnMedia's website.
Core Chipsets
- Sandy Bridge/Ivy Bridge northbridge firmware
- Intel's newest chipsets require proprietary northbridge firmware to function. It is also called the 'System Agent' firmware. Free code for the rest of their functionality is available as part of Coreboot. The blob needs to be reverse-engineered.
- xHCI USB firmware
- AMD's newest chipsets are supported by the Agesa code in Coreboot. The bulk of Agesa is free software. Some of the chipsets supported by Agesa contain an eXtensible Host Controller Interface (xHCI) for USB support, for which Agesa contains a firmware blob. This blob needs to be reverse-engineered.
Wifi
- Broadcom 4329 WiFi/Bluetooth
- Novell Chip from One Laptop Per Child (OLPC)
- The task is to pick up the work done by the OLPC project
(http://dev.laptop.org/ticket/46) and continue to experiment and find
out how the Marvell chip works.
The expected results of the project are:
--a replacement blob for the file sd8686.bin of the [libertas-firmware] (http://packages.debian.org/squeeze/libertas-firmware) package.
--free and open source
--adherence to good reverse engineering practices
--strict respect for copyrights
Where to begin:
--<http://dev.laptop.org/ticket/46>
--<http://dev.laptop.org/ticket/429>
--<http://dev.laptop.org/ticket/2177>
--<http://wiki.laptop.org/go/Libertas>
--<http://wiki.laptop.org/go/88W8388> (note: GTA04 uses the 8686)
--<http://wiki.laptop.org/go/Marvell_microkernel>
--<http://soft.laogu.com/down/ThreadXUserGuide.pdf>
Interfaces
- Linux-GPIB Linux-GPIB allows the use of GPIB interfaces (an alternative to NI-488.2 or NI-VISA). This allows instrument control. The project needs volunteers to help.
- Comedi Comedi allows the use of data acquisition cards (it is an alternative to NI-DAQmx). The project needs volunteers to help.
Replicant
Help Replicant support more devices than the HTC Dream, Nexus One, and Nexus S.
The Long Pen
This is a remote-controlled pen that can do handwriting under the remote control by a person located elsewhere. This needs to be reverse engineered so that it can work with free software.
Balances
We've been told that free software support for Legal for Trade (LFT) balances is insufficient, and that reverse engineering work is needed to get functioning drivers. The A&D Orion HR-60 and the Mettler-Toledo Excellence Plus XP XP204S would be good targets to begin with.
