記事 ID: 000086394 コンテンツタイプ: 製品情報 & ドキュメント 最終改訂日: 2018/10/17

インテル® Quartus® Prime 開発ソフトウェア・プロ・プラットフォーム・デザイナーのクロック設定に合わせて、インテル® Stratix® 10 SX デバイスの Linux デバイスツリーを更新する方法は?

環境

  • インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション
  • Linux-socfpga 4.X

    BUILT IN - ARTICLE INTRO SECOND COMPONENT
    詳細

    SoC FPGA Linux カーネルバージョン 4.17 2018年6月以降、および 4.18 以降:

    • Linux デバイスツリーでは、インテル® Stratix® 10 SX のトップレベル・リファレンス・クロック周波数のみが指定されています。
    • インテル® Quartus® Prime Pro プラットフォーム・デザイナー・デザインのStratix 10 HPS コンポーネントで設定されたクロックツリーは、クロック・マネージャー・ドライバーによってFPGA・ビットストリームからロードされます。

    SoC FPGA Linux カーネル・バージョン 4.17 (2018年6月より前) およびそれ以前のバージョン:

    Linux デバイスツリーには、インテル® Stratix® 10 SX の完全なクロッキング構造に関する情報が含まれており、インテル® Quartus® Prime Pro プラットフォーム・デザイナー・デザインのStratix 10 HPS コンポーネントのクロック・セットアップを反映する必要があります。

    ボードとデザインを反映するようにクロック構造が更新されていない場合、Linux ではペリフェラルが正しく動作しない可能性があります。

    Linux カーネルには、汎用トップレベル・デバイスツリーと、インテル Stratix 10 SX デベロップメント・キット用のサンプルデバイスツリーが含まれています。

    arch/arm64/boot/dts/altera/

    socfpga_stratix10.dtsi #Genericトップレベルのデバイスツリー

    Socfpga_stratix10_socdk.dts # インテル Stratix 10 SX 開発キット用のデバイスツリー例、ゴールデン・ハードウェア・リファレンス・デザイン (GHRD)、ゴールデン・ソフトウェア・リファレンス・デザイン (GSRD)

     

    メモ:

    • ゴールデン・ハードウェア・リファレンス・デザイン (GHRD) は、例 / ハードウェア / フォルダー内にインテル FPGA SoC EDS が同梱されています。
    • ゴールデン・ソフトウェア・リファレンス・デザイン (GSRD) は、Rocketboards.org https://rocketboards.org/foswiki/Documentation/GSRD からダウンロードできます。

    この問題は、新しいバージョンのカーネル (5.X) で修正されました。

    解決方法

    SoC FPGA Linux カーネルバージョン 4.17 2018年6月以降、および 4.18 以降:

    Linux デバイスツリーでは、インテル® Stratix® 10 SX のトップレベル・リファレンス・クロック周波数のみが指定されています。

    clkmgr@ffd10000 {

    クロック {

    osc1 { クロック周波数 = ;       };

    };

    };

     

    SoC FPGA Linux カーネル・バージョン 4.17 (2018年6月より前) およびそれ以前のバージョン:

    socfpga_stratix10.dtsi には、各クロックツリー・コンポーネントで使用可能な設定が表示されます。

    peri_emacb_clk: peri_emacb_clk@ec {

    #clockセル = ;

    互換 = 「altr,socfpga-s10-perip-clk」;

    クロック = 、、、、;

    reg = ;

    };

     

    以下は、UART と I2C を供給するクロックを示すツリーの一部です。 デフォルトでは、IP のソースクロックは設定されますが、ツリーへの接続は設定されていないことに注意してください。 IP は、noc_clkによって駆動されるクロックをl4_sp_clockに設定しますが、noc_clkとnoc_free_clkにはドライバーが定義されていません。

    :

    main_noc_base_clk: main_noc_base_clk {

    ...

    クロック = ;

    ...

    };

    noc_free_clk: noc_free_clk@4c {

    ...

    クロック = 、、

    ,,

    ;

    ...

    };

    noc_clk: noc_clk@30 {

    ...

    クロック = 、;

    ...

    };

    l4_sp_clk: l4_sp_clk {

    ...

    クロック = ;

    ...

    };

    i2c1: i2c@ffc02900 {

    ...

    クロック = ;

    ...

    };

    UART0: serial0@ffc02000 {

    ...

    クロック = ;

    ...

    };

     

    必要な設定は、以下に示す構文を使用して、ボードの .dts ファイルを使用して適用できます。

     

    soc {

    clkmgr@ffd10000 {

    クロック {

    osc1 {

    クロック周波数 = ;

    };

    periph_pll@e4 {

    peri_emaca_clk@e8{

    クロック = ;

    };

    peri_emacb_clk@ec {

    クロック = ;

    };

    };

    noc_free_clk@4c {

    クロック = ;

    };

    noc_clk@30 {

    クロック = ;

    };

    emaca_free_clk {

    クロック = ;

    };

    emacb_free_clk {

    クロック = ;

    };

    emac0_clk {

    クロック = ;

    };

    emac1_clk {

    クロック = ;

    };

    emac2_clk{

    クロック = ;

    };

    };

    };

    };

    };

     

    上記は、UART / I2C の問題を修正し、一部のイーサネット・クロックも定義します。  このクロックツリーは、UART / I2C からメイン PLL まで完全になりました。  これは、ソースクロック周波数に基づいて UART と I2C を設定するロジックが適切な計算を行うことができることを意味します。

    デバイスツリーの詳細については、Linux カーネルのドキュメントを参照してください。

     

    関連製品

    本記事の適用対象: 1 製品

    インテル® Stratix® 10 SX SoC FPGA

    このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。