我有一个带有SD读卡器的笔记本,我想知道GNU/Linux驱动程序是在使用SPI协议还是专有的SD协议(一位或四位)。我问这个是因为我正在测试一个基于SPI的SD读卡器设备,当我检查我笔记本上的读取速度时,它读取一张6MB/S的卡。另一件事,我想看看司机的消息来源,你知道我在哪里能找到他们吗?
提前感谢!
发布于 2012-02-01 09:55:25
如果不查看内核源代码,这将取决于特定的SD芯片及其内核驱动程序。您应该查看数据表和内核源代码。例如,在我的笔记本电脑上:
$ lspci | grep SD
15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)据推测,该芯片在硬件上实现了SD状态机,在我的情况下实现了一些芯片到主机的接口(PCI )。芯片对卡连接的细节可能由芯片抽象出来,但可能会受到主机的影响。除非存在已知的bug,否则内核可能会使用可用的最快方法。
Update:检查内核源代码。如果卡支持4位传输,则自动启用它们。您可以在drivers/mmc/core/mmc.c,函数mmc_init_card()中看到这一点。对于Linux2.6.38,第489行似乎激活了高速传输,第535行似乎激活了4位范围的传输。别让mmc把你搞糊涂了。这个目录包含处理SD (包括SDIO)卡的驱动程序以及MMC。
https://unix.stackexchange.com/questions/27325
复制相似问题