UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 69143

Zynq UltraScale+ MPSoC: XSDB を Linux CPU アイドルへの接続

説明

Zynq UltraScale+ MPSoC/RFSoC デバイスでは、Linux CPU アイドルがデフォルトでイネーブルになっています。

イネーブルになっていると、CPU コアがアイドル状態のとき (WFI ではない)、Linux により CPU コアがパワーダウンされます。

これが原因で、XSDB が接続されているときに問題が発生することがあります。

ソリューション

問題:

CPU アイドルがイネーブルになっていると、DAP がエラーを出力します。

理論上、XSDB が接続されているときは、A53_* 関連のレジスタを介して読み出し/書き込みアクセスが発生するはずです。

A53_* コアは CPU 使用統計に基づきパワーダウンされる可能性があるため、CPU_IDLE がイネーブルになっていることが原因で、A53 レジスタへの XSDB アクセスが DAP エラーになる可能性があります。


2 つのイベントがそれぞれ独立して発生しています。

CPU がパワーダウンされ、XSDB がレジスタにアクセスしようとします。

この結果、XSDB が読み出しをトリガーするとき、A53_* コアがパワーダウンされる場合は、DAP エラーになる可能性があります。

通常は、ブロックがパワーアップするかどうかはデバッグ ツールがチェックします。

ただし、読み出しが既に実行しているときにこのイベントが発生する可能性があり、この問題が発生することがあります。


回避策:

次のいずれかの方法で、Linux カーネルの bootargs で CPU アイドルをディスエーブルにすると、この問題を回避できます。

1) ターゲットの U-Boot のプロンプトからディスエーブルにする

bootargs へ次のように「cpuidle.off=1」 を追加します。

ZynqMP> setenv bootargs 'console=ttyPS0,115200n8 earlycon clk_ignore_unused cpuidle.off=1'
ZynqMP> run bootcmd


2) PetaLinux または Yocto を使用してカーネル config (CONFIG_CPU_IDLE) からディスエーブルにする

$ petalinux-config -c kernel

または

$ bitbake -c menuconfig virtual/kernel

CPU Power Management --->
  -> CPU Idle --->
        [ ] CPU idle PM support


3) PetaLinux デバイスツリー ジェネレーターを使用する

/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi」という dtsi ファイルに次の内容を追加します。

/ {
   chosen {
      bootargs = "cpuidle.off=1";
   };
};

$ petalinux-build -c device-tree

AR# 69143
日付 05/29/2019
ステータス アクティブ
種類 一般
デバイス
ツール 詳細 概略
Boards & Kits
このページをブックマークに追加