-
Notifications
You must be signed in to change notification settings - Fork 23
BIOS Flashchip Identification Method
Note: This method has been superseded by the Libreboot brute-force method, and is left only for reference.
-
Install all the critical build dependencies:
sudo apt-get install pciutils pciutils-dev zlib1g-dev
-
Run the following commands to download the
flashrom
source code:svn co svn://flashrom.org/flashrom/trunk flashrom cd flashrom make
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.
- Flashrom Pastebin - Thinkpad R60 Flashrom Output - Probing for SST SST25VF016B.RES2, 2048 kB: probe_spi_res2: id1 0xbf, id2 0x41
-
Coreboot Mailing List - Invalid OPCODE - Allows us to infer that the model_id for
SST25VF016B
is 0xbf - Coreboot Mailing List - Bricked Lenovo T60
-
Donderclumpen - Coreboot on Macbook 2,1] - Found
id1 0xbf, id2 0x2541
there, which corroborates with the inference from Peter Stuge. - SST - SST25VF016B Official Datasheet
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
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.
- 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
Note: This method attempts to identify the current flash chip by investigating the output of
flashrom
when it tries to dump thefactory.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.
Some BIOS chips are autodetected by
flashrom
and work out of the box, such as Atmel chips on the T60.
-
First, build
flashrom
without patches usingmake
, and run the command below. -
If a
factory.bin
file was created, your chip may be an autodetectedAtmel
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. -
(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)
All known chips on the X60 require special patches to work with
flashrom
. This method tries to figure out which patch works.
-
Patch the BIOS Chip for
SST25VF016B
and run this command to try and dump the factory BIOS.sudo ./flashrom -p internal -r factory.bin
-
If these two output lines are displayed in the output, and a
factory.bin
file is created, the BIOS Chip is aSST25VF016B
. (ignore extraneous warning messages):Found SST flash chip "SST25VF016B" (2048 kB, SPI) at physical address 0xffe00000. Reading flash... done.
-
Patch the BIOS Chip for
MX25l1605D
and run this command to try and dump the factory BIOS.sudo ./flashrom -p internal -r factory.bin
-
If these two output lines are displayed in the output, and a
factory.bin
file is created, the BIOS Chip is aSST25VF016B
. (ignore extraneous warning messages):Found Macronix flash chip "MX25L1605D/MX25L1608D/MX25L1673E" (2048 kB, SPI) at physical address 0xffe00000. Reading flash... done.
-
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.
- Flashrom Pastebin - Thinkpad R60 with SST25VF016B Flashrom Output - Probing for SST SST25VF016B.RES2, 2048 kB: probe_spi_res2: id1 0xbf, id2 0x41
- Coreboot Mailing List - ThinkPad T60 with Macronix Flashrom Output
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.
Coreboot is an open source, user configurable BIOS. However, it does use a few proprietary blobs here and there.
These require hardware flashing. Due to Intel Management Firmware, proprietary blobs are required for newer Intel motherboards to even power up.
-
ThinkPad T430/X230
- xx30 BIOS Whitelist Removal
- xx30 BIOS Mod with Old Keyboard - Since Libreboot's ROMs each can use a different keyboard layout, would it be possible to modify Coreboot to work with the old xx20 keyboard? Or just mod the official BIOS to do so?
- ThinkPad X201
- ThinkPad T60p (ATI GPU)
- ThinkPad T22 - Back when Coreboot was known as "LinuxBIOS", they installed it on a ThinkPad T22 for Richard Stallman.
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.
-
Chromebook Coreboot Installation - Install Coreboot + SeaBIOS for 2nd gen laptops. Not necessary for 3rd gen.
- Acer C7 Chromebook
- Toshiba Chromebook 2 - The only 13-inch model around with an FHD 1920x1080 IPS screen.
- Samsung Series 5 550
- Acer C720 Chromebook
- ThinkPad X131e Chromebook
- Install Typical BIOS
- Chromebook Pixel
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.
- Customizing Libreboot
- X60 T60 Hardware Flashing
- X200 X201 Hardware Flashing
- Installing Trisquel with Full Disk Encryption
- BIOS Flashchip Identification Method
- Phoenix BIOS Crisis Recovery - (under research) Software method for recovering the factory BIOS, even if you lost the original dump.