AR# 69587

2017.1-2017.4 Zynq UltraScale+ MPSoC: Yocto によって生成された PL ペリフェラルにアクセスすると Linux が停止する

説明

これは、Common Clock Framework (CCF) および PL IP クロックの既知の問題です。 

PL IP がデザインに含まれていると、DTG では、対応する IP によって使用されるクロックを指定するためのクロック ノードが DTS に生成されません。 

CCF をイネーブルにすると、未使用のクロック、または対応するドライバーによって選ばれていないものがすべてオフにされます。

PL IP に対するすべてのドライバーでは、CCF を使用して IP クロックを設定する必要があります。そうしないと、Linux でシステム停止が発生する可能性があります。

未使用のクロックは、CCF によりディスエーブルにされます。

ソリューション

回避策:

この問題を回避するには、meta-xilinx-tools DTG を使用するか、DTSI で bootargs を clk_ignore_unused に設定し、未使用のクロックが CCF によって自動的にディスエーブルにされないようにします。

修正: 

2018.1 リリース以降、すべてのドライバーで CCF の使用が必須になります。 

2018.1 では、DTG によって PL DTSI クロック入力が生成されるようになります。

DTG によってデバイス ツリーが生成され、PL IP が存在する場合は、clk_ignore_unused が bootargs に設定されるようになります。 

clk_ignore_unused は削除しないでください。削除すると、PL レジスタ/メモリ アクセスに対してシステムが停止します。

DT を手動で構築する: 

bootargs デバイス ツリーに clk_ignore_unused を追加します。

chosen {
    bootargs = "clk_ignore_unused";
}

Yocto:

meta-xilinx-tools レイヤーおよび clk_ignore_unused デバイス ツリー プロパティによって生成されたデバイス ツリーが追加されます。

meta-xilinx だけを使用した場合、このデバイス ツリーは生成されません。

(ザイリンクス Linux から) カーネル内 DTS を使用し、bootargs デバイス ツリーに clk_ignore_unused プロパティを手動で追加する必要があります。

chosen {
    bootargs = "clk_ignore_unused";
}

PetaLinux:

PetaLinux では、clk_ignore_unused デバイス ツリー プロパティを生成する meta-xilinx-tools DTG が使用されます。

AR# 69587
日付 12/20/2017
ステータス アクティブ
種類 既知の問題
デバイス
ツール
Boards & Kits