For those who are reading this, this assumes you already have coreboot.
This won't work if you have Lenovo BIOS (there are some extra steps
involved).
--
wget http://gluglug.org.uk/X60/release/3/X60_source.tar.gz
Here is what I did:
tar -xf X60_source.tar.gz
cd X60_source/flashrom
or
cd X60_binary/flashrom
Note: I already have flashrom dependencies installed. Get the list in README.
make clean
make
cp ../coreboot/build/coreboot.rom .
Note: if you downloaded X60_binary.tar.gz, do this instead:
cp ../coreboot.rom .
sudo ./flashrom -p internal -w coreboot.rom
If it shows *VERIFIED* written at the end, then it worked.
At this point, shut down the machine (shut it down fully! Do not
sleep/reboot).
---
If you didn't see that output above, you will have seen this instead:
$ sudo ./flashrom -p internal -w coreboot.rom
[sudo] password for user:
flashrom v0.9.7-r on Linux 3.12.4-gnu (i686)
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK.
Found chipset "Intel ICH7M". Enabling flash write... OK.
Found Macronix flash chip "MX25L1605" (2048 kB, SPI) at physical address
0xffe00000.
Found Macronix flash chip "MX25L1605A/MX25L1606E" (2048 kB, SPI) at physical
address 0xffe00000.
Found Macronix flash chip "MX25L1605D/MX25L1608D" (2048 kB, SPI) at physical
address 0xffe00000.
Multiple flash chip definitions match the detected chip(s): "MX25L1605",
"MX25L1605A/MX25L1606E", "MX25L1605D/MX25L1608D"
Please specify which chip definition to use with the -c option.
So I do this instead (on my X60):
sudo ./flashrom -p internal -w coreboot.rom -c "MX25L1605D/MX25L1608D"
And then I see that same successful output as above:
$ sudo ./flashrom -p internal -w coreboot.rom -c "MX25L1605D/MX25L1608D"
flashrom v0.9.7-r on Linux 3.12.4-gnu (i686)
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK.
Found chipset "Intel ICH7M". Enabling flash write... OK.
Found Macronix flash chip "MX25L1605D/MX25L1608D" (2048 kB, SPI) at physical
address 0xffe00000.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.