萌えハッカーニュースリーダー

2025/06/30 18:34 The JTAG in your Qualcomm/Snapdragon device's USB port

出典: https://www.linaro.org/blog/hidden-jtag-qualcomm-snapdragon-usb/
hakase
博士

ロボ子、QualcommがEmbedded USB Debug (EUD) のソースコードを公開したらしいのじゃ!

roboko
ロボ子

EUDですか、博士。それはどのようなものなのですか?

hakase
博士

EUDは、2018年以降のQualcomm SoCに内蔵されたデバッグインターフェースのことじゃ。CPUだけでなくHexagonコプロセッサ/DSPのデバッグもできるらしいぞ。

roboko
ロボ子

コプロセッサやDSPのデバッグもできるのは便利ですね。USBケーブル経由でSWDインターフェースを公開するとのことですが、具体的にどういうことでしょうか?

hakase
博士

つまり、外部ツールなしでデバッグできるってことじゃ!これはすごいことなのじゃ!

roboko
ロボ子

それは便利ですね!以前からLinuxで部分的にサポートされていたとのことですが、今回の公開で何が変わるのでしょうか?

hakase
博士

以前は、Qualcomm社員とOEMパートナーしか利用できないプロプライエタリなEUDライブラリに依存していたらしいのじゃ。でも、今回QualcommがEUDライブラリを公開したから、誰でも使えるようになったのじゃ!

roboko
ロボ子

なるほど。利用するにはUbuntu 20.10とQualcommのGCC 8.xツールチェーンが必要とのことですが、他の環境では難しいのでしょうか?

hakase
博士

修正すれば他の環境でもビルドできるらしいぞ。リベースされたOpenOCDパッチはlinux-msm GitHubで公開されていて、Snapdragon 845でテスト済みとのことじゃ。

roboko
ロボ子

ということは、Snapdragon 845をお持ちの方はすぐに試せますね。EUDは、U-Bootやセキュアワールドなどの非カーネル領域のデバッグを容易にするとありますが、具体的にどのようなメリットがあるのでしょうか?

hakase
博士

非カーネル領域のデバッグは、通常もっと複雑な手順が必要になるからの。EUDがあれば、それらの領域も手軽にデバッグできるってことじゃ!

roboko
ロボ子

なるほど。EUDは、SWDペリフェラル、COM (UART) ペリフェラル、トレースペリフェラルを提供するとのことですが、これらはそれぞれどのような役割を果たすのでしょうか?

hakase
博士

SWDはデバッグインターフェース、COMはシリアル通信、トレースはプログラムの実行履歴を記録するものじゃ。これらが全部USB経由で使えるのは便利なのじゃ!

roboko
ロボ子

生産デバイスでのクローズドケースデバッグを可能にする可能性があるとのことですが、セキュリティ的には問題ないのでしょうか?

hakase
博士

EUDの利用可否は、ヒューズの設定やOEM署名付きのデバッグポリシーに依存するらしいから、そこはちゃんと管理されてるはずじゃ。でも、OnePlus 6などの一部の生産デバイスでは、EUDがヒューズで無効になっているにもかかわらず、動作することもあるらしいから、注意が必要じゃな。

roboko
ロボ子

そうなんですね。異なるSoCではデバッグベースとCTIベースレジスタのアドレスが異なるため、linux-msmフォークで問題を報告することが推奨されるとのことですが、これは具体的にどのような問題が発生する可能性があるのでしょうか?

hakase
博士

アドレスが違うと、正しいレジスタにアクセスできなくなるから、デバッグがうまくいかなくなる可能性があるのじゃ。だから、問題を見つけたら報告してほしいってことじゃな。

roboko
ロボ子

PRSRレジスタのスティッキーリセットビットが常に設定されているという問題や、SMPサポートが不足しているという問題もあるとのことですが、これらは今後の課題となりそうですね。

hakase
博士

そうじゃな。でも、Qualcommは開発者エクスペリエンスの向上とプラットフォームのオープン化にコミットしているらしいから、今後に期待じゃ!

roboko
ロボ子

EUDは、高価なデバッグ機器のコストを削減し、セットアップ時間を短縮し、リモートデバッグを容易にするとありますが、これは開発者にとって大きなメリットですね。

hakase
博士

まさにそうじゃ!Qualcommは、開発者がもっと簡単にデバッグできるように、EUDを公開したのじゃ。これで、私ももっと楽に開発できる…はず!

roboko
ロボ子

博士、これでまた一つ賢くなりました。ありがとうございます。

hakase
博士

どういたしまして。ところでロボ子、EUDって、まるで…Easy USB Debugの略みたいじゃな!…って、そのまんまかーい!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search