culaney
2024年12月17日 11時38分
==========
製品型番:AGX4500
Debian/ABOSバージョン:3.20.3-at.5
カーネルバージョン:Linux armadillo 5.10.230-0-at #1-Alpine SMP PREEMPT
==========
今,量産品において,デバッグ機能を閉じる作業を行なっております.
『JTAG と SD ブートを無効化する』作業を行いたく,以下の公式ドキュメントを参照しております.
(新版のドキュメントには,旧版の右下のリンクよりアクセスしました.)
・旧版『市場出荷に向けてデバッグ機能を閉じる』,https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-sec…
・新版『量産に向けてデバッグ機能を閉じる』,https://manual.atmark-techno.com/armadillo-x2/armadillo-base-os-securit…
旧版の資料では, JTAG と SD ブートを無効化する設定は efuse のため,一度書き込むとそのデバイスの設定を二度と戻せない旨の記述がありました.
一方で,新版の資料では, efuse という記述はなく設定を戻せなくなる旨の記述もなかったように思います.
新版の資料に記載されているコマンドで無効化すれば,その後に再度有効化できるという理解で合っておりますか?
同じ個体に対して,動作確認を何度も行えるのか,それとも一度しか行えないのか懸念しております.
また,量産イメージを SWUpdate で更新できるようにしているのですが, .desc ファイルを作成することでデバッグ機能(JTAG と SD ブート)の無効化を実現することはできますか?
コメント
at_satoshi.ohta
太田です。
> 新版の資料に記載されているコマンドで無効化すれば,その後に再度有効化できるという理解で合っておりますか?
申し訳ありません。efuseという記載はありませんが、新版のマニュアルの方法も同様にefuseに書き込むことでJTAGとSDブートを無効化しています。
そのため、再度有効化することはできません。
参考までに、abos-ctrl installer-setting による JTAG や SDブート無効化方法について簡単に説明します。
====(今回やりたいこととは直接には関係ないので呼び飛ばして頂いても構いません)
新版での記述では、量産製造時を想定しています。
量産製造時では、開発用Armadilloの環境をインストールディスクイメージ(SDカード)にコピー(abos-ctrl make-installer)して、そのイメージを量産用ArmadilloでSDブートすることで環境を複製します。
abos-ctrl installer-setting は開発用のArmadilloで実行することを想定しております。
このコマンドは量産用ArmadilloでインストールディスクイメージをSDブートする時に、JTAGやSDブートを無効化するかどうかの設定値を変更するだけです。
そのため、abos-ctrl installer-setting ではefuseが焼かれることはありません。
実際にefuseが焼かれるの量産用Armadilloであり、JTAGやSDブートを無効化するように設定したインストールディスクイメージを量産用ArmadilloでSDブートしたタイミングになります。
====
> また,量産イメージを SWUpdate で更新できるようにしているのですが, .desc ファイルを作成することでデバッグ機能(JTAG と SD ブート)の無効化を実現することはできますか?
実現できます。
マニュアルでは、量産製造時に行う方法は記載しておりますが、すでに量産したものに対してのJTAGとSDブートを無効化する方法は記載しておりませんでした。
Armadillo Base OS を最新にアップデートした後、以下を.descファイルに記述することでJTAGとSDブートを無効化できるはずです。
swdesc_command "device-info --yes-i-know-what-i-am-doing --write-fuse jtag" ① swdesc_command "device-info --yes-i-know-what-i-am-doing --write-fuse sd_boot" ② swdesc_command "device-info --yes-i-know-what-i-am-doing --write-fuse lock" ③
それぞれ
①:JTAGを無効化するefuseに書き込む
②:SDブートを無効化するefuseに書き込む
③:JTAG及びSDブートを無効化するefuseを含む領域を書き込み不可にする
処理を行います。
このコマンドを実行すると再度有効化することはできませんのでご注意ください。
また、ちゃんと無効化されたかどうかを確認するのであれば以下のコマンドをArmadillo上で実行することで確認できます。
armadillo:~# device-info --fuse-status jtag jtag disabled armadillo:~# device-info --fuse-status sd_boot sd_boot disabled armadillo:~# device-info --fuse-status lock boot_cfg_lock write protected
よろしくお願いいたします。
culaney
culaney
2024年12月17日 11時40分
レビュー中に誤って投稿してしまいました...
> ・新版『量産に向けてデバッグ機能を閉じる』,https://manual.atmark-techno.com/armadillo-x2/armadillo-base-os-securit…
リンクが誤っており,正しくは以下の通りです.
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-sec…