Other Parts Discussed in Thread: WL1835
Tool/software: Linux
Team,
I am receiving reports from my customer that the WiLink8 integration may be broken in the latest SDK 4.0 for the Sitara AM3352 (BZCE60) with respect to the previous SDK 3.2. They are very motivated to migrate to the latest 2017 LTS release for product support and also some USB stability improvements found in this platform.
- Do we have any reports of customers having trouble with WL1835 WiFi via SDIO in the new SDK 4.0?
- Is there additional kernel or device tree configuration required for WiLink8 / SDIO in the latest platform?
It appears that the WiFi does work (very) occasionally, but the majority of the time the driver initialisation fails - all of which appear to be different complications in performing SDIO transactions with the WL8 (examples below are all with built-in kernel drivers, but it is reported that they see much the same when built as modules, but further on in the startup process).
On the rare occasions it successfully powers up the device, it proceeds to do the firmware upload later in startup and the wlan0 device appears. NOTE: This works quite happily on same hardware with same device tree source but kernel 4.4.32 from SDK 3.2.
Doesn’t seem to make any difference whether it is a reboot or a full power cycle either...We are pretty confident that the hardware and power is correctly setup in both cases.
Any suggestions or additional tips to debug this ? The customer has diffed the WL8 and MMC drivers between 4.4.32 and 4.9.28, but it is characteristically very difficult to assess which of the changes might be relevant.
Regards,
Garry
Failure cases captured:
=====================8x-------------------------------------------
Case 1:
[ 1.897953] wlan_en_fixed: regulator_enable: = 0 [ 1.902616] mmc_regulator_set_ocr: regulator_enable() = 0 [ 1.908121] mmc_regulator_set_ocr: regulator_set_voltage() = 0 [ 1.967920] mmc_power_up: on [ 1.970854] mmc_power_up: already on [ 1.975333] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2 [ 1.982647] omap-aes 53500000.aes: will run requests pump with realtime priority [ 1.992924] omap_hsmmc 47810000.mmc: card claims to support voltages below defined range [ 2.016843] mmc1: new high speed SDIO card at address 0001 [ 2.031346] omap-sham 53100000.sham: hw accel on OMAP rev 4.3 [ 2.039907] wl1271_sdio mmc1:0001:2: sdio PM caps = 0x1 [ 2.046998] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl18xx-conf.bin failed with error -2 [ 2.061771] wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2 [ 2.071120] wlcore: WARNING falling back to default config [ 2.076649] wlcore: ERROR wl18xx_setup: done [ 2.086570] usbcore: registered new interface driver snd-usb-audio [ 2.096848] NET: Registered protocol family 10 [ 2.103186] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 2.110487] NET: Registered protocol family 17 [ 2.115023] Key type dns_resolver registered [ 2.119450] wl12xx_sdio_power_on: enter [ 2.119459] wl12xx_sdio_power_on: pm_runtime_get_sync() = 1 [ 2.119466] mmc_power_up: already on [ 2.147326] mmc_sdio_power_restore: mmc_send_io_op_cond() = 0 [ 2.166405] omap_voltage_late_init: Voltage driver support not added [ 2.173221] mmc1: queuing unknown CIS tuple 0x08 (0 bytes) [ 2.173377] mmc_sdio_power_restore: mmc_sdio_init_card() = -2 [ 2.173392] wl12xx_sdio_power_on: mmc_power_restore_host() = -2 [ 2.173396] wl12xx_sdio_power_on: = -2 [ 2.173401] wlcore: ERROR couldn't set power on [ 2.173494] wlan_en_fixed: regulator_disable: enter [ 2.173512] wlan_en_fixed: regulator_ena_gpio_ctrl: disable (0) [ 2.173518] wlan_en_fixed: regulator_disable: = 0 [ 2.173525] mmc_regulator_set_ocr: regulator_disable() = 0 [ 2.174530] mmc_power_off: off [ 2.231751] adc310x_i2c_probe: Enter
Case 2:
[ 1.878790] random: fast init done [ 1.897950] wlan_en_fixed: regulator_enable: = 0 [ 1.902612] mmc_regulator_set_ocr: regulator_enable() = 0 [ 1.908116] mmc_regulator_set_ocr: regulator_set_voltage() = 0 [ 1.967911] mmc_power_up: on [ 1.970844] mmc_power_up: already on [ 1.975335] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2 [ 1.982652] omap-aes 53500000.aes: will run requests pump with realtime priority [ 1.992881] omap_hsmmc 47810000.mmc: card claims to support voltages below defined range [ 2.016854] mmc1: new high speed SDIO card at address 0001 [ 2.031346] omap-sham 53100000.sham: hw accel on OMAP rev 4.3 [ 2.038612] wl1271_sdio mmc1:0001:2: sdio PM caps = 0x1 [ 2.045926] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl18xx-conf.bin failed with error -2 [ 2.059579] wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2 [ 2.070798] wlcore: WARNING falling back to default config [ 2.076573] wlcore: ERROR wl18xx_setup: done [ 2.086536] usbcore: registered new interface driver snd-usb-audio [ 2.096750] NET: Registered protocol family 10 [ 2.103115] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 2.110404] NET: Registered protocol family 17 [ 2.114938] Key type dns_resolver registered [ 2.119363] wl12xx_sdio_power_on: enter [ 2.119372] wl12xx_sdio_power_on: pm_runtime_get_sync() = 1 [ 2.119380] mmc_power_up: already on [ 2.147234] mmc_sdio_power_restore: mmc_send_io_op_cond() = 0 [ 2.150070] mmc1: queuing unknown CIS tuple 0x04 (151 bytes) [ 2.211591] omap_voltage_late_init: Voltage driver support not added [ 2.256783] mmc1: bad CISTPL_FUNCE tuple 0x01 (42 bytes) [ 2.262208] mmc1: bad CIS tuple 0x22 (42 bytes) [ 2.266767] mmc_sdio_power_restore: mmc_sdio_init_card() = -22 [ 2.272666] wl12xx_sdio_power_on: mmc_power_restore_host() = -22 [ 2.278719] wl12xx_sdio_power_on: = -22 [ 2.282571] wlcore: ERROR couldn't set power on [ 2.288116] wlan_en_fixed: regulator_disable: enter [ 2.293052] wlan_en_fixed: regulator_ena_gpio_ctrl: disable (0) [ 2.300056] adc310x_i2c_probe: Enter
Case 3:
[ 1.878814] random: fast init done [ 1.897974] wlan_en_fixed: regulator_enable: = 0 [ 1.902635] mmc_regulator_set_ocr: regulator_enable() = 0 [ 1.908138] mmc_regulator_set_ocr: regulator_set_voltage() = 0 [ 1.967941] mmc_power_up: on [ 1.970874] mmc_power_up: already on [ 1.975352] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2 [ 1.982666] omap-aes 53500000.aes: will run requests pump with realtime priority [ 1.992951] omap_hsmmc 47810000.mmc: card claims to support voltages below defined range [ 2.016836] mmc1: new high speed SDIO card at address 0001 [ 2.031296] omap-sham 53100000.sham: hw accel on OMAP rev 4.3 [ 2.039907] wl1271_sdio mmc1:0001:2: sdio PM caps = 0x1 [ 2.047043] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl18xx-conf.bin failed with error -2 [ 2.061928] wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2 [ 2.071500] wlcore: WARNING falling back to default config [ 2.077593] wlcore: ERROR wl18xx_setup: done [ 2.086735] usbcore: registered new interface driver snd-usb-audio [ 2.096920] NET: Registered protocol family 10 [ 2.103156] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 2.110544] NET: Registered protocol family 17 [ 2.115086] Key type dns_resolver registered [ 2.119515] wl12xx_sdio_power_on: enter [ 2.119523] wl12xx_sdio_power_on: pm_runtime_get_sync() = 1 [ 2.119531] mmc_power_up: already on [ 2.147393] mmc_sdio_power_restore: mmc_send_io_op_cond() = 0 [ 2.147673] mmc1: queuing unknown CIS tuple 0x03 (2 bytes) [ 2.147787] mmc1: queuing unknown CIS tuple 0x12 (0 bytes) [ 2.148025] mmc1: queuing unknown CIS tuple 0x01 (0 bytes) [ 2.148087] mmc1: queuing unknown CIS tuple 0x01 (0 bytes) [ 2.148830] mmc1: queuing unknown CIS tuple 0x01 (0 bytes) [ 2.149933] mmc1: queuing unknown CIS tuple 0x01 (63 bytes) [ 2.151956] mmc1: queuing unknown CIS tuple 0x0a (0 bytes) [ 2.152203] mmc1: bad CIS tuple 0x20 (0 bytes) [ 2.152210] mmc_sdio_power_restore: mmc_sdio_init_card() = -22 [ 2.152223] wl12xx_sdio_power_on: mmc_power_restore_host() = -22 [ 2.152228] wl12xx_sdio_power_on: = -22 [ 2.152231] wlcore: ERROR couldn't set power on [ 2.152327] wlan_en_fixed: regulator_disable: enter [ 2.152346] wlan_en_fixed: regulator_ena_gpio_ctrl: disable (0) [ 2.152352] wlan_en_fixed: regulator_disable: = 0 [ 2.152358] mmc_regulator_set_ocr: regulator_disable() = 0 [ 2.153363] mmc_power_off: off [ 2.260097] omap_voltage_late_init: Voltage driver support not added [ 2.273851] adc310x_i2c_probe: Enter
... I have asked for a log of a successful WL1835 start-up.