2016-02-02 04:34:54

by Sebastian Reichel

[permalink] [raw]
Subject: Re: linux-4.5-rc1 TI pandboard-es wifi wlcore locks and reset

Hi,

On Mon, Feb 01, 2016 at 11:38:38PM +1100, Ross Green wrote:
> On Mon, Jan 25, 2016 at 11:47 PM, Ross Green <[email protected]> wrote:
> > Just tried the new kernel release on faithful pandaboard es with the
> > new 4.5-rc1 release.
> >
> > There is a problem with the wifi modules once the modules are loaded.
> > Looks like the wifi firmware gets loaded put no response after that
> > causing recovery action.
> >
> > the kernel 4.4 works quite happily with this board.
> >
> > Here is a dmesg dump in the attachment.
> >
> > Anyone have any ideas here?
>
> Just updated to the latest linux-4.5-rc2 and same result as rc1.
>
> The wireless module loads firmware and then stalls causing a reset of
> the device and then continues to go through a stall and reset cycle.
>
> please find enclosed a copy of the dmesg output.
>
> Is there anyone else testing a pandaboard with linux-4.5-rc2?
>
> Just for completeness also tested the latest linux-4.4.1 kernel and
> found no problems with the wireless modules.

I can see the same problem with Nokia N950 (which uses spi connected
wl1271). v4.4 + wl12xx spi DT patches from Uri Mashiach worked, v4.5
+ the same patches does not work. I currently suspect 133b7326e960
or 3719c17e1816 to be the culprit. I have not yet verified it, though.

Have you tried to bisect the problem?

-- Sebastian


Attachments:
(No filename) (1.32 kB)
signature.asc (819.00 B)
Download all attachments

2016-02-08 22:59:12

by Emil Goode

[permalink] [raw]
Subject: Re: wl12xx regression on 4.5 (was: Re: linux-4.5-rc1 TI pandboard-es wifi wlcore locks and reset)

Hello Ross,

On Mon, Feb 08, 2016 at 07:26:34PM +1100, Ross Green wrote:
> On Mon, Feb 8, 2016 at 9:05 AM, Emil Goode <[email protected]> wrote:
> > Hello,
> >
> > On Tue, Feb 02, 2016 at 05:05:38PM +0100, Sebastian Reichel wrote:
> >> On Tue, Feb 02, 2016 at 04:41:13PM +1100, Ross Green wrote:
> >> > On Tue, Feb 2, 2016 at 3:34 PM, Sebastian Reichel <[email protected]> wrote:
> >> > > On Mon, Feb 01, 2016 at 11:38:38PM +1100, Ross Green wrote:
> >> > >> On Mon, Jan 25, 2016 at 11:47 PM, Ross Green <[email protected]> wrote:
> >> > >> > Just tried the new kernel release on faithful pandaboard es with the
> >> > >> > new 4.5-rc1 release.
> >> > >> >
> >> > >> > There is a problem with the wifi modules once the modules are loaded.
> >> > >> > Looks like the wifi firmware gets loaded put no response after that
> >> > >> > causing recovery action.
> >> > >> >
> >> > >> > the kernel 4.4 works quite happily with this board.
> >> > >> >
> >> > >> > Here is a dmesg dump in the attachment.
> >> > >> >
> >> > >> > Anyone have any ideas here?
> >> >
> >> > [...]
> >> >
> >> > If I get time, this evening, I'll see if I can give a bisect a try.
> >>
> >> On N950 [wl1271 via SPI, using extra patches to init from DT] I get wifi
> >> working again on 4.5-rc1 with 3719c17e1816 ("wlcore/wl18xx: fw logger
> >> over sdio") reverted.
> >
> > Reverting the changes in wlcore_set_partition() as below seem to help.
> >
> > Best regards,
> >
> > Emil Goode
> >
> > 8<--------
> >
> > --- a/drivers/net/wireless/ti/wlcore/io.c
> > +++ b/drivers/net/wireless/ti/wlcore/io.c
> > @@ -175,14 +175,15 @@ int wlcore_set_partition(struct wl1271 *wl,
> > if (ret < 0)
> > goto out;
> >
> > + /*
> > + * We don't need the size of the last partition, as it is
> > + * automatically calculated based on the total memory size and
> > + * the sizes of the previous partitions.
> > + */
> > ret = wlcore_raw_write32(wl, HW_PART3_START_ADDR, p->mem3.start);
> > if (ret < 0)
> > goto out;
> >
> > - ret = wlcore_raw_write32(wl, HW_PART3_SIZE_ADDR, p->mem3.size);
> > - if (ret < 0)
> > - goto out;
> > -
> > out:
> > return ret;
> > }
> > diff --git a/drivers/net/wireless/ti/wlcore/io.h b/drivers/net/wireless/ti/wlcore/io.h
> > index 6c257b5..10cf374 100644
> > --- a/drivers/net/wireless/ti/wlcore/io.h
> > +++ b/drivers/net/wireless/ti/wlcore/io.h
> > @@ -36,8 +36,8 @@
> > #define HW_PART1_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 12)
> > #define HW_PART2_SIZE_ADDR (HW_PARTITION_REGISTERS_ADDR + 16)
> > #define HW_PART2_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 20)
> > -#define HW_PART3_SIZE_ADDR (HW_PARTITION_REGISTERS_ADDR + 24)
> > -#define HW_PART3_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 28)
> > +#define HW_PART3_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 24)
> > +
> > #define HW_ACCESS_REGISTER_SIZE 4
> >
> > #define HW_ACCESS_PRAM_MAX_RANGE 0x3c000
> >
>
> Thanks Emil,
>
> Just tested linux-4.5-rc3 with the above patch and confirm everything
> works as expected. So it would be good if this patch can find its way
> into linux-4.5-rc4.
>
> So all is happy with the wlcore code with this patch.
> Now I can continue with the rest of the testing ;-)

Thank you for testing!

I'm not familiar with this code so it would be good to get a comment from ti developers,
if not I will send this fix.

Best regards,

Emil Goode

2016-02-03 06:25:17

by Ross Green

[permalink] [raw]
Subject: Re: wl12xx regression on 4.5 (was: Re: linux-4.5-rc1 TI pandboard-es wifi wlcore locks and reset)

On Wed, Feb 3, 2016 at 3:05 AM, Sebastian Reichel <[email protected]> wrote:
> Hi Ross,
>
> Please don't top-post on kernel mailinglists. Use either inline
> style or bottom posting.
>
> On Tue, Feb 02, 2016 at 04:41:13PM +1100, Ross Green wrote:
>> On Tue, Feb 2, 2016 at 3:34 PM, Sebastian Reichel <[email protected]> wrote:
>> > On Mon, Feb 01, 2016 at 11:38:38PM +1100, Ross Green wrote:
>> >> On Mon, Jan 25, 2016 at 11:47 PM, Ross Green <[email protected]> wrote:
>> >> > Just tried the new kernel release on faithful pandaboard es with the
>> >> > new 4.5-rc1 release.
>> >> >
>> >> > There is a problem with the wifi modules once the modules are loaded.
>> >> > Looks like the wifi firmware gets loaded put no response after that
>> >> > causing recovery action.
>> >> >
>> >> > the kernel 4.4 works quite happily with this board.
>> >> >
>> >> > Here is a dmesg dump in the attachment.
>> >> >
>> >> > Anyone have any ideas here?
>>
>> [...]
>>
>> If I get time, this evening, I'll see if I can give a bisect a try.
>
> On N950 [wl1271 via SPI, using extra patches to init from DT] I get wifi
> working again on 4.5-rc1 with 3719c17e1816 ("wlcore/wl18xx: fw logger
> over sdio") reverted.
>
> -- Sebastian

For the pandaboard using

for 4.5

CONFIG_WLAN_VENDOR_TI=y
CONFIG_WL12XX=m
CONFIG_WLCORE=m
CONFIG_WLCORE_SDIO=m
CONFIG_WILINK_PLATFORM_DATA=y

so I suspect it is something to do with modifications to wlcore,
wlcore_sdio, or wl12xx that have been applied.

Given there are similar problems with the SPI interface then it is
more likely to be problems in the wlcore modifications.

Shahar have these been tested on a pandaboard omap4 setup?

Regards,

Ross

2016-02-08 08:26:36

by Ross Green

[permalink] [raw]
Subject: Re: wl12xx regression on 4.5 (was: Re: linux-4.5-rc1 TI pandboard-es wifi wlcore locks and reset)

On Mon, Feb 8, 2016 at 9:05 AM, Emil Goode <[email protected]> wrote:
> Hello,
>
> On Tue, Feb 02, 2016 at 05:05:38PM +0100, Sebastian Reichel wrote:
>> On Tue, Feb 02, 2016 at 04:41:13PM +1100, Ross Green wrote:
>> > On Tue, Feb 2, 2016 at 3:34 PM, Sebastian Reichel <[email protected]> wrote:
>> > > On Mon, Feb 01, 2016 at 11:38:38PM +1100, Ross Green wrote:
>> > >> On Mon, Jan 25, 2016 at 11:47 PM, Ross Green <[email protected]> wrote:
>> > >> > Just tried the new kernel release on faithful pandaboard es with the
>> > >> > new 4.5-rc1 release.
>> > >> >
>> > >> > There is a problem with the wifi modules once the modules are loaded.
>> > >> > Looks like the wifi firmware gets loaded put no response after that
>> > >> > causing recovery action.
>> > >> >
>> > >> > the kernel 4.4 works quite happily with this board.
>> > >> >
>> > >> > Here is a dmesg dump in the attachment.
>> > >> >
>> > >> > Anyone have any ideas here?
>> >
>> > [...]
>> >
>> > If I get time, this evening, I'll see if I can give a bisect a try.
>>
>> On N950 [wl1271 via SPI, using extra patches to init from DT] I get wifi
>> working again on 4.5-rc1 with 3719c17e1816 ("wlcore/wl18xx: fw logger
>> over sdio") reverted.
>
> Reverting the changes in wlcore_set_partition() as below seem to help.
>
> Best regards,
>
> Emil Goode
>
> 8<--------
>
> --- a/drivers/net/wireless/ti/wlcore/io.c
> +++ b/drivers/net/wireless/ti/wlcore/io.c
> @@ -175,14 +175,15 @@ int wlcore_set_partition(struct wl1271 *wl,
> if (ret < 0)
> goto out;
>
> + /*
> + * We don't need the size of the last partition, as it is
> + * automatically calculated based on the total memory size and
> + * the sizes of the previous partitions.
> + */
> ret = wlcore_raw_write32(wl, HW_PART3_START_ADDR, p->mem3.start);
> if (ret < 0)
> goto out;
>
> - ret = wlcore_raw_write32(wl, HW_PART3_SIZE_ADDR, p->mem3.size);
> - if (ret < 0)
> - goto out;
> -
> out:
> return ret;
> }
> diff --git a/drivers/net/wireless/ti/wlcore/io.h b/drivers/net/wireless/ti/wlcore/io.h
> index 6c257b5..10cf374 100644
> --- a/drivers/net/wireless/ti/wlcore/io.h
> +++ b/drivers/net/wireless/ti/wlcore/io.h
> @@ -36,8 +36,8 @@
> #define HW_PART1_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 12)
> #define HW_PART2_SIZE_ADDR (HW_PARTITION_REGISTERS_ADDR + 16)
> #define HW_PART2_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 20)
> -#define HW_PART3_SIZE_ADDR (HW_PARTITION_REGISTERS_ADDR + 24)
> -#define HW_PART3_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 28)
> +#define HW_PART3_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 24)
> +
> #define HW_ACCESS_REGISTER_SIZE 4
>
> #define HW_ACCESS_PRAM_MAX_RANGE 0x3c000
>



Thanks Emil,

Just tested linux-4.5-rc3 with the above patch and confirm everything
works as expected. So it would be good if this patch can find its way
into linux-4.5-rc4.



here is a portion of the dmesg:
# dmesg
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.5.0-rc3-panda ([email protected]) (gcc
version 5.3.0 (Buildroot 2016.02-git-00183-g1682aee) ) #1 S6
[ 0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7),
cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[ 0.000000] Machine model: TI OMAP4 PandaBoard-ES
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] OMAP4: Map 0xbfe00000 to fe600000 for dram barrier
[ 0.000000] On node 0 totalpages: 261632

...
...[ 39.164764] wlcore: loaded
[ 52.577209] wlcore: firmware booted (Rev 6.3.10.0.133)
[ 56.101531] wlan0: authenticate with 90:f6:52:81:ee:70
[ 56.138732] wlan0: send auth to 90:f6:52:81:ee:70 (try 1/3)
[ 56.146728] wlan0: authenticated
[ 56.162078] wlan0: associate with 90:f6:52:81:ee:70 (try 1/3)
[ 56.172821] wlan0: RX AssocResp from 90:f6:52:81:ee:70 (capab=0x431
status=0 aid=1)
[ 56.188201] wlan0: associated
[ 56.244812] wlcore: Association completed.


So all is happy with the wlcore code with this patch.
Now I can continue with the rest of the testing ;-)

