Search Linux Wireless

brcmfmac on Inventek 43341 module over sdio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've been trying to bring up this BRC43341 module on an nVidia TX1
plugged into the uSD card slot and I'm having some trouble with the
driver.  First of all, the uSD card slot works fine with uSD memory
cards.  Now I've got this eval board from Inventek, the
ISM43340-L77-EVB which plugs into the uSD card slot.

I've enabled brcmfmac in the kernel config and things started off very
well.  I had to modify the driver code to add support for the 43341
firmware and nvram filenames, but that all seems to be working.  I got
the firmware and nvram files directly from Inventek.  When I insert
the card, I can see it detected, and the driver starts talking to it.
It configures a few registers, and then the firmware and nvram are
getting loaded successfully, as evidenced by this:

[   31.935443] brcmfmac: [2] brcmf_sdio_download_code_file Enter
[   32.122020] brcmfmac: [4] brcmf_sdio_verifymemory Compare RAM dl &
ul at 0x00000000; size=368538
[   32.497360] brcmfmac: [2] brcmf_sdio_download_nvram Enter
[   32.504947] brcmfmac: [4] brcmf_sdio_verifymemory Compare RAM dl &
ul at 0x0007fa48; size=1464
[   32.516009] brcmfmac: [2] brcmf_chip_set_active Enter
[   32.523964] brcmfmac: [2] brcmf_sdiod_change_state 0 -> 1
[   32.529422] brcmfmac: [2] brcmf_bus_change_state 0 -> 1

What happens next, as near as I can tell, is that the inband interrupt
gets configured, and then pretty quickly I get an interrupt for a bad
CRC, then a register dump.

[   32.664411] brcmfmac: [131072] brcmf_sdio_bus_sleep Enter: request
WAKE currently WAKE
[   32.664413] brcmfmac: [131072] brcmf_sdio_clkctl Enter
[   32.664415] brcmfmac: [131072] brcmf_sdio_bus_sleep new state WAKE
[   32.664416] brcmfmac: [131072] brcmf_sdio_bus_sleep Exit: err=0
[   32.664418] brcmfmac: [131072] brcmf_sdio_hostmail Enter
[   32.664610] brcmfmac: [131072] brcmf_sdio_hostmail Dongle ready,
protocol version 4
[   32.664612] brcmfmac: [131072] brcmf_sdio_bus_sleep Enter: request
WAKE currently WAKE
[   32.664614] brcmfmac: [131072] brcmf_sdio_clkctl Enter
[   32.664615] brcmfmac: [131072] brcmf_sdio_bus_sleep new state WAKE
[   32.664617] brcmfmac: [131072] brcmf_sdio_bus_sleep Exit: err=0
[   32.664618] brcmfmac: [2] brcmf_chip_sr_capable Enter
[   32.665150] brcmfmac: [4] brcmf_sdio_readshared sdpcm_shared
address 0x0003D538
[   32.665519] brcmfmac: [2] brcmf_sdio_readframes Enter
[   32.665524] brcmfmac: [131072] brcmf_sdiod_recv_pkt addr =
0x18000000, size = 64
[   32.665591] mmc1: sdhci_cmd_irq 2634 SDHCI_INT_CRC intmask: 20001
Interface clock = 6000000Hz
[   32.665592] sdhci: =========== REGISTER DUMP (mmc1)===========
[   32.665597] sdhci: Sys addr: 0x00000000 | Version:  0x00000303
[   32.665601] sdhci: Blk size: 0x00007040 | Blk cnt:  0x00000001
[   32.665605] sdhci: Argument: 0x21000040 | Trn mode: 0x00000013
[   32.665608] sdhci: Present:  0x01db0008 | Host ctl: 0x00000016
[   32.665612] sdhci: Power:    0x00000001 | Blk gap:  0x00000000
[   32.665616] sdhci: Wake-up:  0x00000000 | Clock:    0x00000007
[   32.665619] sdhci: Timeout:  0x0000000e | Int stat: 0x00000000
[   32.665623] sdhci: Int enab: 0x02ff000b | Sig enab: 0x02fc000b
[   32.665626] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[   32.665630] sdhci: Caps:     0x376cd08c | Caps_1:   0x10006f73
[   32.665634] sdhci: Cmd:      0x0000353a | Max curr: 0x00000000
[   32.665636] sdhci: Host ctl2: 0x0000308b
[   32.665641] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x0000000080000010
[   32.665642] sdhci: ===========================================
[   32.665658] brcmfmac: brcmf_err- brcmf_sdio_readframes: RXHEADER FAILED: -84
[   32.665660] brcmfmac: brcmf_err- brcmf_sdio_rxfail: abort command,
terminate frame, send NAK
[   32.665662] brcmfmac: [131072] brcmf_sdiod_abort Enter


A short time after this, there's another register dump, and then the
kernel crashes.


I had trouble figuring out how to enable specific logging modes in the
driver, so I just hacked it to spit out everything.  I have a pretty
detailed log showing the driver communication that I can post if it
will help.  I'm not sure about the etiquette on this mailing list, so
I didn't want to start off with posting the whole log right away.

Any help on this would be much appreciated.

  -Dennis



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux