Armadilloフォーラム

Armadillo-640:CON9にUART8を追加する方法について

masahide

2018年9月13日 8時52分

お世話になっております。赤坂と申します。
armadilloを使用して初めて開発を行ってます。

現在、armadillo-640のCON9にUART8インタフェースを割り付けて通信しようとしてます。

■ピン番号
・15(GPIO3_IO25)
・16(GPIO3_IO26)

上記ピンにGPSデバイスを接続し、入力される垂れ流しのNMEAデータを参照、取得することが目的です。

以下のブログ情報を参考に添付(armadillo-640.dts)の様に、コンフィグレーションの設定変更、
カーネルのビルドとカーネルイメージの書き換えを行いましたが、設定に失敗している様で、
添付txtの様に「Starting kernel ...」と表示したままarmadilloが起動しませんでした。

必要なカーネルコンフィグレーション設定方法について教えて下さい。

現在コンソールをCON3に変更し、参考情報の①を設定している状態です。

■参考ブログ
 ①Armadillo-640: 機能拡張用インターフェース(CON9)の使用
   https://users.atmark-techno.com/blog/8700/3336

 ②Howto : Armadillo-640: UART5を利用する
   https://armadillo.atmark-techno.com/howto/use-armadillo-640-uart5

■コンフィグレーションの設定変更箇所
 ①linux-v4.14-at3/arch/arm/boot/dts/armadillo-640.dts
   line:110-114を追加
   line:168-173を追加

 ②linux-v4.14-at3/arch/arm/boot/dts/imx6ul-pinfunc.h は修正してません。

以上、宜しくお願いします。

ファイル ファイルの説明
armadillo-640.dts
カーネル変更後起動ログ.log
コメント

at_ohsawa

2018年9月13日 15時44分

> 以下のブログ情報を参考に添付(armadillo-640.dts)の様に、コンフィグレーションの設定変更、
> カーネルのビルドとカーネルイメージの書き換えを行いましたが、設定に失敗している様で、
> 添付txtの様に「Starting kernel ...」と表示したままarmadilloが起動しませんでした。

下記差分だけ imx6ul.dtsi の定義の修正をお願いします。

diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
index f11a241a340d..a2ac39fbff20 100644
--- a/arch/arm/boot/dts/imx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -271,10 +271,10 @@
                                        status = "disabled";
                                };
 
-                               uart8: serial@02024000 {
+                               uart8: serial@02288000 {
                                        compatible = "fsl,imx6ul-uart",
                                                     "fsl,imx6q-uart";
-                                       reg = <0x02024000 0x4000>;
+                                       reg = <0x02288000 0x4000>;
                                        interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6UL_CLK_UART8_IPG>,
                                                 <&clks IMX6UL_CLK_UART8_SERIAL>;

armadillo-640.dtsの方は赤坂樣の設定で問題ありません。

本来armadillo-640.dtsの変更だけで動くようにリリースしておくべきでした。
次回リリースで修正予定です。

リリース時(linux-4.14-at5)では上記の修正とは別の方法(imx6ul.dtsiではなくimx6ull.dtsiの修正)で
修正するつもりですがarmadillo-640.dtsの記述は、そのまま次のリリースでも使うことができる予定です。

masahide

2018年9月13日 16時53分

回答有難うございました。

上記のimx6ul.dtsi の定義の修正を行い、カーネル再ビルド・イメージ書き換えを行ったところ
armadilloが起動しました。

/dev/配下にttymxc7が表示されて、入力データを参照できましたので解決致しました。

masahide

2018年9月13日 17時55分

すいません、関連した質問ですが、
下記のブログを参考にarmadillo-640.dts変更してI2C2, I2C3を追加してますが、
/dev/配下にi2C-*が表示されないのは何か設定が足りないのでしょうか?

・Armadillo-640: 機能拡張用インターフェース(CON9)の使用
  https://users.atmark-techno.com/blog/8700/3336

宜しくお願いします。

at_ohsawa

2018年9月14日 8時53分

> すいません、関連した質問ですが、
> 下記のブログを参考にarmadillo-640.dts変更してI2C2, I2C3を追加してますが、
> /dev/配下にi2C-*が表示されないのは何か設定が足りないのでしょうか?

これは記事が間違っていますね。申し訳ありません。
i2cデバイスドライバにmuxの設定を設定する記述が足りないのと、
uart1とuart5(at4から追記したのでat3を使っている場合は記述がありません)は
既にuartとして使っているので、その参照も外す必要があります。

また、muxで設定しているレジスタ値は、外部でプルアップ & オープンドレイン
というi2cの典型的な接続例にするのであれば 0x40010808 とすべきですね。

以上を踏まえるとこちらになります。

diff --git a/arch/arm/boot/dts/armadillo-640.dts b/arch/arm/boot/dts/armadillo-640.dts
index 0f0983cf075e..23d6282aad92 100644
--- a/arch/arm/boot/dts/armadillo-640.dts
+++ b/arch/arm/boot/dts/armadillo-640.dts
@@ -95,24 +95,12 @@
     };
 };
 
