Marvell microkernel

From OLPC
Revision as of 20:44, 9 May 2008 by Blaketh (talk | contribs)
Jump to navigation Jump to search

The ARM code on the Marvell 88W8388 wireless chip is the only non-Free user-modifiable software on the XO laptop. The driver for this wireless chip is Free. There is non-Free code in ROM for the EC firmware, and in the touchpad and keyboard firmware. This page 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

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.
  • 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 would like to help and can help with anything technical including coding, since he's developing a community wifi mesh architecture. he has embedded programming, tinyos, and other relevant experience.
  • unidentified guy in the Netherlands

At one time gumstix was said to be interested.

LinuxToGo has a related project.

Current Data

Some pictures of a development board used by OLPC: MarvellDevelopmentBoardTop.jpg MarvellDevelopmentBoardBottom.jpg

To Do

We need data and code. Put some links here.

  • Microkernel documentation from owner--No
  • 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? eCos?
  • ARM 9 programming reference
  • Extract and analyze firmware object code. Reverse engineer chip, and create spec for cleanroom development of replacement code.
  • There is a device based on the same chip family with open-source firmware (Asus WL-530g mini-AP). It is not the exactly the same chipset, but it may give some hints... [1]

Do we need an NDA from Marvell? No, no point, since we can't get any source code or docs from them.

There is no documentation of this chip on the Marvell Web site.

ARM manuals

History

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.


Related efforts