XO Replacing SPI flash: Difference between revisions

From OLPC
Jump to navigation Jump to search
(New page: {{OLPC}} {{Translations}} 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 suf...)
 
m (minor)
 
(19 intermediate revisions by 4 users not shown)
Line 2: Line 2:
{{Translations}}
{{Translations}}


This page describes how to fix a [[Hardware#XO_Laptop|XO laptop]] locked up due to a bad SPI Flash ROM.
This page describes how to fix a [[Hardware#XO_Laptop|XO laptop]] locked up or bricked due to a bad SPI Flash ROM.


== Problem Description ==
== Problem Description ==
Line 8: Line 8:
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:
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
* The Laptop is completely dead, due to
** EC Failure - the [[Embedded Controller]] is not functioning properly
** 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.
** 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 (and it is not due to screen failure).
* A blank white screen is displayed
* A screen with an XO and a single dot is shown

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).
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.
Another situation requiring this fix is if a laptop somehow loses all power (both battery and DC in) during the Firmware reprogramming operation.


== Repair Process ==
== Repair Process ==
Line 29: Line 32:
* the UUID of the laptop (if it is secure)
* the UUID of the laptop (if it is secure)


== SPI Flash ROM ==
=== SPI Flash ROM ===


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


The [[Firmware]] must be programmed onto the chip before it is placed on the motherboard. This firmware is a binary file containing the following:
The [[Firmware]] must be programmed onto the chip before it is placed on the motherboard. This firmware is a binary file containing the following:
* [[Embedded Controller]] firmware
* [[Embedded controller]] firmware
* [[Open Firmware]]
* [[Open Firmware]]
* [[Manufacturing Data]] - This is optional. Open Firmware will boot without it, allowing it to be restored from a USB key.
* [[Manufacturing Data]] - This is optional, although Sugar will not boot unless certain tags are present. Open Firmware will boot without it, allowing this data to be restored from a USB key.


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.
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.
Line 48: Line 51:
== Replacing the chip ==
== Replacing the chip ==


[[Image:XO_Motherboard_Repair|thumbnail|Location of EC Flash]]
[[Image:XO_Repair_Motherboard.png|thumbnail|Location of EC Flash]]


See the [[Disassembly|disassembly guide]] for instructions on how to expose/remove the motherboard.
See the [[Disassembly_top|disassembly guide]] for instructions on how to expose/remove the motherboard. The SPI Flash ROM is identified as the ''EC Flash'' in the [[XO_Motherboard_Repair|annotated motherboard image]].


'''Caution:''' ''If a hot air rework station is used and the motherboard is not removed, proper baffling must be used to ensure that the plastic case is not melted.''
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.


Using a soldering iron or a hot air rework station, 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==
===Use of Lead in Solder===


The [[Hardware#XO_Laptop|XO laptop]] is built complying with the [http://en.wikipedia.org/wiki/Restriction_of_Hazardous_Substances_Directive Reduction of Harmful Substances] directives. Thus it uses a tin-based solder with a higher melting point.
The [[Hardware#XO_Laptop|XO laptop]] is built complying with the [http://en.wikipedia.org/wiki/Restriction_of_Hazardous_Substances_Directive 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 they decide to ignore it, contaminating the solder used with a lead-based one will facilitate removal of the SPI Flash by lowering the 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.

The iron-plus-lead-solder technique risks damaging the board by overheating the printed circuit pads, causing them to come unglued from the board and break off. Skilled technicians know how to apply just enough heat to both sides of the part very quickly, simultaneously applying just enough pressure to dislodge the part once the solder melts.

If you haven't yet mastered this skill, there is a helpful product called "ChipQuik" - http://chipquik.com/store/prod_smd1.htm (also available from distributors like DigiKey). ChipQuik is a special very-low-melting-point alloy. It combines with the existing solder to form a glob that stays molten at a temperature lower than boiling water. That gives you plenty of time to melt both rows of pins then apply gentle pressure to remove the part without overheating anything. The tradeoff is that the cleanup step afterward is slightly more difficult - removing the residual ChipQuik from the board is not quite as easy as wicking up excess solder with copper braid. The ChipQuik kit also comes with a fine-point syringe containing flux gel which comes in very handy for a variety of soldering and desoldering tasks. For example, squirting a little flux on copper solder removal braid increases the braid's effectiveness dramatically.


== Restoring the Manufacturing Data ==
== Restoring the Manufacturing Data ==
Line 66: Line 73:
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.
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 an unsecured laptop of the same SKU (indicated in the battery compartment) using a 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:
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
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:
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:
Line 73: Line 80:
The serial number of the laptop (which may be obtained from the battery compartment) may be set using the following OFW command:
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''
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

===Re-enabling Security===

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

===Large Volume Repair===

If a large number of machines of the same SKU are being repaired (such as a large scale country deployment), it is worthwhile to generate a ROM image which contains both firmwares and the manufacturing data already present. You can copy the complete contents of an XO's SPI FLASH image (firmware and manufacturing data) to a file. Boot a laptop (with a developer key) until [[Open Firmware]] (the "ok" prompt). With a USB key inserted, type:

read-flash u:\rom.img

You can then use that rom.img file to program SPI FLASH chips with a standalone programmer.

After repairing a machine with one of those SPI FLASH chips, the commands needed are simply:

change-tag SN ''laptop serial number''
change-tag U# ''laptop UUID''
enable-security


[[Category:HowTo]]
[[Category:HowTo]]

Latest revision as of 03:44, 28 August 2009

  This page is monitored by the OLPC team.
  english | español HowTo [ID# 215905]  +/-  


This page describes how to fix a XO laptop locked up or bricked 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
  • A screen with an XO and a single dot is shown

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 loses 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.

The iron-plus-lead-solder technique risks damaging the board by overheating the printed circuit pads, causing them to come unglued from the board and break off. Skilled technicians know how to apply just enough heat to both sides of the part very quickly, simultaneously applying just enough pressure to dislodge the part once the solder melts.

If you haven't yet mastered this skill, there is a helpful product called "ChipQuik" - http://chipquik.com/store/prod_smd1.htm (also available from distributors like DigiKey). ChipQuik is a special very-low-melting-point alloy. It combines with the existing solder to form a glob that stays molten at a temperature lower than boiling water. That gives you plenty of time to melt both rows of pins then apply gentle pressure to remove the part without overheating anything. The tradeoff is that the cleanup step afterward is slightly more difficult - removing the residual ChipQuik from the board is not quite as easy as wicking up excess solder with copper braid. The ChipQuik kit also comes with a fine-point syringe containing flux gel which comes in very handy for a variety of soldering and desoldering tasks. For example, squirting a little flux on copper solder removal braid increases the braid's effectiveness dramatically.

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

Re-enabling Security

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

enable-security

Large Volume Repair

If a large number of machines of the same SKU are being repaired (such as a large scale country deployment), it is worthwhile to generate a ROM image which contains both firmwares and the manufacturing data already present. You can copy the complete contents of an XO's SPI FLASH image (firmware and manufacturing data) to a file. Boot a laptop (with a developer key) until Open Firmware (the "ok" prompt). With a USB key inserted, type:

read-flash u:\rom.img

You can then use that rom.img file to program SPI FLASH chips with a standalone programmer.

After repairing a machine with one of those SPI FLASH chips, the commands needed are simply:

change-tag SN laptop serial number
change-tag U# laptop UUID
enable-security