新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

カーネルパニックの理由

ARM の空間に FPGA の PLB バスをくっつけているのだが、DirectFB のアクセス時にカーネルパニックになる。MicroBlaze + DirectFB は実績があるので、これはおかしい。
ヨーク考えてみた。
PLB バス空間と ARM 空間はアドレスが違う。同じ VRAM でも ARM 空間からみたアドレスと PLB バスでは違ったアドレスが見える。ARM からレジスタをアクセスする場合は ARM 空間から見たアドレスを使う。しかし、BITBLT に依頼するときは BITBLT からみたアドレス空間、すなわち PLB のアドレス空間にある VRAM のアドレスを与えてあげなければいけない。これはそうとうややこしい。
おそらく DirectFB はそのようなことは考えられていないので、下駄をはかせるプログラムを組まないといけない。