Armadilloフォーラム

Device Tree Editor で作成したSWUイメージを適用すると DTS overlays によるカスタマイズファイル(.dtbo) が無効化される

t.iwai

2025年1月29日 13時41分

==========
製品型番:
Debian/ABOSバージョン:Linux atde9 5.10.0-33-amd64 #1 SMP Debian 5.10.226-1 (2024-10-03) x86_64 GNU/Linux
カーネルバージョン:Linux armadillo 5.10.232-0-at #1-Alpine Fri Dec 20 02:12:46 UTC 2024 armv7l Linux
==========
お世話になります。

https://armadillo.atmark-techno.com/forum/armadillo/23128
上記投稿を参考に、1-Wire経由でDS18B20の温度取得ができたのですが、その後 Device Tree Editor 経由で作成した .swu ファイルを適用すると、それまで「/sys/bus/w1/devices」以下にあった「w1_bus_master1」ディレクトリが表示されなくなってしまいました。

Device Tree Editor 経由で有効化したのはUART1(RXD/TXD), UART7(RXD/TXD), UART7(RTS/CTS)のみで、現在 1-Wireで使用しているCON8 30ピン(GPIO4_IO26 CSI_DATA05)については指定なし(グレー状態)の状態でdesc ファイルから SWU イメージを生成、アップロードしています。

試しに /boot/overlays.txt から armadillo-iotg-a6e-at-dtweb.dtbo (※上記SWUでアップロードされた dtboファイル) を削除し、
$ persist_file /boot/overlays.txt
した上で再起動すると、再び「/sys/bus/w1/devices」以下に「w1_bus_master1」が表示されるようになったので、何か設定が競合しているような気がするのですが、そもそもDevice Tree Editor で作成したSWUイメージと DTS overlays によるカスタマイズファイルは併用が可能なのでしょうか。
もし可能な場合、上記状態を回避するには、どのように設定するべきでしょうか。

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

ファイル ファイルの説明
A6E_Device_Tree_Editor.png Device Tree Editor 設定内容
コメント

at_shota.shimoyama

2025年1月29日 16時35分

下山です。

> そもそもDevice Tree Editor で作成したSWUイメージと DTS overlays によるカスタマイズファイルは併用が可能なのでしょうか。

at-dtwebで作成したarmadillo-iotg-a6e-at-dtweb.dtboをそのまま使用すると、
ご指摘のとおり競合が発生してしまいますが、少し手順を変えることで併用が可能になります。

〇競合が発生してしまう理由について
at-dtwebでarmadillo-iotg-a6e-at-dtweb.dtboを作成する際、
gpioset/gpiogetでの操作ができるように、未使用のピンについても設定を行っています。
このため、CON8 30ピン(MX6UL_PAD_CSI_DATA05__GPIO4_IO26)のピン設定が以下2つのファイルで指定されることとなり、競合が発生します。
・armadillo-iotg-a6e-at-dtweb.dtbo
・カスタマイズファイルの.dtbo

> もし可能な場合、上記状態を回避するには、どのように設定するべきでしょうか。
お手数おかけしますが、以下の手順でarmadillo-iotg-a6e-at-dtweb.dtboを作成してください。

1.通常通り、at-dtwebを使用して目的のペリフェラル(UART1(RXD/TXD), UART7(RXD/TXD), UART7(RTS/CTS))を設定し、「Save」を実行します。このとき、arch/arm/boot/dts以下にはarmadillo-iotg-a6e-at-dtweb.dtboだけでなく、その元となるarmadillo-iotg-a6e-at-dtweb.dtsも作成されます。

2.作成されたarmadillo-iotg-a6e-at-dtweb.dtsの中に、CON8 30ピンの設定を行っている箇所があります。下記の中のMX6UL_PAD_CSI_DATA05__GPIO4_IO26        0x400010b0 // CON8_30の行です。この行を削除して保存してください。

