[Armadillo:03144] Re: CPU内部レジスタの設定値変更について
鶴田裕樹
email@hidden
2008年 7月 14日 (月) 20:11:59 JST
お世話になっております 鶴田です。
以下のようにソースを変更し、hermitのfrob peekで値の確認、
およびデジタルオシロで常時133MHzで出力されているのを確認できました。
設定例)
include/mx3/regmap.h
#define WCR 0x60
src/target/armadillo5x0/board.c#init_weim
IO_WEIM(WORD, CSCR4U) = 0x00001400;
IO_WEIM(WORD, CSCR4L) = 0xc2c21511;
IO_WEIM(WORD, CSCR4A) = 0x00000030;
IO_WEIM(WORD, WCR) = 0x00000004;
> 非同期モードで利用するのに、クロックの周波数が気になっている理由を教えて
> 頂けますか。
i.MX31 and i.MX31L Data Sheel:Advance Information Rev. 3.4, 10/2007
の43頁 Figure 28. Asynchronous Memory Timing Diagram for Read Access_WSC=1において、
各制御信号のバスタイミングパラメータがBCLKに対して規定されているように書かれていた為と
43頁 Table 33. WEIM Bus Timing Parameters において各パラメータの基準となっている"Clock"が
HCLKの事を言っているのか、BCLKの事を言っているのか。
また、それらのクロックの立ち上がり/立下りのいずれを基準としているのか疑問に感じた為、
確認の意味も含めて質問させていただきました。
>ERATTAに関して
試してみたところ、現状特に問題ないようなのでこのまま進めたいと思います。
何か問題が出た際はご連絡いたします。
以上ありがとうございました。
> マカーグです。
>
> 鶴田裕樹 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 mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo
armadillo メーリングリストの案内