[SeaBIOS] [Qemu-devel] [BUG] [Seabios] PCI 64bit BARs on Win2008 - unable to start the device. (ACPI lacks the _DSM method)

Kevin O'Connor kevin at koconnor.net
Wed Dec 14 06:10:25 CET 2011

On Wed, Dec 14, 2011 at 05:30:23PM +1300, Alexey Korolev wrote:
> Hi,
> >>
> >>It shouldn't be that hard to add the latter though.  seabios needs two
> >>more pci_region_type (PCI_REGION_TYPE_MEM_64 and
> >>PCI_REGION_TYPE_PREFMEM_64) to track and map 64bit bars separately.  And
> >>a address space window where it can map 64bit bars to.
> >Right. This is a thing I'm thinking about now. I seems that the
> >specifying 0x0 address in 64bit BARS is a bad idea. At least older
> >versions of Linux just hang as soon as requested range does not
> >fit in first 4GB.
> >So the only option would be specifying the particular address
> >range. It seems this works for everything - yet.
> I wonder if there any particular reason to separate prefetchable a
> non-prefetchable memory regions in pciinit? Extra two more regions
> would make code more complex.

If I understand this correctly, the prefmem and normal mem separation
is for pci bridges.  Devices behind a bridge need to have all their
prefmem regions consecutive and not overlapping with all the normal
mem ranges.  That way the bridge device can advertise just one prefmem
region and one normal mem region which encapsulates all the devices
behind it.


More information about the SeaBIOS mailing list