On Fri, 21 Jun 2024 14:05:17 +0200
Gerd Hoffmann <kra...@redhat.com> wrote:

> On Wed, Jun 19, 2024 at 11:21:14AM GMT, John Levon wrote:
> > Older 32-bit Linux VMs (including Ubuntu 16.10) have issues with the
> > 64-bit pci io window, failing during boot with errors like:  
> 
> Well.  Why people would use *that* ubuntu version is not clear to me.
> It's *loooooong* out of support.  Even the LTS version from that year
> (16.04) is not supported any more.  But it is at least available for
> download still,  so I gave it a spin.
> 
> Turns out it apparently can't deal with PCI bars mapped above 16TB (aka
> 44 phys-bits).  Test patch below.
> 
> take care,
>   Gerd
> 
> diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c
> index bb44dc296047..a43876a931c9 100644
> --- a/src/fw/pciinit.c
> +++ b/src/fw/pciinit.c
> @@ -1189,11 +1189,16 @@ pci_setup(void)
>  
>      if (CPUPhysBits) {
>          pci_mem64_top = 1LL << CPUPhysBits;
> -        if (CPUPhysBits > 46) {
> -            // Old linux kernels have trouble dealing with more than 46
> -            // phys-bits, so avoid that for now.  Seems to be a bug in the
> -            // virtio-pci driver.  Reported: centos-7, ubuntu-18.04
> -            pci_mem64_top = 1LL << 46;
> +        if (CPUPhysBits > 44) {
> +            // Old linux kernels have trouble dealing with more than 44/46
> +            // phys-bits. Seems to be a bug in the virtio-pci driver.
> +            //   46:  centos-7, ubuntu-18.04
> +            //   44:  ubuntu-16.04
> +            // Limit the used address space to mitigate the bug, except we 
> are
> +            // running in a guest with more than 1TB of memory installed.

Is it possible to fix those broken drivers (centos-7 for example)
and ditch this heuristic altogether?
The rest of downstream can pick it up from there if they care about
their customers.

> +            if (RamSizeOver4G < (1LL << 40)) {
> +                pci_mem64_top = 1LL << 44;
> +            }
>          }
>      }
>  
> 
> _______________________________________________
> SeaBIOS mailing list -- seabios@seabios.org
> To unsubscribe send an email to seabios-le...@seabios.org
> 

_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-le...@seabios.org

Reply via email to