[U-Boot] [PATCH 0/5 v6] support mapping PCI device ids to stream ids for MSIs

Stuart Yoder stuart.yoder at nxp.com
Thu Mar 10 17:51:51 CET 2016


From: Stuart Yoder <stuart.yoder at nxp.com>

A binding for PCI nodes has been finalized specifying how PCI
device IDs can be mapped to MSI specifiers.  See
Documentation/devicetree/bindings/pci/pci-msi.txt in the kernel.

For ls2080a and similar Layerscape SoCs, the MSI specifier is the stream
id.  A programmable table (LUT) in the PCI controller defines the hardware
mapping of PCI requester IDs to stream IDs.

This patch series implements support for this mapping.

Version 6 of the series squashes patches 4-7 together to avoid
static functions defined but not used.  This results in
5 patches:

Patch 1 removes the obsolete available-stream-id support.
Patch 2 updates stream ID partitioning info to be current
Patch 3 updates pci.h so pci_get_hose_head() is available
Patch 4 defines LUT register offsets
Patch 5 implements a function to iterate over all PCI buses
        and set up a LUT entry and msi-map for all discovered
        devices.  Helper functions allocate LUT entries,
        streamIDs, and append msi-map entries.

This patch series enables MSIs on ls2080a on v4.5-rc5 and later
kernels.  The obsolete support removed was unused in any
upstream kernels.

-v2 changes
   -in patch 7 removed skip of the host bridge when scanning the
    bus
-v3 changes
   -patch 4: moved LUT #defines to immap_lsch3.h, made index
             allocator return an int
   -patch 5: return 0xffffffff on error
   -patch 7: fixed return value checks
-v4 changes
   -put all device ID to stream ID mapping under LS2 #ifdefs
-v5 changes
   -check CONFIG_FSL_LSCH3 instead of SoC specific defines
-v6 changes
   -squashed patches 4-7 together, split out LUT #defines
    into separate patch, replaced a remaining SoC define
    with CONFIG_FSL_LSCH3

Stuart Yoder (5):
  armv8: ls2080a: remove obsolete stream ID partitioning support
  armv8: ls2080a: update stream ID partitioning info
  pci: make pci_get_hose_head() available to external users
  pci/layerscape: add defines for LUT
  pci/layerscape: set LUT and msi-map for discovered PCI devices

 arch/arm/cpu/armv8/fsl-layerscape/fdt.c            |  113 ----------
 .../include/asm/arch-fsl-layerscape/immap_lsch3.h  |    4 +
 .../asm/arch-fsl-layerscape/ls2080a_stream_id.h    |   55 +++--
 drivers/pci/pcie_layerscape.c                      |  217 +++++++++++++-------
 include/pci.h                                      |    1 +
 5 files changed, 186 insertions(+), 204 deletions(-)

-- 
1.7.9.5



More information about the U-Boot mailing list