[Armadillo:03141] Re: CPU内部レジスタの設定値変更について

chris email@hidden
2008年 7月 14日 (月) 16:13:19 JST


マカーグです。

鶴田裕樹 wrote:
> Armadillo-500のCON17で接続する上で2点質問があります。
> 
> 1)CPU内部レジスタへのアクセス方法
> 
> 拡張バス(WEIM)上のメモリ(CS4の領域)へのアクセスタイミングを変更するため、
> CPU内部レジスタ(0xB800_2040 〜 0xB800_2048)の設定値を変更したいのです
> が、Armadillo上OSから、もしくはOSを起動せずに設定を変更する方法、
> あるいはアセンブラ、C言語などでのサンプルソース/ツールがないでしょうか?

WEIMの設定はhermitで出来ます。

タイミング設定を試すには、hermitのfrob機能が便利だと思います。

hermit> frob
hermit:frob> help
? help [<command name>]       : help on Hermit commands
p peek [<addr>]               : word-size memory peek
8 peek8 [<addr>]              : 8-bit memory peek
  peek16 [<addr>]             : 16-bit memory peek
n peeknext                    : peek next address
k poke <addr> <value>         : word-size memory poke
  poke8 <addr> <value>        : 8-bit memory poke
  poke16 <addr> <value>       : 16-bit memory poke
q quit                        : quit current command loop

例:
hermit:frob> poke 0xb8002040 0x00004500
hermit:frob> poke 0xb8002044 0x00000301
hermit:frob> poke 0xb8002048 0x00000000

また、設定を固定するには、hermitソースの src/target/armadillo5x0/board.c
の中にある init_weim() にCS4用の設定を追加するといいと思います。

> 2)WEIM非同期モードアクセス時のBCLK(バーストクロック)の周波数について
> 
> WEIM非同期モード、BCLK常時出力(SYNC='0',BCM='1')設定時はBCLKの周波数は
> いくらになるでしょうか?
> HCLK(AHBシステムクロック)と同じ133MHzとなるのか。

この設定は試したことがありせんが、i.MX31のマニュアル(MCIMX31RM)では、
BCM='1'の時はBCDとBCSの設定が無視されてBCLKが最大の周波数になると書かれ
ています。

"The BCM bit in the WEIM configuration register has priority over the
BCD bits. If BCM = 1, the BCLK runs at full frequency."

なので、HCLKになるようですね。

非同期モードで利用するのに、クロックの周波数が気になっている理由を教えて
頂けますか。

> またWEIMアクセス時のBCLKに関するERATTAが本設定時も影響するでしょうか?
> 
> 以下にERATTAを記載します。

SYNC='1'の時だけに該当すると書かれているので影響はないと思えますが、実際
に試してみた方がいいと思います。

> ERATTA ID:TLSbo72605
> Title: WEIM cannot operate with WEIM BCLK equal to AHB clock.
> Release Date: 9/7/2006
> Description:
> When enabling the SYNC bit of the WEIM, the burst clock (BCLK)
> frequency cannot be equal to the AHB (system) clock. This means that
> for a maximum AHB frequency of 133 MHz, BCLK can be no greater than
> 66 MHz.
> Workaround:
> When enabling the synchronous interface of the WEIM, the Burst Clock
> Divider (BCD) bits must be set to one (divide-by-2) or greater.




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