- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear all,
We are facing Kernel crash issue when using the manufacturing test firmware (fw_bcmdhd_mfgtest.bin) on a NXP i.MX 6ULL with Murata LBEE5KL1DX-883 wifi module.
The kernel module loads fine, but when we try to bring the wireless interface up (ifconfig wlan0 up) we get a kernel crash.
we are at kernel version 4.1.15
I am attaching logs here for crash.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ok, I just find one modification, need your help to test this modification in file linux_osl.c
your version has no this modification:
/* Convert a native(OS) packet to driver packet.
* In the process, native packet is destroyed, there is no copying
* Also, a packettag is zeroed out
*/
#ifdef BCMDBG_CTRACE
void * BCMFASTPATH
osl_pkt_frmnative(osl_t *osh, void *pkt, int line, char *file)
#else
void * BCMFASTPATH
osl_pkt_frmnative(osl_t *osh, void *pkt)
#endif /* BCMDBG_CTRACE */
{
struct sk_buff *cskb;
struct sk_buff *nskb;
unsigned long pktalloced = 0;
if (osh->pub.pkttag)
OSL_PKTTAG_CLEAR(pkt);
/* walk the PKTCLINK() list */
for (cskb = (struct sk_buff *)pkt;
cskb != NULL;
cskb = PKTISCHAINED(cskb) ? PKTCLINK(cskb) : NULL) {
/* walk the pkt buffer list */
for (nskb = cskb; nskb; nskb = nskb->next) {
/* Increment the packet counter */
pktalloced++;
/* clean the 'prev' pointer
* Kernel 3.18 is leaving skb->prev pointer set to skb
* to indicate a non-fragmented skb
*/
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0))
nskb->prev = NULL;
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) */
#ifdef BCMDBG_CTRACE
ADD_CTRACE(osh, nskb, file, line);
#endif /* BCMDBG_CTRACE */
}
}
/* Increment the packet counter */
atomic_add(pktalloced, &osh->cmn->pktalloced);
return (void *)pkt;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hello
So did you get the default release from imx platfrom ? I think they should have fine tuned firmware released from their sdk. and by the way the normal firmware of the same version didn't have this issue , right ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello
Actually I did some more research and found brcmfmac43430-sdio.1DX.clm_blob file from https://github.com/murata-wireless/cyw-fmac-fw but I don't know how to proceed with this file.
Can you explain me the steps regarding how to apply this clm_blob file?
And the normal firmware of the same version didn't have this issue, only fw_bcmdhd_mfgtest.bin have this issue.
Regards,
Pratik
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hello:
You can change the name to brcmfmac43430-sdio.clm_blob when bringing up the chip, and do you mean normal firmware have no clm_blob file ,but the function is ok ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes I Don't have clm_blob file but the function is ok.
- 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 had copy brcmfmac43430-sdio-mfgtest.bin to fw_bcmdhd.bin and then tried to up wlan0 with "ifconfig wlan0 up" command but still same issue happening.
If is there any other steps I need then please tell me.
- 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
Tried, but same crash issue is happening
Steps followed :
-> cp 43438A1-mfgtest.bin fw_bcmdhd.bin
-> ifconfig wlan0 up
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hello:
I just find one similar issue inside, I think you can disable auto-start of wpa_supplicant before "ifconfig wlan0 up" , need a try. Because MFG firmware is used for the test, wpa_supplicant is not needed when running.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I have checked regarding wpa_supplicant service using "ps" and it is not running, it is already disabled.
Then tried "ifconfig wlan0 up" but still same issue is happening.
Regards,
Pratik
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the test, another suggestion, imx6ull should have dhd released by default, the dhd should have passed the mfg test, I think maybe you can try a different dhd, maybe the version of the default one is older than your 1.141 , if no issue, I think you can have a compare about the critical setting between two versions in your environment. for supplicant, please run "killall wpa_supplicant " before the ifconfig up.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
In our IMX6ULL dhd version is 1.141.92. Can we run compliance testing with this dhd? We need to have control of channel selection i.e. low, mid and high along with transmit power in all three mode i.e. b/g/n. Please share the command for the same if it can be doable in existing dhd version.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, it can be run with 1.141.92 , so the crash didn't happen in verion 92 .
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you share the steps for compliance testing ? We need to have control of channel selection i.e. low, mid and high along with transmit power in all three mode i.e. b/g/n. Please share the command for the same
- 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
Thanks, but I found that some commands like "wl country ALL" gives me "wl: Bad Argument" error with normal binary So I found that I need mfgtest binary for that but as I described previous it gives me kernel crash.
Regards,
Pratik
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, I knew that, so I am asking if you can try another DHD release , not the 1.141.78 one , where you got the driver ? I think you can ask if an older one can avoid this crash.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, Can you please provide me older one? I have 1.141.92 as a current version.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ok, I just find one modification, need your help to test this modification in file linux_osl.c
your version has no this modification:
/* Convert a native(OS) packet to driver packet.
* In the process, native packet is destroyed, there is no copying
* Also, a packettag is zeroed out
*/
#ifdef BCMDBG_CTRACE
void * BCMFASTPATH
osl_pkt_frmnative(osl_t *osh, void *pkt, int line, char *file)
#else
void * BCMFASTPATH
osl_pkt_frmnative(osl_t *osh, void *pkt)
#endif /* BCMDBG_CTRACE */
{
struct sk_buff *cskb;
struct sk_buff *nskb;
unsigned long pktalloced = 0;
if (osh->pub.pkttag)
OSL_PKTTAG_CLEAR(pkt);
/* walk the PKTCLINK() list */
for (cskb = (struct sk_buff *)pkt;
cskb != NULL;
cskb = PKTISCHAINED(cskb) ? PKTCLINK(cskb) : NULL) {
/* walk the pkt buffer list */
for (nskb = cskb; nskb; nskb = nskb->next) {
/* Increment the packet counter */
pktalloced++;
/* clean the 'prev' pointer
* Kernel 3.18 is leaving skb->prev pointer set to skb
* to indicate a non-fragmented skb
*/
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0))
nskb->prev = NULL;
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) */
#ifdef BCMDBG_CTRACE
ADD_CTRACE(osh, nskb, file, line);
#endif /* BCMDBG_CTRACE */
}
}
/* Increment the packet counter */
atomic_add(pktalloced, &osh->cmn->pktalloced);
return (void *)pkt;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks a lot for this patch, Now crash issue is resolved after applying above patch in linux_osl.c
but i am running FCC test script for Tx on mfgtest firmware (43438A1-mfgtest.bin) and some commands are not working proper.
wl down
wl mpc 0
wl phy_watchdog 0
wl country ALL
wl band b
wl 2g_rate -r 11 -b 20
wl txcore -s 1 -c 1 -o 1 -k 1
wl: Unsupported
wl channel 11
wl scansuppress 1
wl phy_txpwrctrl 1
wl: No clock
wl txpwr1 -1
wl txpwr1 -o -d 10
wl up
wl phy_forcecal 1
wl pkteng_start 00:11:22:33:44:55 tx 100 1024 0
sleep 10
Please provide me solution for "wl txcore -s 1 -c 1 -o 1 -k 1" and "wl phy_txpwrctrl 1".
Regards,
Pratik
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hello:
You can skip these two commands for 43438. then see if the power can transmit to the antenna point.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Yes power can transmit to the antenna point.
you can close the issue.
Thanks & Regards,
Pratik