PCI: Add func1 DMA quirk for Marvell 88SE9125 SATA controller
PATCH RESEND v3 1/1 PCI: Add func1 DMA quirk for Marvell 88SE9125 SATA controller
Like other SATA controller chips in the Marvell 88SE91xx series, the Marvell 88SE9125 has the same DMA requester ID hardware bug that prevents it from working under IOMMU. This patch adds its device ID 0x9125 to the Function 1 DMA alias quirk list.
This patch should not be confused with an earlier patch, commit 059983790a4c ("PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller"), which applies to a different chip with a similar model number, 88SE9215.
Without this patch, device initialization fails with DMA errors.
ata8: softreset failed (1st FIS failed)
DMAR: DRHD: handling fault status reg 2
DMAR: [DMA Write NO_PASID] Request device [03:00.1] fault addr 0xfffc0000 [fault reason 0x02] Present bit in context entry is clear
DMAR: DRHD: handling fault status reg 2
DMAR: [DMA Read NO_PASID] Request device [03:00.1] fault addr 0xfffc0000 [fault reason 0x02] Present bit in context entry is clear
After applying the patch, the controller can be successfully initialized.
ata8: SATA link up 1.5 Gbps (SStatus 113 SControl 330)
ata8.00: ATAPI: PIONEER BD-RW BDR-207M, 1.21, max UDMA/100
ata8.00: configured for UDMA/100
scsi 7:0:0:0: CD-ROM PIONEER BD-RW BDR-207M 1.21 PQ: 0 ANSI: 5---
Notes:
v3: Use full names in Reported-by and Tested-by tags.
v2: I accidentally sent an earlier version of the commit without CCing [email protected]. The mail itself was also rejected by many servers due to a DKIM issue. Thus [PATCH v2], sorry for the noise.
drivers/pci/quirks.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/pci/quirks.c +3 -0
@@ -4103,6 +4103,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9120, quirk_dma_func1_alias);DECLARE_PCI_FIXUP_HEADER (PCI_VENDOR_ID_MARVELL_EXT ,0x9123 , quirk_dma_func1_alias); +/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c136 */ +DECLARE_PCI_FIXUP_HEADER (PCI_VENDOR_ID_MARVELL_EXT ,0x9125 , + quirk_dma_func1_alias);DECLARE_PCI_FIXUP_HEADER (PCI_VENDOR_ID_MARVELL_EXT ,0x9128 , quirk_dma_func1_alias);/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c14 */
Signature · 1 line
2.31.1
Quoted 24 lines · Yifeng Li
Like other SATA controller chips in the Marvell 88SE91xx series, the Marvell 88SE9125 has the same DMA requester ID hardware bug that prevents it from working under IOMMU. This patch adds its device ID
0x9125to the Function 1 DMA alias quirk list.This patch should not be confused with an earlier patch, commit
059983790a4c("PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller"), which applies to a different chip with a similar model number, 88SE9215.Without this patch, device initialization fails with DMA errors.
ata8: softreset failed (1st FIS failed)
DMAR: DRHD: handling fault status reg 2
DMAR: [DMA WriteNO_PASID] Request device [03:00.1] fault addr0xfffc0000[fault reason0x02] Present bit in context entry is clear
DMAR: DRHD: handling fault status reg 2
DMAR: [DMA ReadNO_PASID] Request device [03:00.1] fault addr0xfffc0000[fault reason0x02] Present bit in context entry is clearAfter applying the patch, the controller can be successfully initialized.
ata8: SATA link up 1.5 Gbps (SStatus 113 SControl 330) ata8.00: ATAPI: PIONEER BD-RW BDR-207M, 1.21, max UDMA/100 ata8.00: configured for UDMA/100 scsi 7:0:0:0: CD-ROM PIONEER BD-RW BDR-207M 1.21 PQ: 0 ANSI: 5
Quoted 6 lines
Reported-by Sam Bingner <[email protected]>Tested-by Sam Bingner <[email protected]>Tested-by Yifeng Li <[email protected]>Signed-off-by Yifeng Li <[email protected]>Reviewed-by Krzysztof Wilczyński <[email protected]>
I tweaked the subject line to match similar previous commits and applied to pci/virtualization for v5.17, thanks!
e44537588288 ("PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller") 059983790a4c ("PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller") 9cde402a5977 ("PCI: Add function 1 DMA alias quirk for Marvell 9170 SATA controller") 7695e73f3db4 ("PCI: Add function 1 DMA alias quirk for Marvell 88SS9183") 1903be8222b7 ("PCI: Add function 1 DMA alias quirk for Highpoint RocketRAID 644L") 832e4e1f76b8 ("PCI: Add function 1 DMA alias quirk for Marvell 88SE9220") aa0082066343 ("PCI: Add function 1 DMA alias quirk for Marvell 9128") 00456b35a527 ("PCI: Add function 1 DMA alias quirk for Marvell 88SE9182")
Quoted 29 lines
---
Notes:
v3: Use full names in Reported-by and Tested-by tags.v2: I accidentally sent an earlier version of the commit without CCing [email protected]. The mail itself was also rejected by many servers due to a DKIM issue. Thus [PATCH v2], sorry for the noise.
drivers/pci/quirks.c | 3 +++ 1 file changed, 3 insertions(+)drivers/pci/quirks.c +3
-0@@ -4103,6 +4103,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9120, quirk_dma_func1_alias);DECLARE_PCI_FIXUP_HEADER (PCI_VENDOR_ID_MARVELL_EXT ,0x9123 , quirk_dma_func1_alias); +/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c136 */ +DECLARE_PCI_FIXUP_HEADER (PCI_VENDOR_ID_MARVELL_EXT ,0x9125 , + quirk_dma_func1_alias);DECLARE_PCI_FIXUP_HEADER (PCI_VENDOR_ID_MARVELL_EXT ,0x9128 , quirk_dma_func1_alias);/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c14 */ Signature · 1 line
2.31.1