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