And the big comment is correct.  It may not be this specific chip.
It's this specific chip on this specific machine.  Later on we
may know more, to identify the problem better.

Mark Kettenis <mark.kette...@xs4all.nl> wrote:

> > Date: Sun, 16 Jun 2024 16:37:10 +0000
> > From: Klemens Nanni <k...@openbsd.org>
> > 
> > GENERIC cpu(4) fix and pcidevs have been committed.
> > Now only this ahci(4) quirk is pending to fix the SSD.
> > 
> > Neither Linux nor FreeBSD seem to have AHCI and/or MSI specific
> > quirks for this, but contrary to OpenBSD they can boot and use the
> > SSD.
> > 
> > Until there's a better way, this disabling MSI for that specific
> > AHCI controller like already done for specific Intel MacBooks make
> > snapshhots usable for me.
> > 
> > Feedback? Objection? OK?
> 
> Since other devices seem to work fine with MSI, this is the right fix.
> 
> ok kettenis@
> 
> > Index: sys/dev/pci/ahci_pci.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/pci/ahci_pci.c,v
> > diff -u -p -r1.17 ahci_pci.c
> > --- sys/dev/pci/ahci_pci.c  24 May 2024 06:02:53 -0000      1.17
> > +++ sys/dev/pci/ahci_pci.c  15 Jun 2024 20:19:30 -0000
> > @@ -71,6 +71,8 @@ int                       ahci_intel_attach(struct 
> > ahci_soft
> >                         struct pci_attach_args *);
> >  int                        ahci_samsung_attach(struct ahci_softc *,
> >                         struct pci_attach_args *);
> > +int                        ahci_storx_attach(struct ahci_softc *,
> > +                       struct pci_attach_args *);
> >  
> >  static const struct ahci_device ahci_devices[] = {
> >     { PCI_VENDOR_AMD,       PCI_PRODUCT_AMD_HUDSON2_SATA_1,
> > @@ -148,7 +150,10 @@ static const struct ahci_device ahci_dev
> >         NULL,               ahci_samsung_attach },
> >  
> >     { PCI_VENDOR_VIATECH,   PCI_PRODUCT_VIATECH_VT8251_SATA,
> > -     ahci_no_match,        ahci_vt8251_attach }
> > +     ahci_no_match,        ahci_vt8251_attach },
> > +
> > +   { PCI_VENDOR_ZHAOXIN,   PCI_PRODUCT_ZHAOXIN_STORX_AHCI,
> > +     NULL,                 ahci_storx_attach },
> >  };
> >  
> >  int                        ahci_pci_match(struct device *, void *, void *);
> > @@ -279,6 +284,19 @@ ahci_samsung_attach(struct ahci_softc *s
> >      * as the XP941 SSD controller.
> >      * https://bugzilla.kernel.org/show_bug.cgi?id=60731
> >      * https://bugzilla.kernel.org/show_bug.cgi?id=89171
> > +    */
> > +   sc->sc_flags |= AHCI_F_NO_MSI;
> > +
> > +   return (0);
> > +}
> > +
> > +int
> > +ahci_storx_attach(struct ahci_softc *sc, struct pci_attach_args *pa)
> > +{
> > +   /*
> > +    * Disable MSI with the ZX-100/ZX-200/ZX-E StorX AHCI Controller
> > +    * in the Unchartevice 6640MA notebook, otherwise ahci(4) hangs
> > +    * with SATA speed set to "Gen3" in BIOS.
> >      */
> >     sc->sc_flags |= AHCI_F_NO_MSI;
> >  
> > 
> > 
> 

Reply via email to