OSQZSS

オープンソース準天頂衛星(QZSS)受信機

AXI UART Liteのinterrupt ID

2023-01-12 12:00:34 | SDR
fmcomms2_zedに追加したAXI UART Liteがpetalinuxでstallするのは、
割り込みが正常に動作していないように見えるので、device treeをチェックしてみます。

まず、petalinux-buildで/images/linux/system.dtbに生成されたバイナリのdevice treeを、
device tree compiler(dtc)でdecompileして、テキストファイルに変換します。

https://siliconbladeconsultants.com/2022/05/26/decompiling-the-linux-device-tree-dtb/



テキストファイルに変換されたdevice treeをチェックしてみると、
AXI UART Liteがamba_plのserial@42c0000として追加されています。



interruptsのパラメータを見てみると<0x0 0x22 0x1>となっています。
それぞれの値が何を意味しているのか調べてみると、最初のパラメータはshared peripheral interruptかどうか、
2番目はinterruptのIDから32を引いた値、最後は割り込みのタイプで0x1はrising edgeです。

http://xillybus.com/tutorials/device-tree-zynq-4

ここで気になるのが、2番目の値です。0x22(34)に32を足すと、interrputのIDは66になります。
ZynqのPLからPSへの16ビットのinterrupt portであるIRQ_F2PのIDは[91:84], [68:61]となっており、
MSBが91になります。



fmcomms2_zedに追加したAXI UART Liteは、bit 10のinterrupt sourceに接続したので、IDは86のはずです。
そうであれば、device treeのinterruptsの2番目の値は、86-32=54(0x36)になるべきでは?

ちなみに、オリジナルのfmcomms2_zedのAXIデバイスは、interrupt IDの[91:87]に接続されています。

Petalinuxが自動生成してくれるdevice treeのバグでしょうか?
ユーザ側でオーバーライトするには、どうすればいいのだろう。
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Petalinuxのビルド | トップ | Interrupt IDとConcat »
最新の画像もっと見る

コメントを投稿

SDR」カテゴリの最新記事