Hello,
We have our own board designed after the SabreSD-6D and I am trying to bring WiFi module BCM43353 on imx6 dual platform.
Environment:
Platform: IMX6 dual
Codebase: Android 4.4.3
Linux base: 3.10.53
The wifi module is connected to usdhc1 controller.
The bcm reset (wlreg_on) line is connected to (GPIO3_IO23) and interrupt(WL_WAKE_HOST) line is connected to (GPIO1_IO05)
The below changes are in dts file.
dts setting:
wlreg_on: fixedregulator@2 { |
compatible = "regulator-fixed";
regulator-name = "wlreg_on";
gpio = <&gpio3 23 0>; //wifi_regon
startup-delay-us = <600000>;
enable-active-high;
};
bcmdhd_wlan_0: bcmdhd_wlan@0 {
compatible = "android,bcmdhd_wlan";
gpios = <&gpio1 5 1>; //oob_irq即wifi_wake_host
wlreg_on-supply = <&wlreg_on>;
};
&usdhc1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc1_1>;
keep-power-in-suspend;
no-1-8-v;
cap-power-off-card;
status = "okay";
};
-----------------------------------------------------------------------------------
usdhc1 {
pinctrl_usdhc1_1: usdhc1grp-1 {
fsl,pins = <
MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17071
MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10071
MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17071
MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17071
MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17071
MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17071
>;
};
};
When I try to insmod the bcmdhd driver, the system got panic.
log:
dhd_module_init in
======irq_flags:IRQF_TRIGGER_FALLING
Power-up adapter 'DHD generic adapter'
mmc0: queuing unknown CIS tuple 0x80 (2 bytes)
mmc0: queuing unknown CIS tuple 0x80 (7 bytes)
mmc0: queuing unknown CIS tuple 0x80 (6 bytes)
mmc0: queuing unknown CIS tuple 0x91 (3 bytes)
mmc0: new high speed SDIO card at address 0001
F1 signature OK, socitype:0x1 chip:0x4339 rev:0x1 pkg:0x2
DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
wifi_platform_get_mac_addr
wl_create_event_handler(): thread:wl_event_handler:3b0 started
CFG80211-ERROR) wl_event_handler : tsk Enter, tsk = 0x9884147c
dhd_attach(): thread:dhd_watchdog_thread:3b1 started
dhd_attach(): thread:dhd_dpc:3b2 started
dhd_deferred_work_init: work queue initialized
dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
wifi_platform_get_mac_addr
Firmware up: op_mode=0x0005, MAC=00:ae:fa:84:20:57
Firmware version = wl0: Mar 7 2016 21:01:51 version 6.37.39.38 (r623336)
dhd_wlfc_init(): successfully enabled bdcv2 tlv signaling, 79
dhd_wlfc_init(): wlfc_mode=0x0, ret=-23
Dongle Host Driver, version 1.141.91 (r)
Compiled in drivers/net/wireless/bcmdhd on Jul 19 2016 at 12:17:49
Register interface [wlan0] MAC: 00:ae:fa:84:20:57
root@sabresd_6dq:/ # Unable to handle kernel NULL pointer dereference at virtual address 00000200
pgd = 80004000
[00000200] *pgd=00000000
Internal error: Oops: 17 [#1] PREEMPT SMP ARM
Modules linked in: bcmdhd cfg80211 [last unloaded: cfg80211]
CPU: 0 PID: 892 Comm: kworker/u4:1 Not tainted 3.10.53 #259
Workqueue: kmmcd mmc_rescan
task: bc09c500 ti: 981f8000 task.ti: 981f8000
PC is at _raw_spin_lock_irqsave+0x18/0x58
LR is at _raw_spin_lock_irqsave+0x18/0x58
[<807c0dcc>] (_raw_spin_lock_irqsave+0x18/0x58) from [<8004b728>] (add_wait_queue+0x20/0x48)
[<8004b728>] (add_wait_queue+0x20/0x48) from [<8054bad8>] (__mmc_claim_host+0x54/0x194)
[<8054bad8>] (__mmc_claim_host+0x54/0x194) from [<7f1765a0>] (sdioh_request_byte+0x1c0/0x2a4 [bcmdhd
])
[<7f1765a0>] (sdioh_request_byte+0x1c0/0x2a4 [bcmdhd]) from [<7f1766a8>] (sdioh_cfg_write+0x24/0x2c
[bcmdhd])
[<7f1766a8>] (sdioh_cfg_write+0x24/0x2c [bcmdhd]) from [<7f175578>] (bcmsdh_cfg_write+0x44/0xc0 [bcm
dhd])
[<7f175578>] (bcmsdh_cfg_write+0x44/0xc0 [bcmdhd]) from [<7f17ed64>] (dhdsdio_clk_kso_enab+0x38/0x16
4 [bcmdhd])
[<7f17ed64>] (dhdsdio_clk_kso_enab+0x38/0x164 [bcmdhd]) from [<7f181ec4>] (dhdsdio_clk_devsleep_iova
r+0xec/0x5c8 [bcmdhd])
[<7f181ec4>] (dhdsdio_clk_devsleep_iovar+0xec/0x5c8 [bcmdhd]) from [<7f182678>] (dhdsdio_bussleep+0x
2d8/0x498 [bcmdhd])
[<7f182678>] (dhdsdio_bussleep+0x2d8/0x498 [bcmdhd]) from [<7f1886c8>] (dhd_bus_stop+0x2e4/0x3f8 [bc
mdhd])
[<7f1886c8>] (dhd_bus_stop+0x2e4/0x3f8 [bcmdhd]) from [<7f13bb68>] (dhd_bus_detach+0x58/0x78 [bcmdhd
])
[<7f13bb68>] (dhd_bus_detach+0x58/0x78 [bcmdhd]) from [<7f13ce04>] (dhd_detach+0x33c/0x4e0 [bcmdhd])
[<7f13ce04>] (dhd_detach+0x33c/0x4e0 [bcmdhd]) from [<7f182958>] (dhdsdio_release+0x3c/0x1bc [bcmdhd
])
[<7f182958>] (dhdsdio_release+0x3c/0x1bc [bcmdhd]) from [<7f183160>] (dhdsdio_disconnect+0x38/0x94 [
bcmdhd])
[<7f183160>] (dhdsdio_disconnect+0x38/0x94 [bcmdhd]) from [<7f176014>] (bcmsdh_remove+0x20/0x44 [bcm
dhd])
[<7f176014>] (bcmsdh_remove+0x20/0x44 [bcmdhd]) from [<7f177724>] (bcmsdh_sdmmc_remove+0x4c/0x64 [bc
mdhd])
[<7f177724>] (bcmsdh_sdmmc_remove+0x4c/0x64 [bcmdhd]) from [<80556398>] (sdio_bus_remove+0x30/0xf8)
[<80556398>] (sdio_bus_remove+0x30/0xf8) from [<80393950>] (__device_release_driver+0x90/0xf0)
[<80393950>] (__device_release_driver+0x90/0xf0) from [<803939cc>] (device_release_driver+0x1c/0x28)
[<803939cc>] (device_release_driver+0x1c/0x28) from [<803934d0>] (bus_remove_device+0x108/0x128)
[<803934d0>] (bus_remove_device+0x108/0x128) from [<80390d34>] (device_del+0xf4/0x178)
[<80390d34>] (device_del+0xf4/0x178) from [<80556724>] (sdio_remove_func+0x1c/0x28)
[<80556724>] (sdio_remove_func+0x1c/0x28) from [<80554788>] (mmc_sdio_remove+0x40/0x74)
[<80554788>] (mmc_sdio_remove+0x40/0x74) from [<80554830>] (mmc_sdio_detect+0x74/0x10c)
[<80554830>] (mmc_sdio_detect+0x74/0x10c) from [<8054e0dc>] (mmc_rescan+0x1c0/0x320)
[<8054e0dc>] (mmc_rescan+0x1c0/0x320) from [<8004510c>] (process_one_work+0xfc/0x34c)
[<8004510c>] (process_one_work+0xfc/0x34c) from [<8004549c>] (worker_thread+0x140/0x3f0)
[<8004549c>] (worker_thread+0x140/0x3f0) from [<8004afac>] (kthread+0xa4/0xb0)
[<8004afac>] (kthread+0xa4/0xb0) from [<8000e158>] (ret_from_fork+0x14/0x3c)
Hi,
I noticed that Dongle Host Driver, version is 1.141.91, this is very new bcmdhd and cannot be there in kernel L3.10.53.
Can you add below debugs in file dhd_linux_platdev.c, function wifi_plat_dev_drv_probe I think wifi_plat_data is "null"
DHD_ERR(("%s wifi platform data %p\n", __FUNCTION__, adapter->wifi_plat_data));
Hi
kernel panic may be caused by driver version incompatibilty, as
L3.10.53 nxp bsp does not support bcm modules, it uses silex wifi modules.
It may be recommended to ask 3.10.53 drivers from vendor support
http:/ /wireless.murata.com/eng/products/rf-modules-1/wi-fi-bluetooth-for-nxp-i-mx.html
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
hi igorpadykov
L3.10.53是支持bcm43353 模块的;有imx6平台调通了的