2017/07/17

[zybo]PetaLinuxでDigilentのチュートリアルが動かん (1)

前回、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のボタンしか表示されない。

image

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]

こうなった。

image

いやいや、全部消えてしまったじゃないか!
あ、このコマンドって、ファイルが読めなくてもエラーを出さずに終わるし、しかも設定を消しやがるんだ。
そして、パスは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...

image

Ethernetは使えそうなのだけど、importするのと、手動でMDIOに変更するのはどちらが幸せなのだろうか?
幸せというのは、のちのち問題が少ないとか、憂いが少ないくらいの意味合いだ。

importする前はこうで、赤で囲んだり文字を書いたのが差分だ。
たぶん、ここに見えているものはPL部から制御できて、見えなくなったものはPS部から制御できるんじゃなかろうか。

image

比較したら何か決め手があるかと思ったのだが、よくわからん。
そもそも、プロジェクト作成時のBoard選択にせよ、このimportファイルにせよ、何が書かれているかわからんのがいかん。
自分でボードを作るようなことがあれば、この辺も編集できんといかんだろう。


まあ、今回はスルーするが、importするという手段があることは覚えておこう。
そして先は長そうだから、今回はこれまでだ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。