broadcom wifi bcm4329 integration on imx6 target board issue.

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

broadcom wifi bcm4329 integration on imx6 target board issue.

8,002 Views
veeranjaneyulug
Contributor III

Hi ,

we used kernel version 3.14.28 .we compiled broad com bcm4329 module out side of kernel, and generated bcm_dhd.ko,and we copied fw.bin and nvram.txt files into /lib/modules and /lib/firmware path .

3.14.28 kernel is support? for bcm 4329 module.we got below error.can you anybody help me.

insmod bcmdhd.ko firmware_path=fw_bcmdhd.bin nvram_path=nvram.txt iface_name=wlan

we inserted above all those things.

root@imx6qsabresd:~# insmod /lib/modules/bcmdhd.ko

bcmdhd: Unknown symbol sdio_reset_comm (err 0)

insmod: ERROR: could not insert module /lib/modules/bcmdhd.ko: Unknown symbol in module

root@imx6qsabresd:~#


Thanks & Regards

veeranjaneyului

Labels (6)
0 Kudos
10 Replies

2,995 Views
mickaeltoumi
Contributor III

Could you copy on this thread the result of "uname -r" as well as "modinfo bcmdhd.ko"?

0 Kudos

2,995 Views
veeranjaneyulug
Contributor III

hi ,

Thanks for your reply.

I attached modinfo below.please find below modinfo .and uname -r you are asking system kernel version? or yocto setup kernel version.uname -r system is 3.13 and my kernel version is 3.14.28.we compiled bcm4329 module from out side kernel. kernel built with yocto setup.Than we copy zImage and imx6q-sabresd.dtb into boot partions.

modinfo bcmdhd.ko

filename:       /bcmdhd.ko

license:        GPL v2

srcversion:     F1F61E00A653D4E5628FBA5

alias:          sdio:c00v*d*

alias:          sdio:c*v02D0dA8E7*

alias:          sdio:c*v02D0d4324*

alias:          sdio:c*v02D0d4334*

alias:          sdio:c*v02D0d4330*

alias:          sdio:c*v02D0d4319*

alias:          sdio:c*v02D0d4329*

alias:          sdio:c*v02D0d0493*

alias:          sdio:c*v02D0d0492*

alias:          sdio:c*v02D0d0000*

depends:       

vermagic:       3.14.28-1.0.0_ga+g91cf351 SMP preempt mod_unload modversions ARMv7 p2v8

parm:           dhd_doflow:uint

parm:           dhd_dpcpoll:uint

parm:           clockoverride:SDIO card clock override (int)

parm:           sd_msglevel:uint

parm:           sd_power:uint

parm:           sd_clock:uint

parm:           sd_divisor:uint

parm:           sd_sdmode:uint

parm:           sd_hiok:uint

parm:           sd_f2_blocksize:int

parm:           g_assert_type:int

parm:           info_string:string

parm:           op_mode:int

parm:           dhd_msg_level:int

parm:           dhd_arp_enable:uint

parm:           dhd_arp_mode:uint

parm:           disable_proptx:int

parm:           firmware_path:string

parm:           nvram_path:string

parm:           dhd_watchdog_ms:uint

parm:           dhd_console_ms:uint

parm:           dhd_slpauto:uint

parm:           dhd_pkt_filter_enable:uint

parm:           dhd_pkt_filter_init:uint

parm:           dhd_master_mode:uint

parm:           dhd_watchdog_prio:int

parm:           dhd_dpc_prio:int

parm:           dhd_rxf_prio:int

parm:           passive_channel_skip:int

parm:           dhd_dongle_ramsize:int

parm:           instance_base:int

parm:           iface_name:string

parm:           dhd_idletime:int

parm:           dhd_poll:uint

parm:           dhd_intr:uint

parm:           dhd_sdiod_drive_strength:uint

parm:           dhd_txbound:uint

parm:           dhd_rxbound:uint

parm:           dhd_deferred_tx:uint

parm:           dhd_pktgen:uint

parm:           dhd_pktgen_len:uint

we are waiting for your valuable reply and suggestions.

Thanks & Regards

veeranjaneyulu

0 Kudos

2,995 Views
mickaeltoumi
Contributor III

When you log on your i.MX platform execute the following command: "uname -r" this will print the kernel release. Check it matches the vermagic 3.14.28-1.0.0_ga+g91cf351 from your module. If it does not match it does explain why you have the error message when you try to load the module.

