On Tue, Jan 14, 2014 at 9:05 AM, Michael S. Tsirkin <m...@redhat.com> wrote: > On Tue, Jan 14, 2014 at 08:50:54AM -0500, Mike Day wrote:
>> >> Also, both 32-bit and 64-bit BARs are required to be supported. It is >> legal to construct a 64-bit BAR by masking all the high bits to >> zero. Presumably it would be OK to mask the 16 high bits to zero as >> well, constructing a 48-bit address. > The question was whether addresses such as > 0xfffffffffec00000 can be a valid BAR value on these > platforms, whether it's accessible to the CPU and > to other PCI devices. The answer has to be no at least for Linux. Linux uses the high bit of the page table address as state to indicate a huge page and uses 48-bit addresses. Each PCI device is different but right now Power7 supports 16TB of RAM so I don't think the PCI bridge would necessarily decode the high 16 bits of the memory address. For two PCI devices to communicate with each other using 64-bit addresses they both need to support 64-bit memory in the same address range, which is possible. All this info subject to Paul Mackerras or Alexy … Mike