Firmware: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
No edit summary
 
(25 intermediate revisions by the same user not shown)
Line 24: Line 24:
* a [[XO_Replacing_SPI_flash|replacement procedure]] for the SPI FLASH chip.
* a [[XO_Replacing_SPI_flash|replacement procedure]] for the SPI FLASH chip.


Both these require electronics lab bench skills and service tooling.
Both these require electronics lab bench skills and service tooling. See [[Firmware/Recovery]] for more detail.


== Firmware Releases ==
== Firmware Releases ==
Line 67: Line 67:
=== XO-4 ===
=== XO-4 ===
<span style="color:red; ">WARNING! [[XO-4]] firmware will only work on an XO-4.</span>
<span style="color:red; ">WARNING! [[XO-4]] firmware will only work on an XO-4.</span>
* q7c07 - 2017-07-14 [[OLPC Firmware q7c07]] add default boot to Android by manufacturing tag.
* q7c06 - 2016-01-13 [[OLPC Firmware q7c06]] fix for new camera siv121c.
* q7c05 - 2015-03-12 [[OLPC Firmware q7c05]] support for new camera. 'Shipped in [[13.2.6]].''
* q7c04 - 2015-01-30 [[OLPC Firmware q7c04]] support booting legacy android kernel.
* q7c03 - 2015-01-12 [[OLPC Firmware q7c03]] CForth: lower DETTL drive strength on DCON.
* q7c02 - 2015-01-09 [[OLPC Firmware q7c02]] Open Firmware suspend test: lower DETTL drive strength on DCON, tune dual core.
* q7c01 - 2015-01-05 [[OLPC Firmware q7c01]] switch to level triggered interrupts.
* q7c00 - 2014-12-30 [[OLPC Firmware q7c00]] add support for dual core and generic interrupt controller, incompatible with kernels before this.
----
* q7b44 - 2015-01-06 [[OLPC Firmware q7b44]] lower DETTL drive strength on DCON.
* q7b43 - 2014-12-08 [[OLPC Firmware q7b43]] add support for an ASIX AX88772B USB ethernet adapter.
* q7b42 - 2014-11-25 [[OLPC Firmware q7b42]] fix regression in double length math functions.
* q7b41 - 2014-11-20 [[OLPC Firmware q7b41]] support for 16GB eMMC and Simplo LiPoly battery. ''Shipped in [[13.2.2]].''
* q7b40 - 2014-06-12 [[OLPC Firmware q7b40]] support for siv121c camera sensor. ''Shipped in [[13.2.1]].''
* q7b39 - 2014-04-17 [[OLPC Firmware q7b39]] support dual boot menu for [[Android]].
* q7b39 - 2014-04-17 [[OLPC Firmware q7b39]] support dual boot menu for [[Android]].
* q7b38 - 2014-04-09 [[OLPC Firmware q7b38]] support power button for [[Android]].
* q7b38 - 2014-04-09 [[OLPC Firmware q7b38]] support power button for [[Android]].
Line 118: Line 132:
<span style="color:red; ">WARNING! [[XO-1.75]] Firmware versions >= q4b11 will NOT work on A2 version boards, and use on A3 requires a hardware modification.</span>
<span style="color:red; ">WARNING! [[XO-1.75]] Firmware versions >= q4b11 will NOT work on A2 version boards, and use on A3 requires a hardware modification.</span>


* q4d38 - 2015-05-18 [[OLPC Firmware q4d38]] lower DETTL drive strength on DCON.
* q4d37 - 2015-03-10 [[OLPC Firmware q4d37]] support for new camera and new backlight.
* q4d36 - 2014-08-12 [[OLPC Firmware q4d36]] support for Winbond W25Q80BW SPI FLASH ROM.
* q4d35 - 2014-06-14 [[OLPC Firmware q4d35]] support for siv121c camera sensor. ''Shipped in [[13.2.1]].''
* q4d34 - 2013-07-12 [[OLPC Firmware q4d34]] fix NANDblaster. ''Shipped in [[13.2.0]].''
* q4d34 - 2013-07-12 [[OLPC Firmware q4d34]] fix NANDblaster. ''Shipped in [[13.2.0]].''
* q4d33 - 2013-07-06 [[OLPC Firmware q4d33]] fix startup sound when volume keys pressed.
* q4d33 - 2013-07-06 [[OLPC Firmware q4d33]] fix startup sound when volume keys pressed.
Line 191: Line 209:
=== XO-1.5 ===
=== XO-1.5 ===
<span style="color:red; ">WARNING! [[XO-1.5]] Firmware will NOT work on a XO-1.</span>
<span style="color:red; ">WARNING! [[XO-1.5]] Firmware will NOT work on a XO-1.</span>
* q3c17 - 2014-06-14 [[OLPC Firmware q3c17]] Various fixes. ''Shipped in [[13.2.1]].''
* q3c16 - 2013-07-11 [[OLPC Firmware q3c16]] Fix NANDblaster. ''Shipped in [[13.2.0]].''
* q3c16 - 2013-07-11 [[OLPC Firmware q3c16]] Fix NANDblaster. ''Shipped in [[13.2.0]].''
* q3c15 - 2013-06-06 [[OLPC Firmware q3c15]]
* q3c15 - 2013-06-06 [[OLPC Firmware q3c15]]
Line 201: Line 220:
* q3c08 - 2012-07-10 [[OLPC Firmware q3c08]]
* q3c08 - 2012-07-10 [[OLPC Firmware q3c08]]
* q3c07 - 2012-06-15 [[OLPC Firmware q3c07]] ''Shipped in [[12.1.0]].''
* q3c07 - 2012-06-15 [[OLPC Firmware q3c07]] ''Shipped in [[12.1.0]].''
* q3c06 - 2012-05-03 [[OLPC Firmware q3c06]]
* q3c06 - 2012-05-03 [[OLPC Firmware q3c06]] ''Shipped in [[11.3.1]].''
* q3c05 - 2012-04-08 [[OLPC Firmware q3c05]] fix ext2 filesystem access for mass production runin testing.
* q3c05 - 2012-04-08 [[OLPC Firmware q3c05]] fix ext2 filesystem access for mass production runin testing.
* q3c04 - 2012-04-03 [[OLPC Firmware q3c04]]
* q3c04 - 2012-04-03 [[OLPC Firmware q3c04]]
Line 209: Line 228:
----
----
* q3b23 - 2011-11-02 [[OLPC Firmware q3b23]] Development version for 11.3.1 or 12.1.0, not for production
* q3b23 - 2011-11-02 [[OLPC Firmware q3b23]] Development version for 11.3.1 or 12.1.0, not for production
* q3b22 - 2011-10-24 [[OLPC Firmware q3b22]] New EC firmware 2.2.10 for battery charging fix. ''Shipped in [11.3.0]].''
* q3b22 - 2011-10-24 [[OLPC Firmware q3b22]] New EC firmware 2.2.10 for battery charging fix. ''Shipped in [[11.3.0]].''
* q3b21 - 2011-10-23 [[OLPC Firmware q3b21]] New EC firmware 2.2.9 fixes shutdown on DC insert with low battery
* q3b21 - 2011-10-23 [[OLPC Firmware q3b21]] New EC firmware 2.2.9 fixes shutdown on DC insert with low battery
* q3b19 - 2011-08-24 [[OLPC Firmware q3b19]] Improved compatibility with other power adapters in case of accidental connection.
* q3b19 - 2011-08-24 [[OLPC Firmware q3b19]] Improved compatibility with other power adapters in case of accidental connection.
Line 217: Line 236:
* q3b15 - 2011-08-18 [[OLPC Firmware q3b15]] Selftest detects camera modules with bad VSYNC
* q3b15 - 2011-08-18 [[OLPC Firmware q3b15]] Selftest detects camera modules with bad VSYNC
* q3b14 - 2011-07-23 [[OLPC Firmware q3b14]] New EC firmware 2.2.7 fixes #11021
* q3b14 - 2011-07-23 [[OLPC Firmware q3b14]] New EC firmware 2.2.7 fixes #11021
* q3b13 - 2011-06-28 [[OLPC Firmware q3b13]] Fix test /keyboard stuck keys problem and related EC battery interaction
* q3b13 - 2011-06-28 [[OLPC Firmware q3b13]] Fix test /keyboard stuck keys problem and related EC battery interaction. ''Shipped in [[11.2.0]].''
* q3b12 - 2011-06-24 [[OLPC Firmware q3b12]] Fix ALPS keyboard breakage.
* q3b12 - 2011-06-24 [[OLPC Firmware q3b12]] Fix ALPS keyboard breakage.
* q3b11 - 2011-06-21 [[OLPC Firmware q3b11]] Synchronised release for 11.2.0 signing.
* q3b11 - 2011-06-21 [[OLPC Firmware q3b11]] Synchronised release for 11.2.0 signing.
Line 230: Line 249:
* q3a64 - 2011-04-13 [[OLPC Firmware q3a64]] fs-update enhancement <trac>10818</trac>
* q3a64 - 2011-04-13 [[OLPC Firmware q3a64]] fs-update enhancement <trac>10818</trac>
* q3a63 - 2011-04-12 [[OLPC Firmware q3a63]] solar panel charging and companion to XO-1.5 C4 bringup.
* q3a63 - 2011-04-12 [[OLPC Firmware q3a63]] solar panel charging and companion to XO-1.5 C4 bringup.
* q3a62 - 2010-12-17 [[OLPC Firmware q3a62]] Fix screen glitches when resuming on rotated display and test /mouse with AVC Sentelic touchpad.
* q3a62 - 2010-12-17 [[OLPC Firmware q3a62]] Fix screen glitches when resuming on rotated display and test /mouse with AVC Sentelic touchpad. ''Shipped in [[10.1.3]].''
* q3a61 - 2010-11-25 [[OLPC Firmware q3a61]] Fix for behaviour after battery critical shutdown.
* q3a61 - 2010-11-25 [[OLPC Firmware q3a61]] Fix for behaviour after battery critical shutdown.
* q3a60 - 2010-11-22 [[OLPC Firmware q3a60]] complete support for dual-boot, recognise ALPS keyboard, storage LED during fs-update.
* q3a60 - 2010-11-22 [[OLPC Firmware q3a60]] complete support for dual-boot, recognise ALPS keyboard, storage LED during fs-update.
Line 274: Line 293:


=== XO-1 ===
=== XO-1 ===
* q2f20 - 2014-06-12 [[OLPC Firmware q2f20]] Support for SIV121C camera sensor. ''Planned for [[13.2.1]].''
* q2f20 - 2014-06-12 [[OLPC Firmware q2f20]] Support for SIV121C camera sensor. ''Shipped in [[13.2.1]].''
* q2f19 - 2013-07-11 [[OLPC Firmware q2f19]] Fix for NANDblaster. ''Shipped in [[13.2.0]].''
* q2f19 - 2013-07-11 [[OLPC Firmware q2f19]] Fix for NANDblaster. ''Shipped in [[13.2.0]].''
* q2f18 - 2013-06-06 [[OLPC Firmware q2f18]]
* q2f18 - 2013-06-06 [[OLPC Firmware q2f18]]
Line 426: Line 445:


== See also ==
== See also ==
* [[Firmware/Storage/Formats|How to prepare removable media for use by the firmware]]
* [[Firmware/Identify|How to identify the firmware version]]
* [[Firmware/Identify|How to identify the firmware version]]
* [[Firmware/Identifying_Wireless_LAN_Device|How to identify the wireless LAN device]]
* [[Firmware/Identifying_Wireless_LAN_Device|How to identify the wireless LAN device]]
Line 433: Line 453:
* [[Firmware/Serial_Terminal|How to use serial terminal features]]
* [[Firmware/Serial_Terminal|How to use serial terminal features]]
* [[Firmware/Storage|How to use storage features]]
* [[Firmware/Storage|How to use storage features]]
* [[Firmware/Screenshot|How to take screenshots]]
* [[Scan_NAND|How to scan and test the NAND Flash on XO-1]]
* [[Scan_NAND|How to scan and test the NAND Flash on XO-1]]
* [[Startup_sound|How to customise the startup sound]]
* [[Startup_sound|How to customise the startup sound]]
* [[Firmware/Building|How to build Open Firmware]]
* [[Firmware/Building|How to build Open Firmware]]
* [[OFW_Compilation|How to compile Open Firmware]]
* [[OFW_Compilation|How to compile Open Firmware]]
* [[Firmware/Recovery|How to recover Open Firmware]] when a laptop is bricked by reflashing,
* [[Cross_Compiling_Open_Firmware|How to cross compile Open Firmware]]
* [[Cross_Compiling_Open_Firmware|How to cross compile Open Firmware]]
* [[Firmware_release_procedures|How to release Open Firmware for OLPC]]
* [[Firmware_release_procedures|How to release Open Firmware for OLPC]]
* [[Oatstime|How to synchronise time using an OATS server]]
* [[Oatstime|How to synchronise time using an OATS server]]
* [[Persistent_developer_key_firmware|How to install persistent developer key firmware]] to disable the security system


[[Category:Subsystems]]
[[Category:Subsystems]]

Latest revision as of 02:24, 2 October 2021

  This page is monitored by the OLPC team.

The firmware of the XO laptop is the software that runs before and during the operating system.

Updating - For Users

Updating the XO to a new operating system release updates the firmware, if required. Normally, users should update to the latest stable operating system release in order to update the firmware.

However, users may upgrade just the firmware to the latest signed release.

Updating - For Developers

Developers who have an unsecured laptop or a developer key have more options:

  • install any of the firmware releases below; choose one, download the .rom file, and then follow the Firmware/Install instructions.
  • alter the secure upgrade to use one of the firmware files below.

Note: avoid downgrading, as certain downgrades may brick your XO.

Brick Recovery

Updating using the methods above requires working firmware. If the firmware is not working, and the laptop is bricked, the options are:

Both these require electronics lab bench skills and service tooling. See Firmware/Recovery for more detail.

Firmware Releases

There is a subsection below for each laptop model, and a list of releases in each. Choose the correct laptop model. Do not mix firmware between models. Using the wrong firmware will be rejected by the flash command. Do not override this error, as the laptop may be harmed.

The first two letters of the firmware version serve as a laptop model. The following table shows how the prefix must be interpreted:

model start year prefix link
XO-4 2012 Q7 releases
XO-3 2011 Q5 releases
XO-1.75 2010 Q4 releases
XO-1.5 2009 Q3 releases
XO-1 2006 Q2 releases

The latest release is the first in the list.

XO-4

WARNING! XO-4 firmware will only work on an XO-4.


XO-3

WARNING! XO-3 Firmware will NOT work on an XO-1, XO-1.5 or XO-1.75.

XO-1.75

WARNING! XO-1.75 Firmware will NOT work on an XO-1 or an XO-1.5.

WARNING! XO-1.75 Firmware versions >= q4a10 will NOT work on A1 version boards.

WARNING! XO-1.75 Firmware versions >= q4b11 will NOT work on A2 version boards, and use on A3 requires a hardware modification.



XO-1.5

WARNING! XO-1.5 Firmware will NOT work on a XO-1.



XO-1




Do not downgrade from C series to B series

EC 1.5

EC 1.5 firmware is included in Open Firmware for XO-1.5.

EC 1.5 firmware development change log XO_1.5_EC_dev_changelog.

EC 1.75

EC 1.75 firmware is included in Open Firmware for XO-1.75.

EC 1.75 firmware and change log EC 1.75 Firmware.

EC 4

EC 4 firmware is included in Open Firmware for XO-4.

EC 4 firmware and change log EC 4.0 Firmware.

Technical Background

The firmware is in two parts:

  • EC Firmware, which runs on the embedded controller as soon as the battery is installed or external power is plugged in, and is responsible for managing the battery, charging, power switching, and indicator LEDs,
  • Open Firmware, which runs on the main processor when the power button is pressed, and is responsible for preparing that hardware and loading the operating system.

For XO-1 and XO-1.5, these two parts are bundled together as one .rom file. This firmware goes in the little 1 MB SPI FLASH that's used for booting, not the 1GB NAND flash (or 512MB in earlier prototypes) used for the OS image and user data. The SPI FLASH contains the Embedded controller ("EC") firmware, Open Firmware, and 2k Manufacturing Data. See Firmware SPI FLASH Map or its dia source file.

For XO-1.75, the .rom file contains Open Firmware and 2k Manufacturing Data and is stored in one SPI FLASH chip attached to the SoC. The Embedded controller ("EC") firmware is stored in another SPI FLASH chip attached to the EC. Therefore EC firmware is not bundled with Open Firmware.

See also