AXI UART Liteを追加したfmcomms2_zed用に、Petalinuxをビルドします。
まずは、いつも通りにプロジェクトを作成し、petalinux-configでxsaファイルを指定します。
設定メニューで、Yocto Settings -> User layersに進み、meta-adi-coreとmeta-adi-xilinxのレイヤを追加します。
さらに、Yocto Settingsで、Enable Network sstate feedsのオプションをdisableします。
ついでに、axi_uartlite_0が追加されていることを確認します。
設定が完了したら、Saveして設定メニューを終了します。
続いて、device treeを指定します。
fmcomms2_zedのHDLには、zynq-zed-adv7511-ad9361-fmcomms2-3を選択します。
次に、petalinux-config -c kernelで、カーネルの設定を変更します。
ここでは、Xilinx uartlite serial port supportをenableし、Maximum number of uartlite serial portsの値を2に設定します。
さらに、system-user.dtsiでデバイスツリーにstatus = "okay"を追加し、axi_uartlite_0を有効にします。
これで準備が整いました。buildフォルダに移動し、Petalinuxをビルドします。
ビルドが完了したら、ブートイメージを作成し、SDカードに書き込みます。
SDカードをZedBoardのスロットに挿入し、Petalinuxの起動を確認。
axi_uartlite_0に対応したttyUL1が追加されています。
PmodにUSBシリアル変換のアダプタを接続し、ttyUL1の出力を受信してみます。
素直に動作してくれるかなと期待したのですが、TX側のコマンドがストールした感じになり、
RX側には送信した文字が途中までしか表示されません。
ZYBOでのテストとは異なり、ADIが提供するユーザレイヤやデバイスツリーが追加されているので、
その辺りとコンフリクトがあるのかもしれません。
さて、どこから手を付けよう?
まずは、いつも通りにプロジェクトを作成し、petalinux-configでxsaファイルを指定します。
設定メニューで、Yocto Settings -> User layersに進み、meta-adi-coreとmeta-adi-xilinxのレイヤを追加します。
さらに、Yocto Settingsで、Enable Network sstate feedsのオプションをdisableします。
ついでに、axi_uartlite_0が追加されていることを確認します。
設定が完了したら、Saveして設定メニューを終了します。
続いて、device treeを指定します。
fmcomms2_zedのHDLには、zynq-zed-adv7511-ad9361-fmcomms2-3を選択します。
次に、petalinux-config -c kernelで、カーネルの設定を変更します。
ここでは、Xilinx uartlite serial port supportをenableし、Maximum number of uartlite serial portsの値を2に設定します。
さらに、system-user.dtsiでデバイスツリーにstatus = "okay"を追加し、axi_uartlite_0を有効にします。
これで準備が整いました。buildフォルダに移動し、Petalinuxをビルドします。
ビルドが完了したら、ブートイメージを作成し、SDカードに書き込みます。
SDカードをZedBoardのスロットに挿入し、Petalinuxの起動を確認。
axi_uartlite_0に対応したttyUL1が追加されています。
PmodにUSBシリアル変換のアダプタを接続し、ttyUL1の出力を受信してみます。
素直に動作してくれるかなと期待したのですが、TX側のコマンドがストールした感じになり、
RX側には送信した文字が途中までしか表示されません。
ZYBOでのテストとは異なり、ADIが提供するユーザレイヤやデバイスツリーが追加されているので、
その辺りとコンフリクトがあるのかもしれません。
さて、どこから手を付けよう?