OLPC Firmware q4d21
OLPC Firmware Release q4d21
Works on XO-1.75 B1, C1, and 3A1 only. Do not use on A2 or A3.
- support ISO 9660 images on non-optical drives, <trac>12018</trac>,
- support for new fs-load command, the inverse of fs-save,
- fix for failure of Q4D20 to boot Linux on 512 MB systems, <trac>12008</trac>.
Download | q4d21.rom |
Build date time | 2012-07-18 03:38:32 |
Source revision | 3069 |
EC version | 0.5.00 |
CForth version | 88611fc0 |
Wireless firmware version | Libertas thinfirm 9.0.7.p2 |
Changes
Open Firmware
- 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. <trac>12018</trac>
- 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.
- 3062 OLPC ARM - don't touch cam-pwrdn GPIO on platforms that don't have it. (CL4 now builds cleanly)
- 3061 OLPC ARM - removed dead commented-out line from lcd.fth
- 3060 OLPC ARM - split previously-ifdef'ed testitems.fth file into per-platform non-ifdef'ed versions.
- 3059 OLPC ARM - moved cpu/arm/olpc/testitems.fth down into 1.75 in preparation for copying into different platform directories and removing ifdefs.
- 3058 OLPC - synchronized keyjector.bth templates with latest olpc.bth files.
- 3057 OLPC ARM - Moved ec-platform$ from ecflash.fth to */config.fth
- 3054 OLPC ARM - Moved GPIO pin definitions out of */config.fth into separate */gpiopins.fth files.
- 3053 OLPC XO-1.75 - Added keyject.bth template.
- 3052 OLPC XO-1.5 XO-1.75 - an fs-load command, the reverse of fs-save, very slow, but useful for testing.
- 3051 OLPC XO-1.75 - move the ramdisk below load-base, as linux will not boot with it in the second half of 1GB units, add room below load-base, which can be thought of as a border between where stuff is initially loaded into, vs where stuff is moved to, <trac>12008</trac>
- 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.
- 3047 OLPC XO-1.75 - removed duplicate inclusion of telnetd dropin.
- 3046 ARM MMP2 - added io!@ routine for accessing slow IO registers that need to be read back after writing.
CForth
EC
- none
WLAN
- none
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 q4d20 ... 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 mark) game button held down. You will be asked to Release the game keys to continue. Release the ✓ (check mark) game button and watch carefully. For a short time the startup banner will be displayed, like this:
OLPC ..., ... memory installed, ..., S/N SHF7250024D OpenFirmware q4d20 ... 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
or
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.
Installation
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
- download the firmware from http://dev.laptop.org/pub/firmware/q4d20/q4d20.rom and save it to a USB drive or SD card,
- shutdown the laptop,
- 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:
ok
- if the downloaded file is on a USB drive, type:
flash u:\q4d20.rom
- if the downloaded file is on an external SD card:
flash sd:\boot\q4d20.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,
- start the Terminal Activity and type:
su cd /versions/boot/current/boot/ wget http://dev.laptop.org/pub/firmware/q4d20/q4d20.rom
- shutdown the laptop,
- 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:
ok
- if the downloaded file is on an XO-1, type:
flash n:\boot\q4d20.rom
- if the file is on the internal SD card of an XO-1.5 or XO-1.75:
flash int:\boot\q4d20.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.
- shutdown the laptop,
- 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:
ok
- 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\q4d20\q4d20.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.