XO Replacing SPI flash

From OLPC
Jump to navigation Jump to search
  This page is monitored by the OLPC team.
  english | español HowTo [ID# 194018]  +/-  


This page describes how to fix a XO laptop locked up due to a bad SPI Flash ROM.

Problem Description

A small number of laptops suffer when their initial boot ROM (the SPI Flash ROM) forgets a bit or two. These errors are manifested with a variety of symptoms:

  • The Laptop is completely dead, due to
    • EC Failure - the Embedded controller is not functioning properly
    • Failure early in the OFW boot process, resulting in "+", "FortM", "FortDEAD", or more verbose messages printed on the serial port.
  • A blank white screen is displayed

All of these symptoms (except "FortDEAD" on the serial port) also have other causes.

Some laptops with this problem have bit errors which prevent the laptop from booting, but which do not prevent interrupting the boot process and upgrading the firmware using the serial port (This requires a developer key).

Another situation requiring this fix is if a laptop somehow looses all power (both battery and DC in) during the Firmware reprogramming operation.

Repair Process

Fixing the problem has three phases:

  • Obtaining an SPI Flash ROM with the appropriate firmware programmed onto it
  • Replacing the chip on the motherboard with the new one.
  • Restoring the serial number and UUID of the laptop

What You Will Need

  • Either a soldering iron and solder wick, or (ideally) a hot air rework station with an SOIC-8 tip.
  • The new SPI Flash ROM (see below)
  • the UUID of the laptop (if it is secure)

SPI Flash ROM

You will need a new SPI Flash ROM. The ones qualified for the XO are:

  • Winbond W25X80VSSIG
  • Spansion S25FL008A

These should be in a 0.208 in. (5.2mm) body width SOIC package.

Firmware

The Firmware must be programmed onto the chip before it is placed on the motherboard. This firmware is a binary file containing the following:

This may be programmed onto the chip using any of a large number of device programmers, or it may be requested as a service from some parts vendors.

Replacing the chip

Location of EC Flash

See the disassembly guide for instructions on how to expose/remove the motherboard. The SPI Flash ROM is identified as the EC Flash in the annotated motherboard image.

Using a soldering iron or a hot air rework station, gently remove the SPI Flash ROM (U37) from the motherboard. Replace it with a pre-programmed SPI Flash ROM.

Caution: If a hot air rework station is used and the motherboard is not removed, proper baffling must be used to ensure that plastic components of the laptop are not melted.

Use of Lead in Solder

The XO laptop is built complying with the Reduction of Harmful Substances directives. Thus it uses a tin-based solder with a higher melting point.

A repair center must make the decision if they are to remain compliant with this directive. If you decide to ignore it, contaminating the solder holding down the SPI Flash with a lead-based solder will facilitate removal by lowering the melting point.

Restoring the Manufacturing Data

The Manufacturing Data contains critical information about the laptop, such as the serial number, the user ID, the type of keyboard, and the local language.

A copy of the manufacturing data may be obtained from a functioning laptop of the same SKU (indicated in the battery compartment) using its developer key. Boot the laptop, and enter Open Firmware (OFW) by pressing the key in the upper left hand corner of the keyboard in the first few seconds. With a USB storage device present, type the following:

save-mfg-data

It will save the manufacturing data on the USB storage device (using the serial number for a filename). If the storage device is now inserted into another laptop (such as one whose SPI Flash has recently been replaced), that manufacturing data may be restored using:

restore-mfg-data <filename>

The serial number of the laptop (which may be obtained from the battery compartment) may be set using the following OFW command:

change-tag SN new serial number

The UUID is a randomly generated number which in combination with the serial number is used to verify the identity of a laptop. If the laptop being repaired is going to have security enabled, the correct UUID for that laptop must be obtained from the lease signing database, otherwise activation and developer keys will not function. If a laptop will be left with security disabled, any UUID may be used:

change-tag U# DADD886B-C2F7-4B9C-89CB-43B9A81A388C

If the laptop should have security enabled, that too is done using OFW:

enable-security