diff mbox

seabios/pci: enable 64 bit bar on seabios

Message ID 50938B8B.8050804@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Gerd Hoffmann Nov. 2, 2012, 8:59 a.m. UTC
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.

Mapping your 64bit PCI bars above 4G unconditionally (for testing or
other reasons) can simply be done this way:


We might want add a config option for this.

cheers,
  Gerd

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Hao, Xudong Nov. 4, 2012, 10:27 a.m. UTC | #1
> -----Original Message-----
> From: Gerd Hoffmann [mailto:kraxel@redhat.com]
> Sent: Friday, November 02, 2012 5:00 PM
> To: Hao, Xudong
> Cc: kevin@koconnor.net; seabios@seabios.org; kvm@vger.kernel.org;
> avi@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

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Gerd Hoffmann Nov. 5, 2012, 9:08 a.m. UTC | #2
Hi,

> 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?

qemu 1.2.0 has it (seabios 1.7.1, a git snapshot very close to it to be
exact), and qemu-kvm 1.2.0 should have it too.

cheers,
  Gerd
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hao, Xudong Nov. 5, 2012, 9:24 a.m. UTC | #3
> -----Original Message-----
> From: Gerd Hoffmann [mailto:kraxel@redhat.com]
> Sent: Monday, November 05, 2012 5:08 PM
> To: Hao, Xudong
> Cc: kevin@koconnor.net; seabios@seabios.org; kvm@vger.kernel.org;
> avi@redhat.com
> Subject: Re: [PATCH] seabios/pci: enable 64 bit bar on seabios
> 
>   Hi,
> 
> > 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?
> 
> qemu 1.2.0 has it (seabios 1.7.1, a git snapshot very close to it to be
> exact), and qemu-kvm 1.2.0 should have it too.
> 

Got it, thanks.

-Xudong
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

--- 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;