フィールドに設置したデバイスがファームウェア更新を拒否したり、古いイメージにロールバックしたりしたときに、その理由がまったく分からず困ったことはないでしょうか。wolfBoot は、その理由をお伝えできるようになりました。新しく WOLFBOOT_PERSIST_FAILURE_STATUS オプションを追加し、更新・自己更新・ロールバックのすべての失敗について、その原因を専用のフラッシュ領域に記録するようにしました。これにより、後からアプリケーション側で読み出せます。
レコードに記録される内容
- フェーズ(更新の拒否、起動時の検証失敗、ロールバック、緊急リカバリ)
- 原因(不正なヘッダー、ハッシュの不一致、無効な署名、
wolfBoot_success()で確定されなかったイメージ) - 対象のパーティションとファームウェアバージョン
保存方式
- 各レコードを CRC で保護しています
- 設定可能な数のフラッシュセクタにまたがる循環ログとして保存するため、書き込みが途中で途切れた場合にも耐えられます
- 電源断をまたいで履歴を保持します
- 内蔵フラッシュと外部フラッシュの両方に対応しています
API
シンプルな API を用意しましたので、記録したレコードをお客様のファームウェアから参照し、ログ出力・テレメトリ・リカバリの判断にご活用いただけます。
wolfBoot_get_failure_count()wolfBoot_get_failure()wolfBoot_clear_failures()
本機能は完全にオプションであり、無効にしている場合のオーバーヘッドはありません。詳細については、wolfBoot リポジトリのドキュメントをご覧ください。
もし弊社製品についてご質問があれば、お問い合わせ窓口info@wolfssl.jpまでご連絡をお願い致します。
原文:https://www.wolfssl.com/wolfboot-adds-persistent-failure-diagnostics/