-&uart1 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&pinctrl_uart1>;
-    status = "okay";
-};
-
 &uart3 {
     pinctrl-names = "default";
     pinctrl-0 = <&pinctrl_uart3>;
     status = "okay";
 };
 
-&uart5 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&pinctrl_uart5>;
-    status = "okay";
-};
-
 &usdhc1 {
     pinctrl-names = "default";
     pinctrl-0 = <&pinctrl_usdhc1>;
@@ -238,6 +226,18 @@
             MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY    0x30b0
             >;
     };
+    pinctrl_i2c2: i2c2grp {
+        fsl,pins= <
+        MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x40010808
+        MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x40010808
+        >;
+    };
+    pinctrl_i2c3: i2c3grp {
+        fsl,pins= <
+        MX6UL_PAD_UART1_RX_DATA__I2C3_SDA 0x40010808
+        MX6UL_PAD_UART1_TX_DATA__I2C3_SCL 0x40010808
+        >;
+    };
 };
 
 &usbotg1 {
@@ -286,6 +286,20 @@
     status = "okay";
 };
 
+&i2c2 {
+    status = "okay";
+    clock-frequency = <400000>;
+    pinctrl-names = "default";
+    pinctrl-0 = <&pinctrl_i2c2>;
+};
+
+&i2c3 {
+    status = "okay";
+    clock-frequency = <400000>;
+    pinctrl-names = "default";
+    pinctrl-0 = <&pinctrl_i2c3>;
+};
+
 &wdog1 {
     pinctrl-names = "default";
     pinctrl-0 = <&pinctrl_wdog>;

これで/dev/i2c1, /dev/i2c2 (デバイスノードは0始まりなので-1された番手になります)が作られます。

masahide

2018年9月14日 11時19分

回答有難うございました。
上記の設定を行い、/dev/i2c1, /dev/i2c2 が作られました。

更に追加の質問で申し訳ありません。。
CON9のピン1が「Low」の状態でArmadilloを起動すると、ブートローダが保守モードで起動します。
これは、USBシリアル変換アダプタをCON9の「1、3、5、7、9」へ接続した場合に、
スライドスイッチを保守モードにしてArmadilloを起動した場合と同じ状態となっていると思われます。

CON9の1、2ピンも、機能拡張用インターフェースとして割り付けて使用する場合に、
USBシリアル変換アダプタの機能を無効にする(参照を外す?)設定が必要になるのではないかと思うのですが、
どの様な設定が必要であるかご教示お願いします。

at_ohsawa

2018年9月14日 13時09分

無効にしてしまうと保守モードに入れる方法は時間内にキー入力するカウントダウンか、
保守モード無効の2択になるのですが、CON9_1以外のピンをCON9_1代りに使うことは
想定していないでしょうか?
カウントダウン方式は起動がその秒数分遅くなるので、それも気にしています。

いずれの方法もお伝えできますが、標準イメージの実装から外れます。
お勧めはCON14のi2c4 等を使って頂いて、今後のアップデートを適用する際に
標準イメージとの矛盾を避ける方法です。

masahide

2018年9月14日 14時14分

> 保守モード無効の2択になるのですが、CON9_1以外のピンをCON9_1代りに使うことは
> 想定していないでしょうか?

教えて下さい。
現状で設計しているCON9 GPIOピンの割り付けですが、下を使用する予定です。

・GPIO(ピン1,2,13,14,17,18,25,26,27,28)
・i2C(ピン3,4,5,6)
・UART(ピン15,16)

①ピン1をCON9の別の空けているピンに割り付け変更することは検討できますが、
 ピン11,12,21,22,23,24を使用する事はできますか?

②他のピンでも使用できないピンがありますか?
 (ピン2等も同じく保守でしょうか?)

②ピン1を空けずに保守モードを無効にした場合、起動時に時間内にキー入力して保守モードに
 入るカウントダウン方式の場合、カウント時間は何秒でしょうか?

よろしくお願いします。

at_ohsawa

2018年9月14日 14時38分

> ①ピン1をCON9の別の空けているピンに割り付け変更することは検討できますが、
>  ピン11,12,21,22,23,24を使用する事はできますか?

いいえ。u-bootがGPIOの値を読んで判定するので、いずれもGPIOにはなれないので使えません。
(マルチプレクス表参照)

> ②他のピンでも使用できないピンがありますか?
>  (ピン2等も同じく保守でしょうか?)

CON9_2はとくに何の用途にも使っていないです。

他にはブーローダーではなく、CPUがブートローダー以前の処理の分岐に使うピンが
CON9_13から18にあります。これらはボード上でpulldownされていますが、u-bootが起動
するまではlow状態を維持できるようにしてください。外側回路でpullupしたい場合は
外にゲートやトランジスタを付けて分離する等して使ってください。

>
> ②ピン1を空けずに保守モードを無効にした場合、起動時に時間内にキー入力して保守モードに
>  入るカウントダウン方式の場合、カウント時間は何秒でしょうか?

秒単位で任意です。動くかわかりませんがintなので(2147483647)まで設定できますね。

masahide

2018年9月14日 15時07分

> 他にはブーローダーではなく、CPUがブートローダー以前の処理の分岐に使うピンが
> CON9_13から18にあります。これらはボード上でpulldownされていますが、u-bootが起動
> するまではlow状態を維持できるようにしてください。外側回路でpullupしたい場合は
> 外にゲートやトランジスタを付けて分離する等して使ってください。

⇒CON9_13ですが、u-bootが起動するまでlow状態でない場合、どの様な弊害があるのでしょうか?
 また、こちらもピン1同様に、使用してもその様な状態にならない様に無効にする設定はありますでしょうか?
 ありましたら教えて下さい。

今後のリファインの際には、これらの情報を考慮したいと思いますが
今回は難しい為、ピン1を保守モード無効にして、時間内(数秒)にキー入力するカウントダウン方式にしたい為、
そちらの設定方法もご教示お願いします。

at_ohsawa

2018年9月14日 16時41分

このピンはArmadillo-640のSoCであるi.mx6ullブートデバイスの
選択に関わるピンの一つBOOT_CFG4[2]にあたります。(NXP社データシート参照)

このピンはeCSPIブート(Armadilloには搭載していません)する際にどのSPIコアを
選択するか切り替えるビットの一つです。eCSPIブートしていないため、挙動は
変らないと考えられますが、当社で評価していない使用方法なので、如何なる
副作用もないとは言えません。ご自身で評価して問題なければhiで使うことは
自由です。

> 使用してもその様な状態にならない様に無効にする設定はありますでしょうか?

先のピンは全てチップメーカーがSoCに内蔵しているROMとハードウェアロジックの
仕様になります。設定はできません。

> 保守モード無効にして、時間内(数秒)にキー入力するカウントダウン方式
ちょっと作ってみます。

masahide

2018年9月14日 18時07分

> このピンはArmadillo-640のSoCであるi.mx6ullブートデバイスの
> 選択に関わるピンの一つBOOT_CFG4[2]にあたります。(NXP社データシート参照)
>
> このピンはeCSPIブート(Armadilloには搭載していません)する際にどのSPIコアを
> 選択するか切り替えるビットの一つです。eCSPIブートしていないため、挙動は
> 変らないと考えられますが、当社で評価していない使用方法なので、如何なる
> 副作用もないとは言えません。ご自身で評価して問題なければhiで使うことは
> 自由です。
>
> > 使用してもその様な状態にならない様に無効にする設定はありますでしょうか?
>
> 先のピンは全てチップメーカーがSoCに内蔵しているROMとハードウェアロジックの
> 仕様になります。設定はできません。

⇒相談したところ、CON9_15,16(UART8)については、割当てをCON14_3,4(UART2)へ変更できそうです。
 変更することで、CON_13-18が起動時にlow状態を維持できます。

 ただ、もともとは、CON9_15,16(UART8)のコンフィグレーション設定について質問していたのですが、
 CON9_15,16(UART8)⇒CON14_3,4(UART2)へ割当変更した場合に、別の設定が必要になると思います。

 そちらもご教示宜しくお願いします。
 2転3転しまして申し訳ありません。
 他にもピンの制約事項がありましたら教えてください。

> > 保守モード無効にして、時間内(数秒)にキー入力するカウントダウン方式
> ちょっと作ってみます。

 ⇒CON9_1についてはそのまま使用しますので宜しくお願いします。

at_ohsawa

2018年9月18日 8時35分

>  ただ、もともとは、CON9_15,16(UART8)のコンフィグレーション設定について質問していたのですが、
>  CON9_15,16(UART8)⇒CON14_3,4(UART2)へ割当変更した場合に、別の設定が必要になると思います。
こっちはCON8と大差ないです。UART8のようにimx6ul.dtsiを修正する必要もありません。

標準で配布しているのdtsからの下記変更分の差分です。

- uart1,5を無効(i2cとピン排他のため)
- uart2を有効(/dev/ttymxc1)
- i2c2,3を有効 (/dev/i2c-1, i2c-2)

diff --git a/arch/arm/boot/dts/armadillo-640.dts b/arch/arm/boot/dts/armadillo-640.dts
index 0f0983cf075e..06b9fbd7b3fb 100644
--- a/arch/arm/boot/dts/armadillo-640.dts
+++ b/arch/arm/boot/dts/armadillo-640.dts
@@ -95,9 +95,9 @@
     };
 };
 
-&uart1 {
+&uart2 {
     pinctrl-names = "default";
-    pinctrl-0 = <&pinctrl_uart1>;
+    pinctrl-0 = <&pinctrl_uart2>;
     status = "okay";
 };
 
@@ -107,12 +107,6 @@
     status = "okay";
 };
 
-&uart5 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&pinctrl_uart5>;
-    status = "okay";
-};
-
 &usdhc1 {
     pinctrl-names = "default";
     pinctrl-0 = <&pinctrl_usdhc1>;
@@ -145,6 +139,14 @@
             MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
         >;
     };
+
+    pinctrl_uart2: uart2grp {
+        fsl,pins = <
+            MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x00008
+            MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
+        >;
+    };
+
     pinctrl_uart3: uart3grp {
         fsl,pins = <
             MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x00008
@@ -238,6 +240,18 @@
             MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY    0x30b0
             >;
     };
+    pinctrl_i2c2: i2c2grp {
+        fsl,pins= <
+        MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x40010808
+        MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x40010808
+        >;
+    };
+    pinctrl_i2c3: i2c3grp {
+        fsl,pins= <
+        MX6UL_PAD_UART1_RX_DATA__I2C3_SDA 0x40010808
+        MX6UL_PAD_UART1_TX_DATA__I2C3_SCL 0x40010808
+        >;
+    };
 };
 
 &usbotg1 {
@@ -286,6 +300,21 @@
     status = "okay";
 };
 
