AR# 71318

2017.x-2018.2 Zynq UltraScale+ MPSoC: TRACE ポートが EMIO を介してイネーブルになると Linux リブート コマンドが原因でボードがハングする

説明

Vivado 2017.x-2018.2 で、Vivado デザインに TRACE ポートを追加し、それを EMIO に配線すると、Linux のリブート コマンドが機能しなくなります。

0XFE980004 (TPIU_CURRENT_PORT_SIZE) にアクセスすると、リブート後に FSBL がハングします。

CoreSight レジスタ (TPIU_CURRENT_PORT_SIZE など) にアクセスするには TPIU に実行している Trace クロック (PL から EMIO が来る場合) が必要で、リブートの後に PL がクリアになるので、クロックは供給されず、トランザクションがハングするというのが根本的な問題です。

ソリューション

この問題は、今後のリリースで修正される予定です。

当面の策として、次のように psu_init を変更してください。

次の行を psu_init.c の psu_peripherals_init_data() ファンクションから psu_ps_pl_isolation_removal_data() の終わりに移動します。

PSU_Mask_Write(TPIU_LAR_OFFSET, 0xFFFFFFFFU, 0xC5ACCE55U);
PSU_Mask_Write(TPIU_CURRENT_PORT_SIZE_OFFSET,0x80000000U, 0x80000000U);
PSU_Mask_Write(TPIU_EXTCTL_OUT_PORT_OFFSET,0x000000FFU, 0x00000001U);
PSU_Mask_Write(TPIU_LAR_OFFSET, 0xFFFFFFFFU, 0x00000000U);

 

この変更後、FSBL が TPIU をコンフィギュレーションしているときに、PL からのクロックが使用できるようになります。 

AR# 71318
日付 12/06/2018
ステータス アクティブ
種類 一般
デバイス
ツール 詳細 概略
Boards & Kits