[Armadillo:09009] Re: A-4x0 にSPIでSDカードスロットを増設

Hiroaki OHSAWA email@hidden
2013年 7月 10日 (水) 19:20:20 JST


大澤です。

既に実装も始められているようなので、遅くなりましたが
質問 1についてお答えします。

linux-2.6.26-at1のリリース時から、SD High Speed(SD 1.1.0)に対応するために
MMCドライバを2.6.28.4からbackportしています。

Armadillo-400では標準イメージでSD/MMCのSPIアクセスはサポートしていないため、
直接影響しないinclude/linux/spi/mmc_spi.h が2.6.26のままになっています。

通常のSD Hostを使用しないという事なのであれば、drivers/mmc/host/mmc_spi.c
とinclude/linux/spi/mmc_spi.h のどちらを修正していただいても構いません。
SD High Speedの実装を生かしたままとなると、drivers/mmc/host/mmc_spi.c側を
保持する事になると思います。
(2013年07月05日 03:30), Yasuhisa Nakamura wrote:
> 中村です。
> 
> Armadillo-4x0で、SPIを使ってSDカードスロット(複数)を増設することを
> 考えています。
> 
> まだ試験するハードウェアの準備ができていないので、
> (つい先ほど、日付が変わったころに思いついたばかりですので)
> - カーネルは対応しているか?
> - カーネルのビルドができるか?
> ということを調べている段階です。
> 
> カーネルconfigでSPIを有効にすると"MMC/SD/SDIO card support"のところに
>      <*>   MMC/SD/SDIO over SPI
> が出てきましたので、これを有効(<*>)にしてビルドすると、
> 次のエラーで停止しました。
> 
>    CC      drivers/mmc/host/mmc_spi.o
> drivers/mmc/host/mmc_spi.c: In function ‘mmc_spi_get_cd’:
> drivers/mmc/host/mmc_spi.c:1152: error: ‘struct mmc_spi_platform_data’ has no member nam
> ed ‘get_cd’
> drivers/mmc/host/mmc_spi.c:1153: error: ‘struct mmc_spi_platform_data’ has no member nam
> ed ‘get_cd’
> drivers/mmc/host/mmc_spi.c: In function ‘mmc_spi_probe’:
> drivers/mmc/host/mmc_spi.c:1344: error: ‘struct mmc_spi_platform_data’ has no member nam
> ed ‘caps’
> make[4]: *** [drivers/mmc/host/mmc_spi.o] エラー 1
> 
> エラーになったところを調べていくと、どうやら、
>   drivers/mmc/host/mmc_spi.c
> に対して、
>   include/linux/spi/mmc_spi.h
> が古いようです。
> 
> どこでミスマッチが起きたのかわかりませんが、
> http://kernelnewbies.org/Linux_2_6_27
> の「8.16. MMC」のところに
>   - mmc_spi: add support for card-detection polling (commit)
> というものがあり、その修正内容("commit"のリンク先)、は
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=619ef4b42128709de4d89d209b2c874f560deecd
> によると、
>   drivers/mmc/host/mmc_spi.c
>   include/linux/spi/mmc_spi.h
> の2つです。
> 
> 今回のコンパイルエラーになった場所とピッタリ一致しており、
> このとおりにmmc_spi.hを修正をしたところ、カーネルのビルドは
> 通りました。
> 
> 
> ここで質問が2つあります。
> 
> 質問1
> 
> 上で引用した http://kernelnewbies.org/Linux_2_6_27 は、
> 2.6.27での修正内容の一覧です。(ですよね?)
> A-420で使っているカーネルソースは linux-2.6.26-at16 です。
> 
> linux-2.6.26-at16 のmmc_spi.cが2.6.27のものになっている
> 理由は何でしょうか?
> 
> 上に書いたコンパイルのテストではmmc_spi.hを直しましたが、そうではなく、
> mmc_spi.cを直すべき(古いものに戻すべき)なのか?という疑問もあります。
> 
> 
> 質問2
> 
> 自分で確かめられれば一番いいのですが、テストするハードウェアを
> 用意するのにはしばらく時間がかかりそうです。
> 
> そこで・・・
> もし実績のある方がいらっしゃいましたら、「使えるよ!」とか、
> 「安定しないよ」とか、「他にも修正が必要だよ」とか・・・
> 情報をいただけますでしょうか?
> 
> よろしくお願いいたします。
> 


-- 
ohsawa




armadillo メーリングリストの案内