Armadilloフォーラム

dtsi内のuartの設定について

hi.yamauchi

2021年8月6日 13時41分

アットマークテクノ サポート様、

お世話になります、
山内と申します。

弊社作成の拡張基板上でarmadillo-610を使用していますが、
uartのdtsiの設定値で躓いています。

弊社では、シリアルポートを5個使用する必要があり、
dtsiに対して、以下のuartの設定を行っております。

uart1から4までは、imx6ul-pinfunc.h内のdefine値を使用して、
dtsiに以下の記述で問題ないと思いますが、

pinctrl_uart1: uart1grp {
fsl,pins = <
MX6UL_PAD_GPIO1_IO03__UART1_DCE_RX 0x1b0b1
MX6UL_PAD_GPIO1_IO02__UART1_DCE_TX 0x00008

>;
};

pinctrl_uart2: uart2grp {
fsl,pins = <
MX6UL_PAD_NAND_DATA05__UART2_DCE_RX 0x1b0b1
MX6UL_PAD_NAND_DATA04__UART2_DCE_TX 0x00008
>;
};

pinctrl_uart3: uart3grp {
fsl,pins = <
MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x1b0b1
MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x00008
>;
};

pinctrl_uart4: uart4grp {
fsl,pins = <
MX6UL_PAD_LCD_CLK__UART4_DCE_TX 0x00008
MX6UL_PAD_LCD_ENABLE__UART4_DCE_RX 0x1b0b1
>;
};

uart5に対して、以下の記述を行うと、カーネル起動時にこの箇所の初期化が止まったままに
なってしまいます。
※imx6ull-pinfunc.hのdefine値を使っています。

pinctrl_uart5: uart5grp {
fsl,pins = <
MX6ULL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x00008
MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x1b0b1
>;
};

この設定に問題ありますでしょうか?
ご教授願えたらと思います。

よろしくお願いいたします。

コメント

at_akihito.irie

2021年8月6日 14時48分

入江です。

こちらでも原因を調査してみますので、可能であれば以下の情報をいただけま
すでしょうか。

1. カーネル起動時に止まってしまった際のログ
2. お客様の方で作成されたdtsファイル

以上、よろしくお願いいたします。

入り江様、

下記ファイルを添付いたしました。
ご確認ください。

よろしくお願いいたします。

> 入江です。
>
> こちらでも原因を調査してみますので、可能であれば以下の情報をいただけま
> すでしょうか。
>
> 1. カーネル起動時に止まってしまった際のログ
> 2. お客様の方で作成されたdtsファイル
>
> 以上、よろしくお願いいたします。
>
>

ファイル ファイルの説明
kernellog_20210806.txt カーネルログ
armadillo-610-at-dtweb.dts dts
armadillo-610-xxxx-interface.dtsi_.txt dtsi

入江様、

kernelログを取得しなおしたものを添付いたしました。
ご確認ください。

よろしくお願いいたします。

> 入り江様、
>
> 下記ファイルを添付いたしました。
> ご確認ください。
>
> よろしくお願いいたします。
>
> > 入江です。
> >
> > こちらでも原因を調査してみますので、可能であれば以下の情報をいただけま
> > すでしょうか。
> >
> > 1. カーネル起動時に止まってしまった際のログ
> > 2. お客様の方で作成されたdtsファイル
> >
> > 以上、よろしくお願いいたします。
> >
> >

ファイル ファイルの説明
kernelLog_20210806.txt

入江様、

原因の調査の結果はいかがでしょうか?

こちらで現象を再度、確認しましたところ、
imx6ul-pinfunc.hにおいて、以下の定義を私の方で追加しました。

#define MX6UL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x0084 0x0310 0x0000 0 0
#define MX6UL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x0088 0x0314 0x0624 0 3

この時はkernel初期化は完了しましたが、UART5の信号がUART1にのってしまう現象が見られました。
(オシロスコープで確認したところ、UART5をdebug用シリアルポートとして使用しているUART5の、
PCからのキー入力がUART1の信号として見えてしまっていた。)

