Other Parts Discussed in Thread: WL1835
Hello all,
I am trying to bring up the the WL1835 module on our custom board which is running on i-MX6 solo processor. I followed the below documents:
1)WiLink8 Linux Getting Started Guide
2)WL18xx Platform Integration Guide
3)WL18xx First Time Getting Started Guide (IMX6)
By following all these documents I generated the modules,wl18xx-fw-4.bin,related libraries ,bt-firmware etc.
I modified the below files:
t_kim.c, st_ll.c, ti_wilink_st.h, tty_hci.c ,Kconfig, Makefile,imx_v7_defconfig and btwilink.c. in the kernel.
I modified my dtsi file as follows:
wlan_en_reg: fixedregulator@2 {
compatible = "regulator-fixed";
regulator-name = "wlan-en-regulator";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
/* WLAN_EN GPIO for this board - Bank5, pin2 */
gpio = <&gpio5 2 0>;
enable-active-high;
};
kim {
compatible = "kim";
nshutdown_gpio = <80>; // GPIO3_16 The wl8 driver expects gpio to be an integer, so gpio3_16 is (3-1)*32+16=80
dev_name = "/dev/ttymxc1";
flow_cntrl = <1>;
baud_rate = <3000000>;
};
btwilink {
compatible = "btwilink";
};
pinctrl_uart2: uart2grp {
fsl,pins = <
MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x13059
MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x13059
MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x13059
MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x13059
>;
};
pinctrl_usdhc2: usdhc2grp {
fsl,pins = <
MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17069
MX6QDL_PAD_SD2_CLK__SD2_CLK 0x17069
MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17069
MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17069
MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17069
MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17069
MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x13059
MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x13059
>;
};
&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
fsl,uart-has-rtscts;
status = "okay";
};
&usdhc2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc2>;
keep-power-in-suspend;
enable-sdio-wakeup;
vmmc-supply = <&wlan_en_reg>;
non-removable; // non-removable is not a variable, the fact it is listed is all that is used by driver
cap-power-off-card;
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
wlcore: wlcore@0 {
compatible = "ti,wl1835";
reg = <2>;
interrupt-parent = <&gpio4>;
interrupts = <8 IRQ_TYPE_EDGE_RISING>;
};
};
Now when I am trying to load the modules I am getting below errors:
ess/ti/wlcore# insmod wlcore.ko3.14.28-1.0.0_ga+g91cf351/extra/drivers/net/wirele
wlcore: disagrees about version of symbol ieee80211_connection_loss
wlcore: Unknown symbol ieee80211_connection_loss (err -22)
wlcore: Unknown symbol ieee80211_iterate_interfaces (err 0)
wlcore: disagrees about version of symbol ieee80211_sched_scan_stopped
wlcore: Unknown symbol ieee80211_sched_scan_stopped (err -22)
wlcore: disagrees about version of symbol ieee80211_chswitch_done
wlcore: Unknown symbol ieee80211_chswitch_done (err -22)
wlcore: disagrees about version of symbol skb_put
wlcore: Unknown symbol skb_put (err -22)
wlcore: disagrees about version of symbol consume_skb
wlcore: Unknown symbol consume_skb (err -22)
wlcore: disagrees about version of symbol skb_dequeue
wlcore: Unknown symbol skb_dequeue (err -22)
wlcore: disagrees about version of symbol ieee80211_free_hw
wlcore: Unknown symbol ieee80211_free_hw (err -22)
wlcore: disagrees about version of symbol ieee80211_probereq_get
wlcore: Unknown symbol ieee80211_probereq_get (err -22)
wlcore: disagrees about version of symbol ieee80211_ap_probereq_get
wlcore: Unknown symbol ieee80211_ap_probereq_get (err -22)
wlcore: disagrees about version of symbol ieee80211_nullfunc_get
wlcore: Unknown symbol ieee80211_nullfunc_get (err -22)
wlcore: disagrees about version of symbol ieee80211_pspoll_get
wlcore: Unknown symbol ieee80211_pspoll_get (err -22)
wlcore: disagrees about version of symbol ieee80211_register_hw
wlcore: Unknown symbol ieee80211_register_hw (err -22)
wlcore: disagrees about version of symbol ieee80211_restart_hw
wlcore: Unknown symbol ieee80211_restart_hw (err -22)
wlcore: disagrees about version of symbol ieee80211_get_hdrlen_from_skb
wlcore: Unknown symbol ieee80211_get_hdrlen_from_skb (err -22)
wlcore: disagrees about version of symbol ieee80211_stop_rx_ba_session
wlcore: Unknown symbol ieee80211_stop_rx_ba_session (err -22)
wlcore: disagrees about version of symbol ieee80211_wake_queue
wlcore: Unknown symbol ieee80211_wake_queue (err -22)
wlcore: disagrees about version of symbol device_create_bin_file
wlcore: Unknown symbol device_create_bin_file (err -22)
wlcore: disagrees about version of symbol ieee80211_find_sta
wlcore: Unknown symbol ieee80211_find_sta (err -22)
wlcore: disagrees about version of symbol kfree_skb
wlcore: Unknown symbol kfree_skb (err -22)
wlcore: disagrees about version of symbol __cfg80211_alloc_reply_skb
wlcore: Unknown symbol __cfg80211_alloc_reply_skb (err -22)
wlcore: disagrees about version of symbol skb_queue_tail
wlcore: Unknown symbol skb_queue_tail (err -22)
wlcore: disagrees about version of symbol device_create_file
wlcore: Unknown symbol device_create_file (err -22)
wlcore: disagrees about version of symbol wiphy_to_ieee80211_hw
wlcore: Unknown symbol wiphy_to_ieee80211_hw (err -22)
wlcore: disagrees about version of symbol ieee80211_queue_delayed_work
wlcore: Unknown symbol ieee80211_queue_delayed_work (err -22)
wlcore: disagrees about version of symbol ieee80211_proberesp_get
wlcore: Unknown symbol ieee80211_proberesp_get (err -22)
wlcore: disagrees about version of symbol skb_pull
wlcore: Unknown symbol skb_pull (err -22)
wlcore: disagrees about version of symbol ieee80211_remain_on_channel_expired
wlcore: Unknown symbol ieee80211_remain_on_channel_expired (err -22)
wlcore: disagrees about version of symbol skb_push
wlcore: Unknown symbol skb_push (err -22)
wlcore: disagrees about version of symbol nla_put
wlcore: Unknown symbol nla_put (err -22)
wlcore: disagrees about version of symbol ieee80211_wake_queues
wlcore: Unknown symbol ieee80211_wake_queues (err -22)
wlcore: disagrees about version of symbol ieee80211_report_low_ack
wlcore: Unknown symbol ieee80211_report_low_ack (err -22)
wlcore: disagrees about version of symbol ieee80211_free_txskb
wlcore: Unknown symbol ieee80211_free_txskb (err -22)
wlcore: Unknown symbol ieee80211_alloc_hw_nm (err 0)
wlcore: disagrees about version of symbol cfg80211_vendor_cmd_reply
wlcore: Unknown symbol cfg80211_vendor_cmd_reply (err -22)
wlcore: disagrees about version of symbol ieee80211_tx_status
wlcore: Unknown symbol ieee80211_tx_status (err -22)
wlcore: disagrees about version of symbol ieee80211_stop_queue
wlcore: Unknown symbol ieee80211_stop_queue (err -22)
wlcore: disagrees about version of symbol __netdev_alloc_skb
wlcore: Unknown symbol __netdev_alloc_skb (err -22)
wlcore: disagrees about version of symbol ieee80211_ready_on_channel
wlcore: Unknown symbol ieee80211_ready_on_channel (err -22)
wlcore: disagrees about version of symbol ieee80211_stop_queues
wlcore: Unknown symbol ieee80211_stop_queues (err -22)
wlcore: disagrees about version of symbol skb_trim
wlcore: Unknown symbol skb_trim (err -22)
wlcore: Unknown symbol ieee80211_cqm_beacon_loss_notify (err 0)
wlcore: disagrees about version of symbol ieee80211_sched_scan_results
wlcore: Unknown symbol ieee80211_sched_scan_results (err -22)
wlcore: disagrees about version of symbol ieee80211_scan_completed
wlcore: Unknown symbol ieee80211_scan_completed (err -22)
wlcore: disagrees about version of symbol ieee80211_iterate_active_interfaces_atomic
wlcore: Unknown symbol ieee80211_iterate_active_interfaces_atomic (err -22)
wlcore: disagrees about version of symbol ieee80211_unregister_hw
wlcore: Unknown symbol ieee80211_unregister_hw (err -22)
wlcore: disagrees about version of symbol ieee80211_beacon_get_tim
wlcore: Unknown symbol ieee80211_beacon_get_tim (err -22)
wlcore: disagrees about version of symbol ieee80211_cqm_rssi_notify
wlcore: Unknown symbol ieee80211_cqm_rssi_notify (err -22)
wlcore: disagrees about version of symbol ieee80211_queue_work
wlcore: Unknown symbol ieee80211_queue_work (err -22)
wlcore: disagrees about version of symbol ieee80211_sta_ps_transition
wlcore: Unknown symbol ieee80211_sta_ps_transition (err -22)
wlcore: disagrees about version of symbol device_remove_bin_file
wlcore: Unknown symbol device_remove_bin_file (err -22)
wlcore: disagrees about version of symbol device_remove_file
wlcore: Unknown symbol device_remove_file (err -22)
wlcore: disagrees about version of symbol ieee80211_csa_finish
wlcore: Unknown symbol ieee80211_csa_finish (err -22)
wlcore: disagrees about version of symbol skb_queue_head
wlcore: Unknown symbol skb_queue_head (err -22)
wlcore: Unknown symbol ieee80211_rx_napi (err 0)
insmod: ERROR: could not insert module wlcore.ko: Unknown symbol in module
So my question am I missing some files?
Do I need more modifications in Rootfs?
Is there any mismatch in version?