Unified EFI ブートローダデバッグ対応


The embedded tools company


Unified EFI ブートローダデバッグ対応
  ハイライト
ローダブル・エクステンションによるサポート
全てのUEFIフェーズのデバッグに対応
UEFIフェーズ毎にカスタマイズされた画面表示
「デバッグギャップ」のないコンティニュアスソリューション
リセットベクタからデバッグ
動的にロードされたドライバをエントリポイントからデバッグ
サポートチップ Intel x86/x64, Cortex-A
 
  はじめに
Intel x86/x64、Cortex-A用TRACE32 JTAG デバッガのローダブル・エクステンションにより、UEFI BIOSシステムの包括的なデバッグが可能となります。この機能を利用することで全てのUEFIフェーズおよびコンポーネントの開発を容易に行うことができ、リセットベクタ直後からデバッグを開始しOSに引き渡すまで、全パーツ、ドライバのデバッグをサポートします。必要に応じてOSもデバッグすることができます。


Link Support
テクニカルサポート
Supported UEFI versions




 

サポートされているUEFIのバージョン


InsydeH2O for Atom™/x86/x64

  • 32-bit: version 03.61.18 on OakTrail (Atom Z6xx)
  • 64-bit: version 03.72.51 on SabinoCanyon (Ivy Bridge Dual)

Atom™/x86用Intel BLDK

  • Intel BLDK Core 2.x

TianoCore EDK II for ARM and x86

  • sourceforge svn trunk 2011
 

はじめに


UEFI(Unified Extensible Firmware Interface)は、従来の PC BIOS に代わる新しいシステムインタフェースです。システムのリセットや起動に加えて、OS の選択とブート処理を行います。標準BIOSとは対照的に、UEFIはドライバを動的にロードし、起動することができます。これらのドライバの OS へのインストールは不要で、ブート処理後に即座に使用することができます。

UEFI はシステムのブート処理中、以下のような、いくつかの異なるフェーズを実行します。
  • Security:CPU およびシステムの検証
  • Pre-EFI Initialization Environment:CPU、チップセット、RAM を含むマザーボードの設定、初期化
  • Driver Execution Environment: システムに必要なすべてのドライバをロード、設定、起動
  • Boot Device Selection:OS の選択、OS ローダのロード、起動

専用ウィンドウ/機能/スクリプトなどの UEFI 用 TRACE32 エクステンション機能により、UEFI を実装、デバッグをサポートします。TRACE32 はマルチコア環境に対応し、SMP システム上においても UEFI のデバッグを行えます。  

リセットベクタのデバッグ


TRACE32 は、JTAG ベースのデバッグツールで、リセットベクタからチップのデバッグを行えます。TRACE32 では、起動時の最初のステップのウォークスルーが可能で、FLASH のトラブルや、リセット時の振る舞いにおける不具合を検出した後、Security フェーズに入ります。
 

Securityフェーズ(SEC)


Security フェーズ内では、全ての検証プロセスのチェックと正しいロードを保証するためマイクロコードテーブルの検査が行われます。Security フェーズが正常に完了する と Pre-EFI Initialization フェーズを開始します。


Debugging SEC (here: the code for x86 microcode update)


List of all available microcodes
 

Pre-EFI Initializationフェーズ(PEI)


TRACE32 を使って、PEI コアおよびロードされた全ての PEI モジュールのデバッグが可能です。TRACE32 デバッガには専用のウィンドウが用意されており、ファームウェアのボリュームが表示、および各々の詳細を見ることができます。さらに、ボリューム内の各モジュールの依存関係を確認することができます。また、生成された HOB(Hand-Off Blocks) を表示することも可能です。 TRACE32 は、PEI モジュールのデバッグのために特別な機能を提供しています。例えば、全ての PEI モジュールは、アドレスと開発中のファイルと共にウィンドウに表示されます。TRACE32 は、任意に指定した PEI モジュールのロードを待ち、エントリポイントでハンドリングすることができます。


ファームウェアボリュームの表示


ファームウェアボリュームの詳細表示


ハンドオフブロックの表示


Pre-EFI Initialization フェーズモジュールの一覧
 

Driver Execution Environment (DXE)


Pre-EFI Initialization フェーズからドライバ実行環境フェーズに切り替わると、DXE コアと DXE ドライバで同様の機能が使用可能となります。HOB、PEIフェーズからのファームウェアのボリューム表示に加えて、TRACE32 は DXE 設定テーブルを表示します。DXE ドライバがロードされ、動的に起動された後、ウィンドウが表示され、既にシステムにロードされたドライバを表示します。ここで、ドライバをデバッグするためには、ドライバ名を指定します。TRACE32 デバッガは、ドライバがロード、起動されるのを待ちます。これにより、PEI モジュールと同様に、ドライバのエントリポイントからデバッグすることが可能です。


DXE設定テーブル


ロードされた DXE ドライバの一覧
 

ブートデバイス選択 (BDS)


Driver Execution Environment フェーズは、Boot Device Selection フェーズに制御を渡します。BIOS のこの部分も TRACE32 でデバッグすることが可能です。ユーザは、デバイスリストをチェックし、レガシー BIOS コールをシングルステップ実行で通過、ブートデバイスのユーザ選択を監視、そして OS へのハンドオーバーのフェーズまでデバッグすることが可能です。
 

オペレーティングシステムローダ


ブートデバイス選択フェーズから OS ローダに制御を移行した後、UEFI の実行は終了します。しかし、システムのデバッグ作業は、まだ終了していない場合もあるかもしれません。TRACE32 は OS ローダとブートフェーズを通じ、例えば OS 固有の MMU を初期化し、有効にする際のデバッグを支援します。またTRACE32 は OS のブート後も、Linux、QNX、Windows CE などのターゲット OS を認識します。さらに、これらの OS のカーネルや、ドライバ、さらにアプリケーションのデバッグを行うことも可能です。
 

要約


TRACE32 は各フェーズをサポートするのでシステムのデバッグに使用することで、開発者はUEFI BIOSを簡単にデバッグすることができます。リセットベクタからデバッグを開始し、続けてOSおよびOSのアプリケーションまでデバッグします。「デバッグギャップ」のない、コンティニュアスソリューションが誕生したのです。 TRACE32 は全てのデバッグフェーズをサポートしているため、UEFI BIOS を簡単にデバッグすることが可能になります。リセットベクタからデバッグを開始し、 OS とそのアプリケーションまで、TRACE32 を利用してデバッグを継続することができます。TRACE32 は、「debug gap」のない継続的なソリューションを提供しています。




Copyright © 2022 Lauterbach Japan, Ltd., Kouhoku-ku, Nisso 16th Building, Yokohama-shi, Japan 222-0033   Impressum     Privacy Policy
The information presented is intended to give overview information only.
Changes and technical enhancements or modifications can be made without notice.
Last generated/modified: 06-Jun-2022