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の内容に合わせて更新した後、デバッグポートを無効にした状態でセキュアブートが正しく動作するはずです。
よろしくお願いいたします。
ルーカス