You are looking at an old revision of the page FirmwareInjector. This revision was created by Nikolaus Schaller.

Table of Content

Development of a prototype for injecting immutable, non-free firmware into a WLAN SDIO chip

Development of a prototype for injecting immutable firmware into a WLAN chip

FSF has suggested to get rid of the non-free firmware BLOB for the Marvell WLAN chip in the GTA04 (Debian package libertas-firmware).

Basically, there are two approaches:

  1. reverse engineer the firmware and the chipset and write our own WiFi stack. This was tried for the OLPC project but never completed
  2. add some hardware that injects the Firmware

Project Proposal and Request for Application (Software Solution)

The task is to pick up the work done by the OLPC project 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 package.
  • open source
  • adherence to good reverse engineering practices
  • strict respect for copyrights

Where to begin:

This work can also be of interest to projects, not related to the GTA04 at all (e.g. Gumstix Overo, OLPC).

If you are interested, please initiate such a project (or contact, push or continue the existing efforts) and let us know. We will help to make the project known and try to support where we can.

Project Proposal and Request for Application (Hardware Solution

The task is to develop a prototype of a microcontroller that sends an immutable firmware program through an SDIO interface into a Marvell 8686 based WLAN chip independently from the main CPU. The goal is to isolate the non-free firmware binary from the main CPU so that it becomes effectively circuitry.

The architecture we want to use this with is a TI OMAP3 with a level shifter and a Wi2Wi W2CBW003 chip connected to it.

Our idea is to use a MSP430F5528IYFF controller that sits between the OMAP3 and the level shifter so that either of the MCUs can control the SDIO interface and right after reset, the firmware is injected from the MSP430 into the Wi2Wi chip.

What we need before integrating this circuits onto an upcoming GTA04 PCB (project: is a demonstrator that proves that this approach really works. And, we need firmware for the MSP430 and most likely adaptations to the Linux MMC/SDIO driver (detect and disable the existing firmware download mechanism).

The expected results of the project are:

  • a demonstrator based on the Beagle Board
  • an expansion board/adapter with the MSP, Level shifters and a WLAN module
  • firmware for the MSP430 (open source)

We are looking for a volunteer with this profile:

  • experienced in building (prototype) hardware
  • knowledge about SDIO protocol, especially firmware download
  • knowledge about the MMC/SDIO driver in Linux (OMAP3 variant)
  • experience in (assembler) programming a MSP430 controller

We provide:

  • sample chips as needed
  • BeagleBoard if needed
  • GTA04-team as e-mail discussion partners for questions around engineering, PCB design, OMAP3 & BeagleBoard architecture and low level software

If you are interested, please contact for questions, proposals and applications/bids.