JAJU887 February   2023

 

  1.   概要
  2.   商標
  3. 1BSL 機能の概要
  4. 2用語
  5. 3BSL のアーキテクチャ
    1. 3.1 設計
      1. 3.1.1 タイムアウト機能
        1. 3.1.1.1 インターフェイスの自動検出
        2. 3.1.1.2 コマンドの受信
    2. 3.2 BSL の起動
      1. 3.2.1 ブランク・デバイス
      2. 3.2.2 アプリケーション要求
      3. 3.2.3 GPIO ベースの起動
      4. 3.2.4 メールボックスのデバッグ・コマンド
      5. 3.2.5 その他
        1. 3.2.5.1 プリブート・アプリケーションの検証
    3. 3.3 メモリ
      1. 3.3.1 SRAM メモリの使用法
    4. 3.4 BSL の構成
    5. 3.5 BSL のステータス
  6. 4ブートローダのプロトコル
    1. 4.1 パケット・フォーマット
    2. 4.2 UART および I2C BSL プロトコル
      1. 4.2.1 BSL アクノリッジ
      2. 4.2.2 ペリフェラルの構成
        1. 4.2.2.1 UART
        2. 4.2.2.2 I2C
        3. 4.2.2.3 CRC
    3. 4.3 ブートローダのコア・コマンド
      1. 4.3.1  接続
      2. 4.3.2  デバイス情報の取得
      3. 4.3.3  ブートローダのロック解除
      4. 4.3.4  データのプログラム
      5. 4.3.5  データの高速プログラム
      6. 4.3.6  データの読み戻し
      7. 4.3.7  フラッシュの範囲消去
      8. 4.3.8  一括消去
      9. 4.3.9  工場出荷時リセット
      10. 4.3.10 スタンドアロン検証
      11. 4.3.11 アプリケーションの開始
      12. 4.3.12 ボーレートの変更
    4. 4.4 BSL コアの応答
      1. 4.4.1 BSL のコア・メッセージ
      2. 4.4.2 詳細なエラー
      3. 4.4.3 メモリの読み戻し
      4. 4.4.4 デバイス情報
      5. 4.4.5 スタンドアロン検証
    5. 4.5 ブートローダのセキュリティ
      1. 4.5.1 パスワードで保護されているコマンド
        1. 4.5.1.1 セキュリティ・アラート
      2. 4.5.2 BSL エントリ
  7. 5ブートローダによるプログラムのフローのサンプル
  8. 6セカンダリ・ブートローダ
    1. 6.1 セカンダリ・ブートローダの例
  9. 7インターフェイス・プラグイン
    1. 7.1 実装
      1. 7.1.1 init
      2. 7.1.2 receive
      3. 7.1.3 transmit
      4. 7.1.4 deinit
      5. 7.1.5 重要な注意事項
    2. 7.2 フラッシュ・プラグインのタイプ
    3. 7.3 既存のインターフェイスのオーバーライド
      1. 7.3.1 UART インターフェイスのフラッシュ・プラグインの例
  10. 8関連資料
  11. 9改訂履歴

BSL のコア・メッセージ

構造

ヘッダー長さRSPデータCRC32
0x080x020x000x3BMSGC1C2C3C4

説明

BSL は一部のコマンドについて、処理したコマンドのステータスを示すメッセージ応答をホストに送信します。BSL から返される可能性があるすべてのメッセージを、次の表に示します。

MSG 意味 可能な原因(1)
0x00 動作の成功
0x01 BSL ロック中のエラー BSL は、ブートローダのロック解除パスワード・コマンドでロック解除されていない。または、BSL のロック解除後に、コマンド受信フェーズでタイムアウトが発生した。
0x02 BSL のパスワード・エラー ブートローダのロックを解除するために送信されたパスワードが正しくない。
0x03 複数回の BSL パスワード・エラー。セキュリティ・アラートのアクションが実行される。 ブートローダーのロック解除で、正しくないパスワードが 3 回送信された。
0x04 未知のコマンド BSL に与えられたコマンドが有効なコマンドとして認識されなかった
0x05 無効なメモリ範囲 指定されたメモリ範囲は無効。
0x06 無効なコマンド BSL に与えられたコマンドは既知のコマンドであるが、その時点では無効なもので、処理できない。

0x07

工場出荷時リセットが無効 BCR の構成で、工場出荷時のリセットが無効になっている

0x08

工場出荷時リセットのパスワード・エラー BCR の構成で工場出荷時リセットが「有効でパスワードが必要」に設定されているときに、工場出荷時リセットのコマンドでパスワードが送信されていないか、正しくない

0x09

読み出しエラー メモリの読み出しが、BCR の構成で無効になっている

0x0A

アドレスまたは長さのアライメントが無効 フラッシュへのプログラムで、開始アドレスまたはデータの長さが 8 バイト境界になっていない

0x0B

スタンドアロン検証の長さが無効 スタンドアロン検証用に送信されたデータのサイズが 1KB 未満
この表には、ステータスやエラーが発生した原因として考えられるものが記載されていますが、これ以外の原因がないとは限りません。また、ここに記載されているのはエラーの原因のうち、ソフトウェアに関する、ホストによって訂正可能なものだけです。