JAJA733A January 2023 – December 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
MSPM0 デバイスにおける高レベルのブート フローを、以下の図に示します。
BOOTRST では、TI ブートコードの実行が開始されます。ブートが成功すると、ブートコードが BOOTDONE を発行します。この時点で、SYSCTL はデバイスに SYSRST を発行し、フラッシュ メモリからの実行をトリガします。ブート構成レコードに応じて、これにより、メインアプリケーションの起動 (この構成で CSC が存在しない場合) または CSC の起動 (CSC が設定されている場合) のいずれかに進みます。
CSC は、実行バンクの決定、メモリ領域の保護設定、キーストアへのセキュア キーの初期化などを担当します。顧客セキュア コードが SYSCTL.SECCFG.INITDONE MMR に書き込んで INITDONE を発行すると、SYSCTL は 2 回目の SYSRST を発行します。デバイスは再び、フラッシュにマップされた 0x0 から実行を開始し、CSC が 2 回目に実行されます。今回は、CSC が INITDONE がすでに以前に発行されていることを検出し (これは SYSCTL.SECCFG.SECSTATUS.INITDONE ビットを読み取ることで判定されます)、メイン アプリケーションを直接呼び出します。
BOOTRST からメイン アプリケーションまでの大まかなブート フロー:
セキュアな実行フローは、CSC_EXISTS = YES のパスです。この場合、BOOTRST の後、メイン アプリケーションが起動する前に 2 つの SYSRST が発行されることがあります。最初の SYSRST の後、顧客のスタートアップ コードが実行されます。セキュリティを設定し、INITDONE を発行します。この時点で、セキュリティ設定はロックされ、強制されます。この時点で 2 番目の SYSRST が発行され、スタートアップ コードの実行が再開されます。2 番目の SYSRST では、INITDONE が YES であるため、メイン アプリケーションが起動します。