Enable OS-level flashing of coreboot for ThinkPad T410/X201
I have a use case where I need to be able to flash coreboot on a T410 from the OS-level.
I have successfully flashed coreboot on a T410 via external flashing (using a Ponoma clip on the SOIC-8 flash chip that's exposed only when the motherboard is removed). I managed to get an older version of coreboot to work (the same one that's suggested in the x201 page), using the x201 chipset option. I had to struggle a bit to extract the vga bios, but once I had it, everything seems to run smoothly.
I am planning to investigate further with newer versions of coreboot, but that is not my first priority. They seem to make it impossible to boot Linux, and my priority is getting some version of coreboot on these machines, and doing it via OS-level flashing.
The X201 wiki page hints that we should be able to edit the Lenovo BIOS installer, modifying the bootblock part so that the flash is writeable, and then should be able to write coreboot. I have a good testbench that allows me to quickly recover if I brick a motherboard, and have the freedom to irreversibly brick a couple of motherboards without consequence (although I find it hard to believe I could achieve that, and would be less than ideal if I did). I don't, however, have a lot of experience with BIOS editing, and am cooperating with Alexander in that aspect. This tickets serves to record progress and simplify discussion.
#1 Updated by Iru Cai over 3 years ago
You can use flashrom to flash any ROM once coreboot is installed. I don't know if the internal flashing needs an unlocked descriptor region.
# flashrom -p internal:laptop=force_I_want_a_brick -w <your ROM>
or flash a region with a flash layout:
# flashrom -p internal:laptop=force_I_want_a_brick --layout <layout file> --image <your region> -w <your ROM>
#2 Updated by Rodrigo Toste Gomes over 3 years ago
Iru Cai wrote:
You can use flashrom to flash any ROM once coreboot is installed. I don't know if the internal flashing needs an unlocked descriptor region.# flashrom -p internal:laptop=force_I_want_a_brick -w <your ROM>
or flash a region with a flash layout:# flashrom -p internal:laptop=force_I_want_a_brick --layout <layout file> --image <your region> -w <your ROM>
I understand that. The problem here is flashing it the first time. flashrom isn't working for that, but there is the theory that what causes the flash to be write protected is in the boot block, which can be modified by the Lenovo BIOS, so we can modify that by modding a Lenovo BIOS.