+
+&i2c2 {
+    status = "okay";
+    clock-frequency = <400000>;
+    pinctrl-names = "default";
+    pinctrl-0 = <&pinctrl_i2c2>;
+};
+
+&i2c3 {
+    status = "okay";
+    clock-frequency = <400000>;
+    pinctrl-names = "default";
+    pinctrl-0 = <&pinctrl_i2c3>;
+};
+
 &wdog1 {
     pinctrl-names = "default";
     pinctrl-0 = <&pinctrl_wdog>;

> > > 保守モード無効にして、時間内(数秒)にキー入力するカウントダウン方式
> > ちょっと作ってみます。
>
>  ⇒CON9_1についてはそのまま使用しますので宜しくお願いします。
ピンの振り換えは不要という事ですね。u-bootの変更は必要ないですね ;-)

masahide

2018年9月18日 9時00分

お世話になっております。回答有難うございました。

> >  ただ、もともとは、CON9_15,16(UART8)のコンフィグレーション設定について質問していたのですが、
> >  CON9_15,16(UART8)⇒CON14_3,4(UART2)へ割当変更した場合に、別の設定が必要になると思います。
> こっちはCON8と大差ないです。UART8のようにimx6ul.dtsiを修正する必要もありません。

⇒CON14_3,4(UART2)の変更については、ご指示の通り設定してみます。

