<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 9, 2018 at 1:12 PM, Elmar Stellnberger <span dir="ltr"><<a href="mailto:estellnb@elstel.org" target="_blank">estellnb@elstel.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">When I boot with iomem=relaxed and enable flash writing in my BIOS I get the following result with my Celsius H265 notebook:<br>
<br>
> flashrom -p internal:laptop=force_I_want_a<wbr>_brick --read celsius2.rom<br>
flashrom p1.0-74-g2568357 on Linux 4.17.0-rc3+ (x86_64)<br>
flashrom is free software, get the source code at <a href="https://flashrom.org" rel="noreferrer" target="_blank">https://flashrom.org</a><br>
<br>
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).<br>
==============================<wbr>==============================<wbr>============<br>
WARNING! You seem to be running flashrom on an unsupported laptop.<br>
Laptops, notebooks and netbooks are difficult to support and we<br>
recommend to use the vendor flashing utility. The embedded controller<br>
(EC) in these machines often interacts badly with flashing.<br>
See the manpage and <a href="https://flashrom.org/Laptops" rel="noreferrer" target="_blank">https://flashrom.org/Laptops</a> for details.<br>
<br>
If flash is shared with the EC, erase is guaranteed to brick your laptop<br>
and write may brick your laptop.<br>
Read and probe may irritate your EC and cause fan failure, backlight<br>
failure and sudden poweroff.<br>
You have been warned.<br>
==============================<wbr>==============================<wbr>============<br>
Proceeding anyway because user forced us to.<br>
Found chipset "Intel ICH9M-E".<br>
Enabling flash write... OK.<br>
Found Winbond flash chip "W25X32" (4096 kB, SPI) mapped at physical address 0x00000000ffc00000.<br>
Reading flash... done.<br>
<br>
However if I execute this twice I get two different images:<br>
wget <a href="https://www.elstel.org/uploads/celsius.rom" rel="noreferrer" target="_blank">https://www.elstel.org/uploads<wbr>/celsius.rom</a><br>
wget <a href="https://www.elstel.org/uploads/celsius2.rom" rel="noreferrer" target="_blank">https://www.elstel.org/uploads<wbr>/celsius2.rom</a><br>
<br>
Using vbindiff I can see that quite a lot is different between both images. - which would be difficult to achieve if the firmware was changed while I am running my computer. The image may be somehow corrupted as me_cleaner (BIOS offers Intel AMT) can not process the image:<br>
<br>
python ../me_cleaner/me_cleaner.py -S -O celsius-no-me.rom celsius.rom<br>
Unknown image<br>
<br>
See also the dmidecode that I have attached.<br>
How can it be that both images are different?<br>
Do you think that the images are corrupted?<br>
If so what could we do about it?<br></blockquote><div><br></div><div>There is probably an embedded controller (EC) connected to the SPI ROM that is accessing the ROM at the same time as flashrom. SeeĀ <a href="https://flashrom.org/Laptops">https://flashrom.org/Laptops</a> for details.</div><div><br></div><div>If this is the case, then you will need to figure out how to prevent the EC from reading/writing the ROM at the same time as flashrom. This could be as simple as disabling your OS's power management daemon to avoid stimulating it, or it may require sending a command to the EC (likely a sequence of OUTBs) to put it into an update or recovery mode to prevent it from accessing the firmware ROM.</div></div></div></div>