[Suzaku:00333] Re: io_block_mapping と ioremap について
Yasushi SHOJI
email@hidden
2005年 6月 22日 (水) 15:09:00 JST
At Thu, 16 Jun 2005 21:28:26 +0900,
yashi wrote:
>
> At Thu, 16 Jun 2005 20:19:02 +0900,
> Masaki Minobe wrote:
> [...]
> > io_block_mapping と ioremap についてです.
> >
> > 現在ioremapでGPIOなど各コアの物理アドレスを仮想アドレスに
> > マッピングしていて,その後writelなどで出力を行っています.
> > ここではoutlなどは使えずアクセスエラーがおきます.
>
> outl(writelの方が良いかも; outは x86系の instructionから取られた名前な
> ので; まぁ同じなんですけどね)は32bit用なので、coreが 32bitに対応してい
> れば動くかと思います。
ごめんなさい。勘違いでした。
powerpcでは outlと writelの挙動がちがっています。read{bwl} と
write{bwl}は PCIバスにアクセスするために作られたようなかんがあるのです
が正確なところは分っていません。
ppcではデフォルトで 0xe8000000が _IO_BASEとして使われるようになってい
ます。いまの svは _IO_BASEを定義していない(というか reconfigureなだけ
に、_IO_BASEを定義してよいのかビミョー)ので上記の値が outlで使われてし
まします。
つまり、outl(val, offset)であり、writelは(val, addr)となります。
次期バージョンの dist/kernelで _IO_BASEを定義すべきかどうか(結局どこに
定義しても問題が起る? 0にする?)は検討の余地があると思っています
# 意見ボシュー
現状は、out/in系は使わずに write/read系が良いかと思います。
--
yashi
suzaku メーリングリストの案内