From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=53572 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q7rAw-0002J9-3i for qemu-devel@nongnu.org; Thu, 07 Apr 2011 11:31:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q7rAu-0000lw-Kg for qemu-devel@nongnu.org; Thu, 07 Apr 2011 11:31:13 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55770) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q7rAu-0000lD-8n for qemu-devel@nongnu.org; Thu, 07 Apr 2011 11:31:12 -0400 Date: Thu, 7 Apr 2011 18:31:06 +0300 From: Gleb Natapov Subject: Re: [Qemu-devel] How does the QEMU load the binary files bios.bin and vgabios-cirrus.bin? Message-ID: <20110407153106.GA7100@redhat.com> References: <4D9DBC05.8010400@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4D9DBC05.8010400@codemonkey.ws> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Bei Guan , QEMU Developers On Thu, Apr 07, 2011 at 08:28:37AM -0500, Anthony Liguori wrote: > 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 > > 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. > Actually after reset on x86 IP=0x0000fff0, CS=0xf000, CS.BASE= 0xffff0000, CS.LIMIT=0xffff. So the execution begins at 0xfffffff0 where ROM is mapped initially. > 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 > > > > > > > > > -- Gleb.