3
カーネルの仮想メモリにアドレスされたデバイスIOをマップするために使用されるioremapに関する基本的な質問があります。カーネル内のIORマップされたアドレス
ioremapから返されたアドレスがvirt_to_phys()のようなルーチンに渡されるかどうか知りたいのですが、デバイスのIOアドレスを返すでしょうか?それだけでいくつかの高速なアドレス演算ではなく、完全なソフトウェア・テーブル・ウォークなので
おかげ
ご返信ありがとうございます。私は高速アドレス演算についてのあなたのポイントを見て、それは物理アドレスを得るために仮想アドレスからいくつかのオフセットアドレスを減算するだけです。しかし、ioremapが返した仮想アドレスからデバイスIOアドレスを返すために使用できるAPIはありますか? –
通常の方法は、おそらく "最初にioremap()を呼び出したことを覚えているでしょう"。私はいくつかのマッピングされたデバイスの物理アドレスをそのデバイスのドライバから除外したいという正当な理由を考えるのに苦労しています。ドライバ内では、あなたが行くとわかっているならば、私のデータに物理アドレスを隠して将来(例えば、dmaengine要求を設定するために)それを必要とする。 – Notlikethat