Skip to content

BIOS Flashchip Identification Method

Antonizoon edited this page Sep 24, 2014 · 1 revision

Note: This method has been superseded by the Libreboot brute-force method, and is left only for reference.

Obtaining Flashrom

  1. Install all the critical build dependencies:

    sudo apt-get install pciutils pciutils-dev zlib1g-dev

  2. Run the following commands to download the flashrom source code:

    svn co svn://flashrom.org/flashrom/trunk flashrom cd flashrom make

Patching flashrom to work with the BIOS chip

Enter the flashrom source code folder under X60_source.

Change the corresponding values under flashchips.c for your chip model:

  • SST25VF016B
    • .probe - probe_spi_res1
    • .model_id - 0xbf
    • .write - spi_chip_write_1
  • MX25l1605D
    • .probe - probe_spi_res1
    • .model_id - 0x14
    • .write - spi_chip_write_1

For an example of the changes made, check the flashchips.c.patch files.

Sources

Building Flashrom

The flashrom binary will be placed into the source code folder. You will need to add a ./ before the command, so that the terminal will use the flashrom binary in the current folder.

sudo ./flashrom

Use flashrom to Identify BIOS Chip (experimental)

Below is an experimental method to determine the type of the BIOS chip in the X60 by searching for unique signatures that appear when flashrom probes for BIOS chips. (Since it is significantly easier to look at the BIOS chip on the T60, stick to visual identification on that model.)

To the best of our knowledge, there is no reason why this method should not work. But be aware that it has not been fully tested.

Known BIOS Chip Types

  • ThinkPad X60/X60s/X60 Tablet
    • SST SST25VF016B - Requires patches.
    • Macronix MX25l1605D - Requires patches and special arguments
    • Evidence shows that these two are the only chips found on the X60 series, but we can't be perfectly sure.
  • ThinkPad T60/T60p
    • SST SST25VF016B - Requires patches, same as X60.
    • Atmel 0711 26DF161 SU - Works out of the box without patches. Usually found only on the T60/T60p.
    • Other chips unknown, requires more research
  • ThinkPad R60/R60e
    • All chips unknown, requires more research

Method 1 - Quick Check

Note: This method attempts to identify the current flash chip by investigating the output of flashrom when it tries to dump the factory.bin. Don't worry, nothing is being flashed. Note: If you are checking a T60/T60p/R60, not all chip types are known. If these checks fail for you, do not continue; report your output for further investigation.

Autodetection Check

Some BIOS chips are autodetected by flashrom and work out of the box, such as Atmel chips on the T60.

  1. First, build flashrom without patches using make, and run the command below.

  2. If a factory.bin file was created, your chip may be an autodetected Atmel chip, common in T60 systems. No patching is required for this chip, so now you can flash Coreboot safely. If it was not created, try the other check methods.

  3. (optional, for research purposes) If your output contains the lines below, it is an Atmel 0711 26DF161 SU. If your output does not match, visually identify your BIOS chip before proceeding so that we can add it to our list.

    (grab it from a T60 planar)

SST25VF016B SPI Patch Check

All known chips on the X60 require special patches to work with flashrom. This method tries to figure out which patch works.

  1. Patch the BIOS Chip for SST25VF016B and run this command to try and dump the factory BIOS.

    sudo ./flashrom -p internal -r factory.bin

  2. If these two output lines are displayed in the output, and a factory.bin file is created, the BIOS Chip is a SST25VF016B. (ignore extraneous warning messages):

    Found SST flash chip "SST25VF016B" (2048 kB, SPI) at physical address 0xffe00000. Reading flash... done.

Macronix MX25l1605D verification Method

  1. Patch the BIOS Chip for MX25l1605D and run this command to try and dump the factory BIOS.

    sudo ./flashrom -p internal -r factory.bin

  2. If these two output lines are displayed in the output, and a factory.bin file is created, the BIOS Chip is a SST25VF016B. (ignore extraneous warning messages):

    Found Macronix flash chip "MX25L1605D/MX25L1608D/MX25L1673E" (2048 kB, SPI) at physical address 0xffe00000. Reading flash... done.

  3. If a factory.bin file was not created, and your output does not match any of the above, report your output, you will have to visually identify your BIOS chip. It may be a new, undocumented type of BIOS chip (common in T60 and R60 models), and it would help the developers to find a way to flash and identify them.

Sources

Backup your Original BIOS

In case something goes wrong, it is a good idea to keep a backup of the original BIOS software.

sudo ./flashrom -p internal -r factory.bin

This step is IMPORTANT since the factory BIOS in your machine is tied to your particular system board (or "planar" in IBM FRU terms) with a unique ID not present in factory BIOS updates.

BA Logo

Bibliotheca Anonoma

Coreboot Laptops

Coreboot is an open source, user configurable BIOS. However, it does use a few proprietary blobs here and there.

ThinkPads

These require hardware flashing. Due to Intel Management Firmware, proprietary blobs are required for newer Intel motherboards to even power up.

Chromebooks

Most Intel Chromebooks come with Coreboot preinstalled. SeaBIOS can optionally be installed to add Windows support.

Just use John Lewis's Installation Script for All Models to autoinstall.

Build Notes

NOTE: The Libreboot components of this wiki was divested into the Official Libreboot Documentation here. Please use that from now on.

Libreboot laptops are certified by the FSF to protect your freedom.

They contain no proprietary blobs of any kind, and have the best support for FSF certified GNU/LInux.

ThinkPads

Macbooks

Other Tutorials

Clone this wiki locally