Silex SX-SDCAN (AR6003) sdio module, mmc0 timout on imx35 platform?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Silex SX-SDCAN (AR6003) sdio module, mmc0 timout on imx35 platform?

Jump to solution
2,786 Views
jobraun
Contributor I

Hello,

in my company we are using a Freescale imx35 based platform with a 3.7.6 Kernel. Our product is very similar to the Freescale imx35 3-stack development board. Currently I am trying to get the Silex SX-SDCAN (AR6003) module up and running on this platform. But I have some trouble. The module is connected via sdio. The kernel was compiled with the DENX ELDK 5.2.1.

My first try was with the ath6kl_sdio driver module of our kernel

(vanilla 3.7.6) which gave me the following error:

root@generic-armv6:~# modprobe ath6kl_sdio

cfg80211: Calling CRDA to update world regulatory domain

cfg80211: World regulatory domain updated:

cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)

cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)

cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)

cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)

cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)

cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)

cfg80211: Calling CRDA for country: DE

cfg80211: Regulatory domain changed to country: DE

cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)

cfg80211:   (2400000 KHz - 2483000 KHz @ 40000 KHz), (N/A, 2000 mBm)

cfg80211:   (5150000 KHz - 5250000 KHz @ 40000 KHz), (N/A, 2000 mBm)

cfg80211:   (5250000 KHz - 5350000 KHz @ 40000 KHz), (N/A, 2000 mBm)

cfg80211:   (5470000 KHz - 5725000 KHz @ 40000 KHz), (N/A, 2700 mBm)

ath6kl: temporary war to avoid sdio crc error

ath6kl: host only supports scatter of :1 entries, need: 16

ath6kl: ar6003 hw 2.1.1 sdio fw 3.2.0.144 api 3

ath6kl: abi version mismatch: host(0x1), target(0x0)

mmc0: Timeout waiting for hardware interrupt.

------------[ cut here ]------------

WARNING: at drivers/net/wireless/ath/ath6kl/sdio.c:487

ath6kl_sdio_irq_handler+0x78/0x84 [ath6kl_sdio]()

Modules linked in: ath6kl_sdio(+) ath6kl_core cfg80211 firmware_class ipv6

[<c0014860>] (unwind_backtrace+0x0/0xfc) from [<c03a5fa8>]

(dump_stack+0x20/0x24)

[<c03a5fa8>] (dump_stack+0x20/0x24) from [<c001ef14>]

(warn_slowpath_common+0x5c/0x74)

[<c001ef14>] (warn_slowpath_common+0x5c/0x74) from [<c001ef58>]

(warn_slowpath_null+0x2c/0x34)

[<c001ef58>] (warn_slowpath_null+0x2c/0x34) from [<bf10f56c>]

(ath6kl_sdio_irq_handler+0x78/0x84 [ath6kl_sdio])

[<bf10f56c>] (ath6kl_sdio_irq_handler+0x78/0x84 [ath6kl_sdio]) from

[<c02cbdec>] (sdio_irq_thread+0x1dc/0x288)

[<c02cbdec>] (sdio_irq_thread+0x1dc/0x288) from [<c0041824>] (kthread+0xb4/0xc0)

[<c0041824>] (kthread+0xb4/0xc0) from [<c000e5c8>] (ret_from_fork+0x14/0x20)

---[ end trace af8071666a83a3e8 ]---

mmc0: Timeout waiting for hardware interrupt.

------------[ cut here ]------------

WARNING: at drivers/net/wireless/ath/ath6kl/sdio.c:487

ath6kl_sdio_irq_handler+0x78/0x84 [ath6kl_sdio]()

Modules linked in: ath6kl_sdio(+) ath6kl_core cfg80211 firmware_class ipv6

[<c0014860>] (unwind_backtrace+0x0/0xfc) from [<c03a5fa8>]

(dump_stack+0x20/0x24)

[<c03a5fa8>] (dump_stack+0x20/0x24) from [<c001ef14>]

(warn_slowpath_common+0x5c/0x74)

[<c001ef14>] (warn_slowpath_common+0x5c/0x74) from [<c001ef58>]

(warn_slowpath_null+0x2c/0x34)

[<c001ef58>] (warn_slowpath_null+0x2c/0x34) from [<bf10f56c>]

