22 Mar, 2016

1 commit


17 Mar, 2016

2 commits


05 Feb, 2016

1 commit


24 Jan, 2016

1 commit


13 Jan, 2016

8 commits


01 Dec, 2015

5 commits


23 Oct, 2015

1 commit


26 Aug, 2015

1 commit


14 Aug, 2015

2 commits


05 Aug, 2015

1 commit


04 Aug, 2015

1 commit


22 Jul, 2015

2 commits

  • It is useful to be able to find the full PCI address (bus, device and
    function) for a PCI device. Add a function to provide this.

    Adjust the existing code to use this.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • At present all PCI devices must be present in the device tree in order to
    be used. Many or most PCI devices don't require any configuration other than
    that which is done automatically by U-Boot. It is inefficent to add a node
    with nothing but a compatible string in order to get a device working.

    Add a mechanism whereby PCI drivers can be declared along with the device
    parameters they support (vendor/device/class). When no suitable driver is
    found in the device tree the list of such devices is consulted to determine
    the correct driver. If this also fails, then a generic driver is used as
    before.

    The mechanism used is very similar to that provided by Linux and the header
    file defintions are copied from Linux 4.1.

    Signed-off-by: Simon Glass
    Reviewed-by: Joe Hershberger

    Simon Glass
     

15 Jul, 2015

2 commits

  • Currently PCI expansion ROM address is assigned by a call to
    pciauto_setup_rom() outside of the pci auto config process.
    This does not work when expansion ROM is on a device behind
    PCI bridge where bridge's memory limit register was already
    programmed to a value that does not cover the newly assigned
    expansion ROM address. To fix this, we should configure the
    ROM address during the auto config process.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Simon Glass
    Acked-by: Simon Glass

    Bin Meng
     
  • Only the PCI controller has access to the PCI region information. Make sure
    to use the controller (rather than any attached bridges) when configuring
    devices.

    This corrects a failure to scan and configure devices when driver model is
    enabled for PCI.

    Also add a comment to explain the problem.

    Signed-off-by: Simon Glass

    Simon Glass
     

17 Apr, 2015

3 commits


06 Feb, 2015

1 commit


24 Jan, 2015

1 commit


06 Jan, 2015

1 commit


25 Nov, 2014

1 commit


23 Nov, 2014

1 commit

  • When enumerating devices, honour the pci_skip_dev() function. This can
    be used by PCI controller drivers to restrict which devices will be
    probed.

    This is required by the NVIDIA Tegra PCIe controller driver, which will
    fail with a data abort exception if an access is attempted to a device
    number larger than 0 outside of bus 0. pci_skip_dev() is therefore
    implemented to prevent any such accesses.

    Signed-off-by: Thierry Reding
    Signed-off-by: Simon Glass

    Thierry Reding
     

09 Sep, 2014

1 commit


10 Nov, 2013

1 commit

  • This patch simply #ifdef's out the C-specific parts of pci.h when it is
    included by an assembly file. This will allow the macros it contains to
    be used from assembly source as will be done in a followup commit adding
    support for more modern MIPS Malta boards.

    Signed-off-by: Paul Burton

    Paul Burton
     

17 Oct, 2013

1 commit

  • Previously, the address of a requested capability is define like that
    "#define PCI_DCR 0x78"
    But, the addresses of capabilities is different with regard to PCIe revs.
    So this method is not flexible.

    Now a function to get the address of a requested capability is added and used.
    It can get the address dynamically by capability ID.
    The step of this function:
    1. Read Status register in PCIe configuration space to confirm that
    Capabilities List is valid.
    2. Find the address of Capabilities Pointer Register.
    3. Find the address of requested capability from the first capability.

    Signed-off-by: Zhao Qiang

    Zhao Qiang
     

10 Aug, 2013

1 commit

  • T4240 PCIe IP is version 3.0 and has some update comparing previous
    QorIQ products.

    1. Move Freescale specific register define
    to
    arch/powerpc/include/asm/fsl_pci.h
    and update the register offset define for T4240.

    2. add the status/control register define
    use status/control register to judge the link status

    3. The original code uses 'Programming Interface' field to judge if PCIE is
    EP or RC mode, however, T4240 does not support this functionality.
    According to PCIE specification, 'Header Type' offset 0x0e is used to
    indicate header type, so for PCIE controller, the patch changes code to
    use 'Header Type' field to identify if the PCIE is RC or EP mode.

    This patch fixes the PCIe card link up issue on T4240QDS.

    Signed-off-by: Roy Zang
    Signed-off-by: Minghuan Lian
    Signed-off-by: York Sun

    Zang Roy-R61911