[Suzaku:00337] Re: io_block_mapping と ioremap について

Yasushi SHOJI email@hidden
2005年 6月 24日 (金) 14:28:22 JST


At Fri, 24 Jun 2005 14:10:38 +0900,
Ryos Suzuki wrote:
> 
> シンビーの鈴木です。
> 
> io_block_mapping と ioremap に関連して、Linux デバイスドライバと
> いう本の中で、
> 「同様に、以前のカーネルでは、すべてのポートアクセス関数(inb や
> その仲間)がすべてのアーキテクチャでサポートされていたわけではあ
> りませんでした。〜中略〜 これらの関数はハードウェア依存なので、
> きちんと実行させるのは容易ではなく、努力するほどの価値はありませ
> ん。」
> とのことです。直接的には書いてませんが、ioremap あるいは ioremap
> _nocache を使って(あるいは使わなくても。MIPS 系は使わなくて良い)
> マップした後に、readb, writeb などを使うのがセオリーのようです。
> どのアーキテクチャでも動作するためには直接のアドレスを使ってはだ
> めで、readb, writeb などを使うようです。alpha では ioremap を読
> んでも、直接メモリにマップされるわけではないようで、(alpha は触
> ったことがありませんので、本の受け売りです)readb などを使わない
> とちゃんと動かないそうです。

『Alan Coxによると「ioremap()で戻るものはアドレスではなくkeyであるべき
であり、read{bwl}/write{bwl}はそのkeyを元に適切な処理を行うべきである」』
と Russell Kingが引用していたことがあります。元ネタの URLは失念 (arm
linux mlだったはず)

> > 次期バージョンの dist/kernelで _IO_BASEを定義すべきかどうか(結局どこに
> > 定義しても問題が起る? 0にする?)は検討の余地があると思っています
> > 
> > # 意見ボシュー
> 
> アドレスや割り込み優先度などの再配置される可能性のあるリソースは、
> OS がどこに配置したかをドライバに教えてくれる機構が必要だと思い
> ます。

すぐ思いつくとろこでは、「どう標準化するか」というところと、「どこまで
複雑/インテリジェントにするか vs fpgaのリソース」がありますね。

「PC vs 組み込み」という違いを考慮するか、リソース(memoryなり sliceな
り)はどうせ増えるのだからという考えかたの違いもあるのかな?

どうでしょうか?
--
           yashi




suzaku メーリングリストの案内