lkml.org 
[lkml]   [2021]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 00/42] PCI: aardvark: Various driver fixes
    Date
    This patch series fixes various issues in pci-aardvark.c driver
    (PCIe controller on Marvell Armada 3700 SoC) used on Espressobin
    and Turris Mox.

    First patch fixes kernel panic (or TF-A panic depending on used
    firmware) during execution of PIO transfer and I would suggest to
    include this fix into v5.13 release to prevent future kernel panics.

    Other patches then fixes PIO issues, PCIe link training, initialization
    of PCIe controller, accessing PCIe Root Bridge/Port registers, handling
    of interrupts (including ERR and PME), setup of Multi-MSI interrupts,
    adding support for masking MSI interrupts, adding support for more than
    32 MSI interrupts with MSI-X support, and adding support for AER.

    Note that there are still some unresolved issues with PCIe on A3720.
    I asked Marvell for PCIe documentation or explanations but I have not
    received anything (yet).

    Patch "Fix checking for PIO status" is taken from the Marvell github fork
    and adapted for inclusion into mainline kernel:
    https://github.com/MarvellEmbeddedProcessors/linux-marvell/commit/84444d22023c

    Whole patch series is available also in my git branch pci-aardvark:
    https://git.kernel.org/pub/scm/linux/kernel/git/pali/linux.git/log/?h=pci-aardvark

    If you have Espressobin, Turris Mox or other A3720 board with PCIe
    please test this patch series with your favourite PCIe card if
    everything is working fine.

    Evan Wang (1):
    PCI: aardvark: Fix checking for PIO status

    Pali Rohár (39):
    PCI: aardvark: Fix kernel panic during PIO transfer
    PCI: aardvark: Fix checking for PIO Non-posted Request
    PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO
    response
    PCI: pci-bridge-emul: Add PCIe Root Capabilities Register
    PCI: aardvark: Fix reporting CRS Software Visibility on emulated
    bridge
    PCI: aardvark: Fix link training
    PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
    PCI: aardvark: Fix PCIe Max Payload Size setting
    PCI: aardvark: Implement workaround for the readback value of VEND_ID
    PCI: aardvark: Do not touch status bits of masked interrupts in
    interrupt handler
    PCI: aardvark: Check for virq mapping when processing INTx IRQ
    PCI: aardvark: Remove irq_mask_ack callback for INTx interrupts
    PCI: aardvark: Don't mask irq when mapping
    PCI: aardvark: Change name of INTx irq_chip to advk-INT
    PCI: aardvark: Remove unneeded goto
    PCI: aardvark: Fix support for MSI interrupts
    PCI: aardvark: Correctly clear and unmask all MSI interrupts
    PCI: aardvark: Fix setting MSI address
    PCI: aardvark: Add support for more than 32 MSI interrupts
    PCI: aardvark: Add support for masking MSI interrupts
    PCI: aardvark: Enable MSI-X support
    PCI: aardvark: Fix support for ERR interrupt on emulated bridge
    PCI: aardvark: Fix support for PME on emulated bridge
    PCI: aardvark: Fix support for PME requester on emulated bridge
    PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on
    emulated bridge
    PCI: aardvark: Disable bus mastering and mask all interrupts when
    unbinding driver
    PCI: aardvark: Free config space for emulated root bridge when
    unbinding driver to fix memory leak
    PCI: aardvark: Reset PCIe card and disable PHY when unbinding driver
    PCI: aardvark: Rewrite irq code to chained irq handler
    PCI: aardvark: Use separate INTA interrupt for emulated root bridge
    PCI: pci-bridge-emul: Add description for class_revision field
    PCI: pci-bridge-emul: Add definitions for missing capabilities
    registers
    PCI: aardvark: Add support for DEVCAP2, DEVCTL2, LNKCAP2 and LNKCTL2
    registers on emulated bridge
    PCI: aardvark: Add support for PCI_BRIDGE_CTL_BUS_RESET on emulated
    bridge
    PCI: aardvark: Replace custom PCIE_CORE_ERR_CAPCTL_* macros by
    linux/pci_regs.h macros
    PCI: aardvark: Replace custom PCIE_CORE_INT_* macros by linux
    PCI_INTERRUPT_* values
    PCI: aardvark: Cleanup some register macros
    PCI: aardvark: Add comments for OB_WIN_ENABLE and ADDR_WIN_DISABLE
    PCI: aardvark: Add support for Advanced Error Reporting registers on
    emulated bridge

    Russell King (2):
    PCI: pci-bridge-emul: re-arrange register tests
    PCI: pci-bridge-emul: add support for PCIe extended capabilities

    drivers/pci/controller/pci-aardvark.c | 980 +++++++++++++++++++-------
    drivers/pci/pci-bridge-emul.c | 149 ++--
    drivers/pci/pci-bridge-emul.h | 17 +-
    include/uapi/linux/pci_regs.h | 6 +
    4 files changed, 850 insertions(+), 302 deletions(-)

    --
    2.20.1

    \
     
     \ /
      Last update: 2021-05-06 17:33    [W:4.782 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site