2023-03-16 22:48:08

by rb

[permalink] [raw]
Subject: New binary rtw8852b_fw.bin not loading firmware not recognized

Briefly,

I use rtw89_8852be in kernel driver

HARDWARE:
Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]

Lenovo Ideapad 1i

ISSUE:
Newest version of binary firmware 2023_03_10,
rtw89/rtw8852b_fw.bin, will not load/firmware not recognized on Linux Kernel 6.2.5 (and others):

[] loading firmare: rwt89/rtw8852b_fw.bin
[] rtw89_8852be 0000:03:00.0: no suitable firmware found
[] rtw89_8852be 0000:03:00.0: failed to recognize firmware

Issue persists regardless of which 6.2 series kernel is used.

All previous rwt89/rtw8852b_fw.bin firmware from linux-firmware 2023_02_10 and earlier loads and works correctly.

I did file a bug report with the details:

https://bugzilla.kernel.org/show_bug.cgi?id=217207

Thank you,
Rab B.
[email protected]



2023-03-17 00:35:57

by Ping-Ke Shih

[permalink] [raw]
Subject: RE: New binary rtw8852b_fw.bin not loading firmware not recognized



> -----Original Message-----
> From: rb <[email protected]>
> Sent: Friday, March 17, 2023 6:48 AM
> To: [email protected]
> Subject: New binary rtw8852b_fw.bin not loading firmware not recognized
>
> Briefly,
>
> I use rtw89_8852be in kernel driver
>
> HARDWARE:
> Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]
>
> Lenovo Ideapad 1i
>
> ISSUE:
> Newest version of binary firmware 2023_03_10,
> rtw89/rtw8852b_fw.bin, will not load/firmware not recognized on Linux Kernel 6.2.5 (and others):
>
> [] loading firmare: rwt89/rtw8852b_fw.bin
> [] rtw89_8852be 0000:03:00.0: no suitable firmware found
> [] rtw89_8852be 0000:03:00.0: failed to recognize firmware
>
> Issue persists regardless of which 6.2 series kernel is used.
>
> All previous rwt89/rtw8852b_fw.bin firmware from linux-firmware 2023_02_10 and earlier loads and works
> correctly.
>
> I did file a bug report with the details:
>
> https://bugzilla.kernel.org/show_bug.cgi?id=217207
>

The firmware format is changed, and wireless-next tree or upcoming 6.3 will
support it. I will also post this information on the bug.

Ping-Ke

2023-03-17 05:13:00

by Kalle Valo

[permalink] [raw]
Subject: Re: New binary rtw8852b_fw.bin not loading firmware not recognized

Ping-Ke Shih <[email protected]> writes:

>> -----Original Message-----
>> From: rb <[email protected]>
>> Sent: Friday, March 17, 2023 6:48 AM
>> To: [email protected]
>> Subject: New binary rtw8852b_fw.bin not loading firmware not recognized
>>
>> Briefly,
>>
>> I use rtw89_8852be in kernel driver
>>
>> HARDWARE:
>> Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]
>>
>> Lenovo Ideapad 1i
>>
>> ISSUE:
>> Newest version of binary firmware 2023_03_10,
>> rtw89/rtw8852b_fw.bin, will not load/firmware not recognized on Linux Kernel 6.2.5 (and others):
>>
>> [] loading firmare: rwt89/rtw8852b_fw.bin
>> [] rtw89_8852be 0000:03:00.0: no suitable firmware found
>> [] rtw89_8852be 0000:03:00.0: failed to recognize firmware
>>
>> Issue persists regardless of which 6.2 series kernel is used.
>>
>> All previous rwt89/rtw8852b_fw.bin firmware from linux-firmware 2023_02_10 and earlier loads and works
>> correctly.
>>
>> I did file a bug report with the details:
>>
>> https://bugzilla.kernel.org/show_bug.cgi?id=217207
>>
>
> The firmware format is changed, and wireless-next tree or upcoming 6.3 will
> support it. I will also post this information on the bug.

We cannot break user space like that, linux-firmware needs to be
backwards compatible. In other words, anything you submit to
linux-firmware needs to work with old kernels. Should this new firmware
be reverted from linux-firmware?

