linux/arch/powerpc/platforms
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
..
8xx genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
40x powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
44x powerpc/44x/Akebono: Remove select of IBM_EMAC_RGMII_WOL 2014-12-29 15:45:44 +11:00
52xx powerpc: mpc52xx_gpt: use gpiochip data pointer 2016-03-30 10:50:47 +02:00
82xx mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
83xx powerpc: mpc8349emitx: use gpiochip data pointer 2016-03-30 10:51:54 +02:00
85xx powerpc/mpc85xx: Add CPU hotplug support for E6500 2016-03-04 23:58:38 -06:00
86xx powerpc/86xx: Consolidate common platform code 2016-03-11 19:14:12 -06:00
512x powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
amigaone lib/scatterlist: make ARCH_HAS_SG_CHAIN an actual Kconfig 2014-08-08 15:57:26 -07:00
cell powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
chrp genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
embedded6xx powerpc32: remove ioremap_base 2016-03-11 17:18:02 -06:00
maple powerpc: Remove broken GregorianDay() 2015-12-16 12:54:04 +11:00
pasemi mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
powermac powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
powernv powerpc/powernv: Allocate PE# in reverse order 2016-06-21 15:30:53 +10:00
ps3 powerpc/mm/hash: Add support for Power9 Hash 2016-05-01 18:32:40 +10:00
pseries powerpc/sparse: Include headers containing prototypes 2016-06-16 22:40:19 +10:00
fsl_uli1575.c of/irq: Refactor interrupt-map parsing 2013-10-24 11:43:04 +01:00
Kconfig QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
Kconfig.cputype powerpc/mm/radix: Add THP support for 4K linux page size 2016-05-11 21:53:58 +10:00
Makefile powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00