Firmware: Difference between revisions

From OLPC
Jump to navigation Jump to search
(link to future releases was not useful or helpful in this context)
No edit summary
 
(257 intermediate revisions by 22 users not shown)
Line 1: Line 1:
{{OLPC}}
{{OLPC}}

== Introduction ==


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


== Updating ==
== Updating - For Users ==


[[Upgrading the XO]] to a new release usually updates both the firmware and the operating system software. Users should update to the latest stable release to get the latest stable versions of both.
[[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.


Users can also upgrade just the firmware to the latest official (signed) release, see [[Upgrading firmware]]
However, users may [[Upgrading firmware|upgrade just the firmware]] to the latest signed release.


== Technical Background ==
== Updating - For Developers ==


Developers who have an unsecured laptop or a [[developer key]] have more options:
The firmware is in two parts:
* install any of the firmware releases below; choose one, download the {{Code|.rom}} file, and then follow the [[Firmware/Install]] instructions.
* 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,
* alter the [[secure upgrade]] to use one of the firmware files below.
* [[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.


<b>Note: avoid downgrading, as certain downgrades may brick your XO.</b>
These two parts are bundled together as one .rom file.


== Brick Recovery ==
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.


Updating using the methods above requires working firmware. If the firmware is not working, and the laptop is bricked, the options are:
The SPI flash contains the [[Embedded controller]] ("EC") firmware, [[Open Firmware]], and [[Manufacturing_Data|2k Manufacturing Data]].


* a [[SPI_FLASH_Recovery|recovery procedure]] for updating the SPI FLASH chip using another system, and
See [[Media:FWmap.png| Firmware SPI FLASH Map]] or [[Media:FWmap.zip|its dia source file]].
* a [[XO_Replacing_SPI_flash|replacement procedure]] for the SPI FLASH chip.


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


== Firmware Releases ==
Developers who have an unsecured laptop or a [[developer key]] have more options.
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.
* 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.


The first two letters of the firmware version serve as a laptop model. The following table shows how the prefix must be interpreted:
<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 :-(

{| border="1" cellspacing="0" cellpadding="6" class="wikitable"
! model
! start year
! prefix
! link
|-
| XO-4
| 2012
| Q7
| [[#XO-4|releases]]
|-
| XO-3
| 2011
| Q5
| [[#XO-3|releases]]
|-
| XO-1.75
| 2010
| Q4
| [[#XO-1.75|releases]]
|-
| XO-1.5
| 2009
| Q3
| [[#XO-1.5|releases]]
|-
| XO-1
| 2006
| Q2
| [[#XO-1|releases]]
|}

The latest release is the first in the list.

=== XO-4 ===
<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]].
* q7b38 - 2014-04-09 [[OLPC Firmware q7b38]] support power button for [[Android]].
* q7b37 - 2013-07-12 [[OLPC Firmware q7b37]] fix NANDblaster. ''Shipped in [[13.2.0]].''
* q7b36 - 2013-07-06 [[OLPC Firmware q7b36]] fix startup sound when volume keys pressed.
* q7b35 - 2013-06-26 [[OLPC Firmware q7b35]] preproduction on new line.
* q7b34 - 2013-06-21 [[OLPC Firmware q7b34]] EC firmware fixes, test fixes.
* q7b33 - 2013-06-15 [[OLPC Firmware q7b33]] EC firmware fixes.
* q7b32 - 2013-05-27 [[OLPC Firmware q7b32]] EC firmware fixes.
* q7b31 - 2013-05-20 [[OLPC Firmware q7b31]] fix audio period sizes, ignore NTFS filesystems on boot.
* q7b30 - 2013-05-02 [[OLPC Firmware q7b30]] switch to higher speed <trac>12666</trac>
* q7b29 - 2013-04-15 [[OLPC Firmware q7b29]]
* q7b28 - 2013-04-02 [[OLPC Firmware q7b28]] Post-ramp, fix clock, restore bluetooth test, fix audio test.
* q7b27 - 2013-03-15 [[OLPC Firmware q7b27]] EC firmware fixes to improve wakeup
* q7b26 - 2013-03-13 [[OLPC Firmware q7b26]] touchscreen linearity test tuning
* q7b25 - 2013-03-12 [[OLPC Firmware q7b25]] touchscreen linearity test
* q7b24 - 2013-03-08 [[OLPC Firmware q7b24]] EC Firmware fixes to improve wakeup stability, touchscreen linearity test
* q7b23 - 2013-03-06 [[OLPC Firmware q7b23]] Unused cores powered off <trac>12589</trac>. ''Shipped in [[13.1.0]].''
* q7b22 - 2013-03-04 [[OLPC Firmware q7b22]] EC fix for communications loss <trac>12525</trac>
* q7b21 - 2013-03-01 [[OLPC Firmware q7b21]] EC_IRQ# timing change for 1 GHz machines
* q7b20 - 2013-03-01 [[OLPC Firmware q7b20]] Fixed disappearing mouse cursor after display selftest
* q7b19 - 2013-02-26 [[OLPC Firmware q7b19]] WLAN_PD GPIO sleep state depends on board rev, thus fixing a WLAN suspend/resume problem.
* q7b18 - 2013-02-25 [[OLPC Firmware q7b18]] Serial terminal, bluetooth tests, new EC firmware.
* q7b17 - 2013-02-21 [[OLPC Firmware q7b17]] Various fixes, remote diagnosis console, 5 GHz network support.
* q7b16 - 2013-02-14 [[OLPC Firmware q7b16]] Various fixes
* q7b15 - 2013-02-08 [[OLPC Firmware q7b15]] Various fixes
* q7b14 - 2013-01-26 [[OLPC Firmware q7b14]] Corrected polarity of reset-gpios property
* q7b13 - 2013-01-25 [[OLPC Firmware q7b13]] reset-gpios property in WLAN SDHCI node
* q7b12 - 2013-01-24 [[OLPC Firmware q7b12]]
* q7b11 - 2013-01-08 [[OLPC Firmware q7b11]]
* q7b10 - 2013-01-03 [[OLPC Firmware q7b10]]
* q7b08 - 2012-12-07 [[OLPC Firmware q7b08]]
* q7b05 - 2012-11-08 [[OLPC Firmware q7b05]] More SPI FLASH parts supported, eMMC reset fix, ...
* q7b04 - 2012-10-26 [[OLPC Firmware q7b04]] C1 pre-SMT with SPI FLASH ID change
* q7b03 - 2012-10-10 [[OLPC Firmware q7b03]] B1
* q7a14 - 2012-09-10 [[OLPC Firmware q7a13]] B1 pre-SMT with SPI FLASH ID change
* q7a13 - 2012-09-06 [[OLPC Firmware q7a13]] A2
* q7a12 - 2012-09-04 [[OLPC Firmware q7a12]] A2

=== XO-3 ===
<span style="color:red; ">WARNING! [[XO-3]] Firmware will NOT work on an XO-1, XO-1.5 or XO-1.75.</span>

* q5a04 - 2012-01-07 [[OLPC Firmware q5a04]] Can boot with USB keyboard attached.
* q5a03 - 2011-12-13 [[OLPC Firmware q5a03]] Fix fuses, fit and finish improvements.

=== 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>

<span style="color:red; ">WARNING! [[XO-1.75]] Firmware versions >= q4a10 will NOT work on A1 version boards.</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]].''
* q4d33 - 2013-07-06 [[OLPC Firmware q4d33]] fix startup sound when volume keys pressed.
* q4d32 - 2013-06-26 [[OLPC Firmware q4d32]] preproduction on new line.
* q4d31 - 2013-06-15 [[OLPC Firmware q4d31]] fixes for save-mfg-data.
* q4d30 - 2013-05-20 [[OLPC Firmware q4d30]] fix for chosen bootpath for 13.2.0, and ignore NTFS filesystems.
* q4d29 - 2013-04-18 [[OLPC Firmware q4d29]]
* q4d28 - 2013-03-15 [[OLPC Firmware q4d28]]
* q4d27 - 2013-02-14 [[OLPC Firmware q4d27]]
* q4d26 - 2013-01-04 [[OLPC Firmware q4d26]] EC update, move startup sound to eMMC.
* q4d25 - 2012-11-26 [[OLPC Firmware q4d25]] Development version.
* q4d24 - 2012-11-25 [[OLPC Firmware q4d24]] another fix for booting certain operating system images. ''Shipped in [[13.1.0]].''
* q4d23 - 2012-11-23 [[OLPC Firmware q4d23]] fix for booting certain operating system images.
* q4d22 - 2012-11-15 [[OLPC Firmware q4d22]]
* q4d21 - 2012-07-18 [[OLPC Firmware q4d21]]
* q4d20 - 2012-07-10 [[OLPC Firmware q4d20]]
* q4d19 - 2012-07-03 [[OLPC Firmware q4d19]] <span style="color:red; ">Withdrawn</span>
* q4d18 - 2012-06-18 [[OLPC Firmware q4d18]] fix for USB scanners in production, regression was only in Q4D17,
* q4d17 - 2012-06-15 [[OLPC Firmware q4d17]] support for alternate source RAM chips. ''Shipped in [[12.1.0]].''
* q4d16 - 2012-06-06 [[OLPC Firmware q4d16]] support for 1 GHz processor, and test menu improvements.
* q4d15 - 2012-05-24 [[OLPC Firmware q4d15]] fixes for USB serial adapters, and new .os command,
* q4d14 - 2012-05-18 [[OLPC Firmware q4d14]] fixes for audio codec test, RTC SRAM initialisation,
* q4d13 - 2012-05-02 [[OLPC Firmware q4d13]] EC update, turn off USB over suspend.
* q4d12 - 2012-04-25 [[OLPC Firmware q4d12]] fix for ASIX USB PHY second power up, and another ext2 fix.
* q4d11 - 2012-04-24 [[OLPC Firmware q4d11]] fix for ASIX USB PHY power down, and some ext2 fixes.
* q4d10 - 2012-04-18 [[OLPC Firmware q4d10]] fix thermal protection, fix error during tag changes.
* q4d09 - 2012-04-08 [[OLPC Firmware q4d09]] add BREAK, add ''fs-save'', fix ext2/3/4.
* q4d08 - 2012-03-28 [[OLPC Firmware q4d08]] Fix menu sudden exit regression in q4d07.
* q4d07 - 2012-03-27 [[OLPC Firmware q4d07]] Fix suspend/resume selftest problem for manufacturing run.
* q4d06 - 2012-03-21 [[OLPC Firmware q4d06]] many changes.
* q4d05 - 2012-03-05 [[OLPC Firmware q4d05]] fix to tests, null-fsdisk, support new camera sensor.
* q4d04 - 2012-02-24 [[OLPC Firmware q4d04]] fs-update, fs-verify, fatfs, and terminal emulator improvements.
* q4d03 - 2012-02-07 [[OLPC Firmware q4d03]] C2 ramp - improved S3 reliability, fixed flattened device tree.
* q4d02 - 2012-01-24 [[OLPC Firmware q4d02]] C2 ramp.
* q4d01 - 2012-01-16 [[OLPC Firmware q4d01]] C2 ramp.
* q4c12 - 2012-01-09 [[OLPC Firmware q4c12]] Multiple changes.
* q4c11 - 2011-12-28 [[OLPC Firmware q4c11]] Fix touchpad test in menu.
* q4c10 - 2011-12-27 [[OLPC Firmware q4c10]] Fix regression in LED selftest.
* q4c09 - 2011-12-22 [[OLPC Firmware q4c09]] WEP and WPA WiFi authentication are working.
* q4c08 - 2011-12-21 [[OLPC Firmware q4c08]] Test candidate for C2 build. EC crash fixes.
* q4c07 - 2011-12-02 [[OLPC Firmware q4c07]] Test candidate for C2 build.
* 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. ''Shipped in [[11.3.0]].''
* 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]] <span style="color:red; ">Withdrawn</span>


== Firmware Releases ==
The latest release is the first in the list:
=== 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]].''
* q3c15 - 2013-06-06 [[OLPC Firmware q3c15]]
* q3c14 - 2013-05-02 [[OLPC Firmware q3c14]]
* q3c13 - 2013-04-18 [[OLPC Firmware q3c13]]
* q3c12 - 2013-03-15 [[OLPC Firmware q3c12]]
* q3c11 - 2013-02-14 [[OLPC Firmware q3c11]]
* q3c10 - 2012-11-24 [[OLPC Firmware q3c10]] Development version.
* q3c09 - 2012-08-28 [[OLPC Firmware q3c09]] ''Shipped in [[13.1.0]].''
* q3c08 - 2012-07-10 [[OLPC Firmware q3c08]]
* q3c07 - 2012-06-15 [[OLPC Firmware q3c07]] ''Shipped in [[12.1.0]].''
* 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.
* q3c04 - 2012-04-03 [[OLPC Firmware q3c04]]
* q3c03 - 2012-03-21 [[OLPC Firmware q3c03]]
* q3c02 - 2012-02-26 [[OLPC Firmware q3c02]]
* q3c01 - 2012-02-13 [[OLPC Firmware q3c01]]
----
* 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]].''
* 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. ''Shipped in [[11.2.0]].''
* 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. ''Shipped in [[10.1.3]].''
* 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.
* q3a58 - 2010-09-20 [[OLPC Firmware q3a58]]
* 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.
* 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]]
* q3a49 - 2010-08-04 [[OLPC Firmware q3a49]]
* q3a48 - 2010-08-03 [[OLPC Firmware q3a48]]
* q3a48 - 2010-08-03 [[OLPC Firmware q3a48]]
* q3a47 - 2010-07-29 [[OLPC Firmware q3a47]] Another fix for ADATA 8GB microSD cards requested by factory.
* 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.
* 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
* 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
* q3a44 - 2010-07-19 [[OLPC Firmware q3a44]] Add secure NANDblaster, RAMP for CL1C XO-1.5 HS
Line 66: Line 280:
* q3a16 - 2009-11-14 [[OLPC Firmware q3a16]] B3 support, 32bpp, no display flicker, ...
* 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
* q3a15 - 2009-10-30 [[OLPC Firmware q3a15]] Lots of fixes, see release notes
* q3a14 - 2009-10-23 [[OLPC Firmware q3a14]] Unofficial
* q3a14 - 2009-10-23 [[OLPC Firmware q3a14]] Unofficial
* q3a13 - 2009-10-12 [[OLPC Firmware q3a13]] Fixed register init bug introduced by A12
* 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>
* q3a12 - 2009-10-10 [[OLPC Firmware q3a12]] B2 stabilization. <span style="color:red; ">Use Q3A13 instead</span>
Line 79: Line 293:


=== XO-1 ===
=== 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.
* 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]].''
* q2f18 - 2013-06-06 [[OLPC Firmware q2f18]]
* q2f17 - 2013-04-18 [[OLPC Firmware q2f17]]
* q2f16 - 2013-03-15 [[OLPC Firmware q2f16]]
* q2f15 - 2013-02-14 [[OLPC Firmware q2f15]]
* q2f14 - 2012-11-24 [[OLPC Firmware q2f14]] Development version.
* q2f13 - 2012-07-10 [[OLPC Firmware q2f13]] ''Shipped in [[13.1.0]].''
* q2f12 - 2012-06-13 [[OLPC Firmware q2f12]] ''Shipped in [[12.1.0]].'' ''Shipped in [[11.3.1]].''
* q2f11 - 2012-05-17 [[OLPC Firmware q2f11]] fix build date, fix SD card test.
* q2f10 - 2012-05-01 [[OLPC Firmware q2f10]] ext2, ext3, and ext4 filesystem fixes.
* q2f09 - 2012-04-03 [[OLPC Firmware q2f09]]
* q2f08 - 2012-03-21 [[OLPC Firmware q2f08]]
* q2f07 - 2012-02-26 [[OLPC Firmware q2f07]]
* q2f06 - 2012-02-14 [[OLPC Firmware q2f06]]
* 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]] ''Shipped 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. ''Shipped in [[10.1.2]].'' ''Shipped in [[10.1.3]].'' ''Shipped in [[11.2.0]].''
* q2e44 - 2010-05-21 [[OLPC Firmware q2e44]] Fixed camera test brightness and timer test reliability.
* 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.
* 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.
* 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.
* q2e41 - 2009-04-15 [[OLPC Firmware q2e41]] Missing TS tag is not factory boot order. ''Possibly shipped in [[8.2.1]].''
* q2e40 - 2009-04-13 [[OLPC Firmware q2e40]] Fixed Windows booting when USB keyboard attached.
* 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.
* q2e39 - 2009-04-02 [[OLPC Firmware q2e39]] Moved wired Ethernet to start of manufacturing mode boot order.
Line 181: Line 415:
* Q2A42 - 2006-11-12 Production release for B-test build [[OLPC Firmware Q2A42]]
* Q2A42 - 2006-11-12 Production release for B-test build [[OLPC Firmware Q2A42]]
* Q2A11 - 2006-10-17 "Unblocker" Interim Release [[OLPC Firmware Q2A11]]
* Q2A11 - 2006-10-17 "Unblocker" Interim Release [[OLPC Firmware Q2A11]]

=== 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 [[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.

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_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]].

For XO-1.75, the .rom file contains [[Open Firmware]] and [[Manufacturing_Data|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 ==
* [[Firmware/Storage/Formats|How to prepare removable media for use by the firmware]]
* [[Firmware/Identify|How to identify the firmware version]]
* [[Firmware/Identifying_Wireless_LAN_Device|How to identify the wireless LAN device]]
* [[Firmware/Install|How to install firmware]]
* [[XO_Self_Test|How to use the test menu]]
* [[Firmware/Remote|How to use remote support features]]
* [[Firmware/Serial_Terminal|How to use serial terminal 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]]
* [[Startup_sound|How to customise the startup sound]]
* [[Firmware/Building|How to build 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]]
* [[Firmware_release_procedures|How to release Open Firmware for OLPC]]
* [[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