What about changes in the rtw89 driver? Do they still work with old
firmware?

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2023-03-17 05:53:31

by Larry Finger

[permalink] [raw]
Subject: Re: New binary rtw8852b_fw.bin not loading firmware not recognized

On 3/16/23 17:47, rb wrote:
> Briefly,
>
> I use rtw89_8852be in kernel driver
>
> HARDWARE:
> Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]
>
> Lenovo Ideapad 1i
>
> ISSUE:
> Newest version of binary firmware 2023_03_10,
> rtw89/rtw8852b_fw.bin, will not load/firmware not recognized on Linux Kernel
> 6.2.5 (and others):
>
> [] loading firmare: rwt89/rtw8852b_fw.bin
> [] rtw89_8852be 0000:03:00.0: no suitable firmware found
> [] rtw89_8852be 0000:03:00.0: failed to recognize firmware
>
> Issue persists regardless of which 6.2 series kernel is used.
>
> All previous rwt89/rtw8852b_fw.bin firmware from linux-firmware 2023_02_10 and
> earlier loads and works correctly.
>
> I did file a bug report with the details:
>
> https://bugzilla.kernel.org/show_bug.cgi?id=217207

There are two workarounds.

1. Copy the 0.27.x firmware from my download site and install it using the
following:
wget lwfinger.com/download/rtw8852b_fw.bin
sudo cp rtw8852b_fw.bin /lib/firmware/rtw89/.

2. Implement the driver found at https://github.com/lwfinger/rtw89.git.
That version can handle version 0.27.x or 0.29.x of the firmware.

Larry



2023-03-17 05:55:51

by Larry Finger

[permalink] [raw]
Subject: Re: New binary rtw8852b_fw.bin not loading firmware not recognized

On 3/17/23 00:12, Kalle Valo wrote:
> Ping-Ke Shih <[email protected]> writes:
>
>>> -----Original Message-----
>>> From: rb <[email protected]>
>>> Sent: Friday, March 17, 2023 6:48 AM
>>> To: [email protected]
>>> Subject: New binary rtw8852b_fw.bin not loading firmware not recognized
>>>
>>> Briefly,
>>>
>>> I use rtw89_8852be in kernel driver
>>>
>>> HARDWARE:
>>> Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]
>>>
>>> Lenovo Ideapad 1i
>>>
>>> ISSUE:
>>> Newest version of binary firmware 2023_03_10,
>>> rtw89/rtw8852b_fw.bin, will not load/firmware not recognized on Linux Kernel 6.2.5 (and others):
>>>
>>> [] loading firmare: rwt89/rtw8852b_fw.bin
>>> [] rtw89_8852be 0000:03:00.0: no suitable firmware found
>>> [] rtw89_8852be 0000:03:00.0: failed to recognize firmware
>>>
>>> Issue persists regardless of which 6.2 series kernel is used.
>>>
>>> All previous rwt89/rtw8852b_fw.bin firmware from linux-firmware 2023_02_10 and earlier loads and works
>>> correctly.
>>>
>>> I did file a bug report with the details:
>>>
>>> https://bugzilla.kernel.org/show_bug.cgi?id=217207
>>>
>>
>> The firmware format is changed, and wireless-next tree or upcoming 6.3 will
>> support it. I will also post this information on the bug.
>
> We cannot break user space like that, linux-firmware needs to be
> backwards compatible. In other words, anything you submit to
> linux-firmware needs to work with old kernels. Should this new firmware
> be reverted from linux-firmware?
>
> What about changes in the rtw89 driver? Do they still work with old
> firmware?

Kalle,

This is an unfortunate situation that I did not learn about until this week. As
you have seen, my download site has the old firmware.

The latest driver will work with either version of the firmware.

Larry



2023-03-17 07:29:27

by Ping-Ke Shih

[permalink] [raw]
Subject: Re: New binary rtw8852b_fw.bin not loading firmware not recognized

