On Wednesday 17 March 2021 12:59:24 Marek Behún wrote: > The ASMedia ASM1062 SATA controller causes an External Abort on > controllers which support Max Payload Size >= 512. It happens with > Aardvark PCIe controller (tested on Turris MOX) and also with DesignWare > controller (armada8k, tested on CN9130-CRB): > > ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300) > ata1.00: ATA-9: WDC WD40EFRX-68WT0N0, 80.00A80, max UDMA/133 > ata1.00: 7814037168 sectors, multi 0: LBA48 NCQ (depth 32), AA > ERROR: Unhandled External Abort received on 0x80000000 at EL3! > ERROR: exception reason=1 syndrome=0x92000210 > PANIC at PC : 0x00000000040273bc > > Limiting Max Payload Size to 256 bytes solves this problem. > > On Turris MOX this problem first appeared when the pci-aardvark > controller started using the pci-emul-bridge API, in commit 8a3ebd8de328 > ("PCI: aardvark: Implement emulated root PCI bridge config space"). > > On armada8k this was always a problem because it has HW root bridge. > > Signed-off-by: Marek Behún <kabel@xxxxxxxxxx> > Reported-by: Rötti <espressobinboardarmbiantempmailaddress@xxxxxxxxx> Link to Rötti's report: https://lore.kernel.org/linux-ide/cbbb2496501fed013ccbeba524e8d573@xxxxxxxxx/T/#u > Cc: Pali Rohár <pali@xxxxxxxxxx> Reviewed-by: Pali Rohár <pali@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > --- > drivers/pci/quirks.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 653660e3ba9e..a561136efb08 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -3251,6 +3251,11 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SOLARFLARE, > PCI_DEVICE_ID_SOLARFLARE_SFC4000A_1, fixup_mpss_256); > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SOLARFLARE, > PCI_DEVICE_ID_SOLARFLARE_SFC4000B, fixup_mpss_256); > +/* > + * For some reason DECLARE_PCI_FIXUP_HEADER does not work with pci-aardvark > + * controller. We have to use DECLARE_PCI_FIXUP_EARLY. > + */ > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ASMEDIA, 0x0612, fixup_mpss_256); > > /* > * Intel 5000 and 5100 Memory controllers have an erratum with read completion > -- > 2.26.2 >