[SeaBIOS] [PATCH] acpi: hide 64-bit PCI hole for Windows XP

Michael S. Tsirkin mst at redhat.com
Thu Aug 8 10:22:12 CEST 2013


On Thu, Aug 08, 2013 at 09:57:39AM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> >> Huh?  The 32bit window is sized according to the installed memory.
> >> That
> >> logic is in seabios and you'll try to move it to qemu, using pci-info.
> >> It wasn't in qemu before ...
> > 
> > The logic is in hw/i386/pc_piix.c and always was.
> 
> What exactly you are refering to?

pc_init1 which picks addresses and passes them on to
i440fx_init.


> >> It is the job of the firmware to initialize the hardware.  IMO it should
> >> work that way on qemu too to mimic real hardware.
> > 
> > That's exactly what we have. However QEMU is the one that knows
> > how hardware is configured (e.g. where's the
> > PCI hole), so we report that to bios.
> 
> Memory configuration is in the cmos, firmware can figure where it can
> place pci devices from that.  There is no need for a new interface.

The assumption being that whatever is not memory is PCI?
I'm not sure that's right.

> >> The firmware can initialize the hardware as it likes.  For the most part
> >> the OS can simply read the configuration from the pci config space.
> > 
> > Only for some hardware (Q35).
> 
> --verbose please.

i440fx_init gets pci_hole_start and pci_hole_end.
This is in hardware (QEMU) and not configurable by firmware.

> >>   (3) mmconf xbar start (MCFG, q35 only, at 0xb0000000 now).
> >>   (4) pmbase (FADT, at 0xb000 now).
> >>
> >> Especially 3+4 tend to be compile-time constants in the firmware as they
> >> are needed very early in the setup process.
> > 
> > So we don't need them in pci-config, just stick constant in ACPI.
> 
> I don't want them be constant.  I want allow the firmware pick them.
> Our mmconfig xbar is 256M and can handle 256 busses.  I'd like to have
> the option to reduce that to 64M and place it somewhere else.
> 
> Also coreboot and seabios use different values for pmbase.  coreboot on
> q35 maps the pmbase below 0x1000.  Which surely makes sense.  When we
> don't place chipset stuff at 0xb000 we can assign the 0xb000->0xbfff
> window to a pci bridge instead.
> 
> > Another issue is where to start/end the 32 bit window for PIIX.
> > That's really a PV thing for QEMU, hardcoded at the moment in bios
> > and QEMU.
> 
> Hmm?  --verbose please.  What issue to we have with the 32bit window?
> 
> cheers,
>   Gerd

I refer to PCI hole starting at 0xe0000000.

-- 
MST



More information about the SeaBIOS mailing list