> > > > 保守モード無効にして、時間内(数秒)にキー入力するカウントダウン方式
> > > ちょっと作ってみます。
> >
> >  ⇒CON9_1についてはそのまま使用しますので宜しくお願いします。
> ピンの振り換えは不要という事ですね。u-bootの変更は必要ないですね ;-)

⇒申し訳ありません、書き方が悪かったため伝わりませんでした。
 CON9_1ピンについては、今回割り付け変更しないので保守モードを無効にして、
 時間内(数秒)にキー入力するカウントダウン方式にしたいため、
 そちらの設定方法もご教示お願いします。

masahide

2018年9月18日 20時58分

> お世話になっております。回答有難うございました。
>
> > >  ただ、もともとは、CON9_15,16(UART8)のコンフィグレーション設定について質問していたのですが、
> > >  CON9_15,16(UART8)⇒CON14_3,4(UART2)へ割当変更した場合に、別の設定が必要になると思います。
> > こっちはCON8と大差ないです。UART8のようにimx6ul.dtsiを修正する必要もありません。
>
> ⇒CON14_3,4(UART2)の変更については、ご指示の通り設定してみます。

⇒ご指示の通り設定して、uart2を有効(/dev/ttymxc1)にすることができました。

> > > > > 保守モード無効にして、時間内(数秒)にキー入力するカウントダウン方式
> > > > ちょっと作ってみます。
> > >
> > >  ⇒CON9_1についてはそのまま使用しますので宜しくお願いします。
> > ピンの振り換えは不要という事ですね。u-bootの変更は必要ないですね ;-)
>
> ⇒申し訳ありません、書き方が悪かったため伝わりませんでした。
>  CON9_1ピンについては、今回割り付け変更しないので保守モードを無効にして、
>  時間内(数秒)にキー入力するカウントダウン方式にしたいため、
>  そちらの設定方法もご教示お願いします。

⇒こちらもご回答の程、宜しくお願いします。

masahide

2018年9月20日 8時37分

おおさわ様

お世話になっております。
下記の回答が頂けてませんので確認させてください。

> > > > > > 保守モード無効にして、時間内(数秒)にキー入力するカウントダウン方式
> > > > > ちょっと作ってみます。
> > > >

⇒CON9_1の保守モードを無効にする設定はできますでしょうか?

at_ohsawa

2018年9月20日 9時11分

> ⇒CON9_1の保守モードを無効にする設定はできますでしょうか?

可能です。サンプルは少々おまちください。

masahide

2018年9月26日 20時33分

おおさわ様

お世話になっております。

> > ⇒CON9_1の保守モードを無効にする設定はできますでしょうか?
>
> 可能です。サンプルは少々おまちください。

⇨いつ頃ご提供頂けるか、教えて頂けないでしょうか?
 宜しくお願いします。

