NXP様、こんにちは。
弊社のK148には、ブートローダーとアプリケーションパーティションの2つのパーティションがあります。アプリケーションパーティションには、JTAGを無効にする機能があります。アプリケーションでJTAGを無効にすると、リセット後にブートローダーが起動せず、チップが動作不能になります。調査の結果、ブートローダーは32KBで、アドレス0x00から0x8000の範囲であることが判明しました。JTAGを無効にするには、アドレス0x408に0xFFu 、0xFFu 、 0xFFu 、 0xFFu 、 0xFCu 、 0x7Fu 、 0xFFu 、 0xFFuを書き込む必要があり、これによりフラッシュメモリの内容が変更されます。リセット後、CSEcがブートローダーに対して異なるboot_mac値を計算してしまうため、チップが動作不能になります。NXPは、この問題を解決するための成熟したソリューションを提供していますでしょうか?よろしくお願いいたします。
こんにちは、 @lukaszadrapa
上記のマニュアルによると、 BOOT_MACは一度だけ書き込まれる不可逆的な値です。この値を変更できる公式APIはありますか?もしあれば、そのAPIを提供していただけますか?
御社のFS32K144HFT0MLHT MCを使用しています水晶発振器は8MHzの受動型水晶発振器(AV08000009)ですが、波形が異常です。この波形は貴社製MCUにとって許容範囲内でしょうか?また、正常な動作に影響はありますか?
こんにちは@vurtual
一般的な方法は、デバッグインターフェースを製造時に無効にすることであり、アプリケーションから後から無効化するのではなく、その場合、このプロセスは単一の生産ステップで完了します:フラッシュ構成フィールド(FCF)を再プログラムしてデバッグポートを無効化し、正しいBOOT_MAC値をプロビジョニングするか(または次のリセット後にCSEcが自動的に計算できるようにします)。
製品ライフサイクルの後半でデバッグインターフェースを無効化する必要がある場合も可能です。しかし、FCFが再プログラムされると、セキュアブートの計算には変更されたFCFの内容が含まれるため、BOOT_MACも更新する必要があります。そうしないと、セキュアブートの検証が失敗します。
BOOT_MACは標準的なSHEメモリ更新プロトコルを用いて更新可能で、CSEcキーの更新と同じ方法で行えます。BOOT_MACを新しいFCFの内容に合わせて更新した後、デバッグポートを無効にした状態でセキュアブートが正しく動作するはずです。
よろしくお願いいたします。
ルーカス
この件のために新しいThreadを作成してください。ありがとう。
こんにちは、@ ルカシャドラパ
弊社では、貴社製FS32K144HFT0MLHTマイコンを8MHzのパッシブ水晶発振器(AV08000009)と組み合わせて使用していますが、波形が異常です。この水晶発振器の波形は貴社製マイコンにとって許容範囲内でしょうか?また、マイコンの正常な動作に影響はありますか?よろしくお願いいたします。
こんにちは@vurtual
これが不可逆的な操作であると、あなたはどこにお考えですか?それは正しくありません。BOOT_MAC更新可能です。
以前にも述べたように:
「BOOT_MACは標準的なSHEメモリ更新プロトコルで更新できます。CSEcキーの更新と同じ方法です。」
つまり、通常のSHE/CSEcキーのインポートや更新に使われるCMD_LOAD_KEYコマンドを使えます。
BOOT_MACを更新するには、標準のSHEキー更新手順に従ってM1~M5の値を生成する必要があります。キーカウンターは増分されなければならず、更新はMASTER_ECU_KEYまたはBOOT_MAC_KEYのいずれかで承認できます。
したがって、BOOT_MACの更新はサポートされている操作であり、元に戻せない操作ではありません。
よろしくお願いいたします。
ルーカス