1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. Zynq® UltraScale+™ MPSoC PetaLinux® FSBL起動時のQSPI CLOCKの変更方法

TECHブログ

Zynq® UltraScale+™ MPSoC PetaLinux® FSBL起動時のQSPI CLOCKの変更方法

Zynq® UltraScale+™ MPSoC PetaLinux® FSBL起動時のQSPI CLOCKの変更方法

はじめに

PetaLinux® ツールは、AMD社のプロセッシング システム上でエンベデッド Linux ソリューションをカスタマイズ、ビルド、およびデプロイするために必要なものをすべて提供します。

設計生産性の加速を目的とするこのソリューションは、AMD社のハードウェア設計ツールと連動し、Versal®、Zynq® UltraScale+™ MPSoC、Zynq®-7000 SoC、および MicroBlaze™ 向けの Linux システム開発を容易にします。

背景

デフォルトではFSBLのQSPI分周数は8です。Zynq® UltraScale+™ MPSoCのQSPI CLOCK最高設定は300Mhz、FSBL起動時QSPIデバイスのCLOCK周波数300/8=37.5Mhzになります。
次の方法で、FSBL起動時のQSPI動作周波数カスタマイズが可能です。

手順

1. 希望のQSPI動作周波数を決定

①および②の設定周波数を算出します

FSBLの分周数(2から256)
Vivado® GUI Zynq® UltraScale+™ MPSoC → CLOCK configuration → Peripherals/IO Clocks → QSPI

QSPI動作周波数=②/①になります。

2. FSBLのソースをローカルに保存

左右にスクロールしてご覧ください
git clone https://github.com/Xilinx/embeddedsw.git
cd embeddedsw
git checkout -b xilinx-v2020.2

出典:ubuntu18.04の画面キャプチャ

3. 以下の保存したファイルを開き、必要に応じて変更

左右にスクロールしてご覧ください
/embeddedsw/lib/sw_apps/zynqmp_fsbl/src /xfsbl_qspi.c

を開きます。


XQspiPsu_SetClkPrescaler(&QspiPsuInstance, XQSPIPSU_CLK_PRESCALE_8)を探して、必要に応じて変更します。


4. git diff > fsbl.patch コマンドで fsbl.patch を生成する

出典:ubuntu18.04の画面キャプチャ


出典:ubuntu18.04の画面キャプチャ

5. Vivado® GUIで Zynq® UltraScale+™ MPSoC を開き、必要に応じてQSPIの設定周波数を変更する

出典:Vivado® ML Edition

6. 参考

以前のブログ PetaLinux®の環境でFSBLを変更する方法を参考に、FSBLを再ビルドすることで、QSPIは期待した動作周波数でFSBLをBOOTすることができます。

おわりに

弊社ではFPGA設計や回路図設計、レイアウト設計、ソフトウェア設計、筐体設計などを受託開発しています。サービス内容をWEBサイトに掲載していますので、ぜひご覧ください。

設計受託・ODMの概要については
こちら

 

FPGAの活用に際して設計検討などありましたら、お気軽にお問い合わせください。

FPGAの活用・設計検討の
お問い合わせはこちら

最後までお付き合いいただきありがとうございました。

関連ブログ