質問:
MX28でHABを有効にする方法、たとえば「get_hab_status()」機能を機能させるためのAN4555の推奨事項によるものですが、問題が発生しています。
質問 #1
彼らは、対話型プロンプトに対してU-bootを正常に実行できるため、efltosbツールへの入力であるすべてのHABコンポーネントが解決されたと信じています。ただし、次の点では次のようになります。
- rvt_report_status()関数を呼び出すと、ボードに「### ERROR ###ボードをリセットしてください」と表示されます。
- rvt_entry()を呼び出すと、ボード は画面にゴミの文字を印刷し、ハングします。これは、クロックに何か問題があり、それがシリアルコンソールのボーレートに影響を与え、上記の動作を引き起こしていることを示唆しています。
質問 #2
HABv3 のような HABv4 の "バインド署名" の概念はありますか?
rvt_コールのアドレスが正しくない可能性がありますか?u-bootソースを提供できますか?
バインドされた署名の検証または UID は、HABv4 アプリケーションノートでは言及されていません。だから、サポートされていないと思います。
RVT 関数のポインタ オフセットについて 仮定 しました。 HAB 4 API はオフセットを明示的に指定しませんが、rvt_base::function_name 表記を使用します。 関数ポインタは、RVTヘッダーを超えるすべてのワードオフセットに順番に配置されると仮定しています。 リファレンス マニュアルの最新のアドレスに RVT ヘッダーが存在することはメモリ ダンプに基づいて確認されていますが、設定した関数オフセットが正しいかどうかは確認できません。
ソースコードに関しては、mx6アーキテクチャのメインラインu-bootから入手できるhab.cファイルとhab.hファイルからmx28ボードの変更をモデル化しました。これは基本的に、AN4555 ドキュメントに記載されているコードget_hab_statusコードと同じです。 更新された RVT ベース アドレスと 想定される オフセットに一致するように、HAB API 関数ポインター アドレスを実行しました。
答え:
これがreport_status()からの最初の3つの指示ですが、顧客は彼らが呼んだアドレスからの指示が正しいことを確認できますか?
:B087B570 ADDLT FP、R7、R0、 ROR R5
: 1c0e1c05 stcne 12, cr1, [lr], {5}
: 22182433 andscs r2, r8, #855638016 ;0x33000000
こんにちはYixingとdwc、
i.mx28のWinceのebootでHAB_APIをどのように呼び出す必要がありますか?
mx28メモリマップでは、OCROMは最後の128KBメモリアドレスにあります。
しかし、ebootに入ると、MMUはすでに有効になっています。したがって、0x80000000から0x9FFFFFFFまでの仮想アドレスにのみアクセスできます。
どのようにしてアドレスをHAB_RVT_REPORT_EVENT(*(UINT32 *)(HAB_RVT_BASE + 0x20)) //0xffff8af8+0x20で呼び出すことができますか?
ありがとうございます
この問題は、正しい RVT アドレスを使用することで解決されます。RVT アドレスは、リファレンス マニュアルのリビジョン 1 とリビジョン 2 の間で更新されました。