Firmware

From OLPC
Jump to navigation Jump to search

{{OLPC}} == 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 [[EC|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_images|OS image]] and user data. The SPI flash contains the [[Embedded controller]] ("EC") firmware, [[Open Firmware]], and [[Manufacturing_Data|2k Manufacturing Data]]. See [[Media:FWmap.png| Firmware SPI FLASH Map]] or [[Media:FWmap.zip|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's name for instructions. * They can alter the [[secure upgrade]] to use one of the firmware files below. * There is also ** a [[Upgrading_firmware|manual update procedure]] for the SPI flash ** [[Olpcflash.c|C source code]] for a self-hosted Linux flash writer (may destroy the manufacturing data) ** [http://mailman.laptop.org/pipermail/devel/2007-March/004143.html instructions for flashing via Open Firmware] ** a [[SPI_FLASH_Recovery|recovery procedure]] that requires the use of a serial cable and external oscillator. <b>Note: Once you upgrade to the Q2Cxx series of firmware do not downgrade to Q2Bxx!</b> 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 === <span style="color:red; ">WARNING! [[XO-1.75]] Firmware will NOT work on an XO-1 or an XO-1.5.</span> * 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]] <span style="color:red; ">Withdrawn</span> === XO-1.5 === <span style="color:red; ">WARNING! [[XO-1.5]] Firmware will NOT work on a XO-1.</span> * 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]] <span style="color:red; ">Withdrawn</span> * 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]] <span style="color:red; ">Withdrawn sus/res broken</span> * 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]] <span style="color:red; ">Withdrawn in favor of q3a18</span> * 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. <span style="color:red; ">Use Q3A13 instead</span> * 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 <span style="color:red; ">XXX withdrawn in favor of Q2E24 which fixes a few NANDblaster bugs </span> * 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 <span style="color:red; ">Don't use on [[B2]] or B1 hardware </span> * q2e16 - 2008-09-09 [[OLPC Firmware q2e16]] 8.2.0 test candidate 4 <span style="color:red; ">Don't use on B2 or B1 hardware</span> * q2e15 - 2008-08-29 [[OLPC Firmware q2e15]] 8.2.0 test candidate 3 <span style="color:red; ">Don't use on B2 or B1 hardware</span> * q2e14 - 2008-08-22 [[OLPC Firmware q2e14]] 8.2.0 test candidate 2 <span style="color:red; ">Don't use on B2 or B1 hardware</span> * q2e13 - 2008-08-14 [[OLPC Firmware q2e13]] 8.2.0 test candidate 1 <span style="color:red; ">XXX withdrawn - Breaks mouse on older released builds 690 - 711 </span> <span style="color:red; ">Don't use on B2 or B1 hardware</span> * q2e12 - 2008-07-29 [[OLPC Firmware q2e12]] Like q2e11 but with minimal fix for <trac>7607</trac> <span style="color:red; ">Don't use on B2 or B1 hardware</span> * q2e11 - 2008-07-15 [[OLPC Firmware q2e11]] 8.1.2 test candidate (see [[OLPC SW-ECO 6]]) <span style="color:red; ">Don't use on B2 or B1 hardware</span> * q2e10 - 2008-07-03 [[OLPC Firmware q2e10]] First test release of OFW2 <span style="color:red; ">Don't use on B2 or B1 hardware</span> ---- * 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 <span style="color:red; ">XXX withdrawn - upgrade soon</span> * q2d05 - 2007-11-27 [[OLPC Firmware q2d05]] Ship.2 2nd mass production release <span style="color:red; ">XXX withdrawn - upgrade soon</span> * q2d04 - 2007-11-08 [[OLPC Firmware q2d04]] Ship.2 release with wireless update improvements * q2d03 - 2007-10-29 [[OLPC Firmware q2d03]] <span style="color:red; ">Final mass production release</span> * 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 :-() : <span style="color:red; ">'''Do not downgrade from C series to B series'''</span> * 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]] [[Category:Subsystems]] [[Category:Firmware]] [[Category:Firmware ROM]]