[SeaBIOS] [PATCH] seabios/pci: enable 64 bit bar on seabios

Hao, Xudong xudong.hao at intel.com
Sun Nov 4 11:27:40 CET 2012


> -----Original Message-----
> From: Gerd Hoffmann [mailto:kraxel at redhat.com]
> Sent: Friday, November 02, 2012 5:00 PM
> To: Hao, Xudong
> Cc: kevin at koconnor.net; seabios at seabios.org; kvm at vger.kernel.org;
> avi at redhat.com
> Subject: Re: [PATCH] seabios/pci: enable 64 bit bar on seabios
> 
> On 11/02/12 06:42, Xudong Hao wrote:
> > 64 bit bar sizing and MMIO allocation. The 64 bit window is placed above high
> > memory, top down from the end of guest physical address space.
> 
> What problem you are trying to fix?  The existing code should handle
> 64bit bars just fine.  By default they are placed below 4G though for
> compatibility reasons (make old 32bit guests happy).  When running out
> of address space seabios will try map them above 4G though to make room
> below 4G.
> 

I just want to enable 64 bit bars for KVM usage, seabios 1.7.0 is used in current qemu-kvm, which not handle 64 bit bars yet.
I cloned seabios code from kernel.org(seems no 64 bit bars supporting), but I was not taking notice of the tree on http://git.qemu.org/, yes it has already done 64 bit bars handling. So you may ignore this patch.

Btw, when will the latest seabios(especially 64 bits bars) be involved qemu-kvm?

> Mapping your 64bit PCI bars above 4G unconditionally (for testing or
> other reasons) can simply be done this way:
> 
> --- a/src/pciinit.c
> +++ b/src/pciinit.c
> @@ -599,7 +599,7 @@ static void pci_bios_map_devices(struct pci_bus
> *busses)
>  {
>      pcimem_start = RamSize;
> 
> -    if (pci_bios_init_root_regions(busses)) {
> +    if (1 /* pci_bios_init_root_regions(busses) */) {
>          struct pci_region r64_mem, r64_pref;
>          r64_mem.list = NULL;
>          r64_pref.list = NULL;
> 
> We might want add a config option for this.
> 
> cheers,
>   Gerd




More information about the SeaBIOS mailing list