u-bootでUART3をコンソールとして利用する
u-bootでUART3をコンソールとして使うためにu-bootコンフィギュレーションを変更してビルドを行います。
まず、Armadillo-640のデフォルトコンフィギュレーションを適用します。 以下のコマンドを実行してください。
[PC ~]$ cd u-boot-a600-v2018.03-at[version]
[PC ~/u-boot-a600-v2018.03-at[version]]$ make ARCH=arm armadillo-640_defconfig
次に、コンソールとしてUART3を利用するようコンフィギュレーションを変更します。
以下のコマンドを実行し、「ARM architecture」->「Console UART select」で「UART3」を選択してください。
$ make ARCH=arm menuconfig
ARM architecture ->
Console UART select (UART1) --->
() UART1
(X) UART3 <-を選択
コンフィギュレーションの変更後、u-bootをビルドしてください。ビルド方法についてはArmadillo-640 製品マニュアル ブートローダーをビルドするをご覧ください。
LinuxでUART3をコンソールとして利用する
u-boot-a600-v2018.03-at3以降では、環境変数 optargs に設定されたパラメータがブートパラメータとしてLinuxカーネルに渡されます。
LinuxでUART3をコンソールとして使用するには、optargsに console=ttymxc2,115200を設定します。
ブートパラメータの設定
=> printenv optargs
## Error: "optargs" not defined
=> setenv optargs console=ttymxc2,115200
u-boot環境変数の確認
=> printenv
baudrate=115200
bootcmd=run setup_mmcargs; ext4load mmc 0:2 ${loadaddr} /boot/uImage; ext4load mmc 0:2 0x83000000 /boot/a640.dtb; bootm\
${loadaddr} - 0x83000000;
loadaddr=0x82000000
optargs=console=ttymxc2,115200
setup_mmcargs=setenv bootargs root=/dev/mmcblk0p2 rootwait ${optargs};
tftpboot=tftpboot uImage; tftpboot 0x83000000 a640.dtb; bootm ${loadaddr} - 0x83000000;
Environment size: 400/524284 bytes
u-boot環境変数の保存
=> saveenv
Saving Environment to MMC... Writing to MMC(0)... OK