linux_dsm_epyc7002/arch/powerpc/platforms/powernv
Gavin Shan 9fcd6f4a2b powerpc/powernv: Allocate PE# in reverse order
PE number for one particular PE can be allocated dynamically or
reserved according to the consumed M64 (64-bits prefetchable)
segments of the PE. The M64 segment can't be remapped to arbitrary
PE, meaning the PE number is determined according to the index
of the consumed M64 segment. As below figure shows, M64 resource
grows from low to high end, meaning the PE (number) reserved
according to M64 segment grows from low to high end as well,
so does the dynamically allocated PE number. It will lead to
conflict: PE number (M64 segment) reserved by dynamic allocation
is required by hot added PCI adapter at later point. It fails
the PCI hotplug because of the PE number can't be reserved
based on the index of the consumed M64 segment.

  +---+---+---+---+---+--------------------------------+-----+
  | 0 | 1 | 2 | 3 | 4 |      .......                   | 255 |
  +---+---+---+---+---+--------------------------------+-----+

  PE number for dynamic allocation          ----------------->
  PE number reserved for M64 segment        ----------------->

To resolve above conflicts, this forces the PE number to be
allocated dynamically in reverse order. With this patch applied,
the PE numbers are reserved in ascending order, but allocated
dynamically in reverse order.

Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-06-21 15:30:53 +10:00
..
eeh-powernv.c Revert "powerpc/powernv: Exclude root bus in pnv_pci_reset_secondary_bus()" 2016-05-12 19:43:37 +10:00
idle.c powerpc/sparse: make some things static 2016-06-16 22:23:11 +10:00
Kconfig powerpc/powernv: Add opal-prd channel 2015-06-05 08:32:21 +10:00
Makefile powerpc/powernv: Remove support for p5ioc2 2016-02-08 22:03:37 +11:00
npu-dma.c powerpc/powernv/npu: Enable NVLink pass through 2016-05-11 21:54:31 +10:00
opal-async.c powerpc/powernv: Reorder OPAL subsystem initialisation 2015-05-22 15:14:37 +10:00
opal-dump.c powernv/opal-dump: Convert to irq domain 2015-05-22 15:14:38 +10:00
opal-elog.c powerpc/powernv: Fix opal-elog interrupt handler 2015-07-06 20:24:36 +10:00
opal-flash.c powerpc/powernv: Add interfaces for flash device access 2015-04-11 20:49:21 +10:00
opal-hmi.c powerpc/powernv: Use the "unknown" checkstop type as a fallback 2016-04-11 20:30:40 +10:00
opal-irqchip.c powerpc/opal-irqchip: Fix deadlock introduced by "Fix double endian conversion" 2015-12-18 22:24:15 +11:00
opal-kmsg.c powerpc/powernv: Fix OPAL_CONSOLE_FLUSH prototype and usages 2016-01-13 12:35:17 +11:00
opal-lpc.c powerpc/powernv: Properly fix LPC debugfs endianness 2014-10-31 17:09:04 +11:00
opal-memory-errors.c powerpc/powernv: Reorder OPAL subsystem initialisation 2015-05-22 15:14:37 +10:00
opal-msglog.c powerpc/powernv: don't create OPAL msglog sysfs entry if memcons init fails 2016-02-22 20:31:55 +11:00
opal-nvram.c powerpc/powernv: Add pstore support on powernv 2015-03-23 14:06:10 +11:00
opal-power.c powerpc/powernv: Add poweroff (EPOW, DPO) events support for PowerNV platform 2015-07-16 13:34:36 +10:00
opal-prd.c powerpc/powernv: Drop owner assignment from platform_driver 2015-11-24 14:21:28 +11:00
opal-rtc.c powerpc/powernv: Only delay opal_rtc_read() retry when necessary 2015-12-27 19:12:40 +11:00
opal-sensor.c powerpc/powernv: Reorder OPAL subsystem initialisation 2015-05-22 15:14:37 +10:00
opal-sysparam.c powerpc/powernv: convert OPAL codes returned by sysparam calls 2015-06-04 22:27:56 +10:00
opal-tracepoints.c powerpc: Introduce asm-prototypes.h 2016-06-16 22:39:54 +10:00
opal-wrappers.S powerpc/powernv: Add a kmsg_dumper that flushes console output on panic 2015-12-27 19:12:40 +11:00
opal-xscom.c powerpc/powernv: remove FW_FEATURE_OPALv3 and just use FW_FEATURE_OPAL 2015-12-17 22:40:54 +11:00
opal.c powerpc/powernv: new function to access OPAL msglog 2016-02-09 20:27:04 +11:00
pci-ioda.c powerpc/powernv: Allocate PE# in reverse order 2016-06-21 15:30:53 +10:00
pci.c powerpc/powernv: Remove PCI_RESET_DELAY_US 2016-06-21 15:30:52 +10:00
pci.h powerpc/powernv: Increase PE# capacity 2016-06-21 15:30:53 +10:00
powernv.h powerpc/powernv: move dma_get_required_mask from pnv_phb to pci_controller_ops 2015-08-18 19:32:11 +10:00
rng.c powerpc: Use hardware RNG for arch_get_random_seed_* not arch_get_random_* 2015-07-23 19:52:03 +10:00
setup.c powerpc/mm/radix: Add radix callbacks for early init routines 2016-05-01 18:33:00 +10:00
smp.c powerpc/powernv: remove FW_FEATURE_OPALv3 and just use FW_FEATURE_OPAL 2015-12-17 22:40:54 +11:00
subcore-asm.S powerpc/powernv: Add support for POWER8 split core on powernv 2014-05-28 13:35:37 +10:00
subcore.c powerpc/powernv: Create separate subcores CPU feature bit 2016-02-22 20:47:46 +11:00
subcore.h powernv/powerpc: Add winkle support for offline cpus 2014-12-15 10:46:41 +11:00