Howto

Armadillo-640: CON3、CON4(シリアルインターフェース)をコンソールとして利用する

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