toyoqu
2020年2月14日 2時04分
豊久と申します。
Armadillo-X1の拡張コネクタCON8を使用して、独自ボードを作成接続しようとしています。
USB_OTG2にUVC対応のWebカメラを接続して使いたいのですが
A-x1評価用拡張ボードで使っている下記のdtsを
armadillo_x1.dts 内にインクルード記述してビルドすればWebカメラは使えるようになるでしょうか?
#include "armadillo_x1-extboard-eva01-usbotg2-host.dtsi"
コメント
toyoqu
> 佐藤です。
>
> armadillo_x1-usbotg2.dts を参考にしてみてください。
armadillo_x1-usbotg2.dtsを元に
「Armadillo−X1 UART1/USBポート初期化について」
「拡張ボードUSBポート追加方法」
を参考に真似をしてdtsを作ってみましたがvideo0と認識しません。
dtsがダメなのか、ボードがダメなのか判りません。
起動時のログにはエラーがでています。
分かる方お力をお貸しください。
imx7d-pinctrl 30330000.iomuxc: pin MX7D_PAD_SD2_RESET_B already requested by 30330000.iomuxc; cannot claim for 30b20000.usb
imx7d-pinctrl 30330000.iomuxc: pin-109 (30b20000.usb) status -22
imx7d-pinctrl 30330000.iomuxc: could not request pin 109 (MX7D_PAD_SD2_RESET_B) from group usbotg2grp on device 30330000.iomuxc
imx_usb 30b20000.usb: Error applying setting, reverse things back
imx_usb: probe of 30b20000.usb failed with error -22
USB_OTG2_VBUS: disabling
ファイル | ファイルの説明 |
---|---|
armadillo_x1-usbotg2.dts | |
error_otg2_log.txt | 起動時ログ |
at_makoto.sato
佐藤です。
> imx7d-pinctrl 30330000.iomuxc: pin MX7D_PAD_SD2_RESET_B already requested by 30330000.iomuxc; cannot claim for 30b20000.usb
> imx7d-pinctrl 30330000.iomuxc: pin-109 (30b20000.usb) status -22
> imx7d-pinctrl 30330000.iomuxc: could not request pin 109 (MX7D_PAD_SD2_RESET_B) from group usbotg2grp on device 30330000.iomuxc
> imx_usb 30b20000.usb: Error applying setting, reverse things back
> imx_usb: probe of 30b20000.usb failed with error -22
MX7D_PAD_SD2_RESET_B ピンの設定が重複しているようにみえます。
dtb ファイルを作成したときのビルド手順を教えてください。
また、実際に実機上に書き込まれている(このエラーが出た) dtb ファイルをアップロードしてもらえますでしょうか。
toyoqu
佐藤様 有難うございます。
USB_OTG2にカメラを接続する為に armadillo_x1-usbotg2.dts を修正した事と、センサー入出力の為のGPIOを追加しています。
GPIOの追加は armadillo_x1.dts にしています。GPIOを使ってのセンサーとの入出力は出来ています。
>MX7D_PAD_SD2_RESET_B ピンの設定が重複しているようにみえます。
はarmadillo_x1-usbotg2.dts の中でコメントにしているのですがこれが生きていたらarmadillo_x1.dtsと重複メッセージが出ますか。
&iomuxc {
x1_ext {
pinctrl_usbotg2: usbotg2grp {
fsl,pins = <
/* MX7D_PAD_SD2_RESET_B__USB_OTG2_ID 0x00 */
MX7D_PAD_LCD_DATA23__GPIO3_IO28 0x00
>;
};
};
};
うろ覚えになるのですが、コメントにする前のuImageとコメントにした後のarmadillo_x1-usbotg2.dtbの
2ファイルを実機で使用しているかもしれません。
(今は手元に実機がないので実機の中の2ファイルを確認できません)
ATDE7の中にあるarmadillo_x1-usbotg2.dtbをアップします
あともう一つ思いだしたのですが
USB OTGの章 21.7.2.3. 動作確認 の表示で
正しくDTBの指定ができた場合は、起動ログに次のような内容が表示されます。
ci_hdrc ci_hdrc.2: Device No Response
:(省略)
USB_OTG2_VBUS: 5000 mV
最後の「USB_OTG2_VBUS: 5000 mV」が表示されなかったような気がします。
ファイル | ファイルの説明 |
---|---|
armadillo_x1-usbotg2.dtb | |
armadillo_x1.dts | GPIOを追加している |
toyoqu
toyoqu
ビルド手順.txt が文字化けしているので再度投稿します。
ATDE7のVMware環境
「Armadillo-X1製品マニュアル10.2. Linuxカーネルをビルドする」を参考にして
最新のではないです。2018年秋にダウンロードしました。
展開
linux-4.9-x1-at2
initramfs_x1-v1.1.0.cpio.gz
中身GPIOの部分追加
linux-4.9-x1-at2/arch/arm/boot/dts/armadillo_x1.dts
x1_ext {
pinctrl_ext_hog_1: ext_hoggrp-1 {
fsl,pins = <
MX7D_PAD_SD2_DATA3__GPIO5_IO17 0x40000000 /* OUT: SION */
MX7D_PAD_SD2_DATA2__GPIO5_IO16 0x40000000 /* OUT: SION */
MX7D_PAD_SD2_DATA1__GPIO5_IO15 0x40000000 /* OUT: SION */
MX7D_PAD_SD2_DATA0__GPIO5_IO14 0x40000000 /* OUT: SION */
MX7D_PAD_SD2_CMD__GPIO5_IO13 0x00 /* IN: No need */
MX7D_PAD_SD2_CLK__GPIO5_IO12 0x00 /* IN: No need */
MX7D_PAD_SD2_RESET_B__GPIO5_IO11 0x00 /* IN: No need */
>;
};
};
中身修正
linux-4.9-x1-at2/arch/arm/boot/dts/armadillo_x1-usbotg2.dts
initramfsアーカイブへのシンボリックリンク作成
ln -s ../initramfs_x1-[version].cpio.gz initramfs_x1.cpio.gz
コンフィギュレーション
make ARCH=arm x1_defconfig
make ARCH=arm menuconfig
(変更はしない)
ビルド
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage
イメージファイルとDTB作成される
linux-4.9-x1-at2/arch/arm/boot/dts/armadillo_x1-usbotg2.dtb
linux-4.9-x1-at2/arch/arm/boot/uImage
11.2. 特定のイメージファイルだけを書き換える
11.2.2
11.2.3
参考にしてA-x1実機に2ファイルをコピーした
uImage
armadillo_x1-usbotg2.dtb
HOW TO 21.7.2. USB OTGを参考にして
A-x1を保守モードにして起動
=> setenv fdt_file armadillo_x1-usbotg2.dtb
=> saveenv
at_makoto.sato
佐藤です。
> >MX7D_PAD_SD2_RESET_B ピンの設定が重複しているようにみえます。
> はarmadillo_x1-usbotg2.dts の中でコメントにしているのですがこれが生きていたらarmadillo_x1.dtsと重複メッセージが出ますか。
出ると思われます。
> ATDE7の中にあるarmadillo_x1-usbotg2.dtbをアップします
こちらは問題なさそうに見えますので、実機上に正しくファイルが配置されていないのかもしれません。
また、 fdtdump コマンドを使うと dtb から dts に戻せるので、実機上の dtb が正しいかどうか確認できると思います。
ピン名などはすべて数値になってしまっているので imx7d-pinfunc.h ファイルと照らし合わせる必要があります。
$ fdtdump armadillo_x1-usbotg2.dtb > tmp.dts
toyoqu
at_makoto.sato
2020年2月14日 11時42分
佐藤です。
armadillo_x1-usbotg2.dts を参考にしてみてください。