0 Kudos

2,995 Views
veeranjaneyulug
Contributor III

Hi ,

Thanks for your reply.

In the below I copied uname -r and modinfo bcmdhd.ko  .please find below things.

i copied bcm_dhd.ko into /lib/modules/ and /lib/modules/nvram.txt ,,         /lib/firmware/fw_bcmdhd.bin.

root@imx6qsabresd:~# uname -r

3.14.28-1.0.0_ga+g91cf351

root@imx6qsabresd:/lib/modules# modinfo bcmdhd.ko

filename:   /lib/modules/bcmdhd.ko
license:    GPL v2
srcversion: F1F61E00A653D4E5628FBA5
alias:      sdio:c00v*d*
alias:      sdio:c*v02D0dA8E7*
alias:      sdio:c*v02D0d4324*
alias:      sdio:c*v02D0d4334*
alias:      sdio:c*v02D0d4330*
alias:      sdio:c*v02D0d4319*
alias:      sdio:c*v02D0d4329*
alias:      sdio:c*v02D0d0493*
alias:      sdio:c*v02D0d0492*
alias:      sdio:c*v02D0d0000*
depends:  
vermagic:   3.14.28-1.0.0_ga+g91cf351 SMP preempt mod_unload modversions ARMv7 p2v8
parm:       dhd_doflow:uint
parm:       dhd_dpcpoll:uint
parm:       clockoverride:SDIO card clock override (int)
parm:       sd_msglevel:uint
parm:       sd_power:uint
parm:       sd_clock:uint
parm:       sd_divisor:uint
parm:       sd_sdmode:uint
parm:       sd_hiok:uint
parm:       sd_f2_blocksize:int
parm:       g_assert_type:int
parm:       info_string:string
parm:       op_mode:int
parm:       dhd_msg_level:int
parm:       dhd_arp_enable:uint
parm:       dhd_arp_mode:uint
parm:       disable_proptx:int
parm:       firmware_path:string
parm:       nvram_path:string
parm:       dhd_watchdog_ms:uint
parm:       dhd_console_ms:uint
parm:       dhd_slpauto:uint
parm:       dhd_pkt_filter_enable:uint
parm:       dhd_pkt_filter_init:uint
parm:       dhd_master_mode:uint
parm:       dhd_watchdog_prio:int
parm:       dhd_dpc_prio:int
parm:       dhd_rxf_prio:int
parm:       passive_channel_skip:int
parm:       dhd_dongle_ramsize:int
parm:       instance_base:int
parm:       iface_name:string
parm:       dhd_idletime:int
parm:       dhd_poll:uint
parm:       dhd_intr:uint
parm:       dhd_sdiod_drive_strength:uint
parm:       dhd_txbound:uint
parm:       dhd_rxbound:uint
parm:       dhd_deferred_tx:uint
parm:       dhd_pktgen:uint
parm:       dhd_pktgen_len:uint

We are waiting for your valuable reply and suggestions.

Thanks & Regards

veeranjaneyulu

0 Kudos

2,995 Views
mickaeltoumi
Contributor III

Ok the vermagic of the module matches your kernel version.

Now this is how I load the module:

insmod /lib/modules/3.14.38-6UL_ga+ge4944a5/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko firmware_path=/lib/firmware/bcm/fw_bcmdhd.bin nvram_path=/lib/firmware/bcm/bcmdhd.cal dhd_msg_level=0xffff

You want to have the bcmdhd.ko stored under: /lib/modules/[YOUR_KERNEL_VERSION]/kernel/drivers/net/wireless/bcmdhd/

The firmware should be named: fw_bcmdhd.bin and stored under: /lib/firmware/bcm/

The nvram file should be called: bcmdhd.cal and stored under: /lib/firmware/bcm/ (same place as above)

You can turn on logs with dhd_msg_level

0 Kudos

2,995 Views
veeranjaneyulug
Contributor III

Hi ,

Thanks for your reply.

nvram.txt is same as bcmdhd.cal file? and how to change the crystal frequency and all in nvram.txt file.

we are waiting for your reply and suggestions.

Thanks & regards

veeranjaneyulu

0 Kudos

2,995 Views
veeranjaneyulug
Contributor III

Hi,

we used command above your guidelines .but we got below error .logs copied below find below logs.

root@imx6qsabresd:~#

ram_path=/lib/firmware/bcm/nvram.txt dhd_msg_level=0xffffre/bcm/fw_bcmdhd.bin nv

bcmdhd: disagrees about version of symbol alloc_etherdev_mqs

bcmdhd: Unknown symbol alloc_etherdev_mqs (err -22)

bcmdhd: disagrees about version of symbol __nlmsg_put

bcmdhd: Unknown symbol __nlmsg_put (err -22)

bcmdhd: Unknown symbol cfg80211_scan_done (err 0)

bcmdhd: disagrees about version of symbol consume_skb

bcmdhd: Unknown symbol consume_skb (err -22)

bcmdhd: disagrees about version of symbol sdio_register_driver

bcmdhd: Unknown symbol sdio_register_driver (err -22)

bcmdhd: disagrees about version of symbol __netif_schedule

bcmdhd: Unknown symbol __netif_schedule (err -22)

bcmdhd: disagrees about version of symbol unregister_netdev

bcmdhd: Unknown symbol unregister_netdev (err -22)

bcmdhd: Unknown symbol cfg80211_remain_on_channel_expired (err 0)

bcmdhd: Unknown symbol sdio_reset_comm (err 0)

bcmdhd: disagrees about version of symbol __netlink_kernel_create

bcmdhd: Unknown symbol __netlink_kernel_create (err -22)

bcmdhd: disagrees about version of symbol sched_setscheduler

bcmdhd: Unknown symbol sched_setscheduler (err -22)

bcmdhd: Unknown symbol cfg80211_new_sta (err 0)

bcmdhd: disagrees about version of symbol unregister_netdevice_queue

bcmdhd: Unknown symbol unregister_netdevice_queue (err -22)

bcmdhd: Unknown symbol cfg80211_disconnected (err 0)

bcmdhd: disagrees about version of symbol wake_up_process

bcmdhd: Unknown symbol wake_up_process (err -22)

bcmdhd: disagrees about version of symbol eth_type_trans

bcmdhd: Unknown symbol eth_type_trans (err -22)

bcmdhd: Unknown symbol cfg80211_ready_on_channel (err 0)

bcmdhd: Unknown symbol cfg80211_inform_bss_width_frame (err 0)

bcmdhd: disagrees about version of symbol kfree_skb

bcmdhd: Unknown symbol kfree_skb (err -22)

bcmdhd: Unknown symbol wiphy_register (err 0)

bcmdhd: Unknown symbol __cfg80211_alloc_reply_skb (err 0)

bcmdhd: Unknown symbol wiphy_new (err 0)

bcmdhd: disagrees about version of symbol __alloc_skb

bcmdhd: Unknown symbol __alloc_skb (err -22)

bcmdhd: Unknown symbol cfg80211_put_bss (err 0)

bcmdhd: Unknown symbol cfg80211_roamed (err 0)

bcmdhd: disagrees about version of symbol sdio_unregister_driver

bcmdhd: Unknown symbol sdio_unregister_driver (err -22)

bcmdhd: disagrees about version of symbol init_net

bcmdhd: Unknown symbol init_net (err -22)

bcmdhd: Unknown symbol cfg80211_ibss_joined (err 0)

bcmdhd: disagrees about version of symbol skb_pull

bcmdhd: Unknown symbol skb_pull (err -22)

bcmdhd: disagrees about version of symbol netlink_unicast

bcmdhd: Unknown symbol netlink_unicast (err -22)

bcmdhd: Unknown symbol cfg80211_michael_mic_failure (err 0)

bcmdhd: Unknown symbol wiphy_apply_custom_regulatory (err 0)

bcmdhd: disagrees about version of symbol dev_close

bcmdhd: Unknown symbol dev_close (err -22)

bcmdhd: Unknown symbol cfg80211_connect_result (err 0)

bcmdhd: disagrees about version of symbol skb_push

bcmdhd: Unknown symbol skb_push (err -22)

bcmdhd: disagrees about version of symbol nla_put

bcmdhd: Unknown symbol nla_put (err -22)

bcmdhd: disagrees about version of symbol register_netdev

bcmdhd: Unknown symbol register_netdev (err -22)

bcmdhd: Unknown symbol wiphy_unregister (err 0)

bcmdhd: disagrees about version of symbol free_netdev

