2017/07/15

[zybo]PetaLinux (8)

kernelは、PetaLinuxをインストールした場所ではなく、プロジェクトを作った場所にあった。
その都度ダウンロードしているということか。。。そりゃ重たいわ。


では、前回の続きから追っていこう。
まずはBogoMIPS計算の箇所を確認。

build/tmp/work-shared/plnx_arm/kernel-source/init/calibrate.c

私がビルドしたときのようなログ

Calibrating delay loop (skipped), value calculated using timer frequency.. 650.00 BogoMIPS (lpj=3250000)

が出るためには、printedが0で、lpj_fineが非0でなくてはならん。
オリジナルなんかは、

Calibrating delay loop... 1292.69 BogoMIPS (lpj=6463488)

だから、if文を全部くぐり抜けて、elseでcalibrate_delay_converge()を呼ぶことによってlpjを取得しているのだろう。

私もそうしたい。


skippedのときはきれいな値なので、おそらくkernelのconfigで、何かの設定値を0以外にするとその値をプリセット値としてしようするとか、そんな作りになっているんじゃなかろうか。
しかし、どこになにがあるやらわからんし、そういう値がどこにあるかも知らない。

ディレクトリを眺めていると、./project-spec/hw-description/ps7_init.htmlというファイルがあった。

image

おお、なんか設定値らしきものがたくさん載っているぞ。
ZynqのPS部レジスタ値一覧みたいだから、これを元に考えていくのがよいんじゃなかろうか。


PS Reference Clockが50.0になっているが、IC22が50MHzだから、これはよいように思う。
まさか、単位がHzってことはないだろう。

次に目立つのは650MHzで、これは「CPU 6x Freq」らしい。
私がビルドしたときのBogoMIPSは650.00だから、これが1300くらいになるということだろうか。
しかし、リファレンスマニュアルでは50MHzのINPUTがCPUの650MHzとDDR3の525MHz(DDRだから1050Mbps)になるようなことを書いている。
うーむ。

幸い、Digilentのpetalinux-bspsにもHTMLファイルがあった。
こちらも、CPU 6x Freqは650だ。
じゃあ、ここじゃないな。


しかし、見比べることができる!
比較すると、クロックのところだけしか見ていないが、FPGAx Freqのところが違っている。


image


petalinux-bsps
image


これが影響しているのかどうかはわからないが、ずいぶん違うな。


まずは目視で比較しようとしたが、とてもできそうな量ではなかった。。
WinMergeで見たところ、そんなに多くはなかったのだが、それでも191箇所。
今日で見終わることはできないな。

0 件のコメント:

コメントを投稿

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