OLPC Firmware q3a29


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


OLPC Firmware Release q3a29

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

Download: q3a29.rom

Open Firmware is svn 1691

  • r1690 - USB - in the reuse-existing-driver test, added a check that the vendor-id, device-id, and revision match.
  • r1689 - HDAudio selftest - Added a delay after connect-loopback to give time for complete insertion.
  • r1688 - Q3A28
  • r1687 - olpc/via/copynand.fth - removed some unused code.
  • r1686 - OLPC XO-1.5 wlan driver - reset the driver upon resume from S3 so the device can be used or tested after suspending.
  • r1685 - OLPC display test - in final-test mode, wait for the operator to type a key to cycle from one test to the next.
  • r1684 - Q3A27
  • r1683 - XO-1.5 NANDblaster, first cut.
  • r1682 - Integrated noise-correlation-based automatic seltest into OLPC XO-1.5 audio driver.
  • r1681 - Refactored and improved line-drawing tools, adding Bezier curves and other bells and whistles.
  • r1680 - Unichrome display driver - Added depth-dependent support for point and line drawing.
  • r1679 - changes from chia-hsiu: fix handling of KA tag, for comparision purposes, adjust rtc +/- limit, and add support for the "repass" file.
  • r1678 - Initial checkin of drawboard.fth, which draws an outline of the XO-1.5 circuit board with connectors, useful for manufacturing diagnostic messages.
  • r1677 - olpc/waveform.fth - added Bezier curve drawing and double-size drawing.
  • r1676 - OLPC trac 9423 - Fixed the longstanding problem with losing the first receive packet with USB Ethernet devices. The problem was much deeper, involving data toggle mismatches in the EHCI driver when the driver is re-opened and a new bulk-in ring is established.
  • r1675 - OLPC trac 9691 - changed the order of some steps in the USB ethernet start code in hopes of eliminating the "lost first receive packet" syndrome. With these changes, the two Asix-based adapters that I have in hand both start reliably with no DHCP retries.
  • r1674 - OLPC trac 9969 - comment:5 - fixed regression that happens when you remove and reinstert a USB device.
  • r1673 - OLPC 1.5: EC version to 1.9.21
  • r1672 - OLPC: Add IO status for GPIO_08-0F to the bat-debug. Charge mosfet is GPIO_0E
  • r1671 - OLPC: Update bat-debug comments so they match the variable names in EC code
  • r1670 - Mod ACPI reset to use cmd 0xd7 rather than 0xdb
  • r1669 - Added promiscuous and multicast reception capability to USB Ethernet drivers.
  • r1668 - obp-tftp package - can now specify either multicast sending or reception, according to whether my-ip-address or server-ip-address is in the multicast range. net: - send multicast; net:,, - receive multicast
  • r1667 - disklabel package - added the ability to specify a "partition" as the last N blocks of a device. This is useful for NANDblaster.
  • r1666 - /osfile driver - added option for specifying the disk image filename via a defer word instead of in the device specifier.
  • r1665 - OLPC 1.5: New EC code 1.9.20
  • r1664 - OLPC 1.5: Host reboot no longer watchdog reboots the EC. See svn log for more info.
  • r1663 - OLPC: Enhance the autowak functions with extra checks - Often people forget that they need to specify the wakeup time as an argument so try to check for the case when the numbers are obviously wrong. - Run sci-wakeup as well since people forget.
  • r1662 - OLPC 1.5: Make smt fw version compare work like in the builds - Version compare now checks for the requested version to be the version on the laptop before tries to do a firmware upgrade
  • r1661 - OLPC trac 9980 - disable pretty boot during factory test.
  • r1660 - improve messaging surrounding the server protocol. in particular, remove the "pre-check" for the rename target, since it causes extra "SMB Error" messages regarding the (usually) nonexistent file.
  • r1659 - OLPC trac 9969 - guarded "configuration set-config" with " reset?" $call-parent for all devices. It turns out that if you do set-config unnecessarily for devices where the configuration has already been set, it sometimes fails, and often triggers the problem described in #9423.
  • r1658 - Corrected a comment in the last checkin.
  • r1657 - OLPC trac 9972 - fixed ext2 filesystem corruption that happened in certain cases. The problem was with the sparse superblock feature. You must not write backup copies of the superblock and group descriptors in every group when that feature is enabled.
  • r1656 - OLPC trac 9969 - more USB suspend/resume progress. USB 1.1 keyboards now work across suspend/resume, both directly-connected ones and ones behind hubs. The only missing piece is making it work with OHCI, which will have to wait.
  • r1655 - Avoid memory leakage from "probe-usb" by creating the int and ext devaliases only once.
  • r1654 - OLPC trac 9969 - USB is working better after resume. Existing device nodes are reused to avoid excessive memory consumption. In the usual case where the devices are the same before and after S3, no additional memory is consumed. The only devices that are known to continue working after S3 are still Ethernet and mass storage.
  • r1653 - XO-1.5 audio - Boosted the speaker power setting to the maximum value.
  • r1652 - add support for the Pr tag. apply (many of) the changes requested by Wei-Heng in the files he sent. one concern: his "set-tag-assy" routine has a hard-coded server address, something we were trying to avoid.
  • r1651 - OLPC trac 9969 - make USB work after resume - sort of. USB 2.0 devices like mass storage devices and LANs work after resume, so long as you don't suspend/resume too many times. Eventually the system dies with "user area used up", because the device nodes get reloaded every time.
  • r1650 - Via - turn interrupt and timer machinery back on after resume from S3, so alarms and related timing things work.
  • r1649 - OLPC trac 9970 - perform CODEC setup in early startup to ensure that thermal and overcurrent protection is on after resume.
  • r1648 - OLPC trac 9957 - prevent duplicate names when using $rename or hardlink on ext2 file systems.
  • r1647 - HD Audio - improvements to core HD Audio code and preliminary checkin of noise burst selftest code. That latter needs to be integrated properly.
  • r1646 - SDHCI - removed a "Trying to reset data lines" warning message about retrying a failed card power up attempt.
  • r1645 - fix stack parity in safe-delete
  • r1644 - updates/fixes to production bootfiles

Changes since q3a26

EC code is version 1.9.21

  • Make magic 7 mode more correct
  • Update board ID code for C2
  • Fix up the cmd66 0xd7 from debug to official. 0xd7 will power cycle the host without an EC reset.
  • Reduce pwr button hard power off time. Power button power off times are now 2s and 900ms release/devel.
  • Workaround for trac 9983

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