bcmdhd: Unknown symbol free_netdev (err -22)

bcmdhd: disagrees about version of symbol netlink_kernel_release

bcmdhd: Unknown symbol netlink_kernel_release (err -22)

bcmdhd: disagrees about version of symbol __pskb_copy

bcmdhd: Unknown symbol __pskb_copy (err -22)

bcmdhd: Unknown symbol cfg80211_get_bss (err 0)

bcmdhd: Unknown symbol __ieee80211_get_channel (err 0)

bcmdhd: disagrees about version of symbol netif_rx_ni

bcmdhd: Unknown symbol netif_rx_ni (err -22)

bcmdhd: Unknown symbol cfg80211_vendor_cmd_reply (err 0)

bcmdhd: disagrees about version of symbol netif_rx

bcmdhd: Unknown symbol netif_rx (err -22)

bcmdhd: disagrees about version of symbol __netdev_alloc_skb

bcmdhd: Unknown symbol __netdev_alloc_skb (err -22)

bcmdhd: Unknown symbol cfg80211_mgmt_tx_status (err 0)

bcmdhd: disagrees about version of symbol skb_realloc_headroom

bcmdhd: Unknown symbol skb_realloc_headroom (err -22)

bcmdhd: Unknown symbol cfg80211_find_ie (err 0)

bcmdhd: Unknown symbol cfg80211_unregister_wdev (err 0)

bcmdhd: Unknown symbol cfg80211_del_sta (err 0)

bcmdhd: disagrees about version of symbol __dev_kfree_skb_any

bcmdhd: Unknown symbol __dev_kfree_skb_any (err -22)

bcmdhd: Unknown symbol ieee80211_channel_to_frequency (err 0)

bcmdhd: Unknown symbol cfg80211_rx_mgmt (err 0)

bcmdhd: Unknown symbol ieee80211_frequency_to_channel (err 0)

bcmdhd: Unknown symbol wiphy_free (err 0)

bcmdhd: disagrees about version of symbol register_netdevice

bcmdhd: Unknown symbol register_netdevice (err -22)

insmod: ERROR: could not insert module /lib/modules/3.14.28-1.0.0_ga+g91cf351/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko: Invalid paramete

Thanks

veeranjaneyulu

0 Kudos

2,995 Views
veeranjaneyulug
Contributor III

Hi

Finally we solve that issue .That is kernel mismatch issue.we built fresh out side the kernel.

First we changed <yocto_kernel _source/git>/drivers/mmc/core/sdio.c file we added one dummy function as per community guidence.

on target board we run below command

insmod /lib/modules/3.14.28-1.0.0_ga+g91cf351/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko firmware_path=/lib/firmware/bcm/fw_bcmdhd.bin nvram_path=/lib/firmware/bcm/nvram.txt

finally we got below error.please find below log and then give me suggestions and idea on that issue.

dhd_module_init in

no wifi platform data, skip

DHD wifi platform data is required for Android build

dhd_module_init: Failed to load the driver, try cnt 3

no wifi platform data, skip

DHD wifi platform data is required for Android build

dhd_module_init: Failed to load the driver, try cnt 2

no wifi platform data, skip

DHD wifi platform data is required for Android build

dhd_module_init: Failed to load the driver, try cnt 1

no wifi platform data, skip

DHD wifi platform data is required for Android build

dhd_module_init: Failed to load the driver, try cnt 0

dhd_module_init: Failed to load driver max retry reached**

dhd_module_init out

insmod: ERROR: could not insert module /lib/modules/3.14.28-1.0.0_ga+g91cf351/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko: Invalid parameters

plz give me idea.we are waiting for your suggestions.

Thanks & Regards

veeranjaneyulu

0 Kudos

2,995 Views
vijaikumar
Contributor III

Make sure that your card is detected as a mmc device first.

You should get a log similar to this. My wifi card is on usdhc1.

mmc0: queuing unknown CIS tuple 0x91 (3 bytes)

mmc0: new high speed SDIO card at address 0001

0 Kudos

2,995 Views
mickaeltoumi
Contributor III

I have seen those logs before and in my case that would happen when the driver is loaded and the radio is not available or detected over SDIO.

How do you connect your Broadcom radio to the i.MX6? Do you have an evaluation boards? please provide as many details as possible.

0 Kudos