2011-08-29 14:00:05

by Ilya Ledvich

[permalink] [raw]
Subject: Problem with wl1271

Hi,

I'm trying to evaluate the TI WL1271 WiFi/Bluetooth chip using the RFM's
DR-WLS1271-EV evaluation kit on our CM-T35 board.
Below is the SW and HW configuration I use:
- Linux kernel version - 3.0.3
- firmware and NVS are obtained from the David Woodhouse's tree (as
recommended
in the "wl12xx" article at the Linux Wireless wiki:
http://linuxwireless.org/en/users/Drivers/wl12xx).
According to the attached log file, the driver loads the module with
/ti-connectivity/wl1271-fw-2.bin/ firmware (Rev 6.1.5.50.74). The NVS
file used
is /ti-connectivity/wl1271-nvs.bin/
- the evaluation kit is connected to the MMC-1 interface using the
MMC/SD/SDIO
slot on our SB-T35 base board
- the /arch/arm/mach-omap2/board-cm-t35.c/ file is modified as
referenced in the
/arch/arm/mach-omap2/board-zoom-peripherals.c/. The reference clock in the
*wl12xx_platform_data* struct is set to the
*WL12XX_REFCLOCK_38*(38.4MHz) value
- the *wl12xx_debug_level* is set to the following value:
*DEBUG_IRQ | DEBUG_BOOT | DEBUG_EVENT | DEBUG_SCAN | DEBUG_PSM
| DEBUG_CMD | DEBUG_ACX | DEBUG_MASTER | DEBUG_MAILBOX*

I load the wl12xx_sdio module and then set the interface up; no obvious
error
is seen. When I run any other command (e.g. interface down/up, iwlist scan).
I have "/wl1271: ERROR ELP wakeup timeout!/" error. Then the driver
tries to
recover the chip; this eventually leads to the
"/wl1271: ERROR sdio read failed (-110)/" error. The log file for
ifconfig wlan0 up - down - up sequence is attached.

Additionally, I've tried to perform the calibration as described in the
"wl12xx
Calibrator" article at
http://linuxwireless.org/en/users/Drivers/wl12xx/calibrator
The /TQS_S_2.6.ini/ file was used in order to create reference NVS file.
The calibration
procedure has been failed. The log file is attached. I read through
"WL12XX firmware"
thread here http://www.spinics.net/lists/linux-wireless/msg52687.html.
I noticed, that usually an ERROR ELP wakeup time out means that the firmware
has crashed. Additionally, I found that the wl1271 sdio needs a special SDIO
command to wakeup the firmware properly from ELP. I'm not sure it's
completely
clear to me.

Can you please advice something?

Thank you in advance.
Best regards,
Ilya.


Attachments:
wl12xx_if_up_down_up.log (113.80 kB)
wl12xx_calibrate.log (73.61 kB)
Download all attachments

2011-08-29 14:19:20

by Luciano Coelho

[permalink] [raw]
Subject: Re: Problem with wl1271

On Mon, 2011-08-29 at 16:59 +0300, Ilya Ledvich wrote:
> Hi,

Hi Ilya,

[...]


> I load the wl12xx_sdio module and then set the interface up; no obvious
> error
> is seen. When I run any other command (e.g. interface down/up, iwlist scan).
> I have "/wl1271: ERROR ELP wakeup timeout!/" error. Then the driver
> tries to
> recover the chip; this eventually leads to the
> "/wl1271: ERROR sdio read failed (-110)/" error. The log file for
> ifconfig wlan0 up - down - up sequence is attached.

This looks like an SDIO power management problem. Do you have
CONFIG_PM_RUNTIME enabled in your kernel?

Can you send us your .config and the patch where you modified the
board-cm-t35.c file?

--
Cheers,
Luca.


2011-08-31 10:31:48

by Luciano Coelho

[permalink] [raw]
Subject: Re: Problem with wl1271

Hi Ilya,

On Tue, 2011-08-30 at 17:22 +0300, Ilya Ledvich wrote:
> On 08/29/2011 05:19 PM, Luciano Coelho wrote:
> > On Mon, 2011-08-29 at 16:59 +0300, Ilya Ledvich wrote:
> >> I load the wl12xx_sdio module and then set the interface up; no obvious
> >> error
> >> is seen. When I run any other command (e.g. interface down/up, iwlist scan).
> >> I have "/wl1271: ERROR ELP wakeup timeout!/" error. Then the driver
> >> tries to
> >> recover the chip; this eventually leads to the
> >> "/wl1271: ERROR sdio read failed (-110)/" error. The log file for
> >> ifconfig wlan0 up - down - up sequence is attached.
> > This looks like an SDIO power management problem. Do you have
> > CONFIG_PM_RUNTIME enabled in your kernel?
> >
> > Can you send us your .config and the patch where you modified the
> > board-cm-t35.c file?
> >
> Hi Luciano,
> Sorry, my mailer converted the previous e-mail to html...
> I thank you for fast response.
> The required files are are attached. The CONFIG_PM_RUNTIME is enabled indeed.

This seems to be a problem in your board file. You have probably not
configured the interrupt line correctly. Are you sure all the MUXing is
correct? Also, please check the regulator settings for your card.

I have attached the patch I use to add this stuff to my beagleboard.
Take a look at it and see if you find some more information about what
you need to change in your board file.

I hope this helps.

--
Cheers,
Luca.


Attachments:
0001-omap-beagle-add-support-for-wl1271-on-the-board-file.patch (4.34 kB)

2011-08-30 14:23:20

by Ilya Ledvich

[permalink] [raw]
Subject: Re: Problem with wl1271

On 08/29/2011 05:19 PM, Luciano Coelho wrote:
> On Mon, 2011-08-29 at 16:59 +0300, Ilya Ledvich wrote:
>> Hi,
> Hi Ilya,
>
> [...]
>
>
>> I load the wl12xx_sdio module and then set the interface up; no obvious
>> error
>> is seen. When I run any other command (e.g. interface down/up, iwlist scan).
>> I have "/wl1271: ERROR ELP wakeup timeout!/" error. Then the driver
>> tries to
>> recover the chip; this eventually leads to the
>> "/wl1271: ERROR sdio read failed (-110)/" error. The log file for
>> ifconfig wlan0 up - down - up sequence is attached.
> This looks like an SDIO power management problem. Do you have
> CONFIG_PM_RUNTIME enabled in your kernel?
>
> Can you send us your .config and the patch where you modified the
> board-cm-t35.c file?
>
Hi Luciano,
Sorry, my mailer converted the previous e-mail to html...
I thank you for fast response.
The required files are are attached. The CONFIG_PM_RUNTIME is enabled indeed.

Thank you in advance.
Best regards,
Ilya.


Attachments:
0001-arm-omap3-cm-t35-enable-wl1217-wifi-on-the-mmc0-bus.patch (1.68 kB)
.config (61.28 kB)
Download all attachments

2011-09-06 12:09:00

by Ilya Ledvich

[permalink] [raw]
Subject: Re: Problem with wl1271

On 09/05/2011 11:08 AM, Ilya Ledvich wrote:
> On 08/31/2011 01:31 PM, Luciano Coelho wrote:
>> Hi Ilya,
>>
>> On Tue, 2011-08-30 at 17:22 +0300, Ilya Ledvich wrote:
>>> On 08/29/2011 05:19 PM, Luciano Coelho wrote:
>>>> On Mon, 2011-08-29 at 16:59 +0300, Ilya Ledvich wrote:
>>>>> I load the wl12xx_sdio module and then set the interface up; no
>>>>> obvious
>>>>> error
>>>>> is seen. When I run any other command (e.g. interface down/up,
>>>>> iwlist scan).
>>>>> I have "/wl1271: ERROR ELP wakeup timeout!/" error. Then the driver
>>>>> tries to
>>>>> recover the chip; this eventually leads to the
>>>>> "/wl1271: ERROR sdio read failed (-110)/" error. The log file for
>>>>> ifconfig wlan0 up - down - up sequence is attached.
>>>> This looks like an SDIO power management problem. Do you have
>>>> CONFIG_PM_RUNTIME enabled in your kernel?
>>>>
>>>> Can you send us your .config and the patch where you modified the
>>>> board-cm-t35.c file?
>>>>
>>> Hi Luciano,
>>> Sorry, my mailer converted the previous e-mail to html...
>>> I thank you for fast response.
>>> The required files are are attached. The CONFIG_PM_RUNTIME is enabled
>>> indeed.
>>
>> This seems to be a problem in your board file. You have probably not
>> configured the interrupt line correctly. Are you sure all the MUXing is
>> correct? Also, please check the regulator settings for your card.
>>
>> I have attached the patch I use to add this stuff to my beagleboard.
>> Take a look at it and see if you find some more information about what
>> you need to change in your board file.
>>
>> I hope this helps.
>>
> Hi,
>
> First, thank you all for the help.
> I moved the evaluation kit from the mmc[0] (OMAP MMC 1 controller) to
> the mmc[1] (OMAP MMC 2 controller) because I had some problem with the
> VMMC1 regulator registration that I didn't manage to fix.
> Additionally, I connected the WLAN_EN pin to the GPIO170. The WLAN_IRQ
> pin is still not connected. Is it possible to use the SDIO IRQ instead?
> (The comment line in the struct wl12xx_platform_data defined in the
> include/linux/wl12xx.h: /* SDIO only: IRQ number if WLAN_IRQ line is
> used, 0 for SDIO IRQs */ states it's possible). Otherwise we have to
> make hardware changes (wire up) on the evalkit that is not desired
> because we have no schematics of the evaluation board.
> I added the missing code for the fixed regulator including the GPIO170
> in the board file. The patch is attached.
> I checked the MUXing as well. Everything excepting the GPIO170 is done
> in the omap_hsmmc_mux() function. The GPIO170 mux configuration is added
> in the patch.
> However I still having the same error and the module behaviour is still
> the same.
> Do you think connecting the WLAN_IRQ pin to a GPIO most probably fixes
> the problem?
> Thank you in advance.
> Best regards,
> Ilya.
>
>
>
Hi,

We managed to found and connect the WLAN_IRQ line to a OMAP GPIO pin.
As a result the problem is fixed, and the module appears to be
working!
Thank you all. Special thanks for Luciano and Ido. Your assistance is
keenly appreciated!

Best regards,
Ilya.

2011-09-05 08:09:23

by Ilya Ledvich

[permalink] [raw]
Subject: Re: Problem with wl1271

On 08/31/2011 01:31 PM, Luciano Coelho wrote:
> Hi Ilya,
>
> On Tue, 2011-08-30 at 17:22 +0300, Ilya Ledvich wrote:
>> On 08/29/2011 05:19 PM, Luciano Coelho wrote:
>>> On Mon, 2011-08-29 at 16:59 +0300, Ilya Ledvich wrote:
>>>> I load the wl12xx_sdio module and then set the interface up; no obvious
>>>> error
>>>> is seen. When I run any other command (e.g. interface down/up, iwlist scan).
>>>> I have "/wl1271: ERROR ELP wakeup timeout!/" error. Then the driver
>>>> tries to
>>>> recover the chip; this eventually leads to the
>>>> "/wl1271: ERROR sdio read failed (-110)/" error. The log file for
>>>> ifconfig wlan0 up - down - up sequence is attached.
>>> This looks like an SDIO power management problem. Do you have
>>> CONFIG_PM_RUNTIME enabled in your kernel?
>>>
>>> Can you send us your .config and the patch where you modified the
>>> board-cm-t35.c file?
>>>
>> Hi Luciano,
>> Sorry, my mailer converted the previous e-mail to html...
>> I thank you for fast response.
>> The required files are are attached. The CONFIG_PM_RUNTIME is enabled indeed.
>
> This seems to be a problem in your board file. You have probably not
> configured the interrupt line correctly. Are you sure all the MUXing is
> correct? Also, please check the regulator settings for your card.
>
> I have attached the patch I use to add this stuff to my beagleboard.
> Take a look at it and see if you find some more information about what
> you need to change in your board file.
>
> I hope this helps.
>
Hi,

First, thank you all for the help.
I moved the evaluation kit from the mmc[0] (OMAP MMC 1 controller) to
the mmc[1] (OMAP MMC 2 controller) because I had some problem with the
VMMC1 regulator registration that I didn't manage to fix.
Additionally, I connected the WLAN_EN pin to the GPIO170. The WLAN_IRQ
pin is still not connected. Is it possible to use the SDIO IRQ instead?
(The comment line in the struct wl12xx_platform_data defined in the
include/linux/wl12xx.h: /* SDIO only: IRQ number if WLAN_IRQ line is
used, 0 for SDIO IRQs */ states it's possible). Otherwise we have to
make hardware changes (wire up) on the evalkit that is not desired
because we have no schematics of the evaluation board.
I added the missing code for the fixed regulator including the GPIO170
in the board file. The patch is attached.
I checked the MUXing as well. Everything excepting the GPIO170 is done
in the omap_hsmmc_mux() function. The GPIO170 mux configuration is added
in the patch.
However I still having the same error and the module behaviour is still
the same.
Do you think connecting the WLAN_IRQ pin to a GPIO most probably fixes
the problem?
Thank you in advance.
Best regards,
Ilya.




Attachments:
0001-arm-omap3-cm-t35-enable-wl1217-wifi-on-the-mmc-1-bus.patch (3.49 kB)