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
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to