Armadilloフォーラム

最新のX-1のソースを元に拡張UARTを使用したい

shun_nabe

2023年2月22日 18時57分

お世話になっております。
イットーソフトウェア渡邉です。

掲題の件、御社のブログに投稿されておりました
「Armadillo-X1:拡張I/FのUARTを使用する方法」
https://armadillo.atmark-techno.com/blog/615/2586

にて最新のソースを元に実施したところ /dev/ttymxc* デバイスファイルが表示されず、四苦八苦しております。
最新のソースに対し、ブログ内容の通りCON8のUARTを使用したいのですが、適切な対処方法ご存知でしたらご教示いただきたく。

試した内容は以下の通りになります。
■ATDE上の作業
https://armadillo.atmark-techno.com/resources/software/armadillo-x1/lin…
  から、最新のソースを取得
②ブログの記事を参考に arch/arm/boot/dts/ 直下の MakeFileに
armadillo_x1-uart124_user1.dtsを追記
※追記位置は L:590、「x1-minimal.dtb」の上辺り

③ブログの添付ファイルにある 「armadillo_x1-uart124_user1.dts」
 を arch/arm/boot/dts/ にコピー

④ armadillo_x1.dtsを編集
L:295を以下のように変更

/*      pinctrl-0 = <&pinctrl_hog>; */
pinctrl-0 = <&pinctrl_hog &pinctrl_uart1 &pinctrl_uart2 &pinctrl_uart4>;

⑤↓を元にビルド
https://manual.atmark-techno.com/armadillo-x1/armadillo-x1_product_manu…
 → 失敗。armadillo_x1.dtsの追記内容がまずいように思える

  Kernel: arch/arm/boot/zImage is ready
  DTC     arch/arm/boot/dts/armadillo_x1.dtb
ERROR (phandle_references): Reference to non-existent node or label "pinctrl_uart1"
 
ERROR (phandle_references): Reference to non-existent node or label "pinctrl_uart2"
 
ERROR (phandle_references): Reference to non-existent node or label "pinctrl_uart4"
 
ERROR: Input tree has errors, aborting (use -f to force output)
scripts/Makefile.lib:315: ターゲット 'arch/arm/boot/dts/armadillo_x1.dtb' のレシピで失敗しました
make[1]: *** [arch/arm/boot/dts/armadillo_x1.dtb] エラー 2
arch/arm/Makefile:341: ターゲット

⑥⑤の内容を差し戻してビルド
 → 成功。armadillo_x1-uart124_user1.dtb がdtsフォルダに配置されている

■X-1実機での作業
⑦↑でビルドしたuImage、 armadillo_x1-uart124_user1.dtbを
 https://manual.atmark-techno.com/armadillo-x1/armadillo-x1_product_manu…
 を参考に差し替え
 → /dev/ttymxc*が見えず、期待したUARTが使用できない

■その他
当初、ブログの記事通りに Makefile, armadillo_x1.dts, armadillo_x1-uart124_user1.dtsをコピーしてビルドしたのですが、
かなり古いせいか以下のように起動時に動作しない状況でした。

ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree)
コメント

at_akihito.irie

2023年2月24日 18時12分

入江です。

当該のブログに添付されているarmadillo_x1-uart124_user1.dtsを少し改造してみましたので添付します。

まず、一度改めて以下から最新のカーネルソースコードを取得してください。
https://armadillo.atmark-techno.com/resources/software/armadillo-x1/lin…

カーネルソース内のarch/arm/boot/dts/に添付のdtsファイルを配置してください。

armadillo_x1.dtsに、以下を追記してください。

#include "imx7d.dtsi"
#include "armadillo_x1_addon.dtsi"
#include "armadillo_x1-uart124_user1.dts" // ★この行を追記

その後、dtbをビルドし、イメージをArmadilloに書き込んで動作確認をしてみてください。
※Makefileの改造は要りません。

ファイル ファイルの説明
armadillo_x1-uart124_user1.dts

入江様、

お世話になっております。
イットーソフトウェア渡邉です。

ご回答ありがとうございます。
頂いた通り実施したところ、/dev/ttymxc*
が3つ追加され、問題なくUART通信できること確認できました。
ありがとうございました!

> 入江です。
>
> 当該のブログに添付されているarmadillo_x1-uart124_user1.dtsを少し改造してみましたので添付します。
>
> まず、一度改めて以下から最新のカーネルソースコードを取得してください。
> https://armadillo.atmark-techno.com/resources/software/armadillo-x1/lin…
>
> カーネルソース内のarch/arm/boot/dts/に添付のdtsファイルを配置してください。
>
> armadillo_x1.dtsに、以下を追記してください。
>
>

> #include "imx7d.dtsi"
> #include "armadillo_x1_addon.dtsi"
> #include "armadillo_x1-uart124_user1.dts" // ★この行を追記
> 

>
> その後、dtbをビルドし、イメージをArmadilloに書き込んで動作確認をしてみてください。
> ※Makefileの改造は要りません。
>
>
>