Ao inicializar um pi pela rede com dtoverlay=sdtweak,poll_once
, o cartão ainda é pesquisado, causando spam de log a 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: ============================================
A causa imediata da falha do sdtweak em definir o sinalizador não removível em pi4 é que ele não se destina 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.
...
O que é necessário é um dtparam genérico sd_pollonce
, que é bastante fácil de adicionar. No entanto, pode não ser o que você deseja, pois pode não reagir bem quando um cartão SD é removido (ou inserido tardiamente).
Talvez o que seja realmente necessário, além de sd_pollonce
, seja uma mudança de driver para reduzir o spam de log, talvez condicionando-o a sd_debug
.
isso pode ser resolvido, por favor?
Empurrei arquivos .dts atualizados para rpi-4.19.y que adicionam sd_poll_once dtparams a todos os .dtbs downstream. Você pode obter uma versão pré-criada do bcm2711-rpi-4-b.dtb aqui . Use com dtparam=sd_poll_once
.
Depois de usar sd_poll_once
agora o LED verde não funciona
Olá @pelwell , você empurrou uma compilação para o Google Drive em janeiro que corrigiu esse problema. Alguma chance de postar o patch aqui?
Como a documentação do sdtweak diz, a funcionalidade que ele fornece agora está disponível através dos dtparams específicos da placa:
dtparam=sd_poll_once
sdtweak está efetivamente obsoleto e será formalmente obsoleto e removido.