[Suzaku:01802] Re: MPMCについての質問

godshrine email@hidden
2010年 5月 29日 (土) 12:58:06 JST


鈴木様
SUZAKU利用者の皆様

神宮です。

貴重なご意見どうもありがとうございます。
ご指摘通り、EDKのBSBにてひな形を作成した経験はなく、基本的な知識が乏しいことを痛感いたしました。

質問1の内容に関しては、なんとか自力で解決できました。
わからなかった原因は、私がMPMCを「SPI通信のような書き込みレジスタにデータを書きこむことでメモリに送信する」
素子だと勘違いしていたことでした。
そうではなくて、「XPS上でMPMCに割り振られたメモリアドレスがSDRAMのメモリアドレスに対応している」ということに気付いて、
SDRAMに読み書きしたところ、成功しました。

質問2の内容に関してはまだ十分に理解できずにいます。
アプリケーションは鈴木様のおっしゃる「ネイティブ」のアプリケーションソースを利用しています。
これを理解するにあたっては、SUZAKUのデフォルトプロジェクトのアプリケーションソース(C言語ファイル)にflashからSDRAMに
書き込む関数を発見しましたので、これを利用すれば実現できるのかなぁ、と思っております。

とりあえず、なんとか自助努力でやってみます。
また、分からない点を質問するかもしれませんが、その時はよろしくお願いします。

ありがとうございました。


2010年5月26日22:00 suzu bun <email@hidden>:

>  神宮 様
> 鈴木です。
>
> >1.MPMCでメモリのデータの書き込み/読み込みはどうするのか?
>
> >GPIOやUARTでは、所定のレジスタに書きこむことでデータの送受信を行いますが、
> >MPMCの仕様書にそれに該当するレジスタを発見できませんでした。
> >もしかして、レジスタに書き込むという発想自体がおかしいのでしょうか?
>
> 私もユーザ側の一人でありあまり精通しているわけではないので、正確な回答はできないとは思いますが
> 質問の意味は多分以下のような内容かと思います。
>
>
> ・GPIO等は上記の通りレジスタのアクセスで実現出来たのだと思いますが、MPMCに何をどのように接続すれば良いのかが分からないのではないかと推測しています。
> (私も最初は同様に悩みました)
> これについては、いろいろな方法があると思いますが、今考えると一番簡単なのはXILINXのスタータキットがあればそれを使用してEDKのBase
> System Builder(以下BSBと表記)にて
>
> ひな形を作成することだと思います。私の手元には幸いSPALTAN3系のスタータキットがありSUZAKUを使用する前にいろいろ触っていたので自己流で理解できるところもありました。
> ただ、suzakuというよりもFPGAの開発が初めての方等は正直これでも理解するには時間がかかると思います。
> 話を戻しますが、EDKのBSBにてひな形を作成することで一通りの流れは確認できます。
> もし、suzakuしか手元にない場合は、suzakuのデフォルトプロジェクトにアプリを追加してアクセスするようになると思います。
> デフォルトに用意されているBBootではbramの容量が不足してしまい、多分思うように色々なにテストできないのではないかと思います。
> ただ、気になるのは「GPIOやUARTでは、所定のレジスタに書きこむことでデータの送受信を行いますが・・・」と記載されているので
> もしかしたらアプリを追加してテスト等された上での質問なのかな?とも思いますが・・・
>
>
> >2.SDRAMからのブートの設定方法
>
> >sz410-20090427デフォルトプロジェクトにはMPMCのハードウェアの設定がなされていますが、
>
> >SDRAMからのブートの設定もなされているのでしょうか?
> >SUZAKU開発者サイトでSZ130-U00に対する設定方法は発見しました(下記URL)が、
> >( http://suzaku.atmark-techno.com/dev/howtos/run_from_sdram_microblaze )
> >SZ410-U00ではどのように設定したらよろしいでしょうか?
>
> ・これも上記と同様です。
> 基本的にsuzakuのスタータキットでは、デフォルトでSDRAMからブートしているのでちょっと質問の意図するところが分かりませんが
> suzakuの各種マニュアルはお読みでしょうか?特にsuzakuのブートシーケンスの説明等は参考になると思います。
>
>
> ただ、質問内容がLINUXを使用しないネイティブの場合(私はOS込みで作成されたものと区別する意味で勝手にネイティブと呼んでいます(^_^;))の話では、
> やはり上記のBSBでのアプリケーションのソース、各種設定等を確認することで理解できるのではないかと思います。
>
>      以上、 参考になれば幸いです。
>
> ------------------------------
> Date: Mon, 24 May 2010 12:35:41 +0900
>
> From: email@hidden
> To: email@hidden
> Subject: [Suzaku:01799] Re: MPMCについての質問
>
>
> 鈴木様
> SUZAKU利用者の皆様
>
> お世話になっております。大学生の神宮です。
> 鈴木様、貴重なアドバイスどうもありがとうございます。
> 私も、さしあたりsz410-20090427デフォルトプロジェクトの設定を
> できるだけそのまま使って、MPMCを利用することにしました。
>
> ただ、さらに伺いたいことが2点ありまして、ご指導いただければ幸いです。
>
> 私がMPMCで行いたいのは、1つはSDRAMからブート(SDRAMにプログラムを書き込み、実行)することで、
> もうひとつは単なるデータの読み込み/書き込みです。
>
> 質問したいのは以下の2点です。
>
> 1.MPMCでメモリのデータの書き込み/読み込みはどうするのか?
>
> GPIOやUARTでは、所定のレジスタに書きこむことでデータの送受信を行いますが、
> MPMCの仕様書にそ��譴乏催�垢襯譽献好燭鯣��任④泙擦鵑任靴拭��実匸もしかして、レジスタに書き込むという発想自体がおかしいのでしょうか?
>
>
> 2.SDRAMからのブートの設定方法
>
> sz410-20090427デフォルトプロジェクトにはMPMCのハードウェアの設定がなされていますが、
> SDRAMからのブートの設定もなされているのでしょうか?
> SUZAKU開発者サイトでSZ130-U00に対する設定方法は発見しました(下記URL)が、
> ( http://suzaku.atmark-techno.com/dev/howtos/run_from_sdram_microblaze )
> SZ410-U00ではどのように設定したらよろしいでしょうか?
>
> よろしくお願いします。
>
> 2010年5月24日10:14 mio <email@hidden>:
>
> 中島です。
>
> (2010/05/22 23:04), suzu bun wrote:
> > 鈴木と申します。
> >
> > いつも拝見させていただいています。
> > 私のほうでも現在同様な内容の事を実施しました。
> > やはり同じようにEDK10.1→11.5及び12.1等SZ410のデフォルトプロジェクトを
> > アップデートしましたが、相当数のエラー及び不具合の事象があり、一旦断念し
> > ていました。
> > 時間ができたときに、皆さんに呼びかけてSUZAKUの11.x化または12.x化を呼びか
> > て見ようかなと思っていたところです。
>
> 中々ツールのアップデートについていくのは大変だったりするので、
> とてもありがたいです。
> 10.1 -> 11.5のプロジェクトを作成しましたが、
> (一応Linuxまで動作はしてます。)
> まだあまりテストできていないため、参考程度に・・・。
>
> > そこでちょうどよい機会なので、ご参考までに私が確認している不具合内容及び
> > 気づき事項を簡単ではあ��蠅泙垢�Ⅵ椶靴討�④泙后��実匸���なお、SZ410ユーザで情報交換していれば徐々にツールのアップデートは可能か
>
> > と思っています。
> >
> > *「sz410-20090427のデフォルトプロジェクトをEDK11.5にアップデートしたと
> > きのエラーなどについて」*
> > 1.MPMCのGUIインタフェースが表示されなくなり、パラメータのみの設定画面
> > になってしまう。
>
> MPMCのGUIファイルが変更になったのかも?
> たしかGUIの設定ファイルがIPコアに含まれていたので、
> それを変更すれば、解消されるかもしれません。
> あまり、GUIでMPMCの設定をみないので・・。
>
> > 2.EDK純正のMPMCを適用して上記インタフェースが有効になった状態でコンパ
> > イル出来るが、LINUXが起動しない。
> > (ucfのピンアサインについては特に変更していない)
>
> 以前ご質問いただいた、以下を参照でしょうか。
> http://lists.atmark-techno.com/pipermail/suzaku/2009-October/001639.html<http://lists.atma+rk-techno.com/pipermail/suzaku/2009-October/001639.html>
>
> > 3.dcr_v29のIPコアにて"mpdファイルの記載にvertex4fx"の記載がなくコン
> > パイル時にエラーもしくはワーニングが出力される。
>
> 代替コアがあるようなので、1.00.a -> 1.00.bに変更してください。
>
> > 4.MPMCのバージョンを4.03a→5.0x等にアップデートするとGUIのポート設定画
> > 面にて1~8ポートに対してPLBバスしか接続していないのに
> > 未使用部分にVFBCが割り当てられているような表示がされておりグレーアウ
> > トして変更できない。
>
> これは見たことないです。
> (そもそもあまりGUIでMPMCの設定を見てないです・・。)
>
> > 5.DCMまたはCLOCK GENERATOR、ツールのバージョンが上がったことによるも
> > のでしょうが、EDK10.1ではPPCのクロ��奪��350MHZに設定されており
>
> > この状態で正常にコンパイルできて作動していたものがDCMのIPコアの設定
> > を変更しようとするとコンソールにERROER EDK-が出力され
> > パラメータの設定画面が表示されない。
>
> これも見たことないです。
> ただ、mssに記述しているCORE_CLOCK_FREQ_HZの記述は
> 消した方がよかった気がします。
>
> > 6.GPIOのバージョンを最新のものに変更するとパラメータの記述内容が変更
> > なっており、MHSのエラーとなってしまう。
>
> XPS_GPIOは新しいバージョンになって、
> ダイナミックにinputとoutputを変更したり、
> 3state bufferをdisable/enableしたりできるようになったようです。
> その他、GPIO_d_out等の信号が削除されたようです。
>
> > BEGIN xps_gpio
> > PARAMETER INSTANCE = gpio_system
> > PARAMETER HW_VER = 2.00.a
> > PARAMETER C_GPIO_WIDTH = 8
> > PARAMETER C_ALL_INPUTS = 0
> > PARAMETER C_IS_DUAL = 0 ← ここの記述が変更になっています。
> デフォルトで0のようなので、これは記述しなくてもよいかも。
> 元々記述していた、パラメータ(C_IS_BIDIR)はなくなったので、削除です。
> > PARAMETER C_BASEADDR = 0xf0ffa000
> > PARAMETER C_HIGHADDR = 0xf0ffa1ff
> > BUS_INTERFACE SPLB = plb_peripheral
> > PORT GPIO_IO_I = 0b00001 & BOOT_JP & 0b0 & FPGA_RESET_EN_w ← こ
> > この記述が変更になっています。
> > PORT GPIO_IO_O = GPIO_O_0 ← ここの記述が変更になっています。
> GPIO_in -> GPIO_IO_I, GPIO_d_out -> GPIO_O_Oに代替変更のようです。
>
> > END
> >
>
> その他11.5にアップすると、SUZAKUの赤色LEDが点灯しなくなりました。
> ucfで、nLED->nLED<0>とするか、mhsでnLEDのVEC = [0:0]の記述を削除すると、
> 解消されました。
>
> > *「sz410-20090427のデフォルトプロジェクトをEDK12.1にアップデートしたと
> > きのエラーなどについて」*
>
> 10.1のプロジェクトを一気に12.1にアップデートは大変なので、
> 一旦11.5ですべて最新のIPコアに置き換え��覆い��実匸気が滅入ってしまう感じだと思います。
>
> 11.5ですべて最新のIPコアにさえ置き換えると、
> スムーズにアップデートできました。
>
> > 1.ソフトウェアの話になりますがBBootの記述内容でコンパイラにはじかれて
> > しまいました。理由はよくわかりません。
> > 2.その他、ハードウェアにおいても多々不具合があり、正直一人で解決できる
> > レベルではなさそうだったので一旦断念しました。
> > (EDK12.1から古いIPコアのファイルがインストールディレクトリからはずさ
> > れているため、正常にアップデートできなかったIPコアは大半が参照先不明でエ
> > ラーとなっているようです。
> > ちなみにEDK10.1もしくはEDK11.xのインストールディレクトリからIPコアの
> > フォルダをEDK12.xのフォルダにコピーすることである程度のエラーは解消でき
> > ましたが、ツール内部でどのような仕組みになっているかが
> > わからないのでたとえコンパル��任④討眄犠錣忘酘阿靴討い襪�鷲堝�世粉��実匸���じです。検証していないのでなんともいえませんが・・・)
>
> >
> > ちょっと質問からそれてしまった感じですが、EDK11.xを使用して開発される方
> > にはある程度有益な情報ではないかと思い投稿させていただきました。
> >
> > なお、一応sz410-20090427デフォルトプロジェクトを基にしたもので実際に
> > EDK11.5にてDDR2(64MB)にてLINUXの作動及びGPIOの制御等ある程度正常に作動
>  > させることができています。
> >
> > mpmc_sz410 mhsファイルの一部を記載しておきます。
> > BEGIN mpmc_sz410
> > PARAMETER INSTANCE = mpmc_ddr2
> > PARAMETER HW_VER = 2.01.a
> > PARAMETER C_MEM_PARTNO = MT47H16M16-37E
> > PARAMETER C_MPMC_CLK0_PERIOD_PS = 5714
> > PARAMETER C_MEM_DATA_WIDTH = 32
> > PARAMETER C_MEM_CLK_WIDTH = 2
> > PARAMETER C_PIM1_BASETYPE = 4
> > PARAMETER C_NUM_PORTS = 2
> > PARAMETER C_PIM1_DATA_WIDTH = 32
> > PARAMETER C_MPMC_BASEADDR = 0x00000000
> > PARAMETER C_MPMC_HIGHADDR = 0x03ffffff
> > BUS_INTERFACE SPLB0 = plb_memory
> > PORT MPMC_Clk90 = DDR_SDRAM_64Mx32_mpmc_clk175_90_s
> > PORT MPMC_Clk_200MHz = clk_200mhz_s
> > PORT DDR2_DQS_n = DDR_DQSn
> > PORT DDR2_DQS = DDR_DQS
> > PORT DDR2_DM = DDR_DM
> > PORT DDR2_DQ = DDR_DQ
> > PORT DDR2_Addr = DDR_Addr
> > PORT DDR2_BankAddr = DDR_BankAddr
> > PORT DDR2_WE_n = DDR_WEn
> *> PORT DDR2_CAS_n = DDR_CASn
>
> > PORT DDR2_RAS_n = DDR_RASn
> > PORT DDR2_ODT = DDR_ODT
> > PORT DDR2_CS_n = DDR_CSn
> > PORT DDR2_CE = DDR_CKE
> > PORT DDR2_Addr_2 = DDR_Addr_2
> > PORT DDR2_BankAddr_2 = DDR_BankAddr_2
> > PORT DDR2_WE_n_2 = DDR_WEn_2
> > PORT DDR2_CAS_n_2 = DDR_CASn_2
> > PORT DDR2_RAS_n_2 = DDR_RASn_2
> > PORT DDR2_ODT_2 = DDR_ODT_2
> > PORT DDR2_CS_n_2 = DDR_CSn_2
> > PORT DDR2_CE_2 = DDR_CKE_2
> > PORT DDR2_Clk_n = DDR_CLK_OUTn
> > PORT DDR2_Clk = DDR_CLK_OUT
> > PORT MPMC_Rst = sys_bus_reset
> > PORT MPMC_Clk0 = DDR_SDRAM_64Mx32_mpmc_clk175_0_s
> > END
> >
> > ちなみに、理由はよく解りませんがsz410-20090427のプロジェクトを変更して
> > DDRを1枚にしようと思いいろいろ試しましたが
> > EDK1.0.1純正のMPMC(v4.03a)では一度も正常に動作させることができませんでした。
> >
> > 以上です。
> >
> >
> >
> > ---------- --------------------------------------------------------------
> > Date: Fri, 21 May 2010 16:52:23 +0900
> > From: email@hidden
> > To: email@hidden
> > Subject: [Suzaku:01796] MPMCについての質問
> >
> >
> >
> > はじめまして、大学四年生で今年度から研究でsz410-U00を利用しております神
> > 宮と申します。
> > sz410-U00ではGPIOやUARTを利用した経験があり、以下のような環境で開発をし
> > ております。
> >
> > 開発環境
> > SZ410-U00 (PPC405 )
> > EDK11.5
> >
> > この開発環境で、MPMCでSDRAM(MT47H16M16BG-37E)を利用したいと考えており
> > ます。
> > MPMCの設定は以下のようなものを考えております。
> >
> >
> > ・PIMはPLB v4.6
> > ・MIG based PHY は利用しない
> > ・メモリはMT47H16M16BG-37E
> > (一応、SUZAKU開発者のサイト(http://suzaku.atmark-techno.com/series
> > /suzaku-v/download)
> > にあったsz410-20090427.zipを参考に同様の設定を試みています )
> >
> >
> > 上記のような設定でHardware Generateをしたところ、いくつものエラーが出て
> > しまいました。
> > 3週間ほどデバッグをし続けているのですが、一向に成果が出ず、
> > もしかして、データシートを根本から誤解しているのではないかと思い、確認い
> > たしたくメールしました。
> >
> > PPC405ではこのような設定ではいけないのでしょうか?また、MIGは利用する必
> > 要があるのでしょうか?
> > または、皆様はSZ410-U00 でSDRAMを利用する際にどのような設定にされており
> > ますでしょうか?
> >
> > かなり全般的で基本的な質問になってしまいますが、教えていただける �と幸いです。
> >
> >
> > 神宮
> >
>
>
> *
> _______________________________________________
> suzaku mailing list
> email@hidden
>  http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/suzaku
>
>
>
> ------------------------------
> メール一括チェック!他のWebメールもプロバイダーメールも。 メールを一括チェックしたい方は、こちら。<http://clk.atdmt.com/GBL/go/227919803/direct/01/>
>
> _______________________________________________
> suzaku mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/suzaku
>
>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://lists.atmark-techno.com/pipermail/suzaku/attachments/20100529/fd6190c3/attachment.html>


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