On Fri, 2023-03-17 at 07:12 +0200, Kalle Valo wrote:
> Ping-Ke Shih <[email protected]> writes:
>
> > > -----Original Message-----
> > > From: rb <[email protected]>
> > > Sent: Friday, March 17, 2023 6:48 AM
> > > To: [email protected]
> > > Subject: New binary rtw8852b_fw.bin not loading firmware not recognized
> > >
> > > Briefly,
> > >
> > > I use rtw89_8852be in kernel driver
> > >
> > > HARDWARE:
> > > Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]
> > >
> > > Lenovo Ideapad 1i
> > >
> > > ISSUE:
> > > Newest version of binary firmware 2023_03_10,
> > > rtw89/rtw8852b_fw.bin, will not load/firmware not recognized on Linux Kernel 6.2.5 (and
> > > others):
> > >
> > > [] loading firmare: rwt89/rtw8852b_fw.bin
> > > [] rtw89_8852be 0000:03:00.0: no suitable firmware found
> > > [] rtw89_8852be 0000:03:00.0: failed to recognize firmware
> > >
> > > Issue persists regardless of which 6.2 series kernel is used.
> > >
> > > All previous rwt89/rtw8852b_fw.bin firmware from linux-firmware 2023_02_10 and earlier loads
> > > and works
> > > correctly.
> > >
> > > I did file a bug report with the details:
> > >
> > > https://bugzilla.kernel.org/show_bug.cgi?id=217207
> > >
> >
> > The firmware format is changed, and wireless-next tree or upcoming 6.3 will
> > support it. I will also post this information on the bug.
>
> We cannot break user space like that, linux-firmware needs to be
> backwards compatible. In other words, anything you submit to
> linux-firmware needs to work with old kernels. Should this new firmware
> be reverted from linux-firmware?

I think I should support two or more firmware with different name, like
rwt89/rtw8852b_fw-2.bin, if format is changed. So, there will be two
firmware existing in linux-firmware.

Then, for old driver, it only supports rwt89/rtw8852b_fw.bin. For new driver,
it will load rwt89/rtw8852b_fw-2.bin first, but if '-2' version doesn't present,
it will try to load original version.

I think it would work, but I want to confirm if this is acceptable rules
for Linux.

>
> What about changes in the rtw89 driver? Do they still work with old
> firmware?
>

New driver can work with old or new firmware. The only case that doesn't
work is old driver + new firmware.


Ping-Ke

2023-03-17 08:59:00

by Kalle Valo

[permalink] [raw]
Subject: Re: New binary rtw8852b_fw.bin not loading firmware not recognized

Ping-Ke Shih <[email protected]> writes:

>> > > I did file a bug report with the details:
>> > >
>> > > https://bugzilla.kernel.org/show_bug.cgi?id=217207
>> > >
>> >
>> > The firmware format is changed, and wireless-next tree or upcoming 6.3 will
>> > support it. I will also post this information on the bug.
>>
>> We cannot break user space like that, linux-firmware needs to be
>> backwards compatible. In other words, anything you submit to
>> linux-firmware needs to work with old kernels. Should this new firmware
>> be reverted from linux-firmware?
>
> I think I should support two or more firmware with different name, like
> rwt89/rtw8852b_fw-2.bin, if format is changed. So, there will be two
> firmware existing in linux-firmware.
>
> Then, for old driver, it only supports rwt89/rtw8852b_fw.bin. For new driver,
> it will load rwt89/rtw8852b_fw-2.bin first, but if '-2' version doesn't present,
> it will try to load original version.
>
> I think it would work, but I want to confirm if this is acceptable rules
> for Linux.

Yes, this is the recommended way to handle backwards compatibility.
ath10k (and soon ath11k) will do something similar, we have
firmware-2.bin, firmware-3.bin and so on to avoid breaking older kernels
whenever there are incompatible changes in firmware.

Recently some guidelines were also written about this:

https://www.kernel.org/doc/html/latest/driver-api/firmware/firmware-usage-guidelines.html

>> What about changes in the rtw89 driver? Do they still work with old
>> firmware?
>
> New driver can work with old or new firmware. The only case that doesn't
> work is old driver + new firmware.

Very good, thanks for confirming.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches