Firmware
Introduction
The firmware of the XO laptop is the software that runs before and during the operating system.
Updating
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 can also upgrade just the firmware to the latest official (signed) release, see Upgrading 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.
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.
Updating - For Developers
Developers who have an unsecured laptop or a developer key have more options:
- They can install any of the firmware releases below; click the firmware version for instructions.
- They can alter the secure upgrade to use one of the firmware files below.
There is also:
- C source code for a self-hosted Linux flash writer (may destroy the manufacturing data),
- a recovery procedure for programming the SPI FLASH chip with another system,
- a replacement procedure that requires electronics lab bench skills and service tooling.
Note: Once you upgrade to the Q2Cxx series of firmware do not downgrade to Q2Bxx! Doing so will destroy the manufacturing data. Downgrading from Q2F01 to Q2C01 will "Brick" your XO-1 :-(
Firmware Releases
The latest release is the first in the list:
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.
- q4a11 - 2011-01-21 OLPC Firmware q4a11 A2 post-bringup baseline - don't use on A1 boards.
- q4a10 - 2010-12-20 OLPC Firmware q4a10 For A2 build - don't use on A1 boards.
- q4a07 - 2010-12-08 OLPC Firmware q4a07 Working USB support.
- q4a06 - 2010-11-24 OLPC Firmware q4a06 More neat stuff.
- q4a04 - 2010-10-05 OLPC Firmware q4a04 Fixes brickage caused by q4a03, better camera test, etc
- q4a03 - 2010-10-04 OLPC Firmware q4a03 Withdrawn
XO-1.5
WARNING! XO-1.5 Firmware will NOT work on a XO-1.
- q3a62 - 2010-12-17 OLPC Firmware q3a62 Fix screen glitches when resuming on rotated display and test /mouse with AVC Sentelic touchpad.
- 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.
- q3a59 - 2010-11-03 OLPC Firmware q3a59 add support for dual-boot requested by factory.
- q3a54 - 2010-09-10 OLPC Firmware q3a54 EC code 1.9.34, fix for failure of ADATA SD by delaying power off
- q3a52 - 2010-09-09 OLPC Firmware q3a52 Withdrawn
- q3a50 - 2010-08-05 OLPC Firmware q3a50 NANDblaster fixes, keyboard selftest fixes, media read/write speed analysis, remove ancient manufacturing data support, disabled S1 state.
- q3a49 - 2010-08-04 OLPC Firmware q3a49
- q3a48 - 2010-08-03 OLPC Firmware q3a48
- q3a47 - 2010-07-29 OLPC Firmware q3a47 Another fix for ADATA 8GB microSD cards requested by factory.
- q3a46 - 2010-07-22 OLPC Firmware q3a46 Fix for ADATA 8GB microSD cards requested by factory.
- q3a45 - 2010-07-19 OLPC Firmware q3a45 Fix fs-update regression
- q3a44 - 2010-07-19 OLPC Firmware q3a44 Add secure NANDblaster, RAMP for CL1C XO-1.5 HS
- q3a43 - 2010-07-16 OLPC Firmware q3a43 Support RAMP prebuild for CL1C XO-1.5 HS
- q3a42 - 2010-07-14 OLPC Firmware q3a42 Withdrawn sus/res broken
- q3a40 - 2010-06-14 OLPC Firmware q3a40 Support for Cl1C. HS Machine
- q3a39 - 2010-05-08 OLPC Firmware q3a39 Video registers restore tweak; EC 1.9.28
- q3a38 - 2010-05-03 OLPC Firmware q3a38 Heatspreader test for Mfg tests.
- q3a37 - 2010-04-29 OLPC Firmware q3a37 EC code 1.9.27, fix for signature delegation handling, other misc. fixes
- q3a36 - 2010-04-14 OLPC Firmware q3a36 EC code 1.9.26
- q3a35 - 2010-03-10 OLPC Firmware q3a35 Fixed possible fs-update problem in previous release
- q3a34 - 2010-03-08 OLPC Firmware q3a34 Many fixes - New mfg test visuals
- q3a29 - 2010-01-25 OLPC Firmware q3a29 Preload for C-ramp SMT build - lots of fixes
- q3a26 - 2010-01-05 OLPC Firmware q3a26 Ext2 fixes; Lid switch fix.
- q3a25 - 2009-12-16 OLPC Firmware q3a25 Some more manufacturing test tweaks
- q3a24 - 2009-12-14 OLPC Firmware q3a24 Went onto C-build machines in manufacturing
- q3a18 - 2009-12-03 OLPC Firmware q3a18 Stabilization in preparation for C-build
- q3a17 - 2009-12-02 OLPC Firmware q3a17 Withdrawn in favor of q3a18
- q3a16 - 2009-11-14 OLPC Firmware q3a16 B3 support, 32bpp, no display flicker, ...
- q3a15 - 2009-10-30 OLPC Firmware q3a15 Lots of fixes, see release notes
- q3a14 - 2009-10-23 OLPC Firmware q3a14 Unofficial
- q3a13 - 2009-10-12 OLPC Firmware q3a13 Fixed register init bug introduced by A12
- q3a12 - 2009-10-10 OLPC Firmware q3a12 B2 stabilization. Use Q3A13 instead
- q3a11 - 2009-09-09 OLPC Firmware q3a11 B2 prebuild release.
- q3a10 - 2009-08-25 OLPC Firmware q3a10 Game key fixes, New mfg test menu.
- q3a09 - 2009-08-21 OLPC Firmware q3a09 B1 support and some new features
- q3a08 - 2009-08-08 OLPC Firmware q3a08 Camera, sdmmc, hdaudio selftest, ADM8515 USB LAN driver
- q3a07 - 2009-08-05 OLPC Firmware q3a07
- q3a05 - 2009-07-02 OLPC Firmware q3a05
- q3a04 - 2009-06-26 OLPC Firmware q3a04 First formal release for XO 1.5 A1 boards.
XO-1
- q2e45 - 2010-08-23 OLPC Firmware q2e45 Fix occasional hang on boot with Fedora 11 builds and fix loss of mouse actions on wake.
- q2e44 - 2010-05-21 OLPC Firmware q2e44 Fixed camera test brightness and timer test reliability.
- q2e43 - 2010-05-13 OLPC Firmware q2e43 Fixed problems found during testing of q2e42. Candidate for release to deployments.
- q2e42 - 2010-02-13 OLPC Firmware q2e42 Lots of changes since last year - key delegation, etc. Has rough edges.
- q2e41 - 2009-04-15 OLPC Firmware q2e41 Missing TS tag is not factory boot order.
- q2e40 - 2009-04-13 OLPC Firmware q2e40 Fixed Windows booting when USB keyboard attached.
- q2e39 - 2009-04-02 OLPC Firmware q2e39 Moved wired Ethernet to start of manufacturing mode boot order.
- q2e38 - 2009-04-01 OLPC Firmware q2e38 Added wired Ethernet to manufacturing mode boot order.
- q2e37 - 2009-03-31 OLPC Firmware q2e37 Boot order change in manufacturing mode.
- q2e36 - 2009-03-24 OLPC Firmware q2e36 Fixed problem with Windows full-screen text mode.
- q2e35 - 2009-03-23 OLPC Firmware q2e35 Successor for a keyjector; functionally identical to q2e34.
- q2e34 - 2009-03-10 OLPC Firmware q2e34 Quanta production bug fix.
- q2e33 - 2009-02-20 OLPC Firmware q2e33 This is a retest candidate for Windows qualification testing.
- q2e32 - 2009-02-12 OLPC Firmware q2e32 Low voltage batteries incorrectly marked as full fix.
- q2e31 - 2009-02-11 OLPC Firmware q2e31 Keyjector support and a few Windows fit-and-finish improvements
- q2e30 - 2009-01-29 OLPC Firmware q2e30 Multiple key support and non-secure pretty boot
- q2e29 - 2009-01-28 OLPC Firmware q2e29 First try at multiple key support
- q2e28 - 2009-01-23 OLPC Firmware q2e28 Qualification testing fourth try - standby works
- q2e27 - 2009-01-09 OLPC Firmware q2e27 Qualification testing third time is the charm
- q2e26 - 2009-01-05 OLPC Firmware q2e26 Qualification testing second try
- q2e25 - 2008-12-11 OLPC Firmware q2e25 For qualification testing
- q2e24 - 2008-12-11 OLPC Firmware q2e24 Candidate 2 for 8.2.1 - has NANDblaster
- q2e23 - 2008-12-11 OLPC Firmware q2e23 Candidate for 8.2.1 - has NANDblaster XXX withdrawn in favor of Q2E24 which fixes a few NANDblaster bugs
- q2e22 - 2008-11-06 OLPC Firmware q2e22 Possible manufacturing release for production with new touchpad
- q2e21 - 2008-10-31 OLPC Firmware q2e21 Maintenance release to manufacturing
- q2e20 - 2008-10-24 OLPC Firmware q2e20 Formal release of q2e19f which shipped on prebuild machines (works with B2 mechanics)
- q2e19 - 2008-10-03 OLPC Firmware q2e19 For prebuild with new keyboard controller
- q2e18 - 2008-09-17 OLPC Firmware q2e18 8.2.0 release version
- q2e17 - 2008-09-09 OLPC Firmware q2e17 8.2.0 test candidate 5 Don't use on B2 or B1 hardware
- q2e16 - 2008-09-09 OLPC Firmware q2e16 8.2.0 test candidate 4 Don't use on B2 or B1 hardware
- q2e15 - 2008-08-29 OLPC Firmware q2e15 8.2.0 test candidate 3 Don't use on B2 or B1 hardware
- q2e14 - 2008-08-22 OLPC Firmware q2e14 8.2.0 test candidate 2 Don't use on B2 or B1 hardware
- q2e13 - 2008-08-14 OLPC Firmware q2e13 8.2.0 test candidate 1 XXX withdrawn - Breaks mouse on older released builds 690 - 711 Don't use on B2 or B1 hardware
- q2e12 - 2008-07-29 OLPC Firmware q2e12 Like q2e11 but with minimal fix for <trac>7607</trac> Don't use on B2 or B1 hardware
- q2e11 - 2008-07-15 OLPC Firmware q2e11 8.1.2 test candidate (see OLPC SW-ECO 6) Don't use on B2 or B1 hardware
- q2e10 - 2008-07-03 OLPC Firmware q2e10 First test release of OFW2 Don't use on B2 or B1 hardware
- q2d16 - 2008-05-29 OLPC Firmware q2d16 Update.1 test candidate 8
- q2d14 - 2008-03-13 OLPC Firmware q2d14 Update.1 test candidate 7
- q2d13 - 2008-02-06 OLPC Firmware q2d13 Update.1 test candidate 6
- q2d12 - 2008-02-02 OLPC Firmware q2d12 Update.1 test candidate 5
- q2d11 - 2008-01-30 OLPC Firmware q2d11 Update.1 test candidate 4
- q2d10 - 2008-01-25 OLPC Firmware q2d10 Update.1 test candidate 3
- q2d09 - 2008-01-18 OLPC Firmware q2d09 Update.1 test candidate 2
- q2d08 - 2008-01-05 OLPC Firmware q2d08 Update.1 test candidate
- q2d07 - 2007-12-07 OLPC Firmware q2d07 Ship.2 yet another critical bug fix release
- q2d06 - 2007-12-04 OLPC Firmware q2d06 Ship.2 critical bug fix release XXX withdrawn - upgrade soon
- q2d05 - 2007-11-27 OLPC Firmware q2d05 Ship.2 2nd mass production release XXX withdrawn - upgrade soon
- q2d04 - 2007-11-08 OLPC Firmware q2d04 Ship.2 release with wireless update improvements
- q2d03 - 2007-10-29 OLPC Firmware q2d03 Final mass production release
- q2d02 - 2007-10-22 OLPC Firmware q2d02 Mass production release
- q2d01 - 2007-10-16 OLPC Firmware q2d01 First try at mass production release
- q2c28 - 2007-10-01 OLPC Firmware q2c28
- q2c27 - 2007-09-19 OLPC Firmware q2c27
- q2c26 - 2007-08-31 OLPC Firmware q2c26
- q2c25 - 2007-08-18 OLPC Firmware q2c25
- q2c24 - 2007-08-17 OLPC Firmware q2c24 XXX deprecated!!!
- q2c23 - 2007-08-10 OLPC Firmware q2c23
- q2c22 - 2007-08-02 OLPC Firmware q2c22
- q2c21 - 2007-08-02 OLPC Firmware q2c21
- q2c20 - 2007-07-30 Release for B4 build OLPC Firmware q2c20
- q2c18 - 2007-06-14 Release for B4 build OLPC Firmware q2c18
- q2c17 - 2007-06-07 Release for B4 build OLPC Firmware q2c17
- q2c16a - 2007-06-07 Minor variation on c16, for internal testing only OLPC Firmware q2c16a
- q2c16 - 2007-06-07 Release for B4 build OLPC Firmware q2c16
- q2c15 - 2007-06-06 withdrawn OLPC Firmware q2c15
- q2c14 - 2007-05-23 Update release for B3 build OLPC Firmware q2c14
- q2c13 - 2007-05-18 Release for B3 build OLPC Firmware q2c13
- q2c11 - 2007-05-06 Release for B3 build OLPC Firmware q2c11
- q2c09 - 2007-04-30 Release for B3 build OLPC Firmware q2c09
- q2c01 - 2007-04-06 Suspend/Resume Development release OLPC Firmware q2c01 (downgrading from q2f01 to q2c01= a "Bricked" XO-1 :-()
- Do not downgrade from C series to B series
- q2b87 - 2007-04-03 Update release for B2 build OLPC Firmware q2b87
- q2b86 - 2007-04-03 Update release for B2 build OLPC Firmware q2b86
- q2b85 - 2007-03-31 Update release for B2 build OLPC Firmware q2b85
- q2b84 - 2007-03-30 Update release for B2 build OLPC Firmware q2b84
- Q2B83 - 2007-03-28 Update release for B2 build OLPC Firmware Q2B83
- Q2B81 - 2007-03-18 Update release for B2 build OLPC Firmware Q2B81
- Q2B76 - 2007-03-09 Update release for B2 build OLPC Firmware Q2B76
- Q2B73 - 2007-02-16 Update release for B2 build OLPC Firmware Q2B73
- Q2B61 - 2007-02-02 Update release for B2-test build OLPC Firmware Q2B61 (last-minute EC changes)
- Q2A52 - 2006-11-12 OLPC Firmware Q2A52
- Q2B51 - 2007-01-26 Update release for B2-test build OLPC Firmware Q2B51
- Q2B43 - 2007-01-25 Update release for B2-test build OLPC Firmware Q2B43
- Q2B34 - 2007-01-24 OLPC Firmware Q2B34
- Q2B33 - 2007-01-23 OLPC Firmware Q2B33
- Q2B32 - 2007-01-23 OLPC Firmware Q2B32
- Q2B21 - 2007-01-14 Update release for B2-test build OLPC Firmware Q2B21
- Q2B20 - 2007-01-12 Update release for B2-test build OLPC Firmware Q2B20
- Q2B17 - 2007-01-05 Update release for B-test build OLPC Firmware Q2B17
- Q2B16 - 2007-01-03 OLPC Firmware Q2B16
- Q2B15 - 2007-01-02 OLPC Firmware Q2B15
- Q2B14 - 2006-12-30 OLPC Firmware Q2B14
- Q2B13 - 2006-12-29 Update release for B-test build OLPC Firmware Q2B13
- Q2B12 - 2006-12-29 Update release for B-test build OLPC Firmware Q2B12 (copy-nand fails)
- Q2B11 - 2006-12-25 Update release for B-test build OLPC Firmware Q2B11
- Q2A71 - 2006-12-21 Update release for B-test build OLPC Firmware Q2A71
- Q2A62 - 2006-12-11 Update release for B-test build OLPC Firmware Q2A62
- Q2A53 - 2006-12-01 Update release for B-test build OLPC Firmware Q2A53
- Q2A42 - 2006-11-12 Production release for B-test build OLPC Firmware Q2A42
- Q2A11 - 2006-10-17 "Unblocker" Interim Release OLPC Firmware Q2A11
EC 1.75
EC 1.75 firmware and change log EC 1.75 Firmware