AXI UART Liteを追加したfmcomms2_zed用に、Petalinuxをビルドします。
まずは、いつも通りにプロジェクトを作成し、petalinux-configでxsaファイルを指定します。
![](https://blogimg.goo.ne.jp/user_image/7f/59/e9162675beff33d600c68dbcf36e6b63.png)
設定メニューで、Yocto Settings -> User layersに進み、meta-adi-coreとmeta-adi-xilinxのレイヤを追加します。
![](https://blogimg.goo.ne.jp/user_image/0e/15/a9a0f1120d367182a70618e9c9a056c6.png)
さらに、Yocto Settingsで、Enable Network sstate feedsのオプションをdisableします。
![](https://blogimg.goo.ne.jp/user_image/2f/57/57521603f92e0abc4e07bcc137a13cbe.png)
ついでに、axi_uartlite_0が追加されていることを確認します。
![](https://blogimg.goo.ne.jp/user_image/52/bb/bf80faeaff92d642f88df7b6e8db5ba3.png)
設定が完了したら、Saveして設定メニューを終了します。
続いて、device treeを指定します。
fmcomms2_zedのHDLには、zynq-zed-adv7511-ad9361-fmcomms2-3を選択します。
![](https://blogimg.goo.ne.jp/user_image/70/8c/f8ae1c0bcb1623c6c13743177481bb4e.png)
次に、petalinux-config -c kernelで、カーネルの設定を変更します。
ここでは、Xilinx uartlite serial port supportをenableし、Maximum number of uartlite serial portsの値を2に設定します。
![](https://blogimg.goo.ne.jp/user_image/38/91/6e41cb4e16786ebe4d153ef1ed37b194.png)
さらに、system-user.dtsiでデバイスツリーにstatus = "okay"を追加し、axi_uartlite_0を有効にします。
![](https://blogimg.goo.ne.jp/user_image/59/4c/f9a94972edb0abaf4e4254ff083982ca.png)
これで準備が整いました。buildフォルダに移動し、Petalinuxをビルドします。
![](https://blogimg.goo.ne.jp/user_image/66/3e/dd46171efa7008a251cb15c657f228df.png)
ビルドが完了したら、ブートイメージを作成し、SDカードに書き込みます。
![](https://blogimg.goo.ne.jp/user_image/01/a5/908e4f26f7b648c3b658328498c41d15.png)
![](https://blogimg.goo.ne.jp/user_image/10/ac/74cc83597631d92f06ad9343d0cfaa76.png)
SDカードをZedBoardのスロットに挿入し、Petalinuxの起動を確認。
axi_uartlite_0に対応したttyUL1が追加されています。
![](https://blogimg.goo.ne.jp/user_image/28/62/84fedf3a1907752a367985dc7779aa64.png)
PmodにUSBシリアル変換のアダプタを接続し、ttyUL1の出力を受信してみます。
![](https://blogimg.goo.ne.jp/user_image/63/a6/9960e999dcefbdfffc1398f861548dca.jpg)
素直に動作してくれるかなと期待したのですが、TX側のコマンドがストールした感じになり、
RX側には送信した文字が途中までしか表示されません。
![](https://blogimg.goo.ne.jp/user_image/3e/39/0133bde404e4a4459f897e66b2b5ac1b.png)
![](https://blogimg.goo.ne.jp/user_image/49/ab/09fe256a9e80d013b4ccbf75846afab6.png)
ZYBOでのテストとは異なり、ADIが提供するユーザレイヤやデバイスツリーが追加されているので、
その辺りとコンフリクトがあるのかもしれません。
さて、どこから手を付けよう?
まずは、いつも通りにプロジェクトを作成し、petalinux-configでxsaファイルを指定します。
![](https://blogimg.goo.ne.jp/user_image/7f/59/e9162675beff33d600c68dbcf36e6b63.png)
設定メニューで、Yocto Settings -> User layersに進み、meta-adi-coreとmeta-adi-xilinxのレイヤを追加します。
![](https://blogimg.goo.ne.jp/user_image/0e/15/a9a0f1120d367182a70618e9c9a056c6.png)
さらに、Yocto Settingsで、Enable Network sstate feedsのオプションをdisableします。
![](https://blogimg.goo.ne.jp/user_image/2f/57/57521603f92e0abc4e07bcc137a13cbe.png)
ついでに、axi_uartlite_0が追加されていることを確認します。
![](https://blogimg.goo.ne.jp/user_image/52/bb/bf80faeaff92d642f88df7b6e8db5ba3.png)
設定が完了したら、Saveして設定メニューを終了します。
続いて、device treeを指定します。
fmcomms2_zedのHDLには、zynq-zed-adv7511-ad9361-fmcomms2-3を選択します。
![](https://blogimg.goo.ne.jp/user_image/70/8c/f8ae1c0bcb1623c6c13743177481bb4e.png)
次に、petalinux-config -c kernelで、カーネルの設定を変更します。
ここでは、Xilinx uartlite serial port supportをenableし、Maximum number of uartlite serial portsの値を2に設定します。
![](https://blogimg.goo.ne.jp/user_image/38/91/6e41cb4e16786ebe4d153ef1ed37b194.png)
さらに、system-user.dtsiでデバイスツリーにstatus = "okay"を追加し、axi_uartlite_0を有効にします。
![](https://blogimg.goo.ne.jp/user_image/59/4c/f9a94972edb0abaf4e4254ff083982ca.png)
これで準備が整いました。buildフォルダに移動し、Petalinuxをビルドします。
![](https://blogimg.goo.ne.jp/user_image/66/3e/dd46171efa7008a251cb15c657f228df.png)
ビルドが完了したら、ブートイメージを作成し、SDカードに書き込みます。
![](https://blogimg.goo.ne.jp/user_image/01/a5/908e4f26f7b648c3b658328498c41d15.png)
![](https://blogimg.goo.ne.jp/user_image/10/ac/74cc83597631d92f06ad9343d0cfaa76.png)
SDカードをZedBoardのスロットに挿入し、Petalinuxの起動を確認。
axi_uartlite_0に対応したttyUL1が追加されています。
![](https://blogimg.goo.ne.jp/user_image/28/62/84fedf3a1907752a367985dc7779aa64.png)
PmodにUSBシリアル変換のアダプタを接続し、ttyUL1の出力を受信してみます。
![](https://blogimg.goo.ne.jp/user_image/63/a6/9960e999dcefbdfffc1398f861548dca.jpg)
素直に動作してくれるかなと期待したのですが、TX側のコマンドがストールした感じになり、
RX側には送信した文字が途中までしか表示されません。
![](https://blogimg.goo.ne.jp/user_image/3e/39/0133bde404e4a4459f897e66b2b5ac1b.png)
![](https://blogimg.goo.ne.jp/user_image/49/ab/09fe256a9e80d013b4ccbf75846afab6.png)
ZYBOでのテストとは異なり、ADIが提供するユーザレイヤやデバイスツリーが追加されているので、
その辺りとコンフリクトがあるのかもしれません。
さて、どこから手を付けよう?
※コメント投稿者のブログIDはブログ作成者のみに通知されます