v4.9.x-ti now open for testing...

* Jason Kridner <jkridner@beagleboard.org> [161209 19:43]:

* Robert Nelson <robertcnelson@gmail.com> [161209 18:29]:

firmware: wl18xx-conf.bin

https://github.com/rcn-ee/repos/tree/master/bb-wl18xx-firmware/suite/jessie/debian

It was generated by wlconf, this version:

https://github.com/rcn-ee/repos/tree/master/ti-wlconf

so git: d39cb9d35247ad6c06542fbac1d40a7c5bcb9856

http://git.ti.com/cgit/cgit.cgi/wilink8-wlan/18xx-ti-utils.git/log/

R8.6SP1

http://git.ti.com/cgit/cgit.cgi/wilink8-wlan/18xx-ti-utils.git/commit/?id=d39cb9d35247ad6c06542fbac1d40a7c5bcb9856

on the bbgw via:

sudo wlconf -o /lib/firmware/ti-connectivity/wl18xx-conf.bin -I
WL1835MOD_INI_C2PC.ini

this was the version Seeed sent in FCC stuff, i think the original
WL1835MOD_INI_C2PC.ini came from CircuitCo for the original wl18xx
cape...

Hmm so maybe that's the missing %1.. I wonder what device the
linux-firmware version of the firmware is supposed to be for?

Regards,

Tony

* Tony Lindgren <tony@atomide.com> [161212 10:58]:

* Robert Nelson <robertcnelson@gmail.com> [161209 18:29]:
> firmware: wl18xx-conf.bin
>
> https://github.com/rcn-ee/repos/tree/master/bb-wl18xx-firmware/suite/jessie/debian
>
> It was generated by wlconf, this version:
>
> https://github.com/rcn-ee/repos/tree/master/ti-wlconf
>
> so git: d39cb9d35247ad6c06542fbac1d40a7c5bcb9856
>
> http://git.ti.com/cgit/cgit.cgi/wilink8-wlan/18xx-ti-utils.git/log/
>
> R8.6SP1
>
> http://git.ti.com/cgit/cgit.cgi/wilink8-wlan/18xx-ti-utils.git/commit/?id=d39cb9d35247ad6c06542fbac1d40a7c5bcb9856
>
> on the bbgw via:
>
> sudo wlconf -o /lib/firmware/ti-connectivity/wl18xx-conf.bin -I
> WL1835MOD_INI_C2PC.ini
>
> this was the version Seeed sent in FCC stuff, i think the original
> WL1835MOD_INI_C2PC.ini came from CircuitCo for the original wl18xx
> cape...

Hmm so maybe that's the missing %1.. I wonder what device the
linux-firmware version of the firmware is supposed to be for?

Also assuming you get things working without reverting my patches..
We can now just add new compatible values to load the device specific
firmware if needed. So we could have compatible = "ti,wl1837-bbb"
or something similar added to wlcore_sdio_of_match_table.

Needs to be of course discussed on the mailing lists :slight_smile:

The other option would be to dynamically generate the firmware, but
that would have to be done every time when booting the same rootfs
on some other device with the same WLAN chip. And won't work well
for initramfs as it needs the initramfs..

Regards,

Tony

I think, just too look pretty... but it should still 'work'...

Here's the issue and notes on the bbgw wl1835, from the ti developer:

/* BT_AUD_OUT from wl1835 has to be pulled low when WL_EN is activated. */
/* in case it isn't, wilink8 ends up in one of the test modes that */
/* intruces various issues (elp wkaeup timeouts etc.) */
/* On the BBGW this pin is routed through the level shifter (U21) that */
/* introduces a pullup on the line and wilink8 ends up in a bad state. */
/* use a gpio hog to force this pin low. An alternative may be adding */
/* an external pulldown on U21 pin 4. */

&gpio3 {
bt_aud_in {
gpio-hog;
gpios = <16 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "MCASP0_AXR0";
};
};

Regards,

* Robert Nelson <robertcnelson@gmail.com> [161212 11:08]:

> * Robert Nelson <robertcnelson@gmail.com> [161209 18:29]:
>> firmware: wl18xx-conf.bin
>>
>> https://github.com/rcn-ee/repos/tree/master/bb-wl18xx-firmware/suite/jessie/debian
>>
>> It was generated by wlconf, this version:
>>
>> https://github.com/rcn-ee/repos/tree/master/ti-wlconf
>>
>> so git: d39cb9d35247ad6c06542fbac1d40a7c5bcb9856
>>
>> http://git.ti.com/cgit/cgit.cgi/wilink8-wlan/18xx-ti-utils.git/log/
>>
>> R8.6SP1
>>
>> http://git.ti.com/cgit/cgit.cgi/wilink8-wlan/18xx-ti-utils.git/commit/?id=d39cb9d35247ad6c06542fbac1d40a7c5bcb9856
>>
>> on the bbgw via:
>>
>> sudo wlconf -o /lib/firmware/ti-connectivity/wl18xx-conf.bin -I
>> WL1835MOD_INI_C2PC.ini
>>
>> this was the version Seeed sent in FCC stuff, i think the original
>> WL1835MOD_INI_C2PC.ini came from CircuitCo for the original wl18xx
>> cape...
>
> Hmm so maybe that's the missing %1.. I wonder what device the
> linux-firmware version of the firmware is supposed to be for?

I think, just too look pretty... but it should still 'work'...

Oh but linux-firmware does not have the wl18xx-conf.bin.. I forgot where
I got mine earlier. Anyways, we can now make those wl18xx-conf-bbb.bin
and whatever as needed.

Anyways, if you're having issues with the changes I did to load the config
firmware it must be a stupid bug somewhere as I tried hard to not change
what gets loaded. Care to try to figure out which patch breaks WLAN for
you?

Here's the issue and notes on the bbgw wl1835, from the ti developer:

/* BT_AUD_OUT from wl1835 has to be pulled low when WL_EN is activated. */
/* in case it isn't, wilink8 ends up in one of the test modes that */
/* intruces various issues (elp wkaeup timeouts etc.) */
/* On the BBGW this pin is routed through the level shifter (U21) that */
/* introduces a pullup on the line and wilink8 ends up in a bad state. */
/* use a gpio hog to force this pin low. An alternative may be adding */
/* an external pulldown on U21 pin 4. */

&gpio3 {
bt_aud_in {
gpio-hog;
gpios = <16 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "MCASP0_AXR0";
};
};

Oh OK good to know. Maybe that's the second missing %1 too.

Regards,

Tony

Just tested un-reverting those changes again, the wl1835 is working
fine on mainline, so it was something else during the rc1 merge..

I'm just chasing ghosts today, while the black wireless & blue
wireless are working fine, the green wireless has decided to go nutz:
(even with older kernel's, and even configurations i have running
right now on my test farm..)

[ 40.722775] genirq: Setting trigger mode 1 for irq 54 failed
(omap_gpio_irq_type+0x0/0x16c)
[ 58.639550] GPIO chip gpio: gpiochip_lock_as_irq: tried to flag a
GPIO set as output for IRQ
[ 58.653762] genirq: Failed to request resources for wl18xx (irq 54)
on irqchip 44e07000.gpio

root@beaglebone:~# dmesg | grep wl
[ 58.627562] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[ 58.653762] genirq: Failed to request resources for wl18xx (irq 54)
on irqchip 44e07000.gpio
[ 58.746615] wlcore: ERROR interrupt configuration failed

the irq line is setup as:

