[Armadillo:09393] Re: Armadillo-420 USB無線LANアダプタからの応答について

HSC:熊谷 貴広 email@hidden
2013年 12月 26日 (木) 15:43:33 JST


いつもお世話になっております。熊谷です。

解析途中ではございますが、その後の確認において
「ar9170_usb_upload」関数引数の「len」をダンプしましたが、
期待するファームウェアファイルサイズとなっておりましたので、
ファームウェア自体の読み込みは成功しているのでは?
と解釈しておりました。

その観点で進めた際、
「usb_control_msg」よりエラーが返却され、
デバイスから応答なし(USBコア コールバックなし)として
タイムアウトしているように見受けられます。

また、社内にUSBアナライザがありましたので
Armadillo と Ubuntu 比較したところ、
Armadillo からはデータ送信しているが、
デバイスから NoACK という差がございました。

|http://www.spinics.net/lists/linux-wireless/msg31794.html
|
|+	err = ar9170_usb_upload_firmware(aru);
|+	if (err) {
|+		err = ar9170_echo_test(&aru->common, 0x60d43110);
|+		if (err) {
|+			/* force user invention, by disabling the device */
|+			err = usb_driver_set_configuration(aru->udev, -1);
|+			dev_err(&aru->udev->dev, "device is in a bad state. "
|+						 "please reconnect it!\n");
|+			goto err_unrx;
|+		}
|+	}


+static int ar9170_usb_upload_firmware(struct ar9170_usb *aru)
+{
+	int err;
+
+	/* First, upload initial values to device RAM */
+	err = ar9170_usb_upload(aru, aru->init_values->data,
+				aru->init_values->size, 0x102800, false);
+	if (err) {
+		dev_err(&aru->udev->dev, "firmware part 1 "
+			"upload failed (%d).\n", err);
+		return err;
+	}
+
+	/* Then, upload the firmware itself and start it */
+	return ar9170_usb_upload(aru, aru->firmware->data, aru->firmware->size,
+				0x200000, true);
+}

+static int ar9170_usb_upload(struct ar9170_usb *aru, const void *data,
+			     size_t len, u32 addr, bool complete)
+{
+	int transfer, err;
+	u8 *buf = kmalloc(4096, GFP_KERNEL);
+
+	if (!buf)
+		return -ENOMEM;
+
+	while (len) {
+		transfer = min_t(int, len, 4096);
+		memcpy(buf, data, transfer);
+
+		err = usb_control_msg(aru->udev, usb_sndctrlpipe(aru->udev, 0),
+				      0x30 /* FW DL */, 0x40 | USB_DIR_OUT,
+				      addr >> 8, 0, buf, transfer,
+				      jiffies_to_msecs(HZ));
+

  ________
 〆 引用 メール φ \
|           ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|From    :  アットマークテクノ 中井 真大 <email@hidden>
|Cc      :  
|Date    :  2013/12/25 14:01:14
|Subject :  Armadillo-420 USB無線LANアダプタからの応答について
|________________________________________________________________
|
|nakaiです。
|
|Armadillo-420の標準カーネルにはドライバって入っていませんよね?
|どのバージョンのものを利用しているかわからないのですが、
|下記をみると、
|
|http://www.spinics.net/lists/linux-wireless/msg31794.html
|
|+	err = ar9170_usb_upload_firmware(aru);
|+	if (err) {
|+		err = ar9170_echo_test(&aru->common, 0x60d43110);
|+		if (err) {
|+			/* force user invention, by disabling the device */
|+			err = usb_driver_set_configuration(aru->udev, -1);
|+			dev_err(&aru->udev->dev, "device is in a bad state. "
|+						 "please reconnect it!\n");
|+			goto err_unrx;
|+		}
|+	}
|
|エラーメッセージを出しているのは正しくファームウェアがロードされていないからのようにみえます。
|
|正しくロードされた場合は、下記のようなログになるようです。
|
|[ 1012.824039] usb 1-2: firmware: requesting ar9170.fw
|[ 1013.982689] ath: EEPROM regdomain: 0x0
|[ 1013.982695] ath: EEPROM indicates default country code should be used
|[ 1013.982698] ath: doing EEPROM country->regdmn map search
|[ 1013.982702] ath: country maps to regdmn code: 0x3a
|[ 1013.982705] ath: Country alpha2 being used: US
|[ 1013.982708] ath: Regpair used: 0x3a
|[ 1013.994575] phy0: Selected rate control algorithm 'minstrel'
|[ 1013.995549] cfg80211: Calling CRDA for country: US
|[ 1013.997790] Registered led device: ar9170-phy0::tx
|[ 1013.997827] Registered led device: ar9170-phy0::assoc
|[ 1013.997832] usb 1-2: Atheros AR9170 is registered as 'phy0'
|[ 1013.997871] usbcore: registered new interface driver ar9170usb
|[ 1014.029024] cfg80211: Regulatory domain changed to country: US
|
|
|(2013/12/24 13:48), HSC:熊谷 貴広 wrote:
|> いつもお世話になっております。熊谷です。
|> 
|> 少々アバウトな問いになってしまいますが、
|> もしご存知の方がいらっしゃいましたらお教えください。
|> 
|> Armadillo-420 に USB 無線 LAN アダプタの実装を進める上で、
|> 現在、probe 関数がコールされ、Firmware ダウンロード処理まで
|> 実行されているのですが、デバイスへダウンロードコマンドを送信するも
|> 完了コールバックが上がってこない状況にあります。
|> (=デバイスが応答していない)
|> 
|>      <参考ログ>
|>          usb 2-1: new high speed USB device using fsl-ehci and address 2
|>          usb 2-1: reset high speed USB device using fsl-ehci and address 2
|>          usb 2-1: device is in a bad state. please reconnect it!
|>          usb 2-1: kill pending tx urbs.
|>                   
|> 物理レベルでの設定不足(menuconfig)を疑っているのですが、
|> これら実装するうえで、最低限必要なコンフィグはあるのでしょうか。
|> 
|> なお、使用しているデバイスは WindowsPC で認識しているため、
|> デバイスそのものの故障はございません。
|> 
|> 以上、よろしくお願いいたします。
|> 
|> 
|> _______________________________________________
|> armadillo mailing list
|> email@hidden
|> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
|> 
|
|_______________________________________________
|armadillo mailing list
|email@hidden
|http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
|







armadillo メーリングリストの案内