Marvell microkernel: Difference between revisions
RafaelOrtiz (talk | contribs) mNo edit summary |
(→To Do) |
||
(27 intermediate revisions by 16 users not shown) | |||
Line 1: | Line 1: | ||
The |
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== |
==Problem definition== |
||
⚫ | |||
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 == |
|||
Theo de Raadt of OpenBSD is very angry at his lack of a license to redistribute this proprietary firmware module. |
|||
* [http://www.thejemreport.com/mambo/content/view/286/ 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." |
|||
"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." |
* OLPC developer [http://dev.laptop.org/ticket/46#comment:7 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. ([http://www.fsf.org/blogs/rms/can-we-rescue-olpc-from-windows citation]) |
||
⚫ | |||
⚫ | |||
* As the [http://olpcnepal.blogspot.com/2008/02/richard-stallman-on-olpc-laptop.html 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== |
==Participants== |
||
Line 18: | Line 27: | ||
* [[User:Mokurai|Ed Cherlin]] is herding the cats on this one. |
* [[User:Mokurai|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 |
* cjb Chris Ball |
||
* mbletsas |
* mbletsas |
||
Line 24: | Line 32: | ||
* bobkeyes |
* bobkeyes |
||
* palfrey |
* palfrey |
||
* [[User:Mchua|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. |
|||
* [[User:Abelits|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. |
|||
* [mailto:meshfw@idorosen.com 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 [http://www.gumstix.com/ gumstix] was said to be interested. |
At one time [http://www.gumstix.com/ gumstix] was said to be interested. |
||
LinuxToGo has a [http://projects.linuxtogo.org/projects/marvell8385/ related project]. |
LinuxToGo has a [http://projects.linuxtogo.org/projects/marvell8385/ related project]. |
||
==Current Data== |
|||
Some pictures of a development board used by OLPC: |
|||
[[Image:MarvellDevelopmentBoardTop.jpg|thumb]] |
|||
[[Image:MarvellDevelopmentBoardBottom.jpg|thumb]] |
|||
==To Do== |
==To Do== |
||
Line 33: | Line 51: | ||
We need data and code. Put some links here. |
We need data and code. Put some links here. |
||
* Microkernel documentation from owner |
* Microkernel documentation from owner-- http://soft.laogu.com/down/ThreadXUserGuide.pdf 99% is in ROM @ 0xFFFFxxxx the list of entrypoints is known and should get a separate page |
||
* Create development environment with ARM cross compiler |
* 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, [http://lists.infradead.org/pipermail/libertas-dev/ discussion] |
* Driver source code: 8388 "[[libertas]]" driver from our kernel tree: git://git.infradead.org/users/marcelo/libertas managed by Marcelo Tosatti, [http://lists.infradead.org/pipermail/libertas-dev/ discussion] |
||
* TinyOS? |
* TinyOS? eCos? |
||
* ARM 9 programming reference |
* ARM 9 programming reference |
||
* Extract and analyze firmware object code |
* 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... [http://support.asus.com/download/download_item.aspx?product=11&model=WL-530g&SLanguage=en-us] |
|||
Do we need an NDA from Marvell? |
Do we need an NDA from Marvell? No, no point, since we can't get any source code or docs from them. |
||
There |
There is no documentation of this chip on the Marvell Web site. |
||
[http://infocenter.arm.com/help/index.jsp ARM manuals] |
[http://infocenter.arm.com/help/index.jsp ARM manuals] |
||
Line 51: | Line 70: | ||
==History== |
==History== |
||
* |
*{{trac|46|Eliminate dependency on licensed code in Marvell firmware}} |
||
* |
*{{trac|429|wireless firmware not in-house}} |
||
⚫ | |||
Includes errata for Marvell interface manual |
|||
* The proprietary firmware implements an interface [[:Media:Firmware-Spec-v5.1-MV-S103752-00.pdf|(Firmware Spec)]] which the Linux driver uses. |
* The proprietary firmware implements an interface [[:Media:Firmware-Spec-v5.1-MV-S103752-00.pdf|(Firmware Spec)]] which the Linux driver uses. |
||
⚫ | |||
* [http://lists.laptop.org/pipermail/devel/2006-December/003380.html Open-Source Substandard?] thread |
* [http://lists.laptop.org/pipermail/devel/2006-December/003380.html Open-Source Substandard?] thread |
||
* [http://www.marvell.com/drivers/driverDisplay.do?dId=160&pId=38 Marvell's proprietary code and license] including no-reverse-engineer clause "except to the extent that such restrictions are prohibited by applicable law." |
* [http://www.marvell.com/drivers/driverDisplay.do?dId=160&pId=38 Marvell's proprietary code and license] including no-reverse-engineer clause "except to the extent that such restrictions are prohibited by applicable law." |
||
* [http://www.thejemreport.com/mambo/content/view/286/ 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. |
* [http://www.thejemreport.com/mambo/content/view/286/ 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 == |
|||
* [[OpenEC]] |
Latest revision as of 10:18, 11 September 2008
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. (citation)
- 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.
- 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:
To Do
We need data and code. Put some links here.
- Microkernel documentation from owner-- http://soft.laogu.com/down/ThreadXUserGuide.pdf 99% is in ROM @ 0xFFFFxxxx the list of entrypoints is known and should get a separate page
- 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.
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.