こちらで色々と調べ、
imx6ull-pinfuc.hに定義してある、

#define MX6ULL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x0084 0x0310 0x0000 0x9 0x0
#define MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x0088 0x0314 0x0644 0x9 0x5

を用いたところ、kernel初期化が完了しませんでした。

kernel初期化で躓いている部分は、この定義値にある、と思っているのですが、
この定義値の詳細がわかりません。

これがこちらの方で理解できれば、こちらで調べることができると思うのですが、
ご存じでしたらご教授願えたらと思います。

よろしくお願いいたします。

> 入江様、
>
> kernelログを取得しなおしたものを添付いたしました。
> ご確認ください。
>
> よろしくお願いいたします。
>
>
> > 入り江様、
> >
> > 下記ファイルを添付いたしました。
> > ご確認ください。
> >
> > よろしくお願いいたします。
> >
> > > 入江です。
> > >
> > > こちらでも原因を調査してみますので、可能であれば以下の情報をいただけま
> > > すでしょうか。
> > >
> > > 1. カーネル起動時に止まってしまった際のログ
> > > 2. お客様の方で作成されたdtsファイル
> > >
> > > 以上、よろしくお願いいたします。
> > >
> > >

アットマークテクノの古賀です。

山内さん(2021年8月6日 13時41分):
>弊社作成の拡張基板上でarmadillo-610を使用していますが、
>uartのdtsiの設定値で躓いています。

御社作成の拡張基板を、Armadillo-610 の CON2 に接続していらっしゃるという認識で、合っているでしょうか?

>弊社では、シリアルポートを5個使用する必要があり、
>dtsiに対して、以下のuartの設定を行っております。
>
>uart1から4までは、imx6ul-pinfunc.h内のdefine値を使用して、
>dtsiに以下の記述で問題ないと思いますが、

>uart5に対して、以下の記述を行うと、カーネル起動時にこの箇所の初期化が止まったままに
>なってしまいます。
>※imx6ull-pinfunc.hのdefine値を使っています。
>
> pinctrl_uart5: uart5grp {
> fsl,pins = <
> MX6ULL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x00008
> MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x1b0b1
> >;
> };
>
>この設定に問題ありますでしょうか?
>ご教授願えたらと思います。

御社作成の拡張基板を、Armadillo-610 の CON2 に接続していらっしゃる場合、CON2 に引き出されている i.MX6ULL の I/O ピンのうち、UART5 の信号線に割り当て可能なものを使う必要がありますが、UART5 の TX と RX は、それぞれ、CON2 のどのピンをお使いでしょうか?
 https://manual.atmark-techno.com/armadillo-610/armadillo-610_product_ma…

上記 pinctrl 設定については、
 arch/arm/boot/dts/armadillo-610-expansion-interface.dtsi
を見て頂くのがよいかと思います。

以上、もし参考になりましたら幸いです。

アットマークテクノ 古賀様、

ご回答、ありがとうございます。
文中にコメントさせていただきます。

> アットマークテクノの古賀です。
>
> 山内さん(2021年8月6日 13時41分):
> >弊社作成の拡張基板上でarmadillo-610を使用していますが、
> >uartのdtsiの設定値で躓いています。
>
> 御社作成の拡張基板を、Armadillo-610 の CON2 に接続していらっしゃるという認識で、合っているでしょうか?

はい、CON2に接続しています。

