Hello everyone,
I came across an old T410 that I'd like to install coreboot on to swap the wifi-adapter, remove the IME and overall "upgrade" the laptop a bit.
Now, though many other Thinkpads from that era are well supported, the T410 was still unsupported until it was added recently in 4.11 and I've read conflicting reports on how well it works with coreboot.
The official documentation (https://doc.coreboot.org/mainboard/lenovo/t410.html) only mentions issues with the dock and vboot, which is fine by me. Also, this patch looks quite promising - https://review.coreboot.org/c/coreboot/+/11791
Is that already part of the main repository as of 4.12 or do I have to add it somehow?
Also, the documentation links to a tutorial for flashing a powered chip, yet I have read that people have used guides for other laptops using USB programmers and (more or less successfully) flashed the laptop. Is it possible to use a ch431a programmer at 3.3v while the laptop is powered down or could that seriously damage the hardware?
Is there anything else I should be cautious of with this board? Has somebody maybe even got experience with flashing the T410?
Kind regards, Steph
Stéphane Delaunay via coreboot wrote:
Also, the documentation links to a tutorial for flashing a powered chip, yet I have read that people have used guides for other laptops using USB programmers and (more or less successfully) flashed the laptop. Is it possible to use a ch431a programmer at 3.3v while the laptop is powered down or could that seriously damage the hardware?
People have had success doing that on various platforms generations, but it is most certainly operating several components on the mainboard outside of their specification.
Noone except perhaps the designers of those components know how damaging that really is, but it is certainly not safe, otherwise the specification would include also such operation.
To explain the problem:
In order to communicate with the flash chip when the laptop is powered down you need to supply the flash chip with data but also power from outside the laptop.
If the chip was not built into the laptop this would be wholly unproblematic.
But since the chip is built into the laptop the flash chip pins connect to various other components on the mainboard, and when you supply power to the flash chip you are also supplying power to those other components.
On one hand this consumes a lot of power, requiring a big external power supply, but far more problematic is the fact that those other components often have multiple power supplies and of course one component *is* the power supply which powers the flash chip and other components in normal operation.
Forcing power into those components from the outside violates specifications because many components are connected to multiple power supplies and most components have strict requirements on the order in which voltages are allowed to increase.
As an example a voltage monitor circuit is often used to hold some component in reset until the power supply for that component is stable.
The voltage monitor circuit must of course first have its own stable power supply, before it can detect that a second power supply is stable.
The manufacturer of the voltage monitor circuit can specify that the detected voltage must be lower than the supply voltage for the monitor.
If the voltage rail for the flash chip is the detected voltage, then when powering (only) the flash chip from the outside, that specification is violated, because the voltage monitor is not powered at all, so when the detected voltage is supplied (intended for the flash chip, but also goes to the voltage monitor) from the outside then it is much higher than the supply voltage for the monitor.
Doing this may be fine, or it may be fatal for the other components, or it may be fine most of the time ...
I can not recommend it.
On this particular mainboard it seems that you will also be powering the LAN chip and (part of?) the ME when you power the flash chip.
I write "(part of?)" because I don't know if the ME requires other power supplies to start up. The ME exists inside the chipset, and the chipset consumes many different power supplies - so that's another potential power sequencing violation, which may or may not damage the chipset.
If that one supply is enough for the ME to execute code then it will try to communicate with the SPI flash chip. If you try to communicate with the SPI flash chip at the same time then there will be bus contention on the SPI bus, because the SPI bus only supports a single bus master, so neither ME nor your flash programmer expects that anyone else is trying to use the same bus at the same time.
In the worst case the ME will drive one or more data signals to 1 while your flash programmer drives the same data signals to 0. This creates a short circuit from the power supply through the ME (inside the chipset) through your flash programmer to ground. The short circuit is not current limited, and can not easily be current limited (because we don't know how much current is required to power up all those different components that are also connected to the same supply as the flash chip), causing the metal traces inside the ME/chipset and inside your flash programmer to heat up really quickly as the current increases, until they burn. At that point the flash programmer or the chipset exudes its "magic smoke" and is broken beyond repair.
I recommend to desolder the flash chip and program it externally.
As an alternative to the desoldering you can try to find GPIO33 on the mainboard and pull that to GND while powering up the machine, if you do that correctly then the flash write protect is supposedly disabled, so that you could run flashrom in a booted Linux system to rewrite the entire flash chip.
The easiest would probably be to hold a small screwdriver across the two pads for R566 on the top side of the board near the J27 PCIe Mini Card slot.
Is there anything else I should be cautious of with this board?
As always, first make a backup of the factory BIOS and make sure that you can recover because the first coreboot build usually does not work.
Has somebody maybe even got experience with flashing the T410?
Sorry, no.
//Peter