OLPC Firmware q3a16


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


OLPC Firmware Release q3a16

It works on XO-1.5 A1, A2, B1, B2, and B3 systems, but does not work on any XO-1 machines.

Download: q3a16.rom

Open Firmware is svn 1482

Changes since q3a15

  • svn 1480: Trac 9489 - the int and ext devaliases were wrong for B3.
  • svn 1479: Trac 9423 - Rearranged the EHCI qh-done? routine to make the logic clearer and to add an initial delay before polling the queue header. Without that delay, USB probing fails. I think this might be a Via quirk, but I'm not sure.
  • svn 1478: Trac 9423 - Added commented-out code to report occurences of the USB problem reported in that ticket, which has been suppressed by a retry workaround.
  • svn 1477: Trac 9486 - Suite of fixes to the SMI handler and related BIOS emulation code.
  • svn 1476: Trac 9671 - Missed a file in the last checkin.
  • svn 1475: Trac 9671 - Switch display depth to 32bpp in coordination with the OS's change. Requires os40.
  • svn 1474: Fixed a "stack depth changed" warning that only happens on B3 systems. We don't have any real B3s yet, but the ECO-ed B2 revealed the problem.
  • svn 1473: Removed a compile-time message that was checked-in by accident.
  • svn 1472: Trac 9671 - restore video state to 32bpp mode.
  • svn 1471: Restore display FIFO registers and other tuning knobs in S3 resume.
  • svn 1470: Added EDID data for the XO display to the display driver for use by Openchrome.
  • svn 1469: DSDT was missing _HID for EC node, causing a blue screen from ACPIHAL.
  • svn 1466: Trac 9481 - Move the "turn off unused clock generator outputs" code into the early-startup assembly language code so it will work in S3 resume too.
  • svn 1465: Trac 9481 - turn off unused clock generator outputs to save power. New commands "enable-unused-clocks" and "disable-unused-clocks" for power testing.
  • svn 1464: A few more register tweaks based on recommendations from Via
  • svn 1463: Trac 9638 - fixed USB Ethernet driver to work with Asix AX88772A devices. AX88772 has been working for a long time, but the A-suffix parts are a little different. The main problem was that the A parts have additional bulk I/O pipes, which was confusing the code that chose which pipes to use for Ethernet data transmission. A secondary problem was that the loopback scheme for working around the loss of the first receive packet has to be revised for the A parts.
  • svn 1462: Trac 9333 - fixed screen flicker by setting the VIA display FIFO registers.
  • svn 1461: SDHCI and USB host controller drivers - enable memory write and invalidate in PCI enable register to optimize cache performance.
  • svn 1460: Big mess o' tweaks to PCI config register values to make the settings match the Phoenix values as closely as possible. Trying to sort out why the screen tears on graphics accelerator operations in X, so minimizing differences from non-tearing case.
  • svn 1459: Trac 9611 - EHCI USB 2.0 driver - When a pipe has to be unstalled, the execution of control-set from inside a bulk-out transaction killed the "my-qh" value, leading to erratic behavior such as page faults.
  • svn 1458: Trac 9489 - implement SD port reassignments and DCONINT GPIO change for B3 build.
  • svn 1457: DSDT source formatting from Paul Fox: Remove all trailing whitespace.
  • svn 1456: DSDT fix from Paul Fox: Change lid wakeup behavior so we only wake on lid open. (Later this behavior will be selectable.)
  • svn 1455: Trac 9589 - Fixed several cases where the startup sound would be left playing instead of automatically turning off after one play of the sound. At the same time, I prevented the frame key from interrupting the early startup, which could lead to the display not working right. The startup sound now stops abruptly when you go to the ok prompt. That is intentional.
  • svn 1454: Trac 9574 - Fixed memory size reporting problem for 32-bit memory interface. Also switched the timing test words "t( .. )t" to use the ACPI timer instead of the timestamp counter, because the latter's frequency changes with thermal throttling.
  • svn 1453: Trac 9576 - fixed regression in "test /camera".
  • svn 1452: XO-1.5 Sync battery error codes with EC code

EC code is version 1.9.14

<same as in q3a14>

WLAN firmware is 9.70.7.p0

<same as in q3a14>

Which Firmware Do You Have?

If your machine is not in secure mode, the firmware version is displayed in the startup banner, as in:

 OLPC XO 1.5, 1 GiB memory installed, S/N SHF7250024D
 OpenFirmware  CL1   Q3A04 Q3A

If your machine is in secure mode, you can go to the Terminal activity and type

 cat /ofw/openprom/model

If your machine is in secure mode but the OS will not start, just go ahead and try to upgrade the firmware anyway. The procedure is safe and will not do anything if you already have up-to-date firmware.

You can see the firmware version in secure mode by powering up with the "check" game button held down.

You can also go to the main Sugar screen, click on the little man and select "about this XO"


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