Armadilloフォーラム

Armadillo-IOT G3のSPI通信

naotakasaito

2019年5月7日 13時51分

Armadillo-IoT G3のSPI通信をしたく、以下のサイトの情報を参考にしながらカーネルビルドを実行してみたのですが、armadillo_x1-ecspi4_user1.dtbがビルドできません。
カーネルバージョンはLinux 4.9です。どのあたりを確認したら良いのでしょうか?

https://users.atmark-techno.com/blog/615/2577

コメント

at_mizo

2019年5月7日 14時22分

溝渕です。

> Armadillo-IoT G3のSPI通信をしたく、以下のサイトの情報を参考にしながらカーネルビルドを実行してみたのですが、armadillo_x1-ecspi4_user1.dtbがビルドできません。
> カーネルバージョンはLinux 4.9です。どのあたりを確認したら良いのでしょうか?
>
> https://users.atmark-techno.com/blog/615/2577

ビルドできないのは、ブログ執筆時と現在のLinuxカーネルが異なる為です。ブログにはカーネルバージョンを明示すべきでした。申し訳ございません。

v4.9-at7に適用可能なパッチを用意してみたので、試してみてください。
ECSPI4を利用可能にするだけのパッチになっています。

ファイル ファイルの説明
0001-spi-sample.patch

naotakasaito

2019年5月8日 12時02分

> v4.9-at7に適用可能なパッチを用意してみたので、試してみてください。
> ECSPI4を利用可能にするだけのパッチになっています。

早速のご対応、ありがとうございました。

とはいえ、少しハマってしまいましたのでコメントとして残しておきます。

> https://users.atmark-techno.com/blog/615/2577
のパッチを当ててしまったあとのカーネルファイルでは実行不可能で、改めてカーネルをダウンロードする必要がありました。

また、 arch/arm/boot/dtsのフォルダにパッチを持っていき、
$ patch -i 0001-spi-sample.patch
を実行したらパッチが正しく適用され、所望のdtbファイルが作成されることが確認できました。

naotakasaito

2019年5月10日 13時27分

1.おかげさまで以下のサイトを見ながら、作成したdtbファイルが有効になるよう /sys/bus/spi/deviceにspi3.0が見えました。
 手順が間違っていましたらご指摘ください。

> https://users.atmark-techno.com/blog/615/2627

setenv fdt_file armadillo_x1-ecspi4_user1.dtb
saveenv

2.SPIと同時に、拡張モジュールのI2C通信とGPIOを4本程度も使用したいです。
 armadil_x1-ecspi4_user.dtsに追加する内容をお教えいただきたく、お願いいたします。
今の段階では、使用するGPIOは何でも良いです。

naotakasaito

2019年5月10日 13時58分

立て続けに申し訳ございません。
前コメントではspi3.0が見えたと連絡をさせていただきましたが、一方でWi-Fiや3G/LTEが見えなくなってしまいました。おそらく、armadilllo_iotg_g3_m1.dtbが無効化されてしまったのが原因と推察します。

setenv fdt_fileに複数のdtbファイルを指定する方法があるのであればお教えいただきたく、お願いいたします。
できないのであれば、armadillo_x1-ecspi4_user1.dtsの内容をarmadillo_iotg_g3_m1.dtsに追加して、armadillo_iotg_g3_m1.dtbの1ファイルだけを指定すれば良いという認識ですが、その理解で正しいでしょうか?

at_mizo

2019年5月10日 14時30分

溝渕です。

> setenv fdt_fileに複数のdtbファイルを指定する方法があるのであればお教えいただきたく、お願いいたします。

不可能です。dtbは単一ファイルである必要があります。

> できないのであれば、armadillo_x1-ecspi4_user1.dtsの内容をarmadillo_iotg_g3_m1.dtsに追加して、armadillo_iotg_g3_m1.dtbの1ファイルだけを指定すれば良いという認識ですが、その理解で正しいでしょうか?

正しいです。