OLPC Firmware q3a63


Jump to: navigation, search
  This page is monitored by the OLPC team.


OLPC Firmware Release q3a63

  • EC 2.1.0 active maximum power point tracking for solar panel charging,
  • synchronise with XO-1.75 sources,
  • battery recovery tools,
  • RTC, device tree adjustments [Daniel Drake],
  • SDHCI and USB changes.

Works on XO-1.5 A1, A2, B1, B2, B3, C1, C2 and C3 systems, but does not work on any XO-1 machines.

Download: q3a63.rom

Changes since q3a62

Open Firmware svn 2185 Built 2011-04-12 03:09:32

  • svn 2087 OLPC - factored game key button names into a separate file so the XO-1.75 implementation of game-key@ can use the symbolic names.
  • svn 2110 X86 assembler - added imul-imm and imul2 for assembling alternative forms of the IMUL instruction. Trying to work out the instruction form automatically from the operands is just too hard.
  • svn 2112 Kernel - fixed a longstanding inefficiency in the code that handles "is" / "to" for basic datatypes like value and defer. "to <value>" is now much faster, comparable in speed to "<variable> @".
  • svn 2119 inflate.c - removed a small vestige of GPL code (a single #define) so the code is clean - based on stuff that Mark Adler's put in the public domain.
  • svn 2125 Added "x86" to CPU type recognizer script (alternative i*86)
  • svn 2126 Mostly-cosmetic changes to the wrapper. You can turn on simulator sign-on chattiness by defining VERBOSE.
  • svn 2132 Initial revision of null implementation of ZIP routines for wrapper.
  • svn 2136 OLPC XO-1.5 - undo part of -r2120 because it broke build
  • svn 2137 Kernel - fixme: now reports extra information.
  • svn 2141 USB EHCI driver - fixed longstanding stack bug in intr-in? which broke USB keyboard support. I'm unsure why we didn't notice this problem a long time ago. In the process of fixing the bug, I rewrote part of intr-in? for better stack clarity.
  • svn 2149 Reverted change to inflate.c introduced by r2097. Without the "section text_inflate" attribute on the inflate() function, the GCC optimizer moves code so that huft_build() appears first in the file. OFW expects inflate() to be at the beginning of the image.
  • svn 2150 OLPC XO-1.5 - cancel ANSI text attributes for use with black background terminals, adopt same change from XO-1.75.
  • svn 2152 USB - extensive surgery on USB probing code so hot-plug works behind hubs.
  • svn 2153 Remove machine signature check as it serves no purpose ... flashing wrong file is prevented by the changed crc-offset in addrs.fth. Move unused check-firmware-image into [if]. ticket #10616
  • svn 2154 USB - reprobe on open even if the stack is already open. This makes probing work when a USB keyboard is attached and in use, thus keeping the stack open.
  • svn 2155 USB - handle overcurrent conditions more gracefully.
  • svn 2158 Reinstate machine signature check using prefix of model property as used by the device tree. Tested by attempting to flash Q4A12 on XO-1.5. ticket #10616.
  • svn 2159 Change machine signature check to use a value stored in dictionary instead of SPI FLASH. ticket #10616. Not tested on XO-1.75 A2. Tested on XO-1.5. (Build broken on XO-1 as of 2152, reset-port undefined).
  • svn 2160 Synaptics touchpad driver - removed more dead code and fixed bogus comments left over from the ALPS driver.
  • svn 2164 USB - fixed OHCI breakage from recent probing rewrite.
  • svn 2171 USB keyboard driver - fixed typos in commentary caused by a search and replace error.
  • svn 2174 SDHCI - The SD switch-function command - CMD6 - is response type R1, not R1b (as opposed to the MMC SWITCH command - also CMD6 - which is R1b). The SDHCI spec isn't clear what happens when you (erroneously) specify a command with both data transfer and busy. On the first two SDHCI implementations we have seen, the data transfer overrides the busy, but the Marvell MMP2 SDHCI returns two Transfer Complete interrupts - one for the spurious "not busy", and one for the transfer complete. The spurious "not busy" interrupt confused the driver in thinking that the data was ready, when it was not. The fix is to issue the correct command form (R1 without busy) for SD CMD6.
  • svn 2175 From Daniel Drake: In Linux we plan to use the device tree for probing the DCON, battery, and XO-1 RTC drivers. Add the required information using the naming scheme suggested by Grant Likely. The dcon node and battery's compatible property apply for both XO-1 and XO-1.5. The RTC's compatible property is only added for XO-1, in order to trigger the XO-1-specific RTC wakeup driver.
  • svn 2178 Fix typo in mppt-limit@
  • svn 2179 XO-1.5 1.5: Add bat-recover tool from batman.fth - This makes doing bat-recover on a lot of batteries that have charge balance a lot easier since you don't have to reload batman.fth every reboot.
  • svn 2182 Infrastructure - Replace the wrapper's gzip compression library with zlib. Zlib is under active development, and is unencumbered by GPL or patents, hence a better choice for implementations allergic to those issues. The zlib files have not been modified, primarily to ease future porting. The conversion from a zlib-format deflated buffer to a gzip-deflated buffer is done in the wrapper.
  • svn 2184 Make watch-mppt output the raw voltage A/D reading. The previous attempt to output a voltage was flawed because the output is non linear.
  • svn 2185 XO-1.5, New EC code 2.1.0 with active MPPT.

EC code is version 2.1.0

  • active maximum power point tracking for solar panel charging

WLAN firmware is Libertas thinfirm 9.0.7.p2

  • no change

Which Firmware Do You Have?

The best method for finding out what firmware version you have on a laptop depends on whether the laptop is secured or not, and what operating state it is in.

Unsecured Laptop

Obtain the Ok prompt, the firmware version is displayed in the startup banner, thus:

 OLPC ..., ... memory installed, ..., S/N SHF7250024D
 OpenFirmware  q3a63 ...   EC Firmware Ver:...

You can also obtain the built date:

 ok .built

This is the date and time that this image of the firmware was built by the release engineer.

Secured Laptop

Power up the laptop with the "check" game button held down. You will be asked to Release the game keys to continue. Release the "check" game button and watch carefully. For a short time the startup banner will be displayed, like this:

 OLPC ..., ... memory installed, ..., S/N SHF7250024D
 OpenFirmware  q3a63 ...   EC Firmware Ver:...

Alternatively, if the laptop is already booted, go to the Sugar home view, click on the icon at the centre of the screen and select "My Settings" then "About my Computer." The firmware version is displayed there.

Alternatively, in the Terminal activity or a text console, type:

 cat /proc/device-tree/openprom/model


 cat /ofw/openprom/model

With certain older firmware versions, if the operating system will not start, and the laptop is secured, you will not be able to obtain the firmware version using the above methods, so our recommendation is to go ahead and upgrade anyway. The procedure is safe and will not do anything if you already have up-to-date firmware.


When installing new firmware, you must have a well-charged battery and the AC adapter plugged in. The firmware update code will not proceed otherwise. Possible error messages are:

error message how to fix
AC not present plug in the power cord, check the battery LED is on, then try again.
No external power plug in the power cord, check the battery LED is on, then try again,
No battery plug in the battery, check the latches, then try again, or try another battery,
Battery low allow more time for the battery to charge, then try again, or try another battery.

Unsecured Laptop

This section is for unsecured laptops. Most XO-1.5 and XO-1.75 laptops are unsecured. Most developer XO laptops are unsecured. To unsecure your laptop, follow the instructions at Activation and Developer Keys.

You may install using either:

  • a USB drive or SD card,
  • the laptop's internal drive,
  • a network.

Choose one.

Using a USB drive or SD card

  • check the battery is inserted and locked,
  • check that the power cord is in place and the battery indicator is green,
  • insert the USB drive or SD card,
  • turn on the laptop, and get to the 'ok' prompt. See Ok for more detail. You should see:
  • if the downloaded file is on a USB drive, type:
 flash u:\q3a63.rom
  • if the downloaded file is on an external SD card:
 flash sd:\boot\q3a63.rom
  • wait for the laptop to reboot itself,
  • remove the USB drive or SD card.

(Expert users may remove the USB drive after the message "Got firmware" ... at this stage the file has been read and closed.)

Using the laptop internal drive

An alternate method is to download the firmware file to the laptop internal drive and then install from the internal drive.

  • start the laptop,
  • connect to a wireless or wired network,
cd /versions/boot/current/boot/
wget http://dev.laptop.org/pub/firmware/q3a63/q3a63.rom
  • check the battery is inserted and locked,
  • check that the power cord is in place and the battery indicator is green,
  • turn on the laptop, and get to the 'ok' prompt. See Ok for more detail. You should see:
  • if the downloaded file is on an XO-1, type:
flash n:\boot\q3a63.rom
  • if the file is on the internal SD card of an XO-1.5 or XO-1.75:
flash int:\boot\q3a63.rom

Using a network

You will need a compatible USB to ethernet adapter, or an open or WEP wireless access point, connected to the internet.

  • check the battery is inserted and locked,
  • check that the power cord is in place and the battery indicator is green,
  • turn on the laptop, and get to the 'ok' prompt. See Ok for more detail. You should see:
  • if using wireless, type the essid of the wireless network:
essid mynetwork
  • if using a WPA wireless access point, type the WPA key for the network:
wpa passphrase
  • type the flash command using the download link above, but change all slash characters so they are backwards, for example:
flash http:\\dev.laptop.org\pub\firmware\q3a63\q3a63.rom

Secured Laptop

Secured laptops can only use flash firmware that has been signed. All mass-production machines had the latest firmware at the time of manufacture.

Upgrading firmware describes how to upgrade to a newer signed firmware release.

See also

  • Cheat codes for information about how game buttons control startup options.
Personal tools
  • Log in
  • Login with OpenID
About OLPC
About the laptop
About the tablet
OLPC wiki