前回、PetaLinuxでEthernetが使えるようになった。
が、それだけだ。
「完」などとタイトルに付けてみたものの、何も終わっていないというか、これから始まるところじゃないか。
まずは、Digilentのチュートリアルをやろう。
よくわからんが、チュートリアルをちょっといじったHardware設定をimportしたPetaLinuxだから、最後にデバッガで動かしている実行ファイルをPetaLinux上で動かせばいいんじゃなかろうか。
そんな安易な考えだったのだが、動かなかった。
Illegal Instruction。
fileコマンドで見ても、
getting_started_with_ZYBO.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped
となっているので、CPUも間違ってないし、あまり悪いもののように思えない。
もちろん、SDx(SDSoCの環境を使っているので)からRun Asで実行すると動くのだが、そうするとPetaLinuxはもう動けなくなるようだ。
コンソールは入力できないし、pingも応答がなくなる。
どうも、私の想像とは違いそうだ。
こういうときは、FPGAマガジンNo.12を読もう。
3章に、PS部の設定を行う手順があった。
ここでPlatfrom Studioの画面で「Import XPS Settings」で設定をインポートさせていた。
XPSファイルは、Zybo Base(zip)のzybo_base_system\source\vivado\hw\lib\xml\ZYBO_zynq_def.xmlだろう。
こんな行もあるので、EthernetがLinuxから使えるようになるんじゃなかろうか。
<set param="PCW::ENET0::GRP_MDIO::IO" value="MIO 52 .. 53" />
<set param="PCW::ENET0::GRP_MDIO::ENABLE" value="1" />
こちらでも、同じような作業をしている。
4. Zynq VivadoでZYBO向けプロジェクト作成からBitstream出力まで – yuki-sato.com
ただ、プロジェクトを作るところでボードの選択ではなくZynqを選んでいる。
それに、XPSをインポートするとUART1などにチェックが入るように書かれているが、うちでは最初からチェックされていた(Run Block Automationを実行した後だが)。
そう考えると、ボードのファイルであるboard_filesにZynqの設定も書いてあるのかもしれない。
まずはXPSを読込んでみようとしたが、うちのVivado v2017.1(SDxに同梱されていたもの)でやっても、OK/Cancelのボタンしか表示されない。
Vivado v2017.2も同じだった。
Can't import XPS settings from .xml file in Re-Cus... - Community Forums
最後の書込みがXilinxの人でstill not fixedとなっているから、v2017.1/2のバグなのか。。。
TCLコマンドならできそうに書いてあるのでやってみたが、エラーになる。
set_property -dict list CONFIG.PCW_IMPORT_BOARD_PRESET "D:\Prog\Xilinx\ZYBO_zynq_def.xml" get_bd_cells processing_system7_0
ERROR: [Common 17-161] Invalid option value 'CONFIG.PCW_IMPORT_BOARD_PRESET' specified for 'objects'.
ああ、[]は省略可能の意味じゃなくて、そのまま書かんといかんのか。
set_property -dict [list CONFIG.PCW_IMPORT_BOARD_PRESET "ZYBO_zynq_def.xml"] [get_bd_cells processing_system7_0]
こうなった。
いやいや、全部消えてしまったじゃないか!
あ、このコマンドって、ファイルが読めなくてもエラーを出さずに終わるし、しかも設定を消しやがるんだ。
そして、パスはCygwin風に書かないといかんらしい。
これがちゃんとファイルを読んだときのメッセージだ。
set_property -dict [list CONFIG.PCW_IMPORT_BOARD_PRESET d:/Prog/Xilinx/ZYBO_zynq_def.xml] [get_bd_cells processing_system7_0]
INFO: [PS7-1] Applying Custom Preset d:/Prog/Xilinx/ZYBO_zynq_def.xml...
Ethernetは使えそうなのだけど、importするのと、手動でMDIOに変更するのはどちらが幸せなのだろうか?
幸せというのは、のちのち問題が少ないとか、憂いが少ないくらいの意味合いだ。
importする前はこうで、赤で囲んだり文字を書いたのが差分だ。
たぶん、ここに見えているものはPL部から制御できて、見えなくなったものはPS部から制御できるんじゃなかろうか。
比較したら何か決め手があるかと思ったのだが、よくわからん。
そもそも、プロジェクト作成時のBoard選択にせよ、このimportファイルにせよ、何が書かれているかわからんのがいかん。
自分でボードを作るようなことがあれば、この辺も編集できんといかんだろう。
まあ、今回はスルーするが、importするという手段があることは覚えておこう。
そして先は長そうだから、今回はこれまでだ。
XPSファイルがインポートできない。。。と思っていたらこちらに辿り着きました。
返信削除感謝です。