1. 24 11月, 2011 1 次提交
    • T
      powerpc/fsl_msi: add support for the fsl, msi property in PCI nodes · 895d603f
      Timur Tabi 提交于
      On Freescale parts with multiple MSI controllers, the controllers are
      combined into one "pool" of interrupts.  Whenever a device requests an MSI
      interrupt, the next available interrupt from the pool is selected,
      regardless of which MSI controller the interrupt is from.  This works
      because each PCI bus has an ATMU to all of CCSR, so any PCI device can
      access any MSI interrupt register.
      
      The fsl,msi property is used to specify that a given PCI bus should only
      use a specific MSI device.  This is necessary, for example, with the
      Freescale hypervisor, because the MSI devices are assigned to specific
      partitions.
      
      Ideally, we'd like to be able to assign MSI devices to PCI busses within
      the MSI or PCI layers.  However, there does not appear to be a mechanism
      to do that.  Whenever the MSI layer wants to allocate an MSI interrupt to
      a PCI device, it just calls arch_setup_msi_irqs().  It would be nice if we
      could register an MSI device with a specific PCI bus.
      
      So instead we remember the phandles of each MSI device, and we use that to
      limit our search for an available interrupt.  Whenever we are asked to
      allocate a new interrupt for a PCI device, we check the fsl,msi property
      of the PCI bus for that device.  If it exists, then as we are looping over
      all MSI devices, we skip the ones that don't have a matching phandle.
      Signed-off-by: NTimur Tabi <timur@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      895d603f
  2. 14 10月, 2011 1 次提交
  3. 25 5月, 2010 2 次提交
  4. 20 8月, 2008 2 次提交
  5. 03 6月, 2008 1 次提交
    • J
      [POWERPC] fsl: PCIe MSI support for 83xx/85xx/86xx processors. · 34e36c15
      Jason Jin 提交于
      This MSI driver can be used on 83xx/85xx/86xx board.
      In this driver, virtual interrupt host and chip were
      setup. There are 256 MSI interrupts in this host, Every 32
      MSI interrupts cascaded to one IPIC/MPIC interrupt.
      The chip was treated as edge sensitive and some necessary
      functions were setup for this chip.
      
      Before using the MSI interrupt, PCI/PCIE device need to
      ask for a MSI interrupt in the 256 MSI interrupts. A 256bit
      bitmap show which MSI interrupt was used, reserve bit in
      the bitmap can be used to force the device use some designate
      MSI interrupt in the 256 MSI interrupts. Sometimes this is useful
      for testing the all the MSI interrupts. The msi-available-ranges
      property in the dts file was used for this purpose.
      Signed-off-by: NJason Jin <Jason.jin@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      34e36c15