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というファイルがあった。
おお、なんか設定値らしきものがたくさん載っているぞ。
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のところが違っている。
私
petalinux-bsps
これが影響しているのかどうかはわからないが、ずいぶん違うな。
まずは目視で比較しようとしたが、とてもできそうな量ではなかった。。
WinMergeで見たところ、そんなに多くはなかったのだが、それでも191箇所。
今日で見終わることはできないな。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。