Armadilloフォーラム

Armadillo-800EVA eMMCへのアクセスで停止

oyama_interface

2014年2月10日 21時37分

お世話になります。
尾山と申します。

Armadiloo-800 EVA で、linux-3.4のカーネルを使用しているのですが
eMMCへのアクセスで停止する現象がでています。

起動・シャットダウンを繰り返し実行していると、発生します。
頻度は、100回程度ででる場合もあれば、1000回程度でない場合もあります。

停止する前では、/drivers/mmc/host/sh_mmcif.cの
sh_mmcif_irqt関数内にあるswitch(host->wait_for)が
MMCIF_WAIT_FOR_REQUESTに入った場合に停止するようです。
正常に起動・シャットダウンできるときには、WAIT_FOR_REQUESTには入りません。

linux-3.4-at4、linux-3.4-at6で試しましたが、現象は変わりませんでした。
また、SDでブートさせた場合にも、現象は発生しておりません。

何か対策がありますでしょうか。
宜しくお願いいたします。

コメント

少し main line[1] を確認してみました、いくつか eMMC のドライバーに変更
が入っているようです。たとえば

https://git.kernel.org/linus/19f1ba51c

とか。他にも修正が入っているので、確認されてはいかがでしょうか?

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
$ cd linux
$ git log -- drivers/mmc/host/sh_mmcif.c

とすると、sh_mmcif.c への変更点だけ抽出できます。

Armadillo-800EVA は、CPUの評価ボード用なので、製品として組み込まれた場
合のテストがされていません。動作保証温度も、室温レベルです。製品に組み
込むような場合は、Armadillo-810 や a840 をお勧めします。もし、a810 や
a840では対応できないような機能があれば、教えて頂けると助かります。

[1] https://git.kernel.org/linus/

oyama_interface

2014年2月14日 19時55分

お世話になります。
尾山です。

ご確認ありがとうございます。

sh_mmcif.c へのパッチは、
例で提示していただいた物を含めて、関係しそうな物は
適応できる範囲で、試しましたが改善されませんでした。

Armadillo-a840 では対応できないという訳ではなく、
評価の為にArmadillo-800EVA を購入しいたので、そのまま動作検証を行なっております。
a840 で現象が発生するかどうかの確認はできますでしょうか。

ごめんなさい。a840には eMMC が搭載されていません。

将来的に、eMMC をご利用予定ですか? SDやUSB経由の2次記憶装置があれば問題
ないような感じでしょうか?

oyama_interface

2014年2月19日 18時00分

かしこまりました。
SDカードでの起動で代用します。

ありがとうございました。