[Armadillo:06508] Re: Armadillo-300の拡張バス(CON12)について

Masahiro Hanada email@hidden
2011年 1月 11日 (火) 21:17:28 JST


花田です。

At 11 Jan 2011 20:54:53 +0900 TFC 小林 wrote:
> Armadillo-300の拡張バスの速度を変更したく、
> マニュアルにCPU(NS9750)内のStatic Memory Extended Wait Register(0xA070 0080
> 番地)を変更と、
> あるので変更したいのですが、どうやって変更をしたらいいのかわかりません。

このレジスタはカーネル側では設定していません。
Hermit-atソースのsrc/target/armadillo3x0/boot.Sの中で
	mov	r2, #0xa
	str	r2, [r0, #NS_MEM_STATIC_EXTENDED_WAIT]
としているところの値を、そのまま使用しています。
変更自体が簡単なのは、ここを書き換えてブートローダをmakeし直すことです。

ただ、ブートローダはあまり安易に書き換えたくないと思いますので、
カーネル側でやる方法でももちろん構いません。
この場合は初期化に近いところのどこかに、
新たにレジスタ書き換えのコードを追加するのが良いと思います。

拡張バスを扱うドライバを新たに作成するなら、この初期化の最初に
	writel(0xa, NS_MEM_STAT_EXT_WAIT);
のような形で書くことになるでしょう。
(0xaは任意の値、NS_MEM_STAT_EXT_WAITはカーネルソースの
 include/asm-arm/arch-ns9750/ns9750_mem.hに定義されています)

レジスタ詳細は「NS9750B-A1 Hardware Reference」などを参照してください。
http://www.digi.com/products/embeddedsolutions/ns9750.jsp?tab=productdocs&pid=2626#docs

> また、他にもCPU(NS9750)の動作モードを変更するにあたり、
> レジスタを変更するにはどうやればいいのか教えてください。

カーネルソースのarch/arm/mach-ns9750の下にあるirq.cやpci.cの、
writelしている箇所が参考になると思います。



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