[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 メーリングリストの案内