Leitor de cartão SD no Linux: protocolo SPI ou SD embaixo

4

Eu tenho um notebook com um leitor de cartão SD e fiquei me perguntando se o driver GNU / Linux está usando o protocolo SPI ou o protocolo SD proprietário (um ou quatro bits). Eu estou perguntando isso porque eu estou testando um dispositivo leitor de cartão SD baseado em SPI que estou trabalhando e quando eu verificar a velocidade de leitura no meu notebook lê um cartão de 6MB / s ... Outra coisa, gostaria de dar uma olhada nas fontes do driver, você sabe onde posso encontrá-las?

Obrigado antecipadamente!

    
por Federico 21.12.2011 / 17:09

1 resposta

5

Sem olhar o código-fonte do kernel, isso dependeria do chip SD específico e de seu driver de kernel. Você deve olhar os dados e a fonte do kernel. Por exemplo, no meu laptop:

$ lspci | grep SD
15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)

Presumivelmente, o chip implementa a máquina de estado SD no hardware e alguma interface chip-a-host (PCI, no caso da minha). As especificidades da conexão chip a cartão podem ser abstraídas pelo chip, mas é provável que a escolha possa ser influenciada pelo host. O kernel provavelmente irá com os meios mais rápidos disponíveis, a menos que haja um bug conhecido.

Atualização: verificou a fonte do kernel. Se uma placa suportar transferências de 4 bits, elas serão ativadas automaticamente. Você pode ver isso em drivers/mmc/core/mmc.c , function mmc_init_card() . Para o Linux 2.6.38, a linha 489 parece ativar transferências de alta velocidade, e a linha 535 parece ativar transferências de 4 bits. Não deixe o 'mmc' confundir você. Este diretório contém os drivers que lidam com cartões SD (incluindo SDIO), bem como com o MMC.

    
por 01.02.2012 / 10:55