On Fri, May 11, 2018 at 7:52 AM, Elmar Stellnberger estellnb@elstel.org wrote:
On 2018-05-11 00:08, Nico Huber wrote:
actually, I don't see a BIOS in there at all. ...
If you want to hunt more clues nevertheless, you can send us the output of `flashrom -p internal:laptop=force_I_want_a_brick -V`. IIRC, it also tells from which bus the BIOS was loaded.
I think the ME has some logging enabled and simply writes to the flash.
Nico
On 2018-05-10 23:24, David Hendricks wrote:
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 ...
Here comes the verbose output of flashrom as attachement. This time the output was taken after shutting down the backlight daemons: systemctl stop systemd-backlight@backlight:acpi_video0.service systemctl stop systemd-backlight@backlight:nv_backlight.service
- and see the newly loaded rom images do not differ any more (though the
time between taking both images has been less this time).
Glad that seems to have worked for reading. However as Nico said we really can't recommend attempting to write using flashrom. At least not unless you can get a full understanding of how this works and how to safely disable the EC for updates, and have a method for recovery (e.g. an external programmer). Anything that interacts with the EC (power, thermal, input events, maybe other things) can wake it up and put your system in a bad (possibly bricked) state.
wget https://www.elstel.org/uploads/celsius3.rom wget https://www.elstel.org/uploads/celsius4.rom
Is it true that these flash images do not contain a BIOS?
It appears true. As Nico said it appears this chip is only for ME firmware and configuration data. There is almost certainly another SPI flash on the motherboard for the BIOS. You may need to (de-)assert some GPIO or send a special command to the EC to select it.
If it still contains all ME regions that should be enough for disabling ME? How to do that - I have heard that me_cleaner only works on gen2 and gen3 MEs but that my ME would be gen1?
I'm not an expert on me_cleaner, but the long story short is that ME is a complicated beast that changes frequently and is very intertwined with how the system works. me_cleaner can remove some (many?) modules but can't disable it completely since ME controls some functions needed to bring-up the CPU. I'm sure they'd appreciate your help demystifying your ME's generation!