Embedded controller: Difference between revisions
No edit summary |
|||
Line 5: | Line 5: | ||
{{Olpcboxbottom}} |
{{Olpcboxbottom}} |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
This Embedded Controller (EC) consists of a 8051 micro-controller, a dedicated LPC interface to communicate with the processor, and an SPI Flash ROM interface. The SPI Flash ROM supports two code segments, and a table of [[Manufacturing Data]]. The EC supports the Boot Hub Protocol, allowing the XO's main processor to boot from one of the code segments in the SPI Flash. |
This Embedded Controller (EC) consists of a 8051 micro-controller, a dedicated LPC interface to communicate with the processor, and an SPI Flash ROM interface. The SPI Flash ROM supports two code segments, and a table of [[Manufacturing Data]]. The EC supports the Boot Hub Protocol, allowing the XO's main processor to boot from one of the code segments in the SPI Flash. |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
We have chosen to implement the firmware in C, using [[SDCC]] as our compiler. Efforts are also under way to have CamelForth, a [[Forth]] implementation for the 8051, run on the KB3700. |
|||
⚫ | |||
⚫ | The EC, implemented as a KB3700, has a paramount importance in controlling the XO when the CPU is not active. To do so, the KB3700 communicates with the CPU via the [[Revised_EC_Port_6C_Command_Protocol|EC protocol]] |
||
The KB3700 also communicates with the Maxim [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/5104 DS2756] battery fuel gauge IC within the battery pack, via the [http://en.wikipedia.org/wiki/1-Wire 1-wire] Dallas protocol. [[Media:DS2756.pdf|DS2756 data sheet]]. |
The KB3700 also communicates with the Maxim [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/5104 DS2756] battery fuel gauge IC within the battery pack, via the [http://en.wikipedia.org/wiki/1-Wire 1-wire] Dallas protocol. [[Media:DS2756.pdf|DS2756 data sheet]]. |
||
=== ec-status === |
|||
One can deduce part of the internal state of the EC using [http://dev.laptop.org/~joel/ec-dump.fth ec-dump.fth] under OpenFirmware. |
|||
Running the ec-dump script gives us valuable data about internals of the EC, being the [[EC Register Settings]]. |
One can deduce part of the internal state of the EC using [http://dev.laptop.org/~joel/ec-dump.fth ec-dump.fth] under OpenFirmware. Running the ec-dump script gives us valuable data about internals of the EC, being the [[EC Register Settings]]. |
||
The procedure to run '''ec-dump''' over internet in a wireless connection is: |
The procedure to run '''ec-dump''' over internet in a wireless connection is: |
||
Line 37: | Line 31: | ||
== OpenEC firmware project == |
== OpenEC firmware project == |
||
⚫ | |||
[[OpenEC]] is an effort for an open implementation of the firmware on the EC. |
|||
It currently is in an early stage and not functional yet. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
*[[XO_Full_Reset|Rebooting the Embedded Controller in a laptop]] |
|||
*[[Media:KB3700-ds-01.pdf|ENE KB3700 Datasheet]] |
*[[Media:KB3700-ds-01.pdf|ENE KB3700 Datasheet]] |
||
⚫ | |||
[[Category:Hardware]] |
|||
[[Category:Developer]] |
|||
[[Category:EC]] |
[[Category:EC]] |
||
[[Category:Firmware]] |
[[Category:Firmware]] |
Revision as of 05:40, 1 February 2009
Introduction
The XO laptop uses a small micro-controller, an ENE KB3700 (Datasheet), to control the battery charging operation and perform other tasks associated with starting and stopping the laptop.
This Embedded Controller (EC) consists of a 8051 micro-controller, a dedicated LPC interface to communicate with the processor, and an SPI Flash ROM interface. The SPI Flash ROM supports two code segments, and a table of Manufacturing Data. The EC supports the Boot Hub Protocol, allowing the XO's main processor to boot from one of the code segments in the SPI Flash.
Details
The EC, implemented as a KB3700, has a paramount importance in controlling the XO when the CPU is not active. To do so, the KB3700 communicates with the CPU via the EC protocol over a physical LPC interface. For more information, see the Ec specification.
The KB3700 also communicates with the Maxim DS2756 battery fuel gauge IC within the battery pack, via the 1-wire Dallas protocol. DS2756 data sheet.
ec-status
One can deduce part of the internal state of the EC using ec-dump.fth under OpenFirmware. Running the ec-dump script gives us valuable data about internals of the EC, being the EC Register Settings.
The procedure to run ec-dump over internet in a wireless connection is:
ok wifi media lab 802.11 *change it to your name AP ok fl http:\\18.85.2.147\~joel\ec-dump.fth *change to your AP IP direction
Running ec-dump over internet and saving the file in a USB key:
ok wifi media lab 802.11 *change it to your name AP ok fload http:\\18.85.2.147\~rafael\to-file.fth ok to-file u:\ec-dump fload http:\\18.85.2.147\~joel\ec-dump.fth
OpenEC firmware project
The firmware running on the XO's EC, while heavily modified and supported by OLPC, was originally written by two different companies. OLPC has had no success convincing those companies to open source their code.
The OLPC community is now working on OpenEC, an Open Source implementation of the XO's Embedded Controller firmware. It currently is in an early stage and not functional yet.
Related Documentation
- Rebooting the Embedded Controller in a laptop
- ENE KB3700 Datasheet
- See other articles in Category:EC