qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] How does the QEMU load the binary files bios.bin and vg


From: Bei Guan
Subject: Re: [Qemu-devel] How does the QEMU load the binary files bios.bin and vgabios-cirrus.bin?
Date: Fri, 8 Apr 2011 01:31:57 +0800



2011/4/8 Bei Guan <address@hidden>


2011/4/7 Anthony Liguori <address@hidden>
On 04/07/2011 03:22 AM, Bei Guan wrote:
Hi,

I have some questions about the qemu's bios. How does the QEMU load the binary files bios.bin and vgabios-cirrus.bin? Which function or code file need I to pay more attention to?

For the loading of vgabios-cirrus.bin and bios.bin, I just trace them into the same funciton rom_add_file() in hw/loader.c. Is it the right function, which loads the bioses?

And then another question, how qemu give the control to bios when the bios file is loaded? Maybe this question is not in the scope of qemu, however, can you give me some cue point.

I had some stuff written up locally so I posted it to the wiki at http://wiki.qemu.org/Documentation/Platforms/PC

Thanks for this detailed description. Is it to say that if we want to boot a BIOS (such as SeaBIOS), we must need to initialize the Memory ranged from 0x00000 to 0xF0000, which includes DOS Memory Area, Video Memory, ISA Extension ROM and BIOS Extension ROM, with the information needed by BIOS?
Is this Memory Layout all the same for all the BIOS booting? I mean that if we port another BIOS, do will need to modify the the codes of filling information into this Memory Layout?

Thanks,
Gavin

 

Another question is that in the QEMU, does all the information of the emulated hardware have to be filled in the memory layout before the SeaBIOS boot? And after it booting, the BIOS can do everything to boot the Operating System. This phase (BIOS runing) doesn't need any interaction with QEMU. Is it?

Thanks.
Gavin

 


The x86 architecture defines the initial state of the chip to have the CS register have a base of 0xF000 and an IP of 0xFFF0.  The result is that the actual memory address of the first instruction falls at the end of the BIOS ROM segment.  This is the entry point to the BIOS.

The VGABIOS is treated like any other option ROM and is initialized during option ROM scanning.

Regards,

Anthony Liguori


Any reply are appreciated. Thanks.

Gavin








reply via email to

[Prev in Thread] Current Thread [Next in Thread]