Firmware
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; click the firmware version for instructions.
- alter the secure upgrade to use one of the firmware files below.
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 :-(
Brick Recovery
Updating using the methods above requires working firmware. If the firmware is not working, and the laptop is bricked, the options are:
- a recovery procedure for updating the SPI FLASH chip using another system, and
- a replacement procedure for the SPI FLASH chip.
Both these require electronics lab bench skills and service tooling.
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-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-3
WARNING! XO-1.3 Firmware will NOT work on an XO-1, XO-1.5 or XO-1.75.
- q5a03 - 2011-12-13 OLPC Firmware q5a03 Fix fuses, fit and finish improvements.
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.
- q4c06 - 2011-11-29 OLPC Firmware q4c06 Test candidate for C2 build.
- q4c05 - 2011-11-21 OLPC Firmware q4c05 More suspend and resume tweaks for Linux, and other fixes.
- q4c04 - 2011-11-08 OLPC Firmware q4c04 Suspend/resume tweaks for Linux, rockers now wakeup from suspend, new EC firmware
- q4c03 - 2011-11-02 OLPC Firmware q4c03 Accelerometer communication rate increase, new EC firmware.
- q4c02 - 2011-10-26 OLPC Firmware q4c02 EC firmware update for C1 build.
- q4c01 - 2011-10-24 OLPC Firmware q4c01 Bringup for C1 build.
- q4b12 - 2011-10-13 OLPC Firmware q4b12 Test candidate for C1 build.
- q4b11 - 2011-10-05 OLPC Firmware q4b11 Stable suspend/resume and numerous tweaks. Test candidate for C1 build.
- q4b10 - 2011-09-23 OLPC Firmware q4b10 Suspend and resume and thermal protection. Last version for A2. Last version for A3.
- q4b09 - 2011-09-03 OLPC Firmware q4b09 Fixed initramfs loading for testing in builds.
- q4b08 - 2011-08-24 OLPC Firmware q4b08 Add a compatible property to device-tree to fix frame key on membrane keyboards, enable the freezing of the DCON if RAM is present, and export a property, add DRAM recalibration, add GUID Partition Table support.
- q4b07 - 2011-08-04 OLPC Firmware q4b07 Many fixes, and new embedded controller firmware
- q4b06 - 2011-08-02 OLPC Firmware q4b06 Fixes B1 white screen brick
- q4b05 - 2011-07-17 OLPC Firmware q4b05 Fixed internal drive selftest
- q4b04 - 2011-07-15 OLPC Firmware q4b04 Fixes during B1 bringup
- q4b02 - 2011-07-06 OLPC Firmware q4b02 More keyboard and EC fixes - probably will be installed on B1 machines
- q4b01 - 2011-07-01 OLPC Firmware q4b01 Fix some keyboard and EC problems
- q4b00 - 2011-06-28 OLPC Firmware q4b00 Test candidate for B1 build
- q4a15 - 2011-06-17 OLPC Firmware q4a15 Getting close to B1 build
- q4a14 - 2011-06-10 OLPC Firmware q4a14 Getting ready for B1 build
- q4a13 - 2011-01-26 OLPC Firmware q4a13 Fixed upgrade problem, USB hot-plug now works across hubs. See upgrade warning at OLPC Firmware q4a12 (you need the patch to get from a12 to a13, but after you have a13, the patch won't be needed).
- q4a12 - 2011-01-26 OLPC Firmware q4a12 Working RTC, working EDI EC reflash. See upgrade warning at OLPC Firmware q4a12.
- 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. Last version for A1.
- 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.
- 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
- 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.
- q3b18 - 2011-08-22 OLPC Firmware q3b18 Fix for automatic manufacturing tests.
- q3b17 - 2011-08-22 OLPC Firmware q3b17 Increase available device instance memory for complex test or install scripts.
- q3b16 - 2011-08-19 OLPC Firmware q3b16 Fix menu cursor failure.
- 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
- q3b13 - 2011-06-28 OLPC Firmware q3b13 Fix test /keyboard stuck keys problem and related EC battery interaction
- 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.
- q3b10 - 2011-06-16 OLPC Firmware q3b10 Production release for Rev M pcb board ID 0xda
- q3b08 - 2011-05-21 OLPC Firmware q3b08 Production release for new board, with EC code that supports board ID 0xd8
- q3b07 - 2011-05-20 OLPC Firmware q3b07 Reinstates C3 and C4 for new Rev M (C8) boards, which fix the problem in hardware. Also an EC command fix.
- q3b06 - 2011-05-19 OLPC Firmware q3b06 Fixes trac #10881 - EC command timeouts
- q3b05 - 2011-05-19 OLPC Firmware q3b05 Also omits C3 and C4 for Rev I (C6) boards
- q3b04 - 2011-05-19 OLPC Firmware q3b04 Omits C3 and C4 states for Rev L (C7) boards, and adds RTC anti-rollback
- q3b03 - 2011-05-09 OLPC Firmware q3b03 New EC code
- q3a65 - 2011-04-29 OLPC Firmware q3a65 fs-update major speedup
- 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.
- 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
- q2f05 - 2011-11-07 OLPC Firmware q2f05 New release with changed EC firmware.
- q2e49 - 2011-11-03 OLPC Firmware q2e49 Development version for 11.3.1 or 12.1.0
- q2e48 - 2011-10-14 OLPC Firmware q2e48 Final version for inclusion in 11.3.0
- q2e46 - 2011-07-22 OLPC Firmware q2e46 Innumerable changes, using the current development head shared by XO-1, XO-1.5 and XO-1.75.
- 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 is included in OpenFirmware for XO-1.75.
EC 1.75 firmware and change log EC 1.75 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 OpenFirmware.