Marvell microkernel
The microkernel on the Marvell 88W8388 wireless chip is one of 2 to 4 pieces of non-Free user-modifiable software on the XO laptop. (the others being the EC firmware, and possibly the touchpad and keyboard firmware) This is where we explain what needs to be done to create a Free replacement, who is doing it, and what progress we have made.
Problem definition
"The 88W8388 is a wireless controller chip made by Marvell. It is part of the unliberated Libertas chip family. Outside of this page, it is undocumented."
Marvell has provided an Open Source driver for this chip, but it runs on a proprietary microkernel that Marvell does not own and cannot relicense. A true Open Hardware and Open Source project recommends either this proprietary microkernel is replaced by Open Source code or the firmware is liberated (relicensed under an Open Source license) by the relevant copyright holder. We are working on implementing a new microkernel.
Statements
- Interview by the Jem Report with Richard M. Stallman (FSF), Theo de Raadt (OpenBSD) with Jim Gettys (OLPC), and Jonathan Corbet (kernel developer) on October 09, 2006:
- Richard Stallman: "I was starting to promote the OLPC last August in India. [...] Eventually I talked with them [OLPC], but was unable to persuade them to drop it. Now I will wait and see what happens with the free replacement. It is always a mistake to remove freedom for some other goal. In the long term, you regret it."
- TdR takes a much harder line against this non-free software module than rms does: "I feel they have misled the community by acting as if they are open [...]." He/OpenBSD is willing to use binary firmware (not driver) blobs, but does not currently have a license to redistribute this firmware.
- Jim Gettys: "Free to distribute the blob is a done deal, as I understand it, other than getting the wording right; Marvell doesn't know enough about how to draft the wording, and we're working with their lawyers to get that done. [...] And we had to get the firmware out in some form to start our ATest cycle, so we couldn't wait for that to be finished first."
- OLPC developer cjb said on December 14, 2006: "The Marvell chip has very specific features that are essential to us -- stores its routing table in RAM, can forward packets through the mesh at low power while the main CPU is off, etc."
- Richard Stallman, FSF is said to be said in conversation with Ed Cherlin at the Linux CABAL (when? weblink/ citation needed!), that this Marvell Firmware is the only reason he doesn't support the XO. Ed thinks that support from rms and others who feel the same way is worth some trouble.
- As the OLPC Nepal Blogsite reports, Richard Stallman said in an interview, February 05, 2008: "RMS heaped praises for the One Laptop Per Child Project. He is even contemplating making a switch to XO, the flagship machine of the project, from his "old thinkpad". [...] He is, however dissatisfied with the wireless networking system used in the XO. Since it uses a proprietary technology, he plans to remove it and use a separate device when he needs to make wireless communication with others."
Possible Alternatives
- ARM 946E-S processor
- ThreadX, a proprietary microkernel; Marvell does not own this code
Participants
These people have had something to do with the issue, or expressed interest in helping.
- Ed Cherlin is herding the cats on this one.
- Alex Gibson says he has some volunteers to work on it from University of Technology Sydney.
- cjb Chris Ball
- mbletsas
- AlbertCahalan
- bobkeyes
- palfrey
- mchua would like to watch, at least. Not sure if skillset is good enough to contribute productively, but if so, it's definitely something I'd love to hack on in the summer or fall.
- abelits wishes to do actual firmware development/porting once it's clear, which pieces of code and documentation can be provided by Marvell for it.
- ido (Ido Rosen) would like to help and can help with anything technical including coding, since he's developing a community wifi mesh architecture.
At one time gumstix was said to be interested.
LinuxToGo has a related project.
To Do
We need data and code. Put some links here.
- Microkernel documentation from owner
- Create development environment with ARM cross compiler
- Driver source code: 8388 "libertas" driver from our kernel tree: git://git.infradead.org/users/marcelo/libertas managed by Marcelo Tosatti, discussion
- TinyOS?
- ARM 9 programming reference
- Extract and analyze firmware object code
Do we need an NDA from Marvell?
There appears to be no documentation of this chip on the Marvell Web site. They say that it is still in OEM sampling, and a developer's kit is available. OK, who has the kit?
History
- Eliminate dependency on licensed code in Marvell firmware (Trac #46)
- wireless firmware not in-house (Trac #429)
- Need a document describing supported firmware features (Trac #2177)
Includes errata for Marvell interface manual
- The proprietary firmware implements an interface (Firmware Spec) which the Linux driver uses.
- Open-Source Substandard? thread
- Marvell's proprietary code and license including no-reverse-engineer clause "except to the extent that such restrictions are prohibited by applicable law."
- Discussions by the Jem Report with Richard M. Stallman (FSF) and Theo de Raadt (OpenBSD). TdR takes a much harder line against this non-free software module than rms does.