inception icon indicating copy to clipboard operation
inception copied to clipboard

Adressing > 4GB

Open carmaa opened this issue 11 years ago • 1 comments

When using a hex-value for the start address there is no way to effectively use an address over 4 GiB:

            if '0x' in start:
                start = int(start, 0) & 0xfffff000 # Address

that's a bit inconsistent, when start is entered as pages there is no such check.

            else:
                start = int(start) * cfg.PAGESIZE # Page number

carmaa avatar Feb 23 '14 19:02 carmaa

@carmaa I'm probably missing something, but can't PCIe devices be in a 64-bit MMIO now?

On real hardware, and under pHyp, the PCI host bridges on Power machines typically advertise two outbound MMIO windows from the guest's physical memory space to PCI memory space:

  • A 32-bit window which maps onto 2GiB..4GiB in the PCI address space
  • A 64-bit window which maps onto a large region somewhere high in PCI address space (traditionally this used an identity mapping from guest physical address to PCI address, but that's not always the case)

The qemu implementation in spapr-pci-host-bridge, however, only supports a single outbound MMIO window, however. At least some Linux versions expect the two windows however, so we arranged this window to map onto the PCI memory space from 2 GiB..~64 GiB, then advertised it as two contiguous windows, the "32-bit" window from 2G..4G and the "64-bit" window from 4G..~64G.

Source: https://lists.gnu.org/archive/html/qemu-devel/2016-10/msg00894.html

Manouchehri avatar Apr 10 '17 17:04 Manouchehri