>
> >弊社では、シリアルポートを5個使用する必要があり、
> >dtsiに対して、以下のuartの設定を行っております。
> >
> >uart1から4までは、imx6ul-pinfunc.h内のdefine値を使用して、
> >dtsiに以下の記述で問題ないと思いますが、
> …
> >uart5に対して、以下の記述を行うと、カーネル起動時にこの箇所の初期化が止まったままに
> >なってしまいます。
> >※imx6ull-pinfunc.hのdefine値を使っています。
> >
> > pinctrl_uart5: uart5grp {
> > fsl,pins = <
> > MX6ULL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x00008
> > MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x1b0b1
> > >;
> > };
> >
> >この設定に問題ありますでしょうか?
> >ご教授願えたらと思います。
>
> 御社作成の拡張基板を、Armadillo-610 の CON2 に接続していらっしゃる場合、CON2 に引き出されている i.MX6ULL の I/O ピンのうち、UART5 の信号線に割り当て可能なものを使う必要がありますが、UART5 の TX と RX は、それぞれ、CON2 のどのピンをお使いでしょうか?
>  https://manual.atmark-techno.com/armadillo-610/armadillo-610_product_ma…

弊社では、UART5 の TX と RXを それぞれ、ピン#83と#85に割り当てています。

また、UART1~4は、以下のピンを使用しています。

[UART1]TX : #15, RX : #16
[UART2]TX : #68, RX : #69
[UART3]TX : #93, RX : #94
[UART4]TX : #37, RX : #40
[UART5]TX : #83, RX : #85

上記のピン使用に問題ありますでしょうか?

よろしくお願いいたします。

>
> 上記 pinctrl 設定については、
>  arch/arm/boot/dts/armadillo-610-expansion-interface.dtsi
> を見て頂くのがよいかと思います。
>
> 以上、もし参考になりましたら幸いです。

アットマークテクノの古賀です。

山内さん:
>ご回答、ありがとうございます。
>文中にコメントさせていただきます。

>>>弊社作成の拡張基板上でarmadillo-610を使用していますが、
>>>uartのdtsiの設定値で躓いています。
>>
>>御社作成の拡張基板を、Armadillo-610 の CON2 に接続していらっしゃるという認識で、合っているでしょうか?
>
>はい、CON2に接続しています。
>
>>
>>>弊社では、シリアルポートを5個使用する必要があり、
>>>dtsiに対して、以下のuartの設定を行っております。
>>>
>>>uart1から4までは、imx6ul-pinfunc.h内のdefine値を使用して、
>>>dtsiに以下の記述で問題ないと思いますが、
>>…
>>>uart5に対して、以下の記述を行うと、カーネル起動時にこの箇所の初期化が止まったままに
>>>なってしまいます。
>>>※imx6ull-pinfunc.hのdefine値を使っています。
>>>
>>> pinctrl_uart5: uart5grp {
>>> fsl,pins = <
>>> MX6ULL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x00008
>>> MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x1b0b1
>>> >;
>>> };
>>>
>>>この設定に問題ありますでしょうか?
>>>ご教授願えたらと思います。
>>
>>御社作成の拡張基板を、Armadillo-610 の CON2 に接続していらっしゃる場合、CON2 に引き出されている i.MX6ULL の I/O ピンのうち、UART5 の信号線に割り当て可能なものを使う必要がありますが、UART5 の TX と RX は、それぞれ、CON2 のどのピンをお使いでしょうか?
>> https://manual.atmark-techno.com/armadillo-610/armadillo-610_product_ma…
>
>弊社では、UART5 の TX と RXを それぞれ、ピン#83と#85に割り当てています。

了解しました。UART1_TX_DATA ピン(#83)と UART1_RX_DATA ピン(#85)を、それぞれ UART5 の TX と RX に割り当ててお使いになる想定なのですね。i.MX6ULL の UART1_TX_DATA ピンと UART1_RX_DATA ピンの多重化対象には、それぞれ UART5 の TX と RX が含まれていますので、割り当て可能です。

山内さん(2021年8月16日 18時34分):
>こちらで現象を再度、確認しましたところ、
>imx6ul-pinfunc.hにおいて、以下の定義を私の方で追加しました。
>
>#define MX6UL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x0084 0x0310 0x0000 0 0
>#define MX6UL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x0088 0x0314 0x0624 0 3
>
>この時はkernel初期化は完了しましたが、UART5の信号がUART1にのってしまう現象が見られました。
>(オシロスコープで確認したところ、UART5をdebug用シリアルポートとして使用しているUART5の、
>PCからのキー入力がUART1の信号として見えてしまっていた。)

上記設定ですと、i.MX6ULL の IOMUXC において、UART1_TX_DATA ピンと UART1_RX_DATA ピンに対する SW_MUX_CTL レジスタの MUX_MODE に、どちらも 0 (: ATL0) をセットしますので、これらのピンは、UART5 ではなく UART1 に接続されてしまいます。「PCからのキー入力がUART1の信号として見えてしまっていた。」というのは、そのためだと思います。

ところで、「UART5をdebug用シリアルポートとして使用しているUART5の」というのは、Armadillo-610 開発セットの標準状態での設定とは異なり、PC との接続に、UART1 (/dev/ttymxc0) ではなく UART5 (/dev/ttymxc5) をお使いということでしょうか?

また、ピン #82 (UART5_TX_DATA) と #84 (UART5_RX_DATA) には、何を割り当てていらっしゃるでしょうか?
UART1_{TX,RX}_DATA ピンに対する IOMUXC 設定は、以下で問題ないと思いますので、それ以外の部分(UART5 に対する他の設定を含む)に、カーネルの初期化動作が途中で停止する要因があるのかも知れません。

以下は、8/16 のコメントで頂いていた質問への回答です。

>こちらで色々と調べ、
>imx6ull-pinfuc.hに定義してある、
>
>#define MX6ULL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x0084 0x0310 0x0000 0x9 0x0
>#define MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x0088 0x0314 0x0644 0x9 0x5
>
>を用いたところ、kernel初期化が完了しませんでした。
>
>kernel初期化で躓いている部分は、この定義値にある、と思っているのですが、
>この定義値の詳細がわかりません。
>
>これがこちらの方で理解できれば、こちらで調べることができると思うのですが、
>ご存じでしたらご教授願えたらと思います。

こちらの定義値については、imx6ull-pinfuc.h の #include 行の次に書かれている、次のコメントをご覧ください:
https://github.com/atmark-techno/linux-4.14-at/blob/a5c643f89abff15611d…

/*
 * The pin function ID is a tuple of
 * <mux_reg conf_reg input_reg mux_mode input_val>
 */

ここで、mux_reg, conf_reg, input_reg, mux_mode, input_val は、それぞれ次の意味です:

 mux_reg: IOMUXC のレジスタ配列先頭からの、当該ピンの SW_MUX_CTL レジスタのオフセット。
 conf_reg: IOMUXC のレジスタ配列先頭からの、当該ピンの SW_PAD_CTL レジスタのオフセット。
 input_reg: IOMUXC のレジスタ配列先頭からの、当該信号の DAISY レジスタのオフセット(0x0000 の場合は、該当レジスタ無し)。
 mux_mode: SW_MUX_CTRL レジスタの MUX_MODE フィールドの設定値。
 input_val: DAISY レジスタの設定値。

各レジスタの詳細は、i.MX6ULL のリファレンスマニュアルをご覧ください(御社作成の拡張基板を設計された方が、お持ちだと思います)。
.dts における上記設定が格納されたデバイスツリーの内容をパースする処理は、
 drivers/pinctrl/freescale/pinctrl-imx.c
で実装されている imx_pinctrl_parse_groups() をご覧ください:
 https://github.com/atmark-techno/linux-4.14-at/blob/a5c643f89abff15611d…

アットマークテクノ 古賀様、

山内です。
ご回答ありがとうございます。

以下、文中にコメントいたします。

> アットマークテクノの古賀です。
>
> 山内さん:
> >ご回答、ありがとうございます。
> >文中にコメントさせていただきます。
> …
> >>>弊社作成の拡張基板上でarmadillo-610を使用していますが、
> >>>uartのdtsiの設定値で躓いています。
> >>
> >>御社作成の拡張基板を、Armadillo-610 の CON2 に接続していらっしゃるという認識で、合っているでしょうか?
> >
> >はい、CON2に接続しています。
> >
> >>
> >>>弊社では、シリアルポートを5個使用する必要があり、
> >>>dtsiに対して、以下のuartの設定を行っております。
> >>>
> >>>uart1から4までは、imx6ul-pinfunc.h内のdefine値を使用して、
> >>>dtsiに以下の記述で問題ないと思いますが、
> >>…
> >>>uart5に対して、以下の記述を行うと、カーネル起動時にこの箇所の初期化が止まったままに
> >>>なってしまいます。
> >>>※imx6ull-pinfunc.hのdefine値を使っています。
> >>>
> >>> pinctrl_uart5: uart5grp {
> >>> fsl,pins = <
> >>> MX6ULL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x00008
> >>> MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x1b0b1
> >>> >;
> >>> };
> >>>
> >>>この設定に問題ありますでしょうか?
> >>>ご教授願えたらと思います。
> >>
> >>御社作成の拡張基板を、Armadillo-610 の CON2 に接続していらっしゃる場合、CON2 に引き出されている i.MX6ULL の I/O ピンのうち、UART5 の信号線に割り当て可能なものを使う必要がありますが、UART5 の TX と RX は、それぞれ、CON2 のどのピンをお使いでしょうか?
> >> https://manual.atmark-techno.com/armadillo-610/armadillo-610_product_ma…
> >
> >弊社では、UART5 の TX と RXを それぞれ、ピン#83と#85に割り当てています。
>
> 了解しました。UART1_TX_DATA ピン(#83)と UART1_RX_DATA ピン(#85)を、それぞれ UART5 の TX と RX に割り当ててお使いになる想定なのですね。i.MX6ULL の UART1_TX_DATA ピンと UART1_RX_DATA ピンの多重化対象には、それぞれ UART5 の TX と RX が含まれていますので、割り当て可能です。

了解いたしました。

>
> 山内さん(2021年8月16日 18時34分):
> >こちらで現象を再度、確認しましたところ、
> >imx6ul-pinfunc.hにおいて、以下の定義を私の方で追加しました。
> >
> >#define MX6UL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x0084 0x0310 0x0000 0 0
> >#define MX6UL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x0088 0x0314 0x0624 0 3
> >
> >この時はkernel初期化は完了しましたが、UART5の信号がUART1にのってしまう現象が見られました。
> >(オシロスコープで確認したところ、UART5をdebug用シリアルポートとして使用しているUART5の、
> >PCからのキー入力がUART1の信号として見えてしまっていた。)
>
> 上記設定ですと、i.MX6ULL の IOMUXC において、UART1_TX_DATA ピンと UART1_RX_DATA ピンに対する SW_MUX_CTL レジスタの MUX_MODE に、どちらも 0 (: ATL0) をセットしますので、これらのピンは、UART5 ではなく UART1 に接続されてしまいます。「PCからのキー入力がUART1の信号として見えてしまっていた。」というのは、そのためだと思います。

了解いたしました。ありがとうございます。

>
> ところで、「UART5をdebug用シリアルポートとして使用しているUART5の」というのは、Armadillo-610 開発セットの標準状態での設定とは異なり、PC との接続に、UART1 (/dev/ttymxc0) ではなく UART5 (/dev/ttymxc5) をお使いということでしょうか?

はい、
UART1 (/dev/ttymxc0) ではなく UART5 (/dev/ttymxc4)を使用しています。

>
> また、ピン #82 (UART5_TX_DATA) と #84 (UART5_RX_DATA) には、何を割り当てていらっしゃるでしょうか?

ピン #82 (UART5_TX_DATA) と #84 (UART5_RX_DATA) には、
何も割り当てていません。

> UART1_{TX,RX}_DATA ピンに対する IOMUXC 設定は、以下で問題ないと思いますので、それ以外の部分(UART5 に対する他の設定を含む)に、カーネルの初期化動作が途中で停止する要因があるのかも知れません。

原因を探るためには、Armadillo-610 製品マニュアル、"7.3.2. UART"に記載のソースコードを解析する必要があると思いますが、どのソースを中心に解析すればよろしいでしょうか?
初期化絡みを見ればいいと思っていますが、その他、何か情報をお持ちでしたらご教授願えると幸いです。

>
>
> 以下は、8/16 のコメントで頂いていた質問への回答です。
>
> >こちらで色々と調べ、
> >imx6ull-pinfuc.hに定義してある、
> >
> >#define MX6ULL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x0084 0x0310 0x0000 0x9 0x0
> >#define MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x0088 0x0314 0x0644 0x9 0x5
> >
> >を用いたところ、kernel初期化が完了しませんでした。
> >
> >kernel初期化で躓いている部分は、この定義値にある、と思っているのですが、
> >この定義値の詳細がわかりません。
> >
> >これがこちらの方で理解できれば、こちらで調べることができると思うのですが、
> >ご存じでしたらご教授願えたらと思います。
>
> こちらの定義値については、imx6ull-pinfuc.h の #include 行の次に書かれている、次のコメントをご覧ください:
> https://github.com/atmark-techno/linux-4.14-at/blob/a5c643f89abff15611d…
>

> /*
>  * The pin function ID is a tuple of
>  * <mux_reg conf_reg input_reg mux_mode input_val>
>  */
> 

>
> ここで、mux_reg, conf_reg, input_reg, mux_mode, input_val は、それぞれ次の意味です:
>
>  mux_reg: IOMUXC のレジスタ配列先頭からの、当該ピンの SW_MUX_CTL レジスタのオフセット。
>  conf_reg: IOMUXC のレジスタ配列先頭からの、当該ピンの SW_PAD_CTL レジスタのオフセット。
>  input_reg: IOMUXC のレジスタ配列先頭からの、当該信号の DAISY レジスタのオフセット(0x0000 の場合は、該当レジスタ無し)。
>  mux_mode: SW_MUX_CTRL レジスタの MUX_MODE フィールドの設定値。
>  input_val: DAISY レジスタの設定値。
>
> 各レジスタの詳細は、i.MX6ULL のリファレンスマニュアルをご覧ください(御社作成の拡張基板を設計された方が、お持ちだと思います)。
> .dts における上記設定が格納されたデバイスツリーの内容をパースする処理は、
>  drivers/pinctrl/freescale/pinctrl-imx.c
> で実装されている imx_pinctrl_parse_groups() をご覧ください:
>  https://github.com/atmark-techno/linux-4.14-at/blob/a5c643f89abff15611d…

了解いたしました。
情報ありがとうございます。

よろしくお願いいたします。

>
>

アットマークテクノ 古賀様、

山内です。

話を戻してしまうようで申し訳ありませんが、
弊社としての要望です。

弊社では、Armadillo-610で、シリアルポートを5個使用した製品を作成中です。
添付のdtsiのようにピン設定をいたしましたが、(armadillo-610-xxxx-interface.dtsi.txt)
kernel起動中に、UART5の初期化ができずに、kernel初期化が止まってしまっています。(kernellog_20210806.txt)

弊社でのピン設定は、
御社提供のArmadillo-610 マルチプレクス表とは異なったピン配置を行っていますが、
このマルチプレクス表に沿ったピン配置でないと、御社では正常な動作を
確認していないのでしょうか?

また、御社でシリアルポートを5個有効にした場合の、動作保証ができるピン設定(.dtsi)を
いただけませんでしょうか?
それを参考に、こちらの方で再度、ピン設定を行いたいと思います。

よろしくお願いいたします。

ファイル ファイルの説明
kernelLog_20210806.txt
armadillo-610-xxxx-interface.dtsi_.txt

at_akihito.irie

2021年8月18日 15時59分

入江です。

当方で調査した結果、UART5の設定自体は問題なく完了しており、その設定時
にデバッグポートとして使用していたUART1がUART5に変わり、ログが出力され
なくなったものかと思われます。

つきましては、Armadillo-610を保守モードで起動していただき、U-bootのコ
ンソールで以下のコマンドを実行し、起動してください。

=> setenv optargs console=ttymxc4,115200
=> boot

これで正しくコンソールが出力されることを確認してください。

なお、確認できましたら、再起動後に再度U-bootのコンソールで、

=> setenv optargs console=ttymxc4,115200
=> saveenv
=> boot

としていただくことで、次回以降は何もせずともコンソールが出力されるよう
になるはずです。

入江様、

下記コマンドで確認したところ、kernelログが表示され、無事、起動しました。
どうもありがとうございました。
お手数かけて申し訳ありませんでした。

以上です。

> 入江です。
>
> 当方で調査した結果、UART5の設定自体は問題なく完了しており、その設定時
> にデバッグポートとして使用していたUART1がUART5に変わり、ログが出力され
> なくなったものかと思われます。
>
> つきましては、Armadillo-610を保守モードで起動していただき、U-bootのコ
> ンソールで以下のコマンドを実行し、起動してください。
>
>

> => setenv optargs console=ttymxc4,115200
> => boot
> 

>
> これで正しくコンソールが出力されることを確認してください。
>
> なお、確認できましたら、再起動後に再度U-bootのコンソールで、
>
>

> => setenv optargs console=ttymxc4,115200
> => saveenv
> => boot
> 

>
> としていただくことで、次回以降は何もせずともコンソールが出力されるよう
> になるはずです。
>

入江様、

弊社作成のプログラムで4バイトのデータ、"55 03 00 58"というデータをシリアルポートに書き込んでいますが、
書き込んだデータをtera termで出力したところ、データは"55 20 58"という3バイトのデータでした。
UARTの設定が間違っているのでしょうか?
ご教授願えればと思います。

よろしくお願いいたします。

> 入江様、
>
> 下記コマンドで確認したところ、kernelログが表示され、無事、起動しました。
> どうもありがとうございました。
> お手数かけて申し訳ありませんでした。
>
> 以上です。
>
> > 入江です。
> >
> > 当方で調査した結果、UART5の設定自体は問題なく完了しており、その設定時
> > にデバッグポートとして使用していたUART1がUART5に変わり、ログが出力され
> > なくなったものかと思われます。
> >
> > つきましては、Armadillo-610を保守モードで起動していただき、U-bootのコ
> > ンソールで以下のコマンドを実行し、起動してください。
> >
> >

> > => setenv optargs console=ttymxc4,115200
> > => boot
> > 

> >
> > これで正しくコンソールが出力されることを確認してください。
> >
> > なお、確認できましたら、再起動後に再度U-bootのコンソールで、
> >
> >

> > => setenv optargs console=ttymxc4,115200
> > => saveenv
> > => boot
> > 

> >
> > としていただくことで、次回以降は何もせずともコンソールが出力されるよう
> > になるはずです。
> >

at_akihito.irie

2021年8月23日 9時41分

入江です。

設定次第であり、確証はありませんが、"03"や"00"は制御文字であるため、
tty layerで変換されてしまっている可能性が高いです。

非制御文字のみを送受信するか、raw modeで送受信してみると良いと思います。

入江様、

色々と調べた結果、linux上でのプログラムの問題でした。(termios絡みの設定)
お手数かけて申し訳ありませんでした。

> 入江です。
>
> 設定次第であり、確証はありませんが、"03"や"00"は制御文字であるため、
> tty layerで変換されてしまっている可能性が高いです。
>
> 非制御文字のみを送受信するか、raw modeで送受信してみると良いと思います。
>