Thank you! Works for my 32-bit Debian 12 VM :)
I wanted to briefly ask if a new SeaBIOS release is planned before/for QEMU 10.0?
A colleague told me that commit ec0bc256 ("limit address space used for pci devices, part two") alleviates another issue one of our users faced. Of course we could ship an updated SeaBIOS ROM downstream, but others might benefit from a new release too, so I wanted to ask.
Best Regards, Fiona
Am 22.11.24 um 15:33 schrieb Gerd Hoffmann:
Add a new possible state: '-1' means 'use default'. In that case seabios continue to use the current heuristic: In case memory above 4G is present enable 64-bit guest friendly configuration.
This allows forcing the one or the other behavior by setting the pci_pad_mem64 variable beforehand (which is done by another patch).
Signed-off-by: Gerd Hoffmann kraxel@redhat.com
src/fw/pciinit.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c index b3e359d7fe62..be76c447cf19 100644 --- a/src/fw/pciinit.c +++ b/src/fw/pciinit.c @@ -55,7 +55,7 @@ u64 pcimem64_end = BUILD_PCIMEM64_END; // Resource allocation limits static u64 pci_io_low_end = 0xa000; static u64 pci_mem64_top = 0; -static u32 pci_pad_mem64 = 0; +static u32 pci_pad_mem64 = -1;
struct pci_region_entry { struct pci_device *dev; @@ -1202,8 +1202,15 @@ pci_setup(void) } }
- if (CPUPhysBits >= 36 && CPULongMode && RamSizeOver4G)
pci_pad_mem64 = 1;
pci_pad_mem64 = romfile_loadbool("opt/org.seabios/pci64", -1);
if (pci_pad_mem64 == -1)
// when not set enable in case memory over 4G is present
pci_pad_mem64 = RamSizeOver4G ? 1 : 0;
if (!CPULongMode)
// force off for 32-bit CPUs
pci_pad_mem64 = 0;
dprintf(1, "=== PCI bus & bridge init ===\n"); if (pci_probe_host() != 0) {