(ath6kl_sdio_irq_handler+0x78/0x84 [ath6kl_sdio])

[<bf10f56c>] (ath6kl_sdio_irq_handler+0x78/0x84 [ath6kl_sdio]) from

[<c02cbdec>] (sdio_irq_thread+0x1dc/0x288)

[<c02cbdec>] (sdio_irq_thread+0x1dc/0x288) from [<c0041824>] (kthread+0xb4/0xc0)

[<c0041824>] (kthread+0xb4/0xc0) from [<c000e5c8>] (ret_from_fork+0x14/0x20)

---[ end trace af8071666a83a3e9 ]---

Is there something wrong with my sdio configuration? Is it possible to have a wlan card connected via sdio to the imx35 processor? Is there someone out there who has a working sdio wlan card on his imx35 platform?

Best regards

Johannes

Labels (1)
Tags (3)
0 Kudos
1 Solution
901 Views
VladanJovanovic
NXP Employee
NXP Employee

Not familiar with the topic, but this caught my attention.

ath6kl: abi version mismatch: host(0x1), target(0x0)


Google found out this info:

[PATCH] ath6kl: fix device registration ordering

View solution in original post

0 Kudos
3 Replies
901 Views
YS
Contributor IV

Hello,

Unfortunately, I don't have i.MX35. I have i.MX28EVK but Kernel version is rather old 2.6.35.3. I downloaded compat-driver-3.7.6.1, build on i.MX6 Sabre SD (Linux Kernel 3.0.15-1359) and confirmed it is working with SX-SDCAN. The firmware file is copied from Fedora Linux 18, which must be exactly the same one (md5sum shows "ebe7309b1ae3ce6be230724945eb8394  fw-3.bin").

dmesg when I insmod ath6kl_sdio.ko is;

ath6kl: Failed to get board file ath6k/AR6003/hw2.1.1/bdata.bin (-2), trying to find default board file.

ath6kl: WARNING! No proper board file was not found, instead using a default board file.

ath6kl: Most likely your hardware won't work as specified. Install correct board file!

ath6kl: temporary war to avoid sdio crc error

ath6kl: ar6003 hw 2.1.1 sdio fw 3.2.0.144 api 3


I haven't seen "host only supports scatter of..." nor "abi version mismatch" message, at least on i.MX6 3.0.15.

The "abi version mismatch" code is in init.c, when the driver detected version information reported from the chip is different from defined in host driver (1 is defined in common.h).  The initialization code is ath6kl_ready_event() in main.c.

I saw similar cases before, driver crashes right after firmware upload. It usually happens either you gave wrong version of firmware or corrupted firmware. Because I confirmed fw-3.bin 3.2.0.144 api3 works with host driver 3.7.6 (and no ABI version mismatch neither), I don't think the former case. I doubt your firmware file may be corrupted or you have some issue with SDIO bus. Sometimes lowering SDIO clock to very low (such as 5MHz) helps identify the issue.

Best Regards,

0 Kudos
902 Views
VladanJovanovic
NXP Employee
NXP Employee

Not familiar with the topic, but this caught my attention.

ath6kl: abi version mismatch: host(0x1), target(0x0)


Google found out this info:

[PATCH] ath6kl: fix device registration ordering

0 Kudos
901 Views
jobraun
Contributor I

Not familiar with the topic, but this caught my attention.

ath6kl: abi version mismatch: host(0x1), target(0x0)

Yes I have seen this mismatch. But I'm not shure what causes this issue. My idea is that the binary file differs from the compiled kernel. Perhaps because of different compilers versions. But I don't know how to check this.

I have testet several firmwares. The one delivered with ubuntu 12.4, the actual firmware from the kernel firmware repo and also the firmware which is delivered with the actual ltip from Freescale. All with the same error.

Also I am not shure if this mismatch causes the error. Thats why I asked if someone has a running imx35 platform with a wireless card connected via sdio.

Google found out this info:

[PATCH] ath6kl: fix device registration ordering

I am using the driver delivered with the vanilla kernel - ath6kl_sdio.ko. But this patch is for the driver from qualcomm. Anyway I also tried the qualcomm driver with this patch. The qualcomm driver ends with the same error like the vanilla kernel driver.

0 Kudos