NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/53672: New AMD AHCI controller product 43b8 can't do RESET
>Number: 53672
>Category: kern
>Synopsis: New AMD AHCI controller product 43b8 can't do RESET
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Oct 16 13:25:00 +0000 2018
>Originator: Brad Spencer
>Release: NetBSD 8.99.25
>Organization:
eldar.org
>Environment:
System: NetBSD andor.nat.eldar.org 8.99.25 NetBSD 8.99.25 (XEN3_DOM0) #0: Mon Oct 8 22:52:23 EDT 2018 brad%samwise.nat.eldar.org@localhost:/sys/arch/amd64/compile/XEN3_DOM0 amd64
Architecture: x86_64
Machine: amd64
>Description:
I have a new system that uses a pretty new AHCI chip from AMD. In
fact, so new that no one seems to know what to call it. None of the
usual PCI DEV ID web sites have it listed yet.
From dmesg:
[ 1.000003] ahcisata0 at pci2 dev 0 function 1: vendor 1022 product 43b8 (rev. 0x02)
In any case, this chip does not appear to do WDCTL_RST correctly, or
at least not in the manor our driver expects. Much of the time, the
wdX device will fail to probe with the:
clearing WDCTL_RST failed
message (from ahcisata_core.c). There is a bad work around I found in
that if I fob around with nearly any BIOS setting I can get the system
to boot once correctly. That is, turn off something and save the
settings. The next time a reboot happens, the device will fail to
probe again, and I simply reset the setting back and it works again,
for one time. Once the device fails to probe once, no matter how many
times a reboot occurs, or how many times a power cycle occurs, it does
not appear that the device will work, unless you fob something in the
BIOS.
This obviously isn't a very workable solution.
>How-To-Repeat:
Simply try to reboot my new system
>Fix:
This is how I "fixed" it... With this quirk enabled, the wdX device
probes correctly every single time and there does not appear to be any
obvious down sides.
*** sys/dev/pci/ahcisata_pci.c.DIST Thu Oct 13 13:55:34 2016
--- sys/dev/pci/ahcisata_pci.c Wed Oct 3 15:56:05 2018
***************
*** 194,199 ****
--- 194,201 ----
AHCI_PCI_QUIRK_FORCE },
{ PCI_VENDOR_ASMEDIA, PCI_PRODUCT_ASMEDIA_ASM1061_12,
AHCI_PCI_QUIRK_FORCE },
+ { PCI_VENDOR_AMD, PCI_PRODUCT_AMD_43B8_SATA,
+ AHCI_QUIRK_SKIP_RESET },
};
struct ahci_pci_softc {
*** sys/dev/pci/pcidevs.DIST Thu Aug 23 01:18:45 2018
--- sys/dev/pci/pcidevs Wed Oct 3 15:52:56 2018
***************
*** 1061,1066 ****
--- 1061,1067 ----
product AMD HUDSON_PCIE_1 0x43a1 Hudson PCIE Root Port 1
product AMD HUDSON_PCIE_2 0x43a2 Hudson PCIE Root Port 2
product AMD HUDSON_PCIE_3 0x43a3 Hudson PCIE Root Port 3
+ product AMD 43B8_SATA 0x43b8 AMD SATA Controller
product AMD SC751_SC 0x7006 AMD751 System Controller
product AMD SC751_PPB 0x7007 AMD751 PCI-PCI Bridge
product AMD IGR4_AGP 0x700a AMD IGR4 AGP Bridge
Regened pcidevs.h and such after the second patch.
Home |
Main Index |
Thread Index |
Old Index