at_ohsawa

2018年10月2日 16時11分

おまたせしました。

u-bootのパッチを添付しています。とりあえず待ち時間は10秒にしていますが、
先述のとおり好きな時間に変えることができます。

パッチを当てるとarmadillo-640_defconfigが更新されるので、
必ず適用してからビルドしてください。
(製品マニュアルの「ブートローダーをビルドする」そのままの手順です。)

ビルドすると次のようにカウントダウンされるので、キー入力で自動ブートを止めることができます。

CPU:   Freescale i.MX6ULL rev1.0 at 396 MHz
Reset cause: POR
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
In:    serial
Out:   serial
Err:   serial
Net:   FEC
Hit any key to stop autoboot:  10 (ここでカウントダウン)

パッチはat2と先日リリースしたat3向けを作っていますが、
変更内容は同じです。変更箇所の周辺の差分があるので同じ
パッチが当らないので、念の為つくっておきました。

ファイル ファイルの説明
u-boot-a640-delay10sec-to-boot-disable-pin1delay-at3.patch Autoboot + countdown + con9_1無視パッチ(at2版)
u-boot-a640-delay10sec-to-boot-disable-pin1delay-at2.patch Autoboot + countdown + con9_1無視パッチ(at3版)

masahide

2018年10月3日 14時33分

パッチの提供有難うございました。

早速u-bootにat3のパッチを適用し、ビルドしてイメージ書換えて試してみました。
起動時の保守モードは無効になりましたが、カウントダウンされずに起動してしまいます。。
Hit any key to stop autoboot: 0 となって起動してますが
何がおかしいでしょうか?
(USBシリアル変換アダプタのスライドスイッチを保守モードにして確認)

CPU: Freescale i.MX6ULL rev1.0 at 396 MHz
Reset cause: POR
DRAM: 512 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Net: FEC
Hit any key to stop autoboot: 0 <-10秒になってない。

at_kojiro.yamada

2018年10月4日 11時36分

> パッチの提供有難うございました。
>
> 早速u-bootにat3のパッチを適用し、ビルドしてイメージ書換えて試してみました。
> 起動時の保守モードは無効になりましたが、カウントダウンされずに起動してしまいます。。
> Hit any key to stop autoboot: 0 となって起動してますが
> 何がおかしいでしょうか?
> (USBシリアル変換アダプタのスライドスイッチを保守モードにして確認)
>
> CPU: Freescale i.MX6ULL rev1.0 at 396 MHz
> Reset cause: POR
> DRAM: 512 MiB
> MMC: FSL_SDHC: 0, FSL_SDHC: 1
> Loading Environment from MMC... OK
> In: serial
> Out: serial
> Err: serial
> Net: FEC
> Hit any key to stop autoboot: 0 <-10秒になってない。

u-bootの環境変数 bootdelay=0 でArmadilloに保存されてしまっているのが原因です。
キーボードのキーを押しながらArmadilloを起動させ、以下のようにしてu-bootの環境変数を初期値に設定していただけますか?

=> env default -a
=> saveenv

masahide

2018年10月4日 14時11分

回答有難うございました。

上記を実行してu-bootの環境変数を初期値に変更して、電源リセットしたところ
Hit any key to stop autoboot: が10⇒0にカウントダウンされる様になりました。

ただ、今度は「Starting kernel ...」以降のログが表示されなくなってしまいました。。
コンソール出力の設定も何か消えてしまったのでしょうか?
色々と申し訳ありませんが宜しくお願いします。

ちなみに、
Armadillo-640: コンソール出力先をCON9から別のCONに変更する方法
https://users.atmark-techno.com/blog/8700/3342
の手順でコンソール出力先をCON3に変更してました。

U-Boot 2018.03-at3 (Oct 03 2018 - 11:40:38 +0900)

