[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 メーリングリストの案内