Bios Mods -The Best BIOS Update and Modification Source

Full Version: Run BIOS at QEMU
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Good day.
I have the task of run real BIOS at QEMU. I set Q35 motherboards BIOS instead of seabios. QEMU made a few hundreds or thousands instructions and hang up during IO ports initialization.
Is somebody do something like this?

P.S.I use QEMU with Intel Q35 chipset support.
I am very well aware that this is an old topic, but I keep getting google results to this exact thread.
And maybe this might be usefull or well known already:

Qemu stands for Quick Emulator.
To run some Bioses in qemu use a variant of:
Code:
qemu-system-i386.exe -M pc -bios "C:\Users\nicov\Desktop\ROMDump\bios test\final.bin"


[Image: SOH3oeO.png]

For linux:
Code:
qemu-system-i386 -M pc -bios ~/qemu/bios.bin

change the M option (Machine) to match your bioses hardware more closely. in my case, an old "Award BootBlock Bios v1.0" was not happy with q35 nor with plain isapc.

An empty machine does not contain anything, no cpu, no isa or pci busses. I think the purpose of that is to run bare code on a specific CPU if you specify one.

Together with GDB or an other debugger you might be able to step, trace and walk in your dumped bios. but this is "advanced" debugging, and Ill asume you are capable of doing so yourself.

I dislike threads popping up with no usufull replies and I do have an answer for it. (The rules dont state I cant or shouldn't necrobump threads) Hope this helps or give someone a helpfull idea. Also, if you dump a PowerPC firmware, you can run that too Wink just try qemu-system-ppc or qemu-system-ppc64 Wink

Have a good and awesome day Big Grin
Quote:you might be able to step, trace and walk
But what can I do when getting request on hardware registers not described in datasheet? Or it have another dependence factor.

Bios ASUS AT5NM10T-I, AMI post code 1A(check refresh timings?): used hpet timer, MCHBAR Registers 0x5D8, 0x561+4*x, word 0x58C, 0x248, r/w to/from ram address 0x0 to for set 0x560+4*x, x=0-7 - need trying emulated this?
So in Emulator skips very specified things, like chipset fsb strap, any info about MCHBAR Register 0x0C00 do you seeing anywhere ? Also skipped clockgen, sio with hw monitoring, smbus, internal vga card, spi flash ... even cmos in bochs was 128 byte.
Quote:I have the task of run real BIOS at QEMU.
Possible only with skip some code and might change registers values.