• A
    spapr-pci: Enable huge BARs · b194df47
    Alexey Kardashevskiy 提交于
    At the moment sPAPR only supports 512MB window for MMIO BARs. However
    modern devices might want bigger 64bit BARs.
    
    This extends MMIO window from 512MB to 62GB (aligned to
    SPAPR_PCI_WINDOW_SPACING) and advertises it in 2 records in
    the PHB "ranges" property. 32bit gets the space from
    SPAPR_PCI_MEM_WIN_BUS_OFFSET till the end of 4GB, 64bit gets the rest
    of the space. If no space is left, 64bit range is not advertised.
    
    The MMIO space size is set to old value of 0x20000000 by default
    for pseries machines older than 2.3.
    
    The approach changes the device tree which is a guest visible change, however
    it won't break migration as:
    1. we do not support migration to older QEMU versions
    2. migration to newer QEMU will migrate the device tree as well and since
    the new layout only extends the old one and does not change address mappigns,
    no breakage is expected here too.
    
    SLOF change is required to utilize this extension.
    Suggested-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
    Reviewed-by: NDavid Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: NAlexander Graf <agraf@suse.de>
    b194df47
spapr_pci.c 31.7 KB