2011-02-06 18 views
1

Linuxカーネルでは、ioremapを使用してI/O物理アドレスをマッピングすることによって得られたカーネル線形アドレスを逆参照することはお勧めできません。 readl/writelのような関数を使ってマッピングされた線形アドレスを逆参照するのはなぜですか?ioremapアドレスの参照解除

答えて

2

一部のアーキテクチャでは、IOポートにアクセスするために、たとえばキャッシュをバイパスするために特別な命令を使用する必要があります。

+0

たとえば、ブラックフィンアーチは単純な逆参照を使用しません。 http://en.wikipedia.org/wiki/Blackfin http://lxr.linux.no/linux+v2.6.37/arch/blackfin/include/asm/io.h#L29 –

+0

'ioremap'を使ってPCI I/Oメモリにアクセスしますか? –

+0

@caf:しかし、これは、アーキテクチャがIOにメモリマップされていないポートIOを使用していることを意味します。 ioremap()はメモリマップされたIOに使用されます。 – Bandicoot