Linux: sdtweak poll_once não funciona no Pi 4

Criado em 14 out. 2019  ·  6Comentários  ·  Fonte: raspberrypi/linux

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

Todos 6 comentários

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.

Esta página foi útil?
0 / 5 - 0 avaliações