Re: brcmfmac SAE/WPA3 negotiation

James Prestwood
2024-12-19T12:46:09Z

Hi Keith,

On 12/18/24 5:46 PM, KeithG wrote:
> On Wed, Dec 18, 2024 at 8:10 AM KeithG <ys3al35l@gmail.com> wrote:
>> On Wed, Dec 18, 2024 at 4:21 AM Arend van Spriel
>> <arend.vanspriel@broadcom.com> wrote:
>>> On 12/18/2024 1:21 AM, KeithG wrote:
>>>> On Tue, Dec 17, 2024 at 7:47 AM Arend van Spriel
>>>> <arend.vanspriel@broadcom.com> wrote:
>>>>>
>>>>>
>>>>> On 12/17/2024 1:13 AM, KeithG wrote:
>>>>>> On Mon, Dec 16, 2024 at 1:50 PM Arend van Spriel
>>>>>> <arend.vanspriel@broadcom.com> wrote:
>>>>>>> On 12/16/2024 1:21 PM, KeithG wrote:
>>>>>>>> On Mon, Dec 16, 2024 at 3:47 AM Arend van Spriel
>>>>>>>> <arend.vanspriel@broadcom.com> wrote:
>>>>>>>>> On 12/16/2024 10:43 AM, Arend van Spriel wrote:
>>>>>>>>>> On 12/16/2024 1:17 AM, KeithG wrote:
>>>>>>>>>>> On Sun, Dec 15, 2024 at 11:33 AM Arend Van Spriel
>>>>>>>>>>> <arend.vanspriel@broadcom.com> wrote:
>>>>>>>>>>>> On December 15, 2024 5:08:12 PM KeithG <ys3al35l@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> On Sun, Dec 15, 2024 at 6:12 AM Arend van Spriel
>>>>>>>>>>>>> <arend.vanspriel@broadcom.com> wrote:
>>>>>>>>>>>>>> On 12/14/2024 2:34 PM, KeithG wrote:
>>>>>>>>>>>>>>> Arend,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I looked through the info where I got the latest firmware:
>>>>>>>>>>>>>>> https://community.infineon.com/t5/Wi-Fi-Bluetooth-for-Linux/Wi-Fi-
>>>>>>>>>>>>>>> A-class-Linux-Driver-release-FMAC-2024-11-21-Documents/td-p/905045
>>>>>>>>>>>>>>> https://community.infineon.com/t5/AIROC-Wi-Fi-and-Wi-Fi-Bluetooth/
>>>>>>>>>>>>>>> Cypress-Linux-WiFi-Driver-Release-FMAC-2024-11-21/td-p/902888
>>>>>>>>>>>>>>> and did not find anything, but I really do not know what I am
>>>>>>>>>>>>>>> looking for.
>>>>>>>>>>>>>> I think I had a bit more luck and maybe found the needle. I sent out
>>>>>>>>>>>>>> another RFT patch which hopefully gets rid of the BCME_BADLEN error.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>> Arend
>>>>>>>>>>>>> Arend,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Can you send me a link to that patch? I want to try it.
>>>>>>>>>>>> Hmm. I explicitly sent it to you, but here is a link to patchwork:
>>>>>>>>>>>>
>>>>>>>>>>>> https://patchwork.kernel.org/project/linux-wireless/
>>>>>>>>>>>> patch/20241215120401.238320-1-arend.vanspriel@broadcom.com/
>>>>>>>>>>>>
>>>>>>>>>>>> You can apply it on top of the other 3 patches.
>>>>>>>>>>>>
>>>>>>>>>>>> Regards,
>>>>>>>>>>>> Arend
>>>>>>>>>>>>
>>>>>>>>>>> Thanks! I got it.
>>>>>>>>>>> I am building now and have tried to apply what I think are the correct
>>>>>>>>>>> patches. They do not apply cleanly and I had to hand edit things. My
>>>>>>>>>>> guess is I messed something up.
>>>>>>>>>>> I will see what happens when I reboot. It'll take a few hours to build
>>>>>>>>>>> on my Pi4 then for me to install it on the 3b+ to test.
>>>>>>>>>>>
>>>>>>>>>>> I hope I understand which are the '3 other' patches.
>>>>>>>>>>>
>>>>>>>>>>> This is the one I got from your link:
>>>>>>>>>>> RFT-brcmfmac-Fix-structure-size-for-WPA3-external-SAE.diff
>>>>>>>>>>>
>>>>>>>>>>> These are what I understand are the '3 other patches'
>>>>>>>>>>> RFT-v2-1-3-wifi-brcmfmac-support-per-vendor-cfg80211-callbacks-and-
>>>>>>>>>>> firmware-events.patch.diff
>>>>>>>>>>> RFT-v2-2-3-wifi-brcmfmac-make-per-vendor-event-map-const.patch.diff
>>>>>>>>>>> RFT-v2-3-3-wifi-brcmfmac-cyw-support-external-SAE-authentication-in-
>>>>>>>>>>> station-mode.patch.diff
>>>>>>>>>>>
>>>>>>>>>>> If they are not correct could you send me links to them and I'll try
>>>>>>>>>>> again.
>>>>>>>>>> You got it right. Kuddos.
>>>>>>>>> Ignored my spelling checker, but apparently it should be "kudos".
>>>>>>>>> Another lesson learned today.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Arend
>>>>>>>> Arend,
>>>>>>>>
>>>>>>>> Thanks for the confirmation. My attempt at a hand edit to apply the
>>>>>>>> rejected portions resulted in a failed build with the current RPiOS
>>>>>>>> kernel in the git repo:
>>>>>>>> # uname -a
>>>>>>>> Linux jackrune 6.6.64-v8+ #6 SMP PREEMPT Sun Dec 15 23:55:30 CST 2024
>>>>>>>> aarch64 GNU/Linux
>>>>>>>>
>>>>>>>> When I try to apply them, I get this:
>>>>>>>> $ patch -Np1 -i
>>>>>>>> RFT-v2-1-3-wifi-brcmfmac-support-per-vendor-cfg80211-callbacks-and-firmware-events.patch.diff
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
>>>>>>>> Hunk #1 FAILED at 6752.
>>>>>>>> 1 out of 1 hunk FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c.rej
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
>>>>>>>> Hunk #1 succeeded at 524 (offset 33 lines).
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
>>>>>>>> Hunk #1 FAILED at 1359.
>>>>>>>> 1 out of 1 hunk FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c.rej
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
>>>>>>>> Hunk #1 succeeded at 74 (offset -1 lines).
>>>>>>>> Hunk #2 succeeded at 336 (offset -70 lines).
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h
>>>>>>>> Hunk #1 FAILED at 15.
>>>>>>>> Hunk #2 succeeded at 47 with fuzz 1 (offset -9 lines).
>>>>>>>> 1 out of 2 hunks FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h.rej
>>>>>>>> $ patch -Np1 -i RFT-v2-
>>>>>>>> RFT-v2-1-3-wifi-brcmfmac-support-per-vendor-cfg80211-callbacks-and-firmware-events.patch.diff
>>>>>>>> RFT-v2-2-3-wifi-brcmfmac-make-per-vendor-event-map-const.patch.diff
>>>>>>>> RFT-v2-3-3-wifi-brcmfmac-cyw-support-external-SAE-authentication-in-station-mode.patch.diff
>>>>>>>> $ patch -Np1 -i
>>>>>>>> RFT-v2-2-3-wifi-brcmfmac-make-per-vendor-event-map-const.patch.diff
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.h
>>>>>>>> Hunk #1 FAILED at 337.
>>>>>>>> 1 out of 1 hunk FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.h.rej
>>>>>>>> $ patch -Np1 -i
>>>>>>>> RFT-v2-3-3-wifi-brcmfmac-cyw-support-external-SAE-authentication-in-station-mode.patch.diff
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
>>>>>>>> Hunk #1 succeeded at 75 (offset 1 line).
>>>>>>>> Hunk #2 FAILED at 1940.
>>>>>>>> Hunk #3 FAILED at 2158.
>>>>>>>> Hunk #4 FAILED at 2216.
>>>>>>>> Hunk #5 succeeded at 5522 (offset 22 lines).
>>>>>>>> Hunk #6 succeeded at 5697 (offset 90 lines).
>>>>>>>> Hunk #7 succeeded at 6126 (offset 125 lines).
>>>>>>>> Hunk #8 succeeded at 7596 with fuzz 1 (offset 255 lines).
>>>>>>>> Hunk #9 FAILED at 7647.
>>>>>>>> 4 out of 9 hunks FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c.rej
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h
>>>>>>>> Hunk #3 succeeded at 243 (offset 15 lines).
>>>>>>>> Hunk #4 FAILED at 244.
>>>>>>>> Hunk #5 succeeded at 507 (offset 18 lines).
>>>>>>>> 1 out of 5 hunks FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h.rej
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
>>>>>>>> Hunk #1 FAILED at 8.
>>>>>>>> Hunk #2 FAILED at 39.
>>>>>>>> Hunk #3 FAILED at 49.
>>>>>>>> 3 out of 3 hunks FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c.rej
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/fwil_types.h
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
>>>>>>>> Hunk #1 FAILED at 42.
>>>>>>>> 1 out of 1 hunk FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c.rej
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h
>>>>>>>> Hunk #1 succeeded at 32 with fuzz 2 (offset 1 line).
>>>>>>>> Hunk #2 succeeded at 60 with fuzz 1 (offset 2 lines).
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
>>>>>>>> Hunk #1 FAILED at 450.
>>>>>>>> 1 out of 1 hunk FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c.rej
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.h
>>>>>>>> Hunk #1 FAILED at 94.
>>>>>>>> 1 out of 1 hunk FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.h.rej
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h
>>>>>>>> Hunk #1 FAILED at 15.
>>>>>>>> Hunk #2 succeeded at 47 with fuzz 1 (offset -11 lines).
>>>>>>>> 1 out of 2 hunks FAILED -- saving rejects to file
>>>>>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h.r
>>>>>>>> $ patch -Np1 -i RFT-brcmfmac-Fix-structure-size-for-WPA3-external-SAE.diff
>>>>>>>> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/fwil_types.h
>>>>>>>>
>>>>>>>> Is there another missing patch?
>>>>>>>>
>>>>>>>> The kernel for the RPi is at this commit:
>>>>>>>> commit 80533a952218696c0ef1b346bab50dc401e6b74c (HEAD -> rpi-6.6.y,
>>>>>>>> origin/rpi-6.6.y, origin/HEAD)
>>>>> So what repository does origin refer to. Can you share the URL?
>>>>>
>>>>> I will check if I posted any patches between 6.6 and 6.10+ Get back to
>>>>> this later o
>>>>>
>>>>> Regards,
>>>>> Arend
>>>> Arend,
>>>>
>>>> I am using the RaspberryPi repo:
>>>> https://github.com/raspberrypi/linux
>>> I was afraid you would say that. So we need to determine what brcmfmac
>>> patches are in there compared to upstream kernel. So checking the code I
>>> think you should apply only the "Fix-structure-size" patch to
>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h. Let me
>>> know if that works for you.
>>>
>>> Gr. AvS
>> Arend,
>>
>> That patch applied to the file in the folder you suggested. I am
>> building a kernel now and will see any changes this evening. Thanks
>> for the help.
>>
>> Regards,
>>
>> Keith
> Arend,
>
> Thanks for the guidance and help.
>
> I tried with the patched kernel and was unable to connect. The 2
> attached files are the log with brcmfmac debugging and iwd debugging
> turned o. and the other is an iwmon capture of an attempt to connect.
> This time, though, I get no IP address at all. Just an error out when
> I try to connect using iwctl. I get:
>
> [iwd]# station wlan0 connect deskSAE
> Type the network passphrase for deskSAE psk.
> Passphrase: *********
> Operation failed
> NetworkConfigurationEnabled: enabled
> StateDirectory: /var/lib/iwd
> Version: 3.1
> This is with kernel:
> Linux jackrune 6.6.66-v8+ #7 SMP PREEMPT Wed Dec 18 10:18:01 CST 2024
> aarch64 GNU/Linux
> and this firmware:
> Dec 18 19:37:08 jackrune kernel: brcmfmac: brcmf_fw_alloc_request:
> using brcm/brcmfmac43455-sdio for chip BCM4345/6
> Dec 18 19:37:08 jackrune kernel: usbcore: registered new interface
> driver brcmfmac
> Dec 18 19:37:09 jackrune kernel: brcmfmac: brcmf_c_process_txcap_blob:
> no txcap_blob available (err=-2)
> Dec 18 19:37:09 jackrune kernel: brcmfmac: brcmf_c_preinit_dcmds:
> Firmware: BCM4345/6 wl0: Oct 28 2024 23:27:00 version 7.45.286
> (be70ab3 CY) FWID 01-95efe7fa

Even closer this time. I've just sent a patch to the IWD mailing list.
Please try that along with Arend's kernel patch.

Thanks,

James

>
> Keith