0x2C (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad11.gpio0_27 WL_IRQ*/

interrupt-parent = <&gpio0>;
interrupts = <27 IRQ_TYPE_EDGE_RISING>;

It get's a little funny, as i swapped PIN_INPUT_PULLDOWN for
PIN_INPUT_PULLUP, and it worked for 2-3 more reboots..

Regards,

* Robert Nelson <robertcnelson@gmail.com> [161213 14:09]:

> * Robert Nelson <robertcnelson@gmail.com> [161212 11:08]:
>> > * Robert Nelson <robertcnelson@gmail.com> [161209 18:29]:
>> >> firmware: wl18xx-conf.bin
>> >>
>> >> https://github.com/rcn-ee/repos/tree/master/bb-wl18xx-firmware/suite/jessie/debian
>> >>
>> >> It was generated by wlconf, this version:
>> >>
>> >> https://github.com/rcn-ee/repos/tree/master/ti-wlconf
>> >>
>> >> so git: d39cb9d35247ad6c06542fbac1d40a7c5bcb9856
>> >>
>> >> http://git.ti.com/cgit/cgit.cgi/wilink8-wlan/18xx-ti-utils.git/log/
>> >>
>> >> R8.6SP1
>> >>
>> >> http://git.ti.com/cgit/cgit.cgi/wilink8-wlan/18xx-ti-utils.git/commit/?id=d39cb9d35247ad6c06542fbac1d40a7c5bcb9856
>> >>
>> >> on the bbgw via:
>> >>
>> >> sudo wlconf -o /lib/firmware/ti-connectivity/wl18xx-conf.bin -I
>> >> WL1835MOD_INI_C2PC.ini
>> >>
>> >> this was the version Seeed sent in FCC stuff, i think the original
>> >> WL1835MOD_INI_C2PC.ini came from CircuitCo for the original wl18xx
>> >> cape...
>> >
>> > Hmm so maybe that's the missing %1.. I wonder what device the
>> > linux-firmware version of the firmware is supposed to be for?
>>
>> I think, just too look pretty... but it should still 'work'...
>
> Oh but linux-firmware does not have the wl18xx-conf.bin.. I forgot where
> I got mine earlier. Anyways, we can now make those wl18xx-conf-bbb.bin
> and whatever as needed.
>
> Anyways, if you're having issues with the changes I did to load the config
> firmware it must be a stupid bug somewhere as I tried hard to not change
> what gets loaded. Care to try to figure out which patch breaks WLAN for
> you?

Just tested un-reverting those changes again, the wl1835 is working
fine on mainline, so it was something else during the rc1 merge..

OK good to hear thanks confirming that!

I'm just chasing ghosts today, while the black wireless & blue
wireless are working fine, the green wireless has decided to go nutz:
(even with older kernel's, and even configurations i have running
right now on my test farm..)

[ 40.722775] genirq: Setting trigger mode 1 for irq 54 failed
(omap_gpio_irq_type+0x0/0x16c)
[ 58.639550] GPIO chip gpio: gpiochip_lock_as_irq: tried to flag a
GPIO set as output for IRQ
[ 58.653762] genirq: Failed to request resources for wl18xx (irq 54)
on irqchip 44e07000.gpio

root@beaglebone:~# dmesg | grep wl
[ 58.627562] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[ 58.653762] genirq: Failed to request resources for wl18xx (irq 54)
on irqchip 44e07000.gpio
[ 58.746615] wlcore: ERROR interrupt configuration failed

the irq line is setup as:

0x2C (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad11.gpio0_27 WL_IRQ*/

interrupt-parent = <&gpio0>;
interrupts = <27 IRQ_TYPE_EDGE_RISING>;

It get's a little funny, as i swapped PIN_INPUT_PULLDOWN for
PIN_INPUT_PULLUP, and it worked for 2-3 more reboots..

You should see from the schematics if the external pulls are there
and populated on the board. If you have external pulls, the internal
ones need to be disabled as otherwise the resistors will be parallel
so the value will be weak.

Regards,

Tony

Hi Robert,

Hey Everyone,

Over the weekend, TI imported and tagged there first v4.9.x branch:

http://git.ti.com/gitweb/?p=ti-linux-kernel/ti-linux-kernel.git;a=shortlog;h=refs/heads/ti-linux-4.9.y

I've added our patchset, overlays are broken past the first i2c
address: (havn't tried with a board plugged in)

debian@beaglebone:~$ dmesg | grep bone
[ 2.101727] bone_capemgr bone_capemgr: Baseboard:
'A335BNLT,00C0,2516BBBK2626'
[ 2.101753] bone_capemgr bone_capemgr:
compatible-baseboard=ti,beaglebone-black - #slots=4
[ 2.101796] bone_capemgr bone_capemgr: Failed to add slot #1
[ 2.126911] bone_capemgr bone_capemgr: Baseboard:
'A335BNLT,00C0,2516BBBK2626'
[ 2.126940] bone_capemgr bone_capemgr:
compatible-baseboard=ti,beaglebone-black - #slots=4
[ 2.126971] bone_capemgr bone_capemgr: Failed to add slot #1
[ 2.360973] bone_capemgr bone_capemgr: Baseboard:
'A335BNLT,00C0,2516BBBK2626'
[ 2.361012] bone_capemgr bone_capemgr:
compatible-baseboard=ti,beaglebone-black - #slots=4

cpufreq is broken, this should be fixed pretty soon..

HDMI-Audio: this is new and went mainline in v4.9.x-rc, fingers
crossed, it should work so please test. :wink: ( i finally have a lcd
monitor (with audio) that i can finally test with. .:wink: )

pru: nothing yet..

I should have something for this in the next couple of week or so.

Heavy rework, and I’d probably have to touch base with Beaglelogic
at all for a new PRU driver (continuation of the old one in 3.8).

If anyone is interested drop me an email but please be patient.
I’m super busy right now.

eqep: needs porting..

Kernel should hit the apt repo in a day or two, i'll reply to this
message when ready...

cd /opt/scripts/tools/
git pull
sudo ./update_kernel.sh --ti-channel --lts-4_9

(no rt yet)

SRC is here:

https://github.com/beagleboard/linux/tree/4.9

https://github.com/beagleboard/linux/commits/4.9

The best way to build it is via yakbuild:

git clone https://github.com/RobertCNelson/yakbuild
cd ./yakbuild/
cp recipe.sh.v4.9.x.sample recipe.sh
./build_kernel.sh

While the dtb's can be built/tested via dtb-rebuilder

#this is one line..
git clone -b 4.9-ti https://github.com/RobertCNelson/dtb-rebuilder/
cd ./dtb-rebuilder/
make

status
v4.4.x-ti - still supported and on-going working
v4.1.x-ti - maintenance-only please upgrade to v4.4.x-ti
v3.14.x-ti - maintenance (really eol)
v3.8.13-bone - maintenance, probably never EOL... (i see another gcc6
patch coming on the horizon). :wink:

Regards,

--
Robert Nelson
https://rcn-ee.com/

Regards

— Pantelis