> 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