[SeaBIOS] [PATCH 2/3] Add a new PCI region type to supports 64 bit ranges

Alexey Korolev alexey.korolev at endace.com
Thu Dec 29 04:57:53 CET 2011

On 29/12/11 00:30, Michael S. Tsirkin wrote:
> On Wed, Dec 28, 2011 at 06:26:05PM +1300, Alexey Korolev wrote:
>> This patch adds PCI_REGION_TYPE_PREFMEM_64 region type and modifies types of
>> variables to make it possible to work with 64 bit addresses.
>> Why I've added just one region type PCI_REGION_TYPE_PREFMEM_64 and haven't
>> added PCI_REGION_TYPE_MEM_64? According to PCI architecture
>> specification, the
>> bridges can describe 64bit ranges for prefetchable type of memory
>> only. So it's very
>> unlikely that devices exporting 64bit non-prefetchable BARs.
> Might happen for system devices I guess.
>> Anyway
>> this code will work
>> with 64bit non-prefetchable BARs unless the PCI device is not behind
>> the secondary bus.
> So what happens if such a device is on root bus?
If a device is on the root bus and have BAR flags 0x4 (TYPE_MEMORY and 
64 bit),
memory will be allocated in 64bit range all flags remain the same. I did 
this just out
of curiosity and this appears to work well.

More information about the SeaBIOS mailing list