2396455_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2396455_ja-JP

2396455_ja-JP

S32K328 HSE-B: Mem_43_INFLSを使用したA/Bスワップの推奨アーキテクチャ(Vector FOTAなし)

NXPチームの皆様、こんにちは。

現在、S32K328上で動作する既存のアプリケーションにOTA A/Bスワップのサポートを追加する設計・実装段階にあります。

これは、完全なFOTAフレームワークを統合するのではなく、既存のソフトウェアをOTA機能で拡張する初期実装です。

現在の環境

  • MCU:S32K328(8MB Pフラッシュ)
  • AUTOSARスタック:ベクターMICROSAR
  • RTD: S32K3_RTD_6_0_0_QLP04_D2508_ASR_REL_4_7_REV_0000_20250822
  • バイナリ転送インターフェース:UART
  • 画像アクティベーションサービス: HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK
  • HSE A/B スワップは RTD 設定により有効化されます

OTAバイナリは、カスタムOTA CDDによってUART経由で受信されます。

現在のVector構成には、NvM/Fee(D-Flash)専用のMemAccMが含まれています。P-FlashアプリケーションをプログラミングするためのMemAccM設定はなく、Vector OTA/FOTAも使用していません。

そのため、OTA CDDのMem_43_INFLSを使って非アクティブなアプリケーションのフラッシュを直接消去・プログラムすることを検討しています。

以下の点についてご指導いただければ幸いです。


1. 推奨されるアプローチ

VectorのOTA/FOTAパッケージを使わない場合、A/Bスワップ環境でOTA画像プログラミングを管理するための推奨される低レベルのドライバーはMem_43_INFLSでしょうか?

あるいは、MemAccMは、カスタムOTA実装の場合も含め、P-Flashプログラミングに対応するように拡張されるべきでしょうか?


2. 非アクティブなフラッシュブロックのアドレス指定

HSE A/Bスワップを有効にした後:

  • 非アクティブなアプリケーションP-Flashブロックは常にメモリレイアウトで定義された固定物理アドレスを通じてアクセスされるのでしょうか?
  • あるいは、HSEはパッシブブロックに対して何らかの論理マッピングや抽象化を提供しているのでしょうか?

3. 有効化の前提条件

HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK を正常に実行するための必須の前提条件は何ですか?

例:

  • 画像ヘッダー形式
  • メタデータの要件
  • 整列制約
  • 認証/署名要件
  • フラッシュ状態または属性

4. フラッシュコントローラの並行処理

S32K328のC40フラッシュコントローラーはDフラッシュ(Fee/NvM)とPフラッシュ(非アクティブブロック)間の同時操作をサポートしていますか?

そうでない場合、推奨される同期戦略は何ですか?

  • アプリケーションレベルのスケジューリング
  • RTDドライバ仲裁
  • MemAccM の使用状況

5. 推奨される建築様式

以下のアーキテクチャはNXPの推奨事項に準拠していますか?

UART

カスタムOTA CDD

Mem_43_INFLS(非アクティブなPフラッシュの消去/書き込み)

画像認証

HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK

システムリセット

HSE/BAF がパッシブブロックをアクティブ化します

私たちは特に、この軽量化アプローチが適切であり、HSE(環境・安全・衛生)要件に準拠しているかどうかについて、ご助言を求めています。


HSE A/Bスワップ対応のカスタムOTAに関するアプリケーションノート、RTD例、または参考実装があれば、ぜひご指導いただけるとありがたいです。

再開まで今しばらくお待ちください。

よろしくお願いします、
ヴェンカテシュ KV

#s32k328

Re: S32K328 HSE-B: Recommended Architecture for A/B Swap using Mem_43_INFLS (without Vector FOTA)

こんにちは、 @venkatesh-kv

1.カスタムOTA実装では、パッシブパーティションを消去・プログラムするために直接このMem_43_INFLSを使うことができます。
MemAccMを拡張すべきかどうかはアーキテクチャ上の決定であり、主にアプリケーション内で共通のフラッシュアクセスおよび仲裁レイヤーが望まれるかどうかに依存します。

2. パッシブアプリケーション画像は通常、物理的なP-フラッシュアドレス範囲でプログラムされます。HSEは、パッシブブロック専用の論理アドレス指定抽象化を提供していません。アプリケーション/ブートローダーは新しいイメージを非アクティブなパーティションに書き込む責任があり、その後HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCKを使って次のリセット時にそのパーティションをアクティブにすることができます。

3. セキュアブートを使用する場合、シグネチャは(セキュアブートモードやその他の設定に応じて)更新され、次のリセット後に新しいアプリケーションが正常に認証・実行されるようにすべきです。
旧バージョンのHSEファームウェアでは、サービスHSE_SRV_ID_ACTIVATE_PASSIVE_BLOCKを実行するためにスーパーユーザー権が必要でした。これはファームウェアバージョン0.2.55.0以降では通常のユーザー権限にダウングレードされています。

4. 一度に1つのフラッシュ操作のみが実行可能。フラッシュアクセス仲裁の実装はアプリケーションアーキテクチャに委ねられています。
一般的に、複数のソフトウェアコンポーネントからの同時フラッシュ操作を避け、OTAプログラミング活動とシステム内の他のフラッシュユーザー間の競合を防ぐために、フラッシュアクセスが適切に同期されていることを確認することが推奨されます。
Fee/NvMとMem_43_INFLSの間に同期サポートはありません。

5. はい、その流れで合っています。実際には、交換前に有効なアプリケーションがパッシブパーティションに存在し、署名(またはセキュアブート設定全般)が適切に更新される必要があるという唯一の要件です。

S32K344には基本的なOTAデモ「SW32K3_OTADEMO_0.8.0_D2203」があります。これは新しいアプリケーションをパッシブブロックに書き込み、その後AB SWAPを要求する方法を示しています(これはHSEファームウェアの機能です)。このデモではRTD 1.0.0を使用しています。
次のより高度なデモは「S32K396 OTA Demo version 0.4.0」で、イーサネット経由でファームウェアを更新する方法を示しています。こちらはRTD 3.0.0を使用しています。P07。
両方のデモはS32K3リファレンスソフトウェアで見ることができます:
https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K3-REFSW-D
リンクをクリックして「Automotive SW - S32K3 - OTA Demo」で検索してください。
これが唯一のバージョンで、あくまで参考ソフトウェアです。必要に応じて他の派生版や新しいRTDパッケージに移行するのはユーザーが自由に行っています。

そして、以下のOTAトレーニングがあります:
https://www.nxp.com/design/design-center/training/TIP-CONNECTS2021-AUT428
https://www.nxp.com/design/design-center/training/TIP-NXP-AUT-T3955A

両者はS32K3のトレーニングセクションでご覧いただけます: https://www.nxp.com/products/S32K3

また、「S32K3XX HSE and OTA Advance トレーニング [TR744101]」もご覧いただけます。これはドキュメント -> Secure files: https://www.nxp.com/products/S32K3

よろしくお願いいたします。
ルーカス

Tags (1)
No ratings
Version history
Last update:
3 weeks ago
Updated by: