Linux: sdtweak poll_once funktioniert nicht auf Pi 4

Erstellt am 14. Okt. 2019  ·  6Kommentare  ·  Quelle: raspberrypi/linux

Beim Netzwerkbooten eines Pi for mit dtoverlay=sdtweak,poll_once wird die Karte immer noch abgefragt, was alle 10 Sekunden zu Protokoll-Spam führt:

[  144.474158] mmc0: Timeout waiting for hardware cmd interrupt.
[  144.474182] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[  144.474199] mmc0: sdhci: Sys addr:  0x00000000 | Version:  0x00001002
[  144.474205] mmc0: sdhci: Blk size:  0x00000000 | Blk cnt:  0x00000000
[  144.474213] mmc0: sdhci: Argument:  0x00000000 | Trn mode: 0x00000000
[  144.474221] mmc0: sdhci: Present:   0x1fff0001 | Host ctl: 0x00000001
[  144.474228] mmc0: sdhci: Power:     0x0000000f | Blk gap:  0x00000080
[  144.474234] mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x0000f447
[  144.474242] mmc0: sdhci: Timeout:   0x00000000 | Int stat: 0x00000000
[  144.474250] mmc0: sdhci: Int enab:  0x00ff1003 | Sig enab: 0x00ff1003
[  144.474257] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[  144.474262] mmc0: sdhci: Caps:      0x45ee6432 | Caps_1:   0x0000a525
[  144.474267] mmc0: sdhci: Cmd:       0x0000371a | Max curr: 0x00080008
[  144.474275] mmc0: sdhci: Resp[0]:   0x00000000 | Resp[1]:  0x00000000
[  144.474280] mmc0: sdhci: Resp[2]:   0x00000000 | Resp[3]:  0x00000000
[  144.474284] mmc0: sdhci: Host ctl2: 0x00000000
[  144.474288] mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x00000000
[  144.474293] mmc0: sdhci: ============================================

Alle 6 Kommentare

Die unmittelbare Ursache für das Versäumnis von sdtweak, das nicht entfernbare Flag auf pi4 zu setzen, ist, dass es nicht dazu gedacht ist:

pi<strong i="6">@raspberrypi</strong>:~ $ dtoverlay -h sdtweak
Name:   sdtweak

Info:   Tunes the bcm2835-sdhost SD/MMC driver
        N.B. This functionality is now available via the sd_* dtparams in the
        base DTB.
...

Was benötigt wird, ist ein generischer sd_pollonce dtparam, der einfach hinzuzufügen ist. Es ist jedoch möglicherweise nicht das, was Sie möchten, da es möglicherweise nicht gut reagiert, wenn eine SD-Karte entfernt (oder spät eingesetzt) ​​wird.

Was vielleicht wirklich nötig ist, zusätzlich zu sd_pollonce , ist eine Treiberänderung, um den Log-Spam zu reduzieren, vielleicht um es von sd_debug abhängig zu machen.

kann das bitte gelöst werden?

Ich habe aktualisierte .dts-Dateien auf rpi-4.19.y verschoben, die sd_poll_once dtparams zu allen Downstream-.dtbs hinzufügen. Sie können hier eine vorgefertigte Version von bcm2711-rpi-4- b.dtb herunterladen. Verwenden Sie mit dtparam=sd_poll_once .

Nach der Verwendung sd_poll_once funktioniert jetzt die grüne LED nicht

Hallo @pelwell , du hast im Januar einen Build auf Google Drive gepusht, der dieses Problem behoben hat. Hast du die Möglichkeit den Patch hier zu posten?

Wie die sdtweak-Dokumentation sagt, ist die bereitgestellte Funktionalität jetzt über die Board-spezifischen dtparams verfügbar:

dtparam=sd_poll_once

sdtweak ist effektiv veraltet und wird formell veraltet und entfernt.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen