> I took the easy way out on this one. Rather than more reading and
> downloading I booted Windows on an old Dell, which when double
> clicking on it in the file manager extracted
> mb_bios_ga-970a-d3_f12.exe from mb_bios_ga-970a-d3_f12.zip then
> extracted FLASHSPI.EXE and the 4M 970AD3.F12 from the .exe. 

...first and foremost, glad to hear that that your problem is now solved.

> > Or maybe the exe is just a self-extracting ZIP, then UNZIP may 
> > help?
> 
> I don't generally luck into those from motherboard makers. 

Yeah, I second that... especially "the big three" tend to obfuscate 
the internals of their BIOS update packages, which are generally for 
Windows only and the outer shell is an opaque Windows executable.

Some "brands" of these EXE shells can be dissected by the archiver 
brand's own or third-party tools. Most of the archivers (ARJ, RAR, 
ZIP) can have a self-extracting EXE header strapped on - that's the 
easy case. Then you have installer creation tools, which add more 
magic that's specific to installing software in Windows... 
InstallShield, WISE, NSIS, WiX, and there's the MS own MSI format 
(which is not EXE). And there are probably less popular and more 
proprietary ones... such as those used for BIOS update packages :-(

In general nowadays, a nice convenient "is this possibly an archive" 
inspection tool is 7-zip, namely its GUI for Windows. It understands 
UNIX formats too (TarGzip, Tar Bzip2 etc.) and even takes squashFS 
images... If you still encounter InstallShield, there is UnShield.

BIOS updates, per se, can be non-trivial.
Perhaps there's a good reason why the packages are made opaque.

Namely, the ROM image tends to be "no longer a 1:1 copy", unlike what 
it was two decades ago. I've seen image formats that have a header, 
so the image is not a "binary rounded size" anymore. Or it can be 
compressed in some proprietary way. Or it may need proprietary 
"strapping" in the particular machine. Etc.
(Let alone the fact that UEFI NVAR's are stored on flash in the host 
machine = bye bye setup reset by removing the CMOS battery.)

For instance AMI at least make their proprietary flash programmer 
binaries available for DOS (still? maybe no longer), Win32/Win64 and 
UEFI (can be run from the EFI shell). Thus, even if the machine is 
UEFI-only, and does not have the UEFI shell included (in the system 
"BIOS"), you can still boot UEFI shell from a USB flash, and run the 
AMI flash tool from the UEFI shell.
AMI also have a flasher tool for Linux, not sure how portable, see 
also this if interested:
https://github.com/flohoff/amifldrv

If you still meet the good old Award style 1:1 binary images, 
congrats, that's good luck on your part :-) Not sure what happened to 
the Award BIOS codebase to this day, it's been years since it got 
acquired by Phoenix, and that possibly happened before the Award BIOS 
got UEFI support/architecture. I recall that Asus\Gigabyte\MSI used 
to create their own "cuts" of the awdflash tool, and you needed the 
mobo maker's own cut to flash the BIOS... or perhaps it was just the 
recentmost upstream releases coming out from Award and being required 
to flash your mobo, not sure.

Phoenix themselves, for their own legacy BIOS, apparently/possibly 
used a different "image packaging style": I recall once seeing a 
Phoenix BIOS update that consisted of a series of smaller files... 
that needed to be assembled by the flasher tool. This is not 
something you'd want to rip apart and try to flash using some generic 
tool.

There's also the generic "flashrom" tool, originally coming from the 
coreboot project, open-source and native in Linux, also used to have 
binary EXE builds for DOS:
https://www.flashrom.org/
There have been occasions where I used it to take a BIOS image as a 
snapshot of the ROM chip from an existing motherboard, and flash it 
in a different piece of that same HW model+revision.
Flashrom works with 1:1 images. And apart from in-band flashing on a 
live motherboard, it also supports out-of-band flashing via an SPI 
adaptor... (can be out of band AND in circuit).
Note that by 1:1 cloning, you also clone any DMI serial numbers or 
similar unique data - if you care about those.

> > file mb_bios_ga-970a-d3_f12.exe
> mb_bios_ga-970a-d3_f12.exe: PE32 executable (GUI) Intel 80386, 
> for MS Windows 
> 
Yes... the EXE binaries historically come in several flavours: DOS 
vs. modern Windows (NT-based), and the Windows variant further 
subdivides to a myriad CPU instruction sets... there are tools that 
can go into much more ugly details about the PE-COFF header. I recall 
something called LordPE, then there is IDA Pro (the free version is 
x86 only), and recently I recall that a tool called dotPeek (by 
JetBrains), nominally a dotNET decompiler, also contains a neat 
capability to show you all the ugly details of a PE-COFF header, even 
if the binary at hand is not of the dotNET persuasion:

https://www.jetbrains.com/decompiler/

What does the MZ header do, at the beginning of Windows PE-COFF 
binaries (hint: historical legacy compatibility):

https://stackoverflow.com/questions/957057/what-is-the-mz-signature-in
-a-pe-file-for

I guess this should do for my daily wallpaper...

Frank



_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to