- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We are developing a custom board based on AM3351 and BCM4343W module. Our Linux BSP is based on 4.4.1 kernel,but I'm facing some error.
I enabled the broadcom driver and configured the dts as follow
&mmc2 {
status = "okay";
vmmc-supply = <&vmmc_reg>;
bus-width = <4>;
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins_default>;
ti,non-removable;
ti,needs-special-hs-handling;
cap-power-off-card;
keep-power-in-suspend;
brcmf: bcrmf@1 {
status = "okay";
reg = <1>;
compatible = "brcm,bcm43340-fmac";
};
};
once device booted, I'm able to connect the broadcom wifi to access point and able to get ip address. Also I''m able to ping but in between I'm getting the dma error.
ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100): 56 data bytes
64 bytes from 192.168.1.100: seq=0 ttl=64 time=988.498 ms
64 bytes from 192.168.1.100: seq=1 ttl=64 time=7.694 ms
64 bytes from 192.168.1.100: seq=2 ttl=64 time=250.249 ms
64 bytes from 192.168.1.100: seq=3 ttl=64 time=339.703 ms
64 bytes from 192.168.1.100: seq=4 ttl=64 time=400.491 ms
64 bytes from 192.168.1.100: seq=5 ttl=64 time=459.148 ms
64 bytes from 192.168.1.100: seq=6 ttl=64 time=498.982 ms
64 bytes from 192.168.1.100: seq=7 ttl=64 time=748.227 ms
64 bytes from 192.168.1.100: seq=8 ttl=64 time=807.846 ms
64 bytes from 192.168.1.100: seq=9 ttl=64 time=867.752 ms
64 bytes from 192.168.1.100: seq=10 ttl=64 time=927.145 ms
64 bytes from 192.168.1.100: seq=11 ttl=64 time=986.852 ms
64 bytes from 192.168.1.100: seq=12 ttl=64 time=13.413 ms
64 bytes from 192.168.1.100: seq=13 ttl=64 time=246.074 ms
64 bytes from 192.168.1.100: seq=14 ttl=64 time=306.052 ms
64 bytes from 192.168.1.100: seq=15 ttl=64 time=345.741 ms
64 bytes from 192.168.1.100: seq=16 ttl=64 time=385.357 ms
64 bytes from 192.168.1.100: seq=17 ttl=64 time=425.048 ms
64 bytes from 192.168.1.100: seq=18 ttl=64 time=484.698 ms
64 bytes from 192.168.1.100: seq=19 ttl=64 time=544.552 ms
64 bytes from 192.168.1.100: seq=20 ttl=64 time=604.137 ms
64 bytes from 192.168.1.100: seq=21 ttl=64 time=663.809 ms
64 bytes from 192.168.1.100: seq=22 ttl=64 time=1753.569 ms
64 bytes from 192.168.1.100: seq=23 ttl=64 time=753.921 ms
64 bytes from 192.168.1.100: seq=24 ttl=64 time=813.022 ms
64 bytes from 192.168.1.100: seq=25 ttl=64 time=872.778 ms
64 bytes from 192.168.1.100: seq=26 ttl=64 time=932.389 ms
64 bytes from 192.168.1.100: seq=27 ttl=64 time=992.037 ms
64 bytes from 192.168.1.100: seq=28 ttl=64 time=8.566 ms
64 bytes from 192.168.1.100: seq=29 ttl=64 time=241.322 ms
64 bytes from 192.168.1.100: seq=30 ttl=64 time=301.199 ms
[ 150.400617] omap_hsmmc 481d8000.mmc: MMC start dma failure
[ 150.406301] brcmf_sdiod_sglist_rw: CMD53 sg block write failed -22
[ 150.413672] brcmf_sdio_txfail: sdio error, abort command and terminate frame
64 bytes from 192.168.1.100: seq=32 ttl=64 time=390.718 ms
64 bytes from 192.168.1.100: seq=33 ttl=64 time=450.200 ms
64 bytes from 192.168.1.100: seq=34 ttl=64 time=510.942 ms
64 bytes from 192.168.1.100: seq=35 ttl=64 time=559.477 ms
64 bytes from 192.168.1.100: seq=36 ttl=64 time=619.287 ms
64 bytes from 192.168.1.100: seq=37 ttl=64 time=678.835 ms
64 bytes from 192.168.1.100: seq=38 ttl=64 time=718.629 ms
64 bytes from 192.168.1.100: seq=39 ttl=64 time=778.465 ms
64 bytes from 192.168.1.100: seq=40 ttl=64 time=1004.650 ms
64 bytes from 192.168.1.100: seq=41 ttl=64 time=10.999 ms
64 bytes from 192.168.1.100: seq=42 ttl=64 time=243.885 ms
64 bytes from 192.168.1.100: seq=43 ttl=64 time=303.621 ms
64 bytes from 192.168.1.100: seq=44 ttl=64 time=363.150 ms
64 bytes from 192.168.1.100: seq=45 ttl=64 time=422.981 ms
64 bytes from 192.168.1.100: seq=46 ttl=64 time=482.599 ms
64 bytes from 192.168.1.100: seq=47 ttl=64 time=542.241 ms
64 bytes from 192.168.1.100: seq=48 ttl=64 time=601.993 ms
64 bytes from 192.168.1.100: seq=49 ttl=64 time=661.802 ms
64 bytes from 192.168.1.100: seq=50 ttl=64 time=721.374 ms
64 bytes from 192.168.1.100: seq=51 ttl=64 time=761.107 ms
64 bytes from 192.168.1.100: seq=52 ttl=64 time=800.756 ms
64 bytes from 192.168.1.100: seq=53 ttl=64 time=860.386 ms
64 bytes from 192.168.1.100: seq=54 ttl=64 time=920.059 ms
64 bytes from 192.168.1.100: seq=55 ttl=64 time=979.836 ms
64 bytes from 192.168.1.100: seq=56 ttl=64 time=76.361 ms
64 bytes from 192.168.1.100: seq=57 ttl=64 time=309.258 ms
64 bytes from 192.168.1.100: seq=58 ttl=64 time=368.817 ms
64 bytes from 192.168.1.100: seq=59 ttl=64 time=408.553 ms
64 bytes from 192.168.1.100: seq=60 ttl=64 time=468.503 ms
64 bytes from 192.168.1.100: seq=61 ttl=64 time=507.720 ms
64 bytes from 192.168.1.100: seq=62 ttl=64 time=548.293 ms
[ 182.433832] omap_hsmmc 481d8000.mmc: MMC start dma failure
[ 182.439411] brcmf_sdiod_sglist_rw: CMD53 sg block write failed -22
[ 182.446784] brcmf_sdio_txfail: sdio error, abort command and terminate frame
[ 183.434177] omap_hsmmc 481d8000.mmc: MMC start dma failure
[ 183.439740] brcmf_sdiod_sglist_rw: CMD53 sg block write failed -22
[ 183.446947] brcmf_sdio_txfail: sdio error, abort command and terminate frame
[ 184.434577] omap_hsmmc 481d8000.mmc: MMC start dma failure
[ 184.440142] brcmf_sdiod_sglist_rw: CMD53 sg block write failed -22
[ 184.447354] brcmf_sdio_txfail: sdio error, abort command and terminate frame
64 bytes from 192.168.1.100: seq=66 ttl=64 time=796.402 ms
64 bytes from 192.168.1.100: seq=67 ttl=64 time=863.185 ms
64 bytes from 192.168.1.100: seq=68 ttl=64 time=55.485 ms
64 bytes from 192.168.1.100: seq=69 ttl=64 time=285.458 ms
64 bytes from 192.168.1.100: seq=70 ttl=64 time=365.019 ms
64 bytes from 192.168.1.100: seq=71 ttl=64 time=424.705 ms
64 bytes from 192.168.1.100: seq=72 ttl=64 time=1524.363 ms
64 bytes from 192.168.1.100: seq=73 ttl=64 time=524.570 ms
64 bytes from 192.168.1.100: seq=74 ttl=64 time=583.997 ms
64 bytes from 192.168.1.100: seq=75 ttl=64 time=643.822 ms
Can any one help how to get rid of this error
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We don't support brcmfamc yet, but we are looking to start supporting it in the future(no dates yet). We recommend using bcmdhd driver.
Having said that, let me try an help.
The first failure is "omap_hsmmc 481d8000.mmc: MMC start dam failure". I am looking at the OMAP MMC driver source.
Linux/drivers/mmc/host/omap_hsmmc.c - Linux Cross Reference - Free Electrons
The actual failure maybe coming from omap_hsmmc_setup_dma_transfer.
There are several failure cases here. I would start of by adding some debug to this find out which among them is the actual failure.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We don't support brcmfamc yet, but we are looking to start supporting it in the future(no dates yet). We recommend using bcmdhd driver.
Having said that, let me try an help.
The first failure is "omap_hsmmc 481d8000.mmc: MMC start dam failure". I am looking at the OMAP MMC driver source.
Linux/drivers/mmc/host/omap_hsmmc.c - Linux Cross Reference - Free Electrons
The actual failure maybe coming from omap_hsmmc_setup_dma_transfer.
There are several failure cases here. I would start of by adding some debug to this find out which among them is the actual failure.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm using Type IDX module, which has BCM4343w.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
After registering with Murata you can get this document "Murata Wi-Fi BT EVK for i.MX6 Linux User Manual 3.0". This has the details of getting the source and instructions to build the module etc.
Thanks,
Venkat
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Venkat,
I had already send a mail to murata, but not getting any reply from them. Did you checked on DMA error.
Regards,
Manoj
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Venkat,
Thanks for your support. Can you please look into misaligned block error that I posted above.
Regards,
Manoj
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Manoj,
I think at this point we can move discussion to a different thread. Please see my reply here.
Re: brcmfamc - OMAP SG entry not aligned with block size
Thanks,
Venkat
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Venkat,
I add the below debug print in omap_hsmmc.c.
/* Sanity check: all the SG entries must be aligned by block size. */
for (i = 0; i < data->sg_len; i++) {
struct scatterlist *sgl;
sgl = data->sg + i;
if (sgl->length % data->blksz){
printk("%s Sgl Length %d Data Block Size %d\r\n", __func__, sgl->length, data->blksz);
return -EINVAL;
}
}
And the output log
omap_hsmmc_setup_dma_transfer Sgl Length 612 Data Block Size 512
[ 1482.295658] omap_hsmmc 47810000.mmc: MMC start dma failure
[ 1482.301200] brcmf_sdiod_sglist_rw: CMD53 sg block write failed -22
[ 1482.308635] brcmf_sdio_txfail: sdio error, abort command and terminate frame
[ 1486.497015] omap_hsmmc_setup_dma_transfer Sgl Length 588 Data Block Size 512
[ 1486.504382] omap_hsmmc 47810000.mmc: MMC start dma failure
[ 1486.509921] brcmf_sdiod_sglist_rw: CMD53 sg block read failed -22
[ 1486.517263] brcmf_sdio_rxglom: glom read of 1536 bytes failed: -5
[ 1486.523634] brcmf_sdio_rxfail: abort command, terminate frame, send NAK
[ 1486.534431] omap_hsmmc_setup_dma_transfer Sgl Length 588 Data Block Size 512
[ 1486.541634] omap_hsmmc 47810000.mmc: MMC start dma failure
[ 1486.547828] brcmf_sdiod_sglist_rw: CMD53 sg block read failed -22
[ 1486.554147] brcmf_sdio_rxglom: glom read of 1536 bytes failed: -5
[ 1486.560291] brcmf_sdio_rxfail: abort command, terminate frame, send NAK
[ 1486.573765] omap_hsmmc_setup_dma_transfer Sgl Length 588 Data Block Size 512
[ 1486.580965] omap_hsmmc 47810000.mmc: MMC start dma failure
[ 1486.587165] brcmf_sdiod_sglist_rw: CMD53 sg block read failed -22
[ 1486.593490] brcmf_sdio_rxglom: glom read of 1536 bytes failed: -5
[ 1486.599633] brcmf_sdio_rxfail: abort command, terminate frame, send NAK
[ 1486.607711] omap_hsmmc_setup_dma_transfer Sgl Length 588 Data Block Size 512
[ 1486.615008] omap_hsmmc 47810000.mmc: MMC start dma failure
[ 1486.620544] brcmf_sdiod_sglist_rw: CMD53 sg block read failed -22
[ 1486.627460] brcmf_sdio_rxglom: glom read of 1536 bytes failed: -5
[ 1486.633754] brcmf_sdio_rxfail: abort command, terminate frame
Do you have any clue why the SG entry not aligned with block size
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Could you please tell me, how did you enable the broadcom driver. I mean steps to enable the driver for BCM4343W.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Which Linux partner module are you using?
Are you using the BRCM driver that is distributed as part of the i.MX 6 Linux release?
The support model is explained here: Wi-Fi/Bluetooth for Linux and Android and here for Murata Linux based modules: Murata Wi-Fi/Bluetooth for Linux and Android