CPU: Freescale i.MX6ULL rev1.0 at 396 MHz
Reset cause: POR
DRAM: 512 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Net: FEC
Hit any key to stop autoboot: 0
3544184 bytes read in 137 ms (24.7 MiB/s)
23919 bytes read in 49 ms (476.6 KiB/s)
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux-4.14-at3
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3544120 Bytes = 3.4 MiB
Load Address: 82000000
Entry Point: 82000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Loading Kernel Image ... OK
Loading Device Tree to 9eefe000, end 9ef06d6e ... OK

Starting kernel ...

masahide

2018年10月10日 13時10分

確認したところ、u-boot_at2にパッチ(at2)を適用した場合は、
コンソール出力先をCON9からCON3に変更していても
u-bootのカウントダウン機能が設定され、起動時のコンソールログも特に問題なく表示されました。

おそらく、u-boot_at3でコンソール出力先をCON9からCON3に変更した場合に
上記の「Starting kernel ...」以降のログが表示されなくなってしまう現象が発生する様です。
https://users.atmark-techno.com/blog/8700/3342

at_kojiro.yamada

2018年11月1日 14時36分

> 確認したところ、u-boot_at2にパッチ(at2)を適用した場合は、
> コンソール出力先をCON9からCON3に変更していても
> u-bootのカウントダウン機能が設定され、起動時のコンソールログも特に問題なく表示されました。
>
> おそらく、u-boot_at3でコンソール出力先をCON9からCON3に変更した場合に
> 上記の「Starting kernel ...」以降のログが表示されなくなってしまう現象が発生する様です。
> (https://users.atmark-techno.com/blog/8700/3342
>
>
回答が遅くなり申し訳ありません。

上記の現象が起こるのは、u-boot-a600-v2018.03-at3 からbootコマンドの最初に bootargs を再設定するようになったことが原因です。

bootargs の初期値を変更する代わりに
u-boot上で setenv コマンドを実行し optargs にパラメータを設定してください。

コンソールをUART3に変更する場合は以下のように設定します。

U-Boot 2018.03-at3+ (Oct 04 2018 - 11:26:16 +0900)
 
CPU:   Freescale i.MX6ULL rev1.0 at 396 MHz
Reset cause: POR
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
Net:   FEC
Hit any key to stop autoboot: 10
 
=> setenv optargs console=ttymxc2,115200
=> 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;
bootdelay=10
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
=> saveenv
Saving Environment to MMC... Writing to MMC(0)... OK

masahide

2018年11月19日 18時43分

確認が遅くなりましたが、返信頂きました下記の設定で
問題解決しましたので連絡致します。

本スレッドはクローズします。有難うございました。

> > 確認したところ、u-boot_at2にパッチ(at2)を適用した場合は、
> > コンソール出力先をCON9からCON3に変更していても
> > u-bootのカウントダウン機能が設定され、起動時のコンソールログも特に問題なく表示されました。
> >
> > おそらく、u-boot_at3でコンソール出力先をCON9からCON3に変更した場合に
> > 上記の「Starting kernel ...」以降のログが表示されなくなってしまう現象が発生する様です。
> > (https://users.atmark-techno.com/blog/8700/3342
> >
> >
> 回答が遅くなり申し訳ありません。
>
> 上記の現象が起こるのは、u-boot-a600-v2018.03-at3 からbootコマンドの最初に bootargs を再設定するようになったことが原因です。
>
> bootargs の初期値を変更する代わりに
> u-boot上で setenv コマンドを実行し optargs にパラメータを設定してください。
>
> コンソールをUART3に変更する場合は以下のように設定します。
>
>

> U-Boot 2018.03-at3+ (Oct 04 2018 - 11:26:16 +0900)
> 
> CPU:   Freescale i.MX6ULL rev1.0 at 396 MHz
> Reset cause: POR
> DRAM:  512 MiB
> MMC:   FSL_SDHC: 0, FSL_SDHC: 1
> Loading Environment from MMC... OK
> In:    serial
> Out:   serial
> Err:   serial
> Net:   FEC
> Hit any key to stop autoboot: 10
> 
> => setenv optargs console=ttymxc2,115200
> => 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;
> bootdelay=10
> 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
> => saveenv
> Saving Environment to MMC... Writing to MMC(0)... OK
>