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