ここ数年の Linux Kernel はかなり安定しているとは思っていて、滅多にハングする状況を見ることをなくなりました。
でも、本当にそうなのか気になります。
気が向いたときに最新の Linux Kernel をいくつかのアーキテクチャでビルドして動かしてみた結果をまとめてみます。
■ 以下の情報に関する注意点
■ 結果 (mainline)
バージョン : 6.5-rc4
Raspberry Pi 2 (arm)
VisionFive 2 (riscv)
■ 結果 (-rt)
バージョン : 6.4.6-rt8
単純なアタッチは以下の通りでできた。
https://forum.rvspace.org/t/connecting-to-visionfive-s-jtag-port-a-short-guide/514/1
ホスト側のJTAG I/Fには秋月のFT232HLを使用した。
アタッチしてデバッグまでは特に問題なくできるものの、
TRSTnをアサートしてもリセットがかからない。
これができれば、リセットベクタからデバッグができるのだけどなぁ。。。
手順は以下の通り。
念のためオシロでTRSTnの端子を見ると、ちゃんと一定時間Lにアサートしていた。
アサート時間が短いのかなと思い、monitor jtagntrstassert_widthで調整をしてみても変わらず。
ホスト側は特に問題なさそう。
ターゲット側の問題のような感じはするけど、はっきりとはわからず。
仕様書は抜粋版しか公開されていないようなので、ここからも情報は得られなかった。
—
そうなると、U-Bootだとresetコマンドが実行できるのはなんでだろう?
抜粋版の仕様書にリセットレジスタの記載があるので、これを叩いているのだろうか。
ソースを見てみる。
U-BootのCONFIGSYSRESETSBIが経っていて、resetコマンド実行時にU-BootからOpenSBIに落ちている。
OpenSBIでは、I2Cでregulatorのレジスタのresetビットを叩いている…。
これは望んでいた方法ではないな。。。