Question
When updating the flash chip’s bios region with flashrom, is there a risk that vital SMBIOS structures or other vital data in the bios chip gets lost?
Background information
By using sbkeysync in Linux to enroll UEFI keys, the BIOS of a quite old desktop computer has become corrupted. I was stupid enough not to make a backup beforehand.
Its mainboard is MS-7728 v2.0 BIOS v3 and it contains BIOS version E7728MLN.30F.
The manufacturer provided an updated version E7728MLN.30G (http://cdn.medion.com/downloads/software/00_Bios7728v3.zip), along with AMI’s afuwinx64.exe and flash.bat.
It is impossible to boot Windows, because error ACPI_BIOS_ERROR always appears.
The USB ports do not work while booting.
Following did not help:
*Removing the CMOS battery for a couple of days.
*Unplugging everything from motherboard except cpu.
*The mainboard does not have a backup bios flash chip to restore factory defaults.
*The BIOS menu doesn’t offer an option to restore factory defaults either.
*Changing hard disk didn’t help enough (see below).
The problem is probably in the BIOS flash chip.
I tried the Windows installation on the existing hard disk, Windows Media Creation Tool and Windows PE; the ACPI_BIOS_ERROR always appears.
Shift + F10 to enter command prompt doesn’t work either.
So the provided afuwinx64.exe cannot be run.
But Linux still boots when providing kernel parameter ‘nomodeset’. USB ports at the front work fine in Linux, the ports at the back still don’t work.
With flashrom -p internal, a dump of the corrupt BIOS has been made (when booting kernel parameter ‘iomem=relaxed’ needed to be added).
flash.bat (that cannot be run on that desktop computer) calls afuwinx64.exe with, among other things, the parameter /R, which according to AMI documentation means: ‘Preserve all SMBIOS structures during programming’. flashrom does not seem to contain any comparable functionality.
And AMI doesn’t offer afulnx anymore. Some open source project offers code for afulnx, but I did not succeed in building it. Possibly because the code doesn’t support the current Linux kernel, but failing to build afulnx could also have to do with my inexperience with gcc.
The dump of the corrupted BIOS (created with flashrom) contains NVAR entries which the bios file provided by the manufacturer (E7728MLN.30G) does not contain, such as:
- 4 entries named AmiSmbiosNvramGuid
- NVAR entries with text PK, KEK, db and dbx (i.e. the UEFI Keys)
Note: Also MS-DOS and FreeDOS can be booted, but both OS’es hang when running ‘afudos output.bin /O’.
I am considering trying to flash only the bios chip’s bios region with flashrom (providing parameters -p internal -c --ifd -i bios -w E7728MLN.30G).
Therefore the question: When updating the flash chip’s bios region with flashrom, is there a risk that vital SMBIOS structures or other vital data in the bios chip gets lost?
Other ideas are welcome too.
Edit 11:22 UTC: Question posted at the beginning of the post.
Edit by Fernando: Thread title specified and customized