Download raw body.
ahci(4): Disable PMP for AMD AHCI controler
On Tue, Jul 21, 2026 at 09:55:50AM +1000, Jonathan Matthew wrote:
> On Mon, Jul 20, 2026 at 08:17:33PM +0200, Jan Klemkow wrote:
> > The AMD AHCI controller advertises port multiplier support but probing
> > for a PMP on each port costs 10 seconds of timeouts per disk at attach
> > time. We should disable it, like we do it for Intel.
>
> What systems does this controller appear in?
ASRock Rack TURIND8-2L2T mainboard with an AMD EPYC 9115 processor.
I'm not sure in which component contains the SATA controller.
> Do you know if port multipliers actually work with it?
No, I don't have hardware to test the SATA port multiplier function.
Do you know what I would need to test it?
> > Index: dev/pci/ahci_pci.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/pci/ahci_pci.c,v
> > diff -u -p -r1.18 ahci_pci.c
> > --- dev/pci/ahci_pci.c 16 Jun 2024 18:00:08 -0000 1.18
> > +++ dev/pci/ahci_pci.c 20 Jul 2026 15:00:21 -0000
> > @@ -67,6 +67,8 @@ int ahci_ati_sb700_attach(struct ahci_
> > struct pci_attach_args *);
> > int ahci_amd_hudson2_attach(struct ahci_softc *,
> > struct pci_attach_args *);
> > +int ahci_amd_kerncz_attach(struct ahci_softc *,
> > + struct pci_attach_args *);
> > int ahci_intel_attach(struct ahci_softc *,
> > struct pci_attach_args *);
> > int ahci_samsung_attach(struct ahci_softc *,
> > @@ -88,6 +90,11 @@ static const struct ahci_device ahci_dev
> > { PCI_VENDOR_AMD, PCI_PRODUCT_AMD_HUDSON2_SATA_6,
> > NULL, ahci_amd_hudson2_attach },
> >
> > + { PCI_VENDOR_AMD, PCI_PRODUCT_AMD_KERNCZ_AHCI_1,
> > + NULL, ahci_amd_kerncz_attach },
> > + { PCI_VENDOR_AMD, PCI_PRODUCT_AMD_KERNCZ_AHCI_2,
> > + NULL, ahci_amd_kerncz_attach },
> > +
> > { PCI_VENDOR_ATI, PCI_PRODUCT_ATI_SB600_SATA,
> > NULL, ahci_ati_sb600_attach },
> > { PCI_VENDOR_ATI, PCI_PRODUCT_ATI_SBX00_SATA_1,
> > @@ -263,6 +270,14 @@ ahci_amd_hudson2_attach(struct ahci_soft
> > ahci_ati_sb_idetoahci(sc, pa);
> >
> > sc->sc_flags |= AHCI_F_IPMS_PROBE;
> > +
> > + return (0);
> > +}
> > +
> > +int
> > +ahci_amd_kerncz_attach(struct ahci_softc *sc, struct pci_attach_args *pa)
> > +{
> > + sc->sc_flags |= AHCI_F_NO_PMP;
> >
> > return (0);
> > }
ahci(4): Disable PMP for AMD AHCI controler