このエントリーをはてなブックマークに追加

Armadillo-X1:拡張I/FのUARTを使用する方法

Armadillo-X1の拡張I/F(CON8)のUARTを使用する方法です。
Armadillo-X1マルチプレクス表より、使用するCON8の端子番号と機能の相関は下記のとおりとしました。
※)下記設定にはRTS/CTSを含んでいますが、今回はRTS/CTSの動作確認は行っていません。

UART(UART1)
 24:CTS
 25:RTS
 26:RX
 27:TX

UART(UART2)
 72:RX
 73:TX
 74:RTS
 75:CTS

UART(UART4)
 62:RTS
 63:CTS
 64:TX
 65:RX

下記手順にて、カーネル"linux-3.14-x1-at[version]"の[version]の部分は、
ご使用のカーネルのバージョンに読み替えてください。

1.カーネルのビルド準備

Armadillo-X1製品マニュアル 10.2. Linuxカーネルをビルドする を参考に、カーネルをビルドする環境を用意します。

2.Device Tree Sourceで端子設定

UARTの機能を設定したDevice Tree Sourceを準備します。 linux-3.14-x1-at[version]/arch/arm/boot/dts/ に添付の x1_uart124_dts_20170403.zip 内の Makefile armadillo_x1.dts armadillo_x1-uart124_user1.dts を置いてください。 補足) armadillo_x1-uart124_user1.dts:UART1,UART2,UART4を設定しています。 armadillo_x1.dts  armadillo_x1-uart124_user1.dtsのUART1,UART2,UART4の設定(&pinctrl_uart1 &pinctrl_uart2 &pinctrl_uart4)  を追加したものです。  標準のarmadillo_x1.dtsについて、   pinctrl-0 = <&pinctrl_hog_1>;  を   pinctrl-0 = <&pinctrl_hog_1 &pinctrl_uart1 &pinctrl_uart2 &pinctrl_uart4>;  に変更してます。 Makefile  armadillo_x1-ecspi3_uartx3.dtsをビルドすることを追加したものです。  標準のMakefileについて、 armadillo_x1-ecspi4_mcp3202.dtb \  の下に armadillo_x1-uart124_user1.dtb \  を追加しています。

3.カーネルコンフィギュレーション

今回の用法ではデフォルトのままの設定にします。
atmark@atde6:~/linux-3.14-x1-at[version]$ make ARCH=arm x1_defconfig

4.ビルド

ビルドします。
atmark@atde6:~/linux-3.14-x1-at[version]$ make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm
atmark@atde6:~/linux-3.14-x1-at[version]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage

5.Armadillo-X1のカーネル、DeviceTreeの変更

5.1.上記の手順で4ビルドされた linux-3.14-x1-at[version]/arch/arm/boot/uImage linux-3.14-x1-at[version]/arch/arm/boot/dts/armadillo_x1-uart124_user1.dtb をArmadillo-X1に置きます。 5.2.カーネルイメージ変更します。 (以下は、ホームディレクトリにuImageを置いてある場合)
root@armadillo:~# mount -t vfat /dev/mmcblk2p1 /mnt
root@armadillo:~# cp uImage /mnt/uImage
root@armadillo:~# umount /mnt
5.3.armadillo_x1-uart124_user1.dtb(UART1,UART2,UART4を設定したDTB)を追加します。 (以下は、ホームディレクトリにarmadillo_x1-uart124_user1.dtbを置いてある場合)
root@armadillo:~# mount -t vfat /dev/mmcblk2p1 /mnt
root@armadillo:~# cp armadillo_x1-uart124_user1.dtb /mnt/
root@armadillo:~# umount /mnt

6.DeviceTreeの選択

保守モードで、armadillo_x1-uart124_user1.dtb(UART1,UART2,UART4を設定したDTB)を選択します。 6.1.電源を落とします。
root@armadillo:~# halt
を実行後、電源を落とします。 6.2.保守モードで起動します。 Armadillo-X1製品マニュアル 図4.8 スライドスイッチの設定 を参考に保守モードにスイッチを設定して、電源を入れます。 6.3.armadillo_x1-uart124_user1.dtb(UART1,UART2,UART4を設定したDTB)を選択します。
=> setenv fdt_file armadillo_x1-uart124_user1.dtb
=> saveenv
6.4.通常モード(オートブートモード)で再起動します。 電源を落とします。 Armadillo-X1製品マニュアル 図4.8 スライドスイッチの設定 を参考にオートブートモード側にスイッチを設定して、電源を入れます。 以上で、拡張I/F(CON8)で、UART1,UART2,UART4が使用できるようになります。 各UARTは、下記のように"dev/ttymxc*"というデバイスファイルとして見えます。 UART1:/dev/ttymxc0 UART2:/dev/ttymxc1 UART4:/dev/ttymxc3

製品: 

  • Armadillo-X1