pinctrl_expansion_interfacehog: expansion_interfacehoggrp {
		fsl,pins = <
			/* CON8 */
											// CON8_1	VIN
											// CON8_2	GND
											// CON8_3	VCC_5V
											// CON8_4	GND
											// CON8_5	VCC_3.3V
											// CON8_6	GND
			MX6UL_PAD_GPIO1_IO01__GPIO1_IO01	0x400010b0 // CON8_7
			MX6UL_PAD_GPIO1_IO04__GPIO1_IO04	0x400010b0 // CON8_10
											// CON8_11	GND
											// CON8_12	I2C4_SCL
											// CON8_13	I2C4_SDA
			MX6UL_PAD_LCD_DATA00__GPIO3_IO05	0x400010b0 // CON8_14
			MX6UL_PAD_LCD_DATA01__GPIO3_IO06	0x400010b0 // CON8_15
			MX6UL_PAD_LCD_DATA02__GPIO3_IO07	0x400010b0 // CON8_16
			MX6UL_PAD_LCD_DATA03__GPIO3_IO08	0x400010b0 // CON8_17
											// CON8_18	GND
			MX6UL_PAD_LCD_DATA05__GPIO3_IO10	0x400010b0 // CON8_19
			MX6UL_PAD_LCD_DATA06__GPIO3_IO11	0x400010b0 // CON8_20
			MX6UL_PAD_LCD_DATA07__GPIO3_IO12	0x400010b0 // CON8_21
			MX6UL_PAD_LCD_DATA08__GPIO3_IO13	0x400010b0 // CON8_22
			MX6UL_PAD_LCD_DATA09__GPIO3_IO14	0x400010b0 // CON8_23
			MX6UL_PAD_LCD_DATA10__GPIO3_IO15	0x400010b0 // CON8_24
			MX6UL_PAD_LCD_DATA11__GPIO3_IO16	0x400010b0 // CON8_25
			MX6UL_PAD_LCD_DATA15__GPIO3_IO20	0x400010b0 // CON8_26
			MX6UL_PAD_CSI_DATA04__GPIO4_IO25	0x400010b0 // CON8_29
			MX6UL_PAD_CSI_DATA05__GPIO4_IO26	0x400010b0 // CON8_30
			MX6UL_PAD_CSI_DATA06__GPIO4_IO27	0x400010b0 // CON8_31
			MX6UL_PAD_CSI_DATA07__GPIO4_IO28	0x400010b0 // CON8_32
											// CON8_33	GND
											// CON8_34	GND
		>;
	};

3.その後、at-dtwebの「Save」は使わず、以下のコマンドでデバイスツリーだけをビルドします。

atmark@atde9:~/linux-5.10-5.10.228-r0$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs

4.できたarmadillo-iotg-a6e-at-dtweb.dtboをArmadilloの/bootディレクトリにコピーしてください。

at-dtwebの「Save」を実行すると、armadillo-iotg-a6e-at-dtweb.dtsに行った変更は上書きされてしまいます。
もしat-dtwebを使用してペリフェラルを変更したい場合は、その都度上記の手順を踏んでください。

よろしくお願いします。

下山様、

原因から具体的な回避手順まで詳細なご説明ありがとうございます。
いただいた手順にて、at-dtweb で作成した変更内容と、DTS overlays によるカスタマイズの両方を適用することができました。

at-dtweb で気軽に変更できなくなってしまうのは残念ですが、当面はご提示いただいた方法で回避したいと思います。
(将来的に at-dtweb で値を書き込まないピンの設定ができるようになると嬉しいです)
以上、ありがとうございました。

at_shota.shimoyama

2025年1月29日 18時10分

t.iwai 様

> (将来的に at-dtweb で値を書き込まないピンの設定ができるようになると嬉しいです)

はい、おっしゃるとおりat-dtwebで作成したものを手動で修正する必要が無い方が望ましいと私も認識しております。
ご期待に沿えない可能性もございますが、今後そのように改善を図りたいと思います。

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