Thinfirm 1.5: Difference between revisions
(Added milestone 3.5) |
m (Added this page to Firmware and Network categories) |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Network]] |
|||
This documents the project to create a thin firmware and libertastf driver for the XO-1.5. |
This documents the project to create a thin firmware and libertastf driver for the XO-1.5. |
||
Line 4: | Line 5: | ||
The XO-1.5 uses the Marvell 8686 module instead of the 8388 that the XO-1s used. There is thin firmware and a libertastf driver for the Marvell 8388. New firmware and modified libertastf drivers need to be written. |
The XO-1.5 uses the Marvell 8686 module instead of the 8388 that the XO-1s used. There is thin firmware and a libertastf driver for the Marvell 8388. New firmware and modified libertastf drivers need to be written. |
||
== Releases == |
|||
The latest firmware release is 9.0.7.p3 which fixes some issues with mesh. |
|||
The latest driver commit is e5df42069d258ffae5d8480eb0c155f0179bea98, required for mesh to work. |
|||
* Firmware [http://dev.laptop.org/pub/firmware/libertas/thinfirm/lbtf_sdio-9.0.7.p3.bin] |
|||
* Driver: git://dev.laptop.org/users/javier/wireless-testing workspace |
|||
* RELEASE_NOTES [http://dev.laptop.org/pub/firmware/libertas/thinfirm/RELEASE_NOTES_SDIO] |
|||
== Project plan == |
== Project plan == |
||
Line 36: | Line 45: | ||
'''SDd 4/19/2010''' Found out that the libertastf in the XO-1.5 kernel's working tree is in-sync with wireless-testing. I'll work with this kernel since the XO will work '''and''' it's in-sync. Still need to confirm I've got a working self-compiled version on an XO-1.5. |
'''SDd 4/19/2010''' Found out that the libertastf in the XO-1.5 kernel's working tree is in-sync with wireless-testing. I'll work with this kernel since the XO will work '''and''' it's in-sync. Still need to confirm I've got a working self-compiled version on an XO-1.5. |
||
'''SDd 4/20/2010''' Changing the plan again->going to pull OLPC patches into a wireless-testing workspace and then work off that. |
|||
'''SDd 4/23/2010''' Done. Note that commits ac1a474d71d6cbf94bf26889da5768f5f2b0ca2b and 96021f096e5178582af296a2fbb6df7dbd6b695c on April 15th broke libertas_sdio for OLPC. Was able to revert them and got it working. Perhaps I'll fix the problem in time, but it's not in scope of my project. |
|||
| |
| |
||
* wireless-testing on Obelix |
* wireless-testing on Obelix |
||
Line 42: | Line 55: | ||
* Does XO-1.5 boot? |
* Does XO-1.5 boot? |
||
* Does network work with standard libertas full firmware? |
* Does network work with standard libertas full firmware? |
||
| Done |
|||
| In progress |
|||
|- |
|- |
||
| 3.5 |
| 3.5 |
||
Line 48: | Line 61: | ||
| Patches sent to wireless-testing |
| Patches sent to wireless-testing |
||
| libertastf works with debugging turned on |
| libertastf works with debugging turned on |
||
| Done -> patches are in wireless-testing |
|||
| In progress |
|||
|- |
|- |
||
| 4 |
| 4.1 |
||
| libertastf_sdio download and run helper firmware |
|||
⚫ | |||
| |
| |
||
⚫ | |||
⚫ | |||
| Check that libertas_tf_sdio can load the helper firmware by checking that it is running. |
|||
⚫ | |||
| Done |
|||
⚫ | |||
|- |
|||
| injected 802.11 frame ?== sniffed 802.11 frame |
|||
| 4.2 |
|||
| libertastf_sdio download and run full firmware |
|||
| |
| |
||
* Driver 0.02 - new libertastf_sdio |
|||
⚫ | |||
| Check that libertas_tf_sdio can get through probe and load full firmware. Verify in debugger that firmware |
|||
is running. |
|||
| Done |
|||
|- |
|||
| 4.3 |
|||
| libertastf_sdio get MAC address |
|||
| |
|||
* Driver 0.03 - new libertastf_sdio |
|||
* unmodified full firmware |
|||
| Verify that driver can get valid MAC address during setup. |
|||
| Done |
|||
|- |
|||
| 4.5 |
|||
| libertastf_sdio with full firmware |
|||
| |
|||
* Driver 0.1 - new libertastf_sdio |
|||
* unmodified full firmware |
|||
⚫ | |||
| Check that 802.11 packet makes it to firmware by using break-point in debugger |
|||
| Done |
|||
|- |
|||
| 4.9 |
|||
| libertastf_sdio with full firmware passing packet to air |
|||
| |
|||
* Driver 0.1 - new libertastf_sdio |
|||
⚫ | |||
* packet injection test - use packetspammer |
|||
⚫ | |||
| Done |
|||
|- |
|- |
||
| 5 |
| 5 |
||
| Thin firmware |
|||
⚫ | |||
| |
| |
||
* Driver 0.1 - Adapt libertas_sdio to libertastf_sdio |
|||
* thin firmware 0.1 - supports management frames |
* thin firmware 0.1 - supports management frames |
||
| |
| |
||
* Associate to AP |
* Associate to AP |
||
* Ping |
* Ping |
||
| |
| Done - |
||
* Firmware [http://dev.laptop.org/pub/firmware/libertas/thinfirm/lbtf_sdio-9.0.7.p1.bin] |
|||
* Driver: git://dev.laptop.org/users/javier/wireless-testing workspace |
|||
* RELEASE_NOTES [http://dev.laptop.org/pub/firmware/libertas/thinfirm/RELEASE_NOTES_SDIO] |
|||
|- |
|- |
||
| 6 |
| 6 |
||
Line 74: | Line 123: | ||
* Driver 0.2 |
* Driver 0.2 |
||
* thin firmware 0.2 |
* thin firmware 0.2 |
||
| |
| |
||
* iw add rtap0 interface |
* iw add rtap0 interface |
||
* sniff packets |
* sniff packets |
||
| |
| Done |
||
|- |
|- |
||
| 7 |
| 7 |
||
Line 84: | Line 133: | ||
* Driver 0.3 |
* Driver 0.3 |
||
* thin firmware 0.3 |
* thin firmware 0.3 |
||
| |
| |
||
* Associate to mesh |
* Associate to mesh |
||
* Ping |
* Ping |
||
| Done |
|||
|- |
|||
| 8 |
|||
| AP mode |
|||
| |
|||
* Driver |
|||
* thin firmware |
|||
| |
| |
||
* Use hostapd to setup AP |
|||
* Connect to XO-AP and ping it |
|||
| Done - |
|||
* Firmware [http://dev.laptop.org/pub/firmware/libertas/thinfirm/lbtf_sdio-9.0.7.p2.bin] |
|||
* Driver: git://dev.laptop.org/users/javier/wireless-testing workspace |
|||
* RELEASE_NOTES [http://dev.laptop.org/pub/firmware/libertas/thinfirm/RELEASE_NOTES_SDIO] |
|||
<!--|- |
<!--|- |
||
| id |
| id |
||
Line 95: | Line 158: | ||
| status--> |
| status--> |
||
|} |
|} |
||
== Full firmware note == |
|||
Unlike the usb8388 thin firmware, the sd8686 thin firmware was built to continue to support the original Full MAC mode. It starts in Full MAC mode and only switches to thin firmware mode when sent a CMD_802_11_SET_MODE command with mode being one of LBTF_PASSIVE_MODE, LBTF_STA_MODE, or LBTF_AP_MODE. Setting LBTF_FULLMAC_MODE should return the firmware to the full MAC mode. This ability would permit OLPC to include a single file to support both firmware modes. Note that the libertas and libertas_tf drivers expect different firmware names by default, but this can easily be worked around by linking two different filenames to the file, or overriding the default names on module load. |
|||
In order to facilitate keeping full MAC mode intact, the WMM component had to be removed from the firmware due to space constraints, so QoS is not available in full MAC mode with this firmware. |
|||
== Links == |
== Links == |
||
* [[Thin firmware spec]] |
* [[Thin firmware spec]] |
||
* [[Steve's Thinfirm 1.5 developer notes]] |
* [[Steve's Thinfirm 1.5 developer notes]] |
||
* [[ |
* [[Test Report]] |
||
[[Category:Firmware]] |
|||
[[Category:Network]] |
Latest revision as of 02:14, 22 March 2012
This documents the project to create a thin firmware and libertastf driver for the XO-1.5.
Introduction
The XO-1.5 uses the Marvell 8686 module instead of the 8388 that the XO-1s used. There is thin firmware and a libertastf driver for the Marvell 8388. New firmware and modified libertastf drivers need to be written.
Releases
The latest firmware release is 9.0.7.p3 which fixes some issues with mesh. The latest driver commit is e5df42069d258ffae5d8480eb0c155f0179bea98, required for mesh to work.
- Firmware [1]
- Driver: git://dev.laptop.org/users/javier/wireless-testing workspace
- RELEASE_NOTES [2]
Project plan
Ultimately, we will deliver a thin firmware and a working libertas tf driver to go with it. These will work on XO-1.5. However, it's better to split the larger task into several smaller sub-tasks. These are outlined below (already completed sub-tasks prior to this breakdown are excluded).
ID | Milestone | Deliverable | Tests | Status |
---|---|---|---|---|
1 | Compile full firmware build | sd8686.bin | Does full firmware load on XO-1.5? | Done |
2 | Thin firmware specification | Initial version of specification | Readable version of spec checked in. | Done |
3 | wireless-testing kernel on OLPC?
Find out if wireless-testing will work on the OLPC. It's OK if some parts are broken, only concerned about booting with a command-line and full functionality of network and network tools. This will give us the ability to only work with one kernel. SDd 4/19/2010 Found out that the libertastf in the XO-1.5 kernel's working tree is in-sync with wireless-testing. I'll work with this kernel since the XO will work and it's in-sync. Still need to confirm I've got a working self-compiled version on an XO-1.5. SDd 4/20/2010 Changing the plan again->going to pull OLPC patches into a wireless-testing workspace and then work off that. SDd 4/23/2010 Done. Note that commits ac1a474d71d6cbf94bf26889da5768f5f2b0ca2b and 96021f096e5178582af296a2fbb6df7dbd6b695c on April 15th broke libertas_sdio for OLPC. Was able to revert them and got it working. Perhaps I'll fix the problem in time, but it's not in scope of my project. |
|
|
Done |
3.5 | Sync libertastf debug changes with current kernel | Patches sent to wireless-testing | libertastf works with debugging turned on | Done -> patches are in wireless-testing |
4.1 | libertastf_sdio download and run helper firmware |
|
Check that libertas_tf_sdio can load the helper firmware by checking that it is running. | Done |
4.2 | libertastf_sdio download and run full firmware |
|
Check that libertas_tf_sdio can get through probe and load full firmware. Verify in debugger that firmware
is running. |
Done |
4.3 | libertastf_sdio get MAC address |
|
Verify that driver can get valid MAC address during setup. | Done |
4.5 | libertastf_sdio with full firmware |
|
Check that 802.11 packet makes it to firmware by using break-point in debugger | Done |
4.9 | libertastf_sdio with full firmware passing packet to air |
|
Check that 802.11 packet makes it to air using sniffer | Done |
5 | Thin firmware |
|
|
Done -
|
6 | Monitor interface |
|
|
Done |
7 | Mesh |
|
|
Done |
8 | AP mode |
|
|
Done -
|
Full firmware note
Unlike the usb8388 thin firmware, the sd8686 thin firmware was built to continue to support the original Full MAC mode. It starts in Full MAC mode and only switches to thin firmware mode when sent a CMD_802_11_SET_MODE command with mode being one of LBTF_PASSIVE_MODE, LBTF_STA_MODE, or LBTF_AP_MODE. Setting LBTF_FULLMAC_MODE should return the firmware to the full MAC mode. This ability would permit OLPC to include a single file to support both firmware modes. Note that the libertas and libertas_tf drivers expect different firmware names by default, but this can easily be worked around by linking two different filenames to the file, or overriding the default names on module load.
In order to facilitate keeping full MAC mode intact, the WMM component had to be removed from the firmware due to space constraints, so QoS is not available in full MAC mode with this firmware.