5.1.1. 目的
5.1.2. ソフトウェア開発プラットフォームのコンポーネントの構築
5.1.3. アプリケーションに向けたオペレーティング・システムの選択
5.1.4. Linuxに向けたソフトウェア開発プラットフォームの構築
5.1.5. ベアメタル・アプリケーションに向けたソフトウェア開発プラットフォームの構築
5.1.6. パートナーOSまたはRTOSに向けたソフトウェア開発プラットフォームの構築
5.1.7. ブート・ローダー・ソフトウェアの選択
5.1.8. 開発、デバッグおよびトレースに向けたソフトウェア・ツールの選択
5.1.9. ボードの立ち上げに関する考慮事項
5.1.10. ブートおよびコンフィグレーションに関するデザインの考慮事項
5.1.11. フラッシュ・デバイス・ドライバーに関するデザインの考慮事項
5.1.12. HPS ECCに関するデザインの考慮事項
5.1.13. セキュリティーに関するデザインの考慮事項
5.1.14. エンベデッド・ソフトウェアのデバッグとトレース
5.1.4.4. Linuxのデバイスツリーに関するデザインの考慮事項
Linuxのデバイスツリーは、Linuxオペレーティング・システムのカーネルに基盤となるハードウェアを記述するデータ構造です。このデータ構造をOSのカーネルへ渡すことで、単一のOSバイナリーでハードウェアの多くのバリエーションをサポートすることが可能になります。この柔軟性は、ハードウェアにFPGAが含まれている場合に、特に重要になります。
Linuxのデバイスツリーを管理するために推奨される手順は、次のとおりです。
- インテルSoC開発キットを対象とするLinuxカーネル・ソース・コードで提供されているSoC FPGAリファレンス・デバイス・ツリーから開始します。これらは、デバイスのHPS部分をカバーしますが、プロジェクトごとに異なるFPGA部分はカバーしません。SD/MMC、QSPI、NANDの各バージョンが、カーネル・ソース・コードとともに提供されています。
- 必要に応じてデバイスツリーを編集し、インテルSoC開発キットからのボードの変更に対応します。
- 必要に応じてデバイスツリーを編集し、FPGAソフトIPをターゲットとするLinuxドライバーに対応します。
注: Linux Device Tree Generatorは、SoC EDSの一部として提供されるカスタムツールであり、関連するGSRDでターゲットにしているLinuxカーネルのバージョンのみをサポートします。
図 18. Linuxに向けたGSRDのデバイスツリー生成フロー
注: Linux Device Tree Generatorは、関連するGSRDがターゲットにしているLinuxカーネルのバージョンでのみテストされ、そのバージョンのみをサポートします。デザインが異なるLinuxカーネルのバージョンをターゲットにしている場合、インテルでは、Linux Device Tree Generatorを使用しないことを推奨しています。代わりに、デバイスツリーを手動で管理します。カーネルとともに提供されるデバイス・ツリー・ファイルをベースラインとして使用し、FPGA IPおよびボード情報を手動で追加します。
詳細に関しては、LinuxのDevice Tree Generator User Guideを参照してください。