OLPC Firmware q3c09


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


OLPC Firmware Release q3c09

Works on XO-1.5 C1-C8 systems.

  • fix for boot hang if microSD card is missing,
  • handle exceptions while opening microSD card during fs-update, ticket #12025,
  • a fixed antenna test utility, see antenna testing,
  • support for new fs-load command, the reverse of fs-save,
  • support for new SETi camera spare part,
  • support for fs-update file size check, ticket #12055,
  • support for 2MB SPI FLASH spare part,
  • support for ISO 9660 images on non-optical drives such as USB flash, ticket #12018
Download q3c09.rom
Build date time 2012-08-28 04:12:13
Source revision 3231
EC version 2.2.10
Wireless firmware version Libertas thinfirm 9.0.7.p2


  • 3229 SETi camera driver - invert the PCLK polarity so the data is sampled on the correct edge
  • 3212 OLPC XO-1.5 - fix for missing microSD card causing hang during banner, regression introduced in r2990.
  • 3206 SDHCI - handle host controllers that spuriously set the transfer interrupt bit during cmd13.
  • 3205 OLPC - fs-update, use zdata file size not spec file size for sanity-check, ticket #12055
  • 3204 OLPC - fs-update, fix sanity-check for signed install, ticket #12055
  • 3202 OLPC - fs-update, sanity-check file size if the zdata file contains a size: header line, abort if invalid, ignore if missing, ticket #12055
  • 3201 core - rename the loaded file size variable file-size to load-size, as it conflicts with a standard word file-size, rename other references in tree.
  • 3197 OLPC - Change all uses of I2C addresses for bit-banged SMBUS (I2C) to use unshifted address form.
  • 3194 OLPC - made a new word $call-dcon to break the assumption that the DCON driver is part of the screen node. It is implemented differently on different platforms, depending on the actual location of the DCON driver. For old platforms, it's equivalent to $call-screen .
  • 3193 USB EHCI driver - use string-property instead of +compatible so it can be compiled with the FCode tokenizer.
  • 3192 OLPC camera test - removed an unnecessary call to full-brightness.
  • 3189 OLPC - libertas antenna test, translate baseband processor register antenna numbers to the same numbering as used by the user interface.
  • 3188 OLPC - libertas antenna test, comply with new firmware specification that requires ordering of antenna selection commands. Now works on XO-4 A2.
  • 3164 SDHCI driver - Use new device tree layout for SDHCI nodes to support Linux SDHCI instantiation via the device tree. I made a cursory attempt to avoid breaking the XO-1 and XO-1.5 builds.
  • 3163 SDHCI driver - Wait for write operations to complete more aggressively than before. This fixes a fs-update problem with XO-4. I'm not entirely convinced that this is the right fix, so it probably needs more study, but for now, it seems to work.
  • 3149 OLPC XO-1.5 XO-1.75 - libertas, change baseband register interpretation to match new data supplied
  • 3143 OLPC - Load the crypto code in stand-init, because demand-loading it during WLAN startup can mess up resolution of later path components.
  • 3139 OLPC XO-1.5 XO-1.75 - libertas, add baseband register fetch to show currently used antenna
  • 3134 OLPC - oatstime, fix a typo, add name based virtual host support
  • 3133 OLPC - fsupdate, trivial typo
  • 3129 Debugger - added longer stack display to visual mode.
  • 3128 Debugger - improvements to visual mode - less likely to lose track of the screen position, new L keystroke to force redisplay.
  • 3099 OLPC XO-1.5 XO-1.75 - handle exceptions in open-nand during fs-update, ticket #12025
  • 3086 OLPC SPIFLASH driver - handle 2 MB parts.
  • 3068 disklabel - support ISO 9660 images on non-optical drives such as USB flash and hard drives, by using a logical sector offset to the primary volume descriptor that is consistent with the 512 byte sector size on these devices. ISO 9660:1999 6.1.2 specifies minimum logical sector size, and an offset of 16 sectors to the primary volume descriptor, but does not specify arrangement of data on devices that are not a CD-ROM. Common use is to place the image on other devices in the same way it appears on CD-ROM. ticket #12018
  • 3067 OLPC XO-1 XO-1.5 - add missing signature$, minor regression from svn 3049 prevented new builds from flashing even newer builds
  • 3066 OLPC - Added a feature to */fw-version.fth whereby you can personalize your test builds by creating build/fw-suffix with a 2-character identifier, so you don't have to edit fw-version.fth.
  • 3064 OLPC - parameterize the location of the signature string in the FLASH, now that we must deal with different FLASH sizes.
  • 3058 OLPC - synchronized keyjector.bth templates with latest olpc.bth files.
  • 3052 OLPC XO-1.5 XO-1.75 - an fs-load command, the reverse of fs-save, very slow, but useful for testing.
  • 3050 OFW core - another fix to the "relative phandles" suite, this one affecting the rarely used function "delete-package".
  • 3049 OLPC - omnibus change to greatly reduce the number of platform-specific ifdefs. The GPIOs are now named in <platform>/config.fth and referenced by name in common code. The drivers that differ between platforms are loaded in <platform>/fw.bth instead of in build-fw.fth . Hopefully this will make the code easier to maintain.

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  q3c09 ...   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  q3c09 ...   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:\q3c09.rom
  • if the downloaded file is on an external SD card:
 flash sd:\boot\q3c09.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/q3c09/q3c09.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\q3c09.rom
  • if the file is on the internal SD card of an XO-1.5 or XO-1.75:
flash int:\boot\q3c09.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\q3c09\q3c09.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