[Armadillo:04537] Re: A5001 と A5027 の違い
Ohtaki Yuichiro
email@hidden
2009年 8月 28日 (金) 09:44:44 JST
大滝です。
すいません。
2.6.18-at13にはsnoop.cがないようです。
2.6.26では/dev/fb0,/dev/fb16の二つができ
/dev/fb0に直接書き込んでも
VGA画面に表示されないので
2.6.18で開発をしています。
At 20:07 09/08/27, you wrote:
>At Wed, 26 Aug 2009 11:45:56 +0900,
>Ohtaki Yuichiro wrote:
>>
>> linux-2.6.18-at13
>
>2.6.18だったんですね!
>
>2.6.26を試すか、以下のパッチを試すことは可能ですか?
>Freescaleがリリースしたドライバにバグあったので、
>2.6.26には修正をマージしてあるのですが、2.6.18の
>方には入れていません。
>
>a500: M3IF snoop: 「端数のない場合、2で割る」処理を絶対に通らない
>
>msbを-1するのを忘れているため、2のべき乗に端数があるような領域要求の場
>合に2で割るという処理に入らないようなコードになっていた。このため、2MB
>を要求すると4MBのwindow_sizeになってしまい、実際に確保した領域と
>ハードウェアに通知している領域が異なるという現象になる。
>
>この問題は、確保した領域がハードウェアに通知してるサイズでアライメント
>されていない場合に限り snoopに指定した領域に書き込みが行なわれても割り
>込みが発生しないという現象として表面化する。
>
>i.MX31 reference manualの M3IFのセクションには、そのような記述がないた
>め詳細は不明だが、現象としては上記のような振舞をしていることを確認した。
>---
>
>diff --git a/arch/arm/plat-mxc/snoop.c b/arch/arm/plat-mxc/snoop.c
>index 2b724af..6333c71 100644
>--- a/arch/arm/plat-mxc/snoop.c
>+++ b/arch/arm/plat-mxc/snoop.c
>@@ -62,7 +62,7 @@ int mxc_snoop_set_config(u32 num, unsigned long base,
int size)
> }
>
> msb = fls(size);
>- if (!(size & ((1UL << msb) - 1)))
>+ if (!(size & ((1UL << (msb - 1)) - 1)))
> msb--; /* Already aligned to power 2 */
> if (msb < 11)
> msb = 11;
>_______________________________________________
>armadillo mailing list
>email@hidden
>http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
armadillo メーリングリストの案内