Linux: sdtweak poll_once no funciona en Pi 4

Creado en 14 oct. 2019  ·  6Comentarios  ·  Fuente: raspberrypi/linux

Cuando la red inicia un pi con dtoverlay=sdtweak,poll_once , la tarjeta aún se sondea, lo que genera spam de registro cada 10 segundos:

[  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: ============================================

Todos 6 comentarios

La causa inmediata de la falla de sdtweak para establecer el indicador no extraíble en pi4 es que no está destinado a:

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.
...

Lo que se necesita es un dtparam genérico sd_pollonce , que es bastante fácil de agregar. Sin embargo, es posible que no sea lo que desea, ya que es posible que no reaccione bien cuando se extrae (o se inserta tarde) una tarjeta SD.

Quizás lo que realmente se necesita, además de sd_pollonce , es un cambio de controlador para reducir el spam de registro, tal vez condicionándolo a sd_debug .

¿Se puede solucionar esto, por favor?

He enviado archivos .dts actualizados a rpi-4.19.y que agregan sd_poll_once dtparams a todos los .dtbs posteriores. Puede obtener una versión prediseñada de bcm2711-rpi-4-b.dtb aquí . Usar con dtparam=sd_poll_once .

Después de usar sd_poll_once ahora el LED verde no funciona

Hola, @pelwell , en enero enviaste una compilación a Google Drive que solucionó este problema. ¿Hay alguna posibilidad de que puedas publicar el parche aquí?

Como dice la documentación de sdtweak, la funcionalidad que proporciona ahora está disponible a través de los dtparams específicos de la placa:

dtparam=sd_poll_once

sdtweak está efectivamente en desuso y será formalmente obsoleto y eliminado.

¿Fue útil esta página
0 / 5 - 0 calificaciones