Regards,

Ross Green

2016-02-07 22:13:47

by Emil Goode

[permalink] [raw]
Subject: Re: wl12xx regression on 4.5 (was: Re: linux-4.5-rc1 TI pandboard-es wifi wlcore locks and reset)

Hello,

On Tue, Feb 02, 2016 at 05:05:38PM +0100, Sebastian Reichel wrote:
> On Tue, Feb 02, 2016 at 04:41:13PM +1100, Ross Green wrote:
> > On Tue, Feb 2, 2016 at 3:34 PM, Sebastian Reichel <[email protected]> wrote:
> > > On Mon, Feb 01, 2016 at 11:38:38PM +1100, Ross Green wrote:
> > >> On Mon, Jan 25, 2016 at 11:47 PM, Ross Green <[email protected]> wrote:
> > >> > Just tried the new kernel release on faithful pandaboard es with the
> > >> > new 4.5-rc1 release.
> > >> >
> > >> > There is a problem with the wifi modules once the modules are loaded.
> > >> > Looks like the wifi firmware gets loaded put no response after that
> > >> > causing recovery action.
> > >> >
> > >> > the kernel 4.4 works quite happily with this board.
> > >> >
> > >> > Here is a dmesg dump in the attachment.
> > >> >
> > >> > Anyone have any ideas here?
> >
> > [...]
> >
> > If I get time, this evening, I'll see if I can give a bisect a try.
>
> On N950 [wl1271 via SPI, using extra patches to init from DT] I get wifi
> working again on 4.5-rc1 with 3719c17e1816 ("wlcore/wl18xx: fw logger
> over sdio") reverted.

Reverting the changes in wlcore_set_partition() as below seem to help.

Best regards,

Emil Goode

8<--------

--- a/drivers/net/wireless/ti/wlcore/io.c
+++ b/drivers/net/wireless/ti/wlcore/io.c
@@ -175,14 +175,15 @@ int wlcore_set_partition(struct wl1271 *wl,
if (ret < 0)
goto out;

+ /*
+ * We don't need the size of the last partition, as it is
+ * automatically calculated based on the total memory size and
+ * the sizes of the previous partitions.
+ */
ret = wlcore_raw_write32(wl, HW_PART3_START_ADDR, p->mem3.start);
if (ret < 0)
goto out;

- ret = wlcore_raw_write32(wl, HW_PART3_SIZE_ADDR, p->mem3.size);
- if (ret < 0)
- goto out;
-
out:
return ret;
}
diff --git a/drivers/net/wireless/ti/wlcore/io.h b/drivers/net/wireless/ti/wlcore/io.h
index 6c257b5..10cf374 100644
--- a/drivers/net/wireless/ti/wlcore/io.h
+++ b/drivers/net/wireless/ti/wlcore/io.h
@@ -36,8 +36,8 @@
#define HW_PART1_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 12)
#define HW_PART2_SIZE_ADDR (HW_PARTITION_REGISTERS_ADDR + 16)
#define HW_PART2_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 20)
-#define HW_PART3_SIZE_ADDR (HW_PARTITION_REGISTERS_ADDR + 24)
-#define HW_PART3_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 28)
+#define HW_PART3_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 24)
+
#define HW_ACCESS_REGISTER_SIZE 4

#define HW_ACCESS_PRAM_MAX_RANGE 0x3c000


2016-02-02 16:05:52

by Sebastian Reichel

[permalink] [raw]
Subject: wl12xx regression on 4.5 (was: Re: linux-4.5-rc1 TI pandboard-es wifi wlcore locks and reset)

Hi Ross,

Please don't top-post on kernel mailinglists. Use either inline
style or bottom posting.

On Tue, Feb 02, 2016 at 04:41:13PM +1100, Ross Green wrote:
> On Tue, Feb 2, 2016 at 3:34 PM, Sebastian Reichel <[email protected]> wrote:
> > On Mon, Feb 01, 2016 at 11:38:38PM +1100, Ross Green wrote:
> >> On Mon, Jan 25, 2016 at 11:47 PM, Ross Green <[email protected]> wrote:
> >> > Just tried the new kernel release on faithful pandaboard es with the
> >> > new 4.5-rc1 release.
> >> >
> >> > There is a problem with the wifi modules once the modules are loaded.
> >> > Looks like the wifi firmware gets loaded put no response after that
> >> > causing recovery action.
> >> >
> >> > the kernel 4.4 works quite happily with this board.
> >> >
> >> > Here is a dmesg dump in the attachment.
> >> >
> >> > Anyone have any ideas here?
>
> [...]
>
> If I get time, this evening, I'll see if I can give a bisect a try.

On N950 [wl1271 via SPI, using extra patches to init from DT] I get wifi
working again on 4.5-rc1 with 3719c17e1816 ("wlcore/wl18xx: fw logger
over sdio") reverted.

-- Sebastian


Attachments:
(No filename) (1.07 kB)
signature.asc (819.00 B)
Download all attachments

2016-02-02 05:41:15

by Ross Green

[permalink] [raw]
Subject: Re: linux-4.5-rc1 TI pandboard-es wifi wlcore locks and reset

I have not tried a bisect yet, but I can confirm 4.4 and 4.4.1 work.
4.5-rc1 and 4.5-rc2 don't work.

It appears the tx to device times out and then just goes into reset of
the device to try and recover. A tx to device seems not to work.
although somehow firmware has been loaded to the device. So some types
of tx might work. Strange!

There were quite a few omap and omap4 plus patches that have come
along recently. so the culprit is in there somewhere. These machines
have been rock solid for quite some time.

If I get time, this evening, I'll see if I can give a bisect a try.

Regards,

Ross Green

On Tue, Feb 2, 2016 at 3:34 PM, Sebastian Reichel <[email protected]> wrote:
> Hi,
>
> On Mon, Feb 01, 2016 at 11:38:38PM +1100, Ross Green wrote:
>> On Mon, Jan 25, 2016 at 11:47 PM, Ross Green <[email protected]> wrote:
>> > Just tried the new kernel release on faithful pandaboard es with the
>> > new 4.5-rc1 release.
>> >
>> > There is a problem with the wifi modules once the modules are loaded.
>> > Looks like the wifi firmware gets loaded put no response after that
>> > causing recovery action.
>> >
>> > the kernel 4.4 works quite happily with this board.
>> >
>> > Here is a dmesg dump in the attachment.
>> >
>> > Anyone have any ideas here?
>>
>> Just updated to the latest linux-4.5-rc2 and same result as rc1.
>>
>> The wireless module loads firmware and then stalls causing a reset of
>> the device and then continues to go through a stall and reset cycle.
>>
>> please find enclosed a copy of the dmesg output.
>>
>> Is there anyone else testing a pandaboard with linux-4.5-rc2?
>>
>> Just for completeness also tested the latest linux-4.4.1 kernel and
>> found no problems with the wireless modules.
>
> I can see the same problem with Nokia N950 (which uses spi connected
> wl1271). v4.4 + wl12xx spi DT patches from Uri Mashiach worked, v4.5
> + the same patches does not work. I currently suspect 133b7326e960
> or 3719c17e1816 to be the culprit. I have not yet verified it, though.
>
> Have you tried to bisect the problem?
>
> -- Sebastian