[Suzaku:01501] Re: Help:仮想アドレスを物理アドレスに変換
菊地 義和[DNP情報システム]
email@hidden
2009年 6月 4日 (木) 23:19:27 JST
yashi様
菊地です。
お返事遅くなりました。
・私の資料の読み方が足りておりませんでした。
下記内容確認いたしました。
dma_alloc_coherent()を使用しビルドしてみましたが
エラーが発生してしまい、実行できません。
次のファイルをインクルードしビルドしております。
#include <asm-microblaze/dma-mapping.h>
そのヘッダファイル内でエラーが発生しビルドできませんでした。
概ね次のエラー内容です。
dma_map_page(struct device *dev, struct page *page,
unsigned long offset, size_t size,
enum dma_data_direction direction) ←ヘッダファイルのこの記述が
すべてエラーになります。
・「enum dma_data_direction 」はWANINGになります
・「direction」はERRORとなります。
ヘッダファイルが不足しているのでしょうか。
開発環境と離れたところにいるため、エラー内容を
正確にお伝えできず、申し訳ありません。
どうぞよろしくお願いします。
以上
----- オリジナルメッセージ -----
送信元: "Yasushi SHOJI" <email@hidden>
To: "SUZAKU general discussion list" <email@hidden>
送信済: 2009年6月4日 9時25分04秒 (GMT+0900) Asia/Tokyo
件名: [Suzaku:01500] Re: Help:仮想アドレスを物理アドレスに変換
At Thu, 4 Jun 2009 08:32:22 +0900 (JST),
菊地 義和[DNP情報システム] <email@hidden> wrote:
>
> AUTO変数を定義し、DMAを使用するためにその物理アドレスを知りたいのです。
auto(stack)変数は、あまり DMAに使いません。DMAコントローラによりますが、
x86の ISAのように、DMAに使えるアドレス空間が固定されていることがあるか
らです。
Linux device driver の Direct memory accessの章に詳しい説明があります
が、dma_alloc_coherent()を使うのが定石のようです。
ちなみに、stackの物理アドレスを知るには、virt_to_physで、currentが指し
ている thread_infoの物理アドレスを取得して、auto変数の offsetを足して
あげると取れるはずです。
http://hira-consulting.com/wiki/index.php?thread_info%2Flinux2.6
--
yashi
_______________________________________________
suzaku mailing list
email@hidden
http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/suzaku
suzaku メーリングリストの案内