EC FLASH Recovery for XO-1.75

From OLPC
Jump to: navigation, search

This page tells how to "debrick" an XO-1.75 whose Embedded Controller FLASH contains bad data. The XO-1.75's IO3731 Embedded Controller chip contains internal FLASH storage, so simply replacing an external SPI FLASH is not an option.

The XO-1.75 circuit board has pads for a 3x2 header connector which connects to the reprogramming pins on the IO3731 EC chip. You can connect an external SPI programmer to those pads to reprogram the internal FLASH.

Locating the Reflash Connector

The reflash connector is J3. It is located on the sparsely-populated side of the board - the side that is nearest the display when the board is in the case - so you will need to remove the board from the case to use it. (Some developers cut a hole in the case plastic above that connector for easier access, but even with that mod, it is necessary to remove the display to get to the connector.) The connector is 6 cm from the left side and 4 cm from the bottom of the board.

The header pins are normally not populated - the pads are bare - so you will need to solder on a 2x3 header. With the header pins attached, the board will not fit back into an unmodified XO case.

It is also possible to connect to those pads by other means, for example by soldering wires directly to the pads or with "Pogo Pin" spring pins. This document assumes the use of a soldered-on header.

Reprogramming Using an XO-1.5 as a Programmer

Preparing an XO-1.5 as a Programmer

You can use an XO-1.5 board as an SPI programmer by adding a header connector. See SPI_FLASH_Recovery_for_XO-1.5#Preparing_the_"Programmer"_Machine for detailed instructions. Those instructions say to add a diode in addition to the header connector. For this application, the diode is unnecessary but harmless, because the pin to which it connects is a no-connect on the XO-1.75 EC programming connector. It is okay either to add the diode or to leave it unpopulated.

You will need a short ribbon cable to connect the XO-1.5 programmer to the XO-1.75. The one Mitch uses is 6.5 cm long. The one James uses is 24 cm long. You can probably get by with a slightly longer one, but shorter is better because the signal integrity degrades with increasing cable length. Mitch's cable is 6 conductors with a 2x3 IDC connector on each end. You could use a cable with more conductors, being careful to align the connectors correctly on the 2x3 headers on both ends.

Reflash Procedure Using an XO-1.5

  • Put the file http://dev.laptop.org/pub/firmware/fixec175.fth into the root directory of a USB FLASH Drive.
  • Put the EC image file into the root directory of the same USB FLASH Drive, naming it "ecimage.bin". The size of EC image files for XO-1.75 is 32768 bytes; if your file is not that size, it is not the right kind of image for an XO-1.75 EC. A listing of available files may be found at http://wiki.laptop.org/go/EC_1.75_Firmware .
  • Insert the USB FLASH Drive into the XO-1.5 programmer machine.
  • With AC power and battery disconnected on both machines, connect the ribbon cable between the XO-1.5 programmer machine and the XO-1.75 target machine, being careful to match up pin 1 on both ends of the cable. Pin 1 is marked with a white dot on both boards.
  • If the boards overlap (which is likely with a short ribbon cable), put a piece of paper or other nonconducting material between them to prevent short circuits.
  • Connect a serial adapter to the XO-1.5 so you will have a console (the programming header mechanically interferes with the XO display, so it's not easy to use the board in a case).
  • Connect an AC adapter to the XO-1.5, press the power button, and get to the ok prompt
  • Connect an AC adapter to the XO-1.75 but do not press the power button.
  • On the XO-1.5, type:
 ok fload u:\fixec175.fth
 ok select /spi
 ok recover-ec

After a few seconds, the XO-1.5 should return to the "ok" prompt, at which point you have successfully reprogrammed the XO-1.75's EC.

  • Disconnect the AC adapter from the XO-1.5
  • Disconnect the AC adapter from the XO-1.75
  • Unplug the ribbon cable from the XO-1.75
  • When you no longer need to program the XO-1.75 EC FLASH by external means, you can unsolder the header from the XO-1.75 programming pads

Reading EC image to a file

  • Insert the USB FLASH Drive into the XO-1.5 programmer machine.
  • With AC power and battery disconnected on both machines, connect the ribbon cable between the XO-1.5 programmer machine and the XO-1.75 target machine, being careful to match up pin 1 on both ends of the cable. Pin 1 is marked with a white dot on both boards.
  • If the boards overlap (which is likely with a short ribbon cable), put a piece of paper or other nonconducting material between them to prevent short circuits.
  • Connect a serial adapter to the XO-1.5 so you will have a console (the programming header mechanically interferes with the XO display, so it's not easy to use the board in a case).
  • Connect an AC adapter to the XO-1.5, press the power button, and get to the ok prompt
  • Connect an AC adapter to the XO-1.75 but do not press the power button.
  • On the XO-1.5, type:
 ok fload u:\fixec175.fth
 ok select /spi
 ok read-ec

You should see the message " Writing EC image to u:\ecimage.bin" then "Written". The image will be on the USB stick in the indicated file.

  • Disconnect the AC adapter from the XO-1.5
  • Disconnect the AC adapter from the XO-1.75
  • Unplug the ribbon cable from the XO-1.75
  • When you no longer need to program the XO-1.75 EC FLASH by external means, you can unsolder the header from the XO-1.75 programming pads

Reprogramming Using a Dedicated Programmer

Richard Smith has used a Cheetahprogrammer and Paul Fox has used an FTDI-based device for reprogramming the EC FLASH. Both devices require hardware mods before they can be used.