Re: [PATCH] PCI: Add Max Payload Size quirk for ASMedia ASM1062 SATA controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> 



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux