2314191_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2314191_ja-JP

2314191_ja-JP

[お知らせ] embedded-boot-time-instrumentation — LS1043A-RD の PBL/PBI で EL1 セキュアタイマーを有効にする

に: NXPコミュニティ – Layerscape / LS1043Aフォーラム
から: マット・チャン < [email protected] >
日付: 2026‑02‑07 11:28 (台北、GMT+08:00)
リポジトリ: https://github.com/mattchang-engr/embedded-boot-time-instrumentation
ライセンス: Apache 2.0(注意事項あり)

NXPコミュニティの皆様、こんにちは。

概要

このプロジェクトはEL1セキュア物理タイマーを有効にします PBL/PBIフェーズ中 NXP LS1043A-RDB で U-Boot を実行することにより、マイクロ秒レベルの解像度で実際のエンドツーエンドのブートレイテンシを測定できます。

私は、タイミングを開始する方法を示す小さな集中リポジトリを共有しています。 最も早いプログラム可能なポイント ブート フロー(PBI)に含まれるため、測定にはリセット、RCW ロード、PLL ロック、クロック切り替え、および U-Boot の前に発生するすべての処理がカバーされます。これは、繰り返し可能な早期ブート計測を必要とするファームウェア開発者、組み込み学習者、および Layerscape ユーザーを対象としています。

リポジトリの内容

  • GitHubフレンドリー README  上から下へのブート図 簡潔な ALTCBARの詳細
  • その 2回のPBI書き込み (1)代替CCSRウィンドウを開き、(2)カウンターを有効にする必要があります
  • 概要 検証スニペット UARTからステージタイムとフルブートの例を表示(約7.947秒)

ターゲット: LS1043A‑RDB (IFC NORブート) • Ubuntu 20.04 • LSDK 21.08 (FlexBuild) • U‑Boot 2021.04
SoC ステッピング (ブート ログから): LS1043AE Rev1.0 (0x87920010)

システムビュー(最も早い有効化ポイント)

T0: システムリセット/PoR

|

v

PBL: IFC NORからPBLを読み取り、RCWをロードする

|

v

クロック: PLLロック+クロックスイッチング

|

v

PBIフェーズ(最も早いプログラム可能なポイント)

1) ALTCBARを書き込む(ACS=0、デフォルトウィンドウ)

2) CNTCRを書き込む(ACS=1、代替ウィンドウ) -> EL1タイマーが開始

|

v

システム準備完了(リセット完了、SoC リリース)

|

v

U-Boot (コンソールの初期化 -> ボードのチェック -> ブート完了)

 |

v

Linux ブート (カーネル/ユーザー空間)

コア方法(2つのPBIライン)

1) プログラムALTCBAR(代替CCSRベースを0x0200_0000で定義)

ヘッダー: 0x0957_0158 (ACS=0、BYTE_CNT=4、CONT=1、SYS_ADDR=0x01570158)

データ: 0x0000_0200 (ALTCBAR = 0x0000_0200)

2) CNTCRを有効にする(EL1セキュアシステムカウンタ @ 0x02B0_0000)

ヘッダー: 0x89B0_0000 (ACS=1、BYTE_CNT=4、CONT=1、SYS_ADDR=0x00B0_0000)

データ: 0x0100_0000 (バイトスワップによりレジスタは 0x0000_0001 を読み取ります -> EN/CNTCLKEN=1)

なぜ ALTCBAR なのか?
ALTCBARは代替CCSRベース(0x0200_0000)を設定するので、 ACS=1 対象とする 0x0200_0000..0x02FF_FFFF ウィンドウ。
以来 CNTCR  0x02B0_0000はALTCBARをプログラムして使用した後にのみ到達可能 ACS=1
CNTCRのBYTEnペイロードは バイトスワップ この段階では、 0x0100_0000 レジスターは 0x0000_0001。

検証スナップショット(UART)

U-Boot 2021.04-ダーティ(2024年3月12日 - 11:51:50 +0800)

SoC: LS1043AE Rev1.0 (0x87920010)

プロジェクト: PBI の開始から u-boot コンソールの初期化まで: 757 ミリ秒

プロジェクト: u-boot チェックボード完了: 820 ミリ秒

プロジェクト: u-boot ブートプロセス完了: 1270 ミリ秒

...

[ 6.673863] ランダム: crng init 完了

TinyLinux ログイン: root

実例: 総ブート数 ≈ 7.947秒 (U-Boot ステージ + Linux ブリングアップ)。

よくある落とし穴(簡単)

  • エンディアン: BYTEn=0x0000_0001 の書き込み (の代わりに 0x0100_0000)がタイマーを離れる オフ
  • 間違ったウィンドウ: CNTCRを書く ACS=0 またはALTCBARが アドレス範囲が間違っています

リンクとライセンス

リポジトリ: https://github.com/mattchang-engr/embedded-boot-time-instrumentation
ライセンス: Apache 2.0 (注意事項あり)
独自の資料は再配布されません。公式ドキュメントについてはベンダーのサイトを参照してください。

フィードバック、他の Layerscape パーツからの測定値、またはブート ソース バリアント (QSPI/SD) がある場合は、ぜひお聞かせください。問題や PR は大歓迎です。

よろしくお願いします、
マット・チャン
GitHub: https://github.com/mattchang-engr
メールアドレス: [email protected]

Re: [Announcement] embedded-boot-time-instrumentation — Enable EL1 Secure Timer at PBL/PBI on LS1043

興味深いプロジェクトです。便利なツールでもあります。

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎02-09-2026 03:21 AM
更新者: