NetBSD Problem Report #57015

From mlelstv@tazz.1st.de  Sat Sep 17 12:39:36 2022
Return-Path: <mlelstv@tazz.1st.de>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 5F38A1A923D
	for <gnats-bugs@gnats.NetBSD.org>; Sat, 17 Sep 2022 12:39:36 +0000 (UTC)
Message-Id: <20220917120922.E75FDCCAE5@tazz.1st.de>
Date: Sat, 17 Sep 2022 14:09:22 +0200 (CEST)
From: mlelstv@serpens.de
Reply-To: mlelstv@serpens.de
To: gnats-bugs@NetBSD.org
Subject: sdhc fails for Ricoh 5U823 controller
X-Send-Pr-Version: 3.95

>Number:         57015
>Category:       kern
>Synopsis:       sdhc fails for Ricoh 5U823 controller
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Sep 17 12:40:00 +0000 2022
>Closed-Date:    Mon Jun 05 10:17:50 +0000 2023
>Last-Modified:  Mon Jun 05 10:17:50 +0000 2023
>Originator:     Michael van Elst
>Release:        NetBSD 9.99.99
>Organization:

>Environment:


System: NetBSD tazz 9.99.99 NetBSD 9.99.99 (TAZZ) #48: Sat Sep 17 11:58:06 UTC 2022 mlelstv@slowpoke:/scratch2/obj.amd64/scratch/netbsd-current/src/sys/arch/amd64/compile/TAZZ amd64
Architecture: x86_64
Machine: amd64
>Description:
The Ricoh 5U823 controller in a Thinkpad T420

[     1.005753] sdhc0 at pci4 dev 0 function 0: Ricoh 5U823 SD/MMC Controller (rev. 0x05)
[     1.005753] sdhc0: interrupting at ioapic0 pin 16
[     1.005753] sdhc0: SDHC 3.0, rev 0
[     1.005753] , caps <21ecc8b2/00000005>, SDMA, 200000 kHz, HS SDR50 DDR50 3.3V, re-tuning mode 1, 512 byte blocks

fails to access SD cards with

[   4.9500638] sdmmc0: sdmem_mem_send_scr: error = 60
[   4.9500638] sdmmc0: autoconfiguration error: SD_SEND_SCR send failed.
[   4.9500638] sdmmc0: autoconfiguration error: mem init failed
[   4.9500638] sdmmc0: autoconfiguration error: init failed

This works in netbsd-9.

Killing ADMA2 support in the driver like:

--- dev/sdmmc/sdhc.c    6 Feb 2022 15:52:20 -0000       1.115
+++ dev/sdmmc/sdhc.c    17 Sep 2022 12:06:52 -0000
@@ -415,7 +415,7 @@ sdhc_host_found(struct sdhc_softc *sc, b
             ISSET(caps, SDHC_DMA_SUPPORT)))) {
                SET(hp->flags, SHF_USE_DMA);

-               if (ISSET(caps, SDHC_ADMA2_SUPP)) {
+               if (0 && ISSET(caps, SDHC_ADMA2_SUPP)) {
                        SET(hp->flags, SHF_MODE_DMAEN);
                        /*
                         * 64-bit mode was present in the 2.00 spec, removed

makes it work again.

>How-To-Repeat:
Run -current on a Thinkpad T420.
>Fix:

>Release-Note:

>Audit-Trail:
From: matthew green <mrg@eterna.com.au>
To: gnats-bugs@netbsd.org
Cc: kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org
Subject: re: kern/57015: sdhc fails for Ricoh 5U823 controller
Date: Mon, 19 Sep 2022 05:54:47 +1000

 this hack also fixes the previously working but broken sometime
 in the last couple of years sdhc in my kabylake laptop, though
 it's a different chipset:

 rtsx0 at pci8 dev 0 function 0: Realtek Semiconductor RTS525A PCI-E Card R=
 eader (rev. 0x01)
 rtsx0: interrupting at msi4 vec 0
 sdmmc0 at rtsx0
 [ .. ]
 ld1 at sdmmc0: <0x03:0x5344:SN256:0x80:0x8a389e07:0x138>
 ld1: 238 GB, 31107 cyl, 255 head, 63 sec, 512 bytes/sect x 499744768 secto=
 rs
 ld1: 4-bit width, 25.000 MHz


 .mrg.

From: "Jared D. McNeill" <jmcneill@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57015 CVS commit: src/sys/dev
Date: Fri, 14 Oct 2022 07:54:49 +0000

 Module Name:	src
 Committed By:	jmcneill
 Date:		Fri Oct 14 07:54:49 UTC 2022

 Modified Files:
 	src/sys/dev/pci: sdhc_pci.c
 	src/sys/dev/sdmmc: sdhc.c sdhcvar.h

 Log Message:
 Disable ADMA2 on Ricoh SDHCI controllers.

 PR# 57015


 To generate a diff of this commit:
 cvs rdiff -u -r1.18 -r1.19 src/sys/dev/pci/sdhc_pci.c
 cvs rdiff -u -r1.115 -r1.116 src/sys/dev/sdmmc/sdhc.c
 cvs rdiff -u -r1.32 -r1.33 src/sys/dev/sdmmc/sdhcvar.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->feedback
State-Changed-By: jmcneill@NetBSD.org
State-Changed-When: Fri, 14 Oct 2022 07:58:18 +0000
State-Changed-Why:
Should be fixed in HEAD.


State-Changed-From-To: feedback->closed
State-Changed-By: mlelstv@NetBSD.org
State-Changed-When: Mon, 05 Jun 2023 10:17:50 +0000
State-Changed-Why:
The patch fixed the problem.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2023 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.