[meta-freescale] WL12xx Wi-Fi on 3.10.17_1.0.0_ga release
Mobile Dev
mobiledev at msn.com
Tue Aug 26 05:10:50 PDT 2014
> Date: Mon, 25 Aug 2014 08:59:46 -0700
> From: eric.nelson at boundarydevices.com
> To: mobiledev at msn.com; meta-freescale at yoctoproject.org
> Subject: Re: [meta-freescale] WL12xx Wi-Fi on 3.10.17_1.0.0_ga release
>
> Hello, ummm... mdev.
>
> On 08/22/2014 04:18 PM, Mobile Dev wrote:
> > Apologies for the length...
> >
> > I see that [Eric's] nitrogen6x boundary tree has some devicetree patches
> > to enable the TI Wi-Fi module. I am trying to bring it up on our custom
> > board and I have a few questions:
> >
>
> Since you're asking for support, do you mind identifying yourself?
My name is Barry.
>
> > 1. Where did you get the 'calibrate' utility? There are several repos
> > out there for it.
>
> In general, we've found the calibrate utility to be more or less
> useless, and since it's a pretty big pain to get and compile,
> we haven't used it in quite a while.
>
> > 2. Did you just use the wlcore/wlcore_sdio/wl12xx drivers in the
> > 3.10.17 kernel tree or did you pull anything from
> > backports/compat-wireless/TI?
>
> You can answer that question by checking the log.
Which log?
>
> > 3. Related, did you add the compat-wireless recipe to your image?
> >
>
> Ditto.
>
> >
> > I have BT working just fine but I am having issues bringing up the Wi-Fi
> > side of the card. The first is getting it to calibrate:
> >
> > root at custom_board:/lib/firmware/ti-connectivity# ll
> > drwxr-xr-x 2 root root 4096 Aug 22 20:17 ./
> > drwxr-xr-x 4 root root 4096 Aug 22 20:11 ../
> > -rwxr-x--- 1 root root 50770 Aug 21 16:09
> > TIInit_7.6.15.bts*
> > -rwxr-x--- 1 root root 13290 Aug 21 16:40 TQS_D_1.7.ini*
> > -rwxr-x--- 1 root root 49324 Aug 21 16:16 calibrator*
> > -rwxr-x--- 1 root root 912 Aug 22 20:18 wl1271-nvs.bin*
> > -rwxr-x--- 1 root root 354600 Aug 21 16:23
> > wl127x-fw-5-mr.bin*
> > -rwxr-x--- 1 root root 352588 Aug 21 16:23
> > wl127x-fw-5-plt.bin*
> > -rwxr-x--- 1 root root 370996 Aug 21 16:23
> > wl127x-fw-5-sr.bin*
> > -rwxr-x--- 1 root root 912 Aug 21 16:23 wl127x-nvs.bin*
> > root at custom_board:/lib/firmware/ti-connectivity# lsmod
> > Module Size Used by
> > arc4 1510 2
> > wl12xx 44514 0
> > wlcore 141592 1 wl12xx
> > mac80211 226689 2 wl12xx,wlcore
> > cfg80211 178563 2 mac80211,wlcore
> > wlcore_sdio 4381 0
> > cdc_acm 14295 0
> > evbug 1476 0
> > root at custom_board:/lib/firmware/ti-connectivity# echo 152 >
> > /sys/class/gpio/export
> > root at custom_board:/lib/firmware/ti-connectivity# echo out >
> > /sys/class/gpio/gpio152/direction
> > root at custom_board:/lib/firmware/ti-connectivity# echo 0 >
> > /sys/class/gpio/gpio152/value
> > root at custom_board:/lib/firmware/ti-connectivity# cat
> > /sys/class/gpio/gpio152/value
> > 0
> > root at custom_board:/lib/firmware/ti-connectivity# echo 1 >
> > /sys/class/gpio/gpio152/value
> > root at custom_board:/lib/firmware/ti-connectivity# cat
> > /sys/class/gpio/gpio152/value
> > 0
> > root at custom_board:/lib/firmware/ti-connectivity# ./calibrator plt
> > calibrate dual
> > wlcore: power up
> > wlcore: firmware booted in PLT mode PLT_ON (PLT 6.3.10.0.133)
> > wlcore: ERROR command complete timeout
> > ------------[ cut here ]------------
> > WARNING: at drivers/net/wireless/ti/wlcore/main.c:790
> > wl12xx_queue_recovery_work+0x5c/0x60 [wlcore]()
> >
> > <snip>
> >
> > ---[ end trace 4ae41c0eeb5b4b0b ]---
> > wlcore: WARNING TEST command failed
> > wlcore: WARNING testmode cmd test failed: -110
> > Fail to calibratewlcore: power down
> >
>
> The primary challenge in use of the WL12xx against any i.MX
> device is a quirk in the use of the power-off pin. The WL12xx
> driver expects writes to the SDHCI_POWER_CONTROL register
> to control the power-off GPIO directly.
>
> http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tree/drivers/mmc/host/sdhci.c?h=imx_3.10.17_1.0.1_ga#n1289
>
> Since the i.MX SDHCI controllers don't do this, we had to add
> support for the "power-gpio".
>
I diffed the two trees again and pulled in the rest of the patches that looked applicable (http://pastebin.com/2dELkd4z). The rest appear to be video, hdmi, and rfkill related. The rfkill looked like it was just for Bluetooth so I left it out for the moment.
> >
> > Usage: ./calibrator [options] plt calibrate [<single|dual>]
> >
> > Do calibrate for single or dual band chip
> >
> >
> > Options:
> > --debug enable netlink debugging
> > root at custom_board:/lib/firmware/ti-connectivity#
> >
> >
> > I have tried various combinations of drivers and tools but they all have
> > the same error (command complete timeout). As a test I tried changing
> > the <interrupts> node in the wlan section to <23 0x2>
> > from IRQ_TYPE_LEVEL_HIGH and the error changes to timeout waiting for
> > hardware interrupt so I know it is at least talking.
> >
> > Here are the relevant device tree sections:
> >
> >
> > <snip>
> >
> > &usdhc2 {/* uSDHC2, TiWi wl1271 */
> >
> >
> > ...
> >
> > power-gpio = <&gpio5 24 0>;
> >
>
> Are you using our kernel? Have you validated your source
> tree against a Nitrogen6x or Nitrogen6_Max board?
>
> If so, then you should start looking for what's different.
I am using the freescale kernel and trying to pull Boundary's changes in. Our board is based on the SabreSD and I don't have a Nitrogen board.
>
> >
> > <snip>
> >
> > The second issue is that I can't successfully cycle the wlan0 interface
> > more than once (ifconfig up, down, up). When I try to bring it up the
> > second time, I get this:
> >
> >
> > root at custom_board:/lib/firmware/ti-connectivity# ifconfig wlan0 up
> > wlcore: ERROR timeout waiting for the hardware to complete
> > initialization
> > wlcore: ERROR timeout waiting for the hardware to complete
> > initialization
> > wlcore: ERROR timeout waiting for the hardware to complete
> > initialization
> > wlcore: ERROR firmware boot failed despite 3 retries
> > ifconfig: SIOCSIFFLAGS: Input/output error
> > root at custom_board:/lib/firmware/ti-connectivity#
> >
> >
> > I thought it was caused by this
> > (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1258174) so I
> > changed the SD clock to add a pullup but it didn't work.
> >
>
> This is the primary symptom of not having our patches in place.
After applying my new patch, I can usually bring the interface up and down without issue. Sometimes I still get this crash/recovery though. If I just run 'iw wlan0 scan' I get no results.
>
> Regards,
>
>
> Eric
Thank you,
Barry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-freescale/attachments/20140826/797fdc15/attachment-0001.html>
More information about the meta-freescale
mailing list