Lenovo X230 (Legacy)

For the Thinkpad x230 Legacy there are two boards “flavors “in ./boards

  • x230-flash
  • x230, x230-hotp-verification

x230-flash is externally flashable into the top SPI flash chip and contains a smaller package footprint, basically flashrom and dependencies, that will let us boot to the Heads recovery shell. x230 is only internally flashable and contains Heads, with a reduced feature set as compared to the maximized flavor.

Since you are planning to externally flash, you should probably go with the maximized flavor now. Maximized boards produce externally flashable top and bottom rom images, a neutered ME image and a corresponding Intel Flash Descriptor (IFD), giving Heads its maximized BIOS size footprint of 11.5Mb available space, as compared to 7Mb in Legacy board flavors.

x230-flash can also be flashed internally through 1vyrain, where 1vyrain cannot unlock neither ME or IFD flash regions. By using 1vyrain, you choose to lock yourself to Legacy boards flavor. 1vyrain will not neuter ME. You should consider flashing externally Maximized Heads version instead.

Since we will end up using both x230-flash and our chosen x230 flavor, it makes the most sense to build both now. Where one last time, you should probably go withthe maximized builds if you have an external reprogrammer.

Initial SPI2 (4MB) flash chip

x230 boards needs their 4MB SPI2 to be initially externally flashed, while the 12MB rom needs to be flashed internally from within Heads to make sure to not screw up with ME, contained in the SPI1 flash (8MB bottom flash chip under keyboard)

The following make command generates a self-contained, externally flashable rom for the SPI2 (4MB BIOS, top SPI flash under keyboard).

make BOARD=x230-flash

Resulting rom is found under build/x86/x230-flash/x230-flash.rom

Subsequent flashing (upgrades)

The following make command will generate a 12MB coreboot.rom under the build/x86/x230 directory, which only contains a valid BIOS region (faked IFD, no ME, no GBE etc) which if flashed over a Maximized board flavor internally will result in a brick, and will require an external reprogrammer to flash the Maximized board roms to fix the problem.

Only Maximized builds are fully externally flashable ROMs.

make BOARD=x230

The coreboot.rom is the one needed to flash rom updates from within Heads in respect of ME. This is done with the help of the flashrom-x230.sh script from Heads recovery shell.

Please continue to the flashing guide

More options and detail about Heads modules under Makefile