2024-05-02 10:57:12

by Johan Hovold

[permalink] [raw]
Subject: QCA NVM file for the X13s (WCN6855)

Hi Zijun and Tim,

I noticed that you have both submitted firmware and NVM files for
QCA2066 to linux-firmware. [1][2]

I'm working on Linux support for the Lenovo ThinkPad X13s (Windows on
Arm, Snapdragon), which has the related WCN6855 controller that uses the
same firmware (hpbtfw21.tlv).

The current Linux driver is using the generic NVM file (hpnv21.bin) for
WCN6855, but connectivity is quite bad and I only get 2-3 meters of
range.

Switching to the board-specific NVM configuration (hpnv21b.b8c) that
came with the Windows driver make all issues go away and the range is
really good, but I'm not sure if that file is fully compatible with the
firmware used by the Linux driver.

Could you help us submit an NVM configuration file for the controller
with board id 0x008c to linux-firmware?

Bluetooth: hci0: setting up wcn6855
Bluetooth: hci0: QCA Product ID :0x00000013
Bluetooth: hci0: QCA SOC Version :0x400c1211
Bluetooth: hci0: QCA ROM Version :0x00000201
Bluetooth: hci0: QCA Patch Version:0x000038e6
Bluetooth: hci0: QCA controller version 0x12110201
Bluetooth: hci0: QCA Downloading qca/hpbtfw21.tlv
Bluetooth: hci0: qca_read_fw_board_id: bid = 8c
Bluetooth: hci0: QCA Downloading qca/hpnv21.bin

It looks like the NVM files should be updated in lockstep with the
firmware so if you could include that board in any future firmware
updates too that would be really helpful.

Johan


[1] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/qca?id=2ba1beaae0c649ce8a50baecc8df9e81cd524e65
[2] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/qca?id=598f5bd22361d7e92eebe8452d1f8013a1d35b9a


2024-05-02 12:56:28

by quic_zijuhu

[permalink] [raw]
Subject: Re: QCA NVM file for the X13s (WCN6855)

On 5/2/2024 6:57 PM, Johan Hovold wrote:
> Hi Zijun and Tim,
>
> I noticed that you have both submitted firmware and NVM files for
> QCA2066 to linux-firmware. [1][2]
>
> I'm working on Linux support for the Lenovo ThinkPad X13s (Windows on
> Arm, Snapdragon), which has the related WCN6855 controller that uses the
> same firmware (hpbtfw21.tlv).
>
which SOC type does the machine use? WCN6855 or QCA2066?
> The current Linux driver is using the generic NVM file (hpnv21.bin) for
> WCN6855, but connectivity is quite bad and I only get 2-3 meters of
> range.
> > Switching to the board-specific NVM configuration (hpnv21b.b8c) that
it seems hpnv21b.b8c is a wrong NVM name.
is it hpnv21g.b8c?
> came with the Windows driver make all issues go away and the range is
> really good, but I'm not sure if that file is fully compatible with the
> firmware used by the Linux driver.
>
> Could you help us submit an NVM configuration file for the controller
> with board id 0x008c to linux-firmware?
>
For Windows OS, there are relevant channel to deliver BT firmware.
For Linux OS, we normally upload relevant BT firmware to linux-firmware.

it seems customer would like to use Linux OS instead of preinstalled
Windows OS for the machine.
right?

need customer to make a request for their requirements if the answer is
yes for above question.

> Bluetooth: hci0: setting up wcn6855
> Bluetooth: hci0: QCA Product ID :0x00000013
> Bluetooth: hci0: QCA SOC Version :0x400c1211
> Bluetooth: hci0: QCA ROM Version :0x00000201
> Bluetooth: hci0: QCA Patch Version:0x000038e6
> Bluetooth: hci0: QCA controller version 0x12110201
> Bluetooth: hci0: QCA Downloading qca/hpbtfw21.tlv
> Bluetooth: hci0: qca_read_fw_board_id: bid = 8c
> Bluetooth: hci0: QCA Downloading qca/hpnv21.bin
>
> It looks like the NVM files should be updated in lockstep with the
> firmware so if you could include that board in any future firmware
> updates too that would be really helpful.
>
> Johan
>
>
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/qca?id=2ba1beaae0c649ce8a50baecc8df9e81cd524e65
> [2] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/qca?id=598f5bd22361d7e92eebe8452d1f8013a1d35b9a


2024-05-02 13:25:52

by Johan Hovold

[permalink] [raw]
Subject: Re: QCA NVM file for the X13s (WCN6855)

On Thu, May 02, 2024 at 08:56:12PM +0800, quic_zijuhu wrote:
> On 5/2/2024 6:57 PM, Johan Hovold wrote:

> > I noticed that you have both submitted firmware and NVM files for
> > QCA2066 to linux-firmware. [1][2]
> >
> > I'm working on Linux support for the Lenovo ThinkPad X13s (Windows on
> > Arm, Snapdragon), which has the related WCN6855 controller that uses the
> > same firmware (hpbtfw21.tlv).

> which SOC type does the machine use? WCN6855 or QCA2066?

It's WCN6855 but the Linux driver currently uses the firmware you pushed
for QCA2066.

> > The current Linux driver is using the generic NVM file (hpnv21.bin) for
> > WCN6855, but connectivity is quite bad and I only get 2-3 meters of
> > range.

> > > Switching to the board-specific NVM configuration (hpnv21b.b8c) that
> it seems hpnv21b.b8c is a wrong NVM name.
> is it hpnv21g.b8c?

I've only tested with the NVM file without the "g" infix, but there
indeed also is a 'hpnv21g.b8c' in the Windows installation.

What is the difference between those two?

> > came with the Windows driver make all issues go away and the range is
> > really good, but I'm not sure if that file is fully compatible with the
> > firmware used by the Linux driver.
> >
> > Could you help us submit an NVM configuration file for the controller
> > with board id 0x008c to linux-firmware?
> >
> For Windows OS, there are relevant channel to deliver BT firmware.
> For Linux OS, we normally upload relevant BT firmware to linux-firmware.
>
> it seems customer would like to use Linux OS instead of preinstalled
> Windows OS for the machine.
> right?

Exactly. It's a Lenovo machine that comes with Windows pre-installed and
we're working on enabling Linux on it with some help from Lenovo.

> need customer to make a request for their requirements if the answer is
> yes for above question.

Lenovo has made requests for X13s firmware from Qualcomm and pushed it
to linux-firmware [1], but they have not yet been able to get Qualcomm
to provide an NVM configuration file for Bluetooth (I think the problem
may be finding the right person to talk to inside Qualcomm).

So I was hoping maybe you could help us with this since the difference
between 'hpnv21.bin' that you pushed to linux-firmware and what came
with Windows appears to be really small (e.g. just a few bytes).

Johan

[1] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/qcom?id=4ae4ae88918928e15006eb129ad981aa58216b59

2024-05-02 13:47:00

by quic_zijuhu

[permalink] [raw]
Subject: Re: QCA NVM file for the X13s (WCN6855)

On 5/2/2024 9:25 PM, Johan Hovold wrote:
> On Thu, May 02, 2024 at 08:56:12PM +0800, quic_zijuhu wrote:
>> On 5/2/2024 6:57 PM, Johan Hovold wrote:
>
>>> I noticed that you have both submitted firmware and NVM files for
>>> QCA2066 to linux-firmware. [1][2]
>>>
>>> I'm working on Linux support for the Lenovo ThinkPad X13s (Windows on
>>> Arm, Snapdragon), which has the related WCN6855 controller that uses the
>>> same firmware (hpbtfw21.tlv).
>
>> which SOC type does the machine use? WCN6855 or QCA2066?
>
> It's WCN6855 but the Linux driver currently uses the firmware you pushed
> for QCA2066.
>
>>> The current Linux driver is using the generic NVM file (hpnv21.bin) for
>>> WCN6855, but connectivity is quite bad and I only get 2-3 meters of
>>> range.
>
>>>> Switching to the board-specific NVM configuration (hpnv21b.b8c) that
>> it seems hpnv21b.b8c is a wrong NVM name.
>> is it hpnv21g.b8c?
>
hpnv21g.b8c is the right NVM for the machine.
i am afraid that i can't answer your question due to company CCI policy
> I've only tested with the NVM file without the "g" infix, but there
> indeed also is a 'hpnv21g.b8c' in the Windows installation.
>
> What is the difference between those two?
>
>>> came with the Windows driver make all issues go away and the range is
>>> really good, but I'm not sure if that file is fully compatible with the
>>> firmware used by the Linux driver.
>>>
>>> Could you help us submit an NVM configuration file for the controller
>>> with board id 0x008c to linux-firmware?
>>>
>> For Windows OS, there are relevant channel to deliver BT firmware.
>> For Linux OS, we normally upload relevant BT firmware to linux-firmware.
>>
>> it seems customer would like to use Linux OS instead of preinstalled
>> Windows OS for the machine.
>> right?
>
> Exactly. It's a Lenovo machine that comes with Windows pre-installed and
> we're working on enabling Linux on it with some help from Lenovo.
>
>> need customer to make a request for their requirements if the answer is
>> yes for above question.
>
> Lenovo has made requests for X13s firmware from Qualcomm and pushed it
> to linux-firmware [1], but they have not yet been able to get Qualcomm
> to provide an NVM configuration file for Bluetooth (I think the problem
> may be finding the right person to talk to inside Qualcomm).
>
> So I was hoping maybe you could help us with this since the difference
> between 'hpnv21.bin' that you pushed to linux-firmware and what came
> with Windows appears to be really small (e.g. just a few bytes).
>
let me try to find out the right person who will push this task at next
monday.
there are some other internal procedures before we can push BT firmware
into linux-firmware.
> Johan
>
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/qcom?id=4ae4ae88918928e15006eb129ad981aa58216b59
>


2024-05-02 14:13:13

by Johan Hovold

[permalink] [raw]
Subject: Re: QCA NVM file for the X13s (WCN6855)

On Thu, May 02, 2024 at 09:46:38PM +0800, quic_zijuhu wrote:
> On 5/2/2024 9:25 PM, Johan Hovold wrote:
> > On Thu, May 02, 2024 at 08:56:12PM +0800, quic_zijuhu wrote:
> >> On 5/2/2024 6:57 PM, Johan Hovold wrote:

> > It's WCN6855 but the Linux driver currently uses the firmware you pushed
> > for QCA2066.
> >
> >>> The current Linux driver is using the generic NVM file (hpnv21.bin) for
> >>> WCN6855, but connectivity is quite bad and I only get 2-3 meters of
> >>> range.
> >
> >>>> Switching to the board-specific NVM configuration (hpnv21b.b8c) that
> >> it seems hpnv21b.b8c is a wrong NVM name.
> >> is it hpnv21g.b8c?
> >
> hpnv21g.b8c is the right NVM for the machine.

Ok, thanks. I'll try to find some time to test with this one as well.

> > What is the difference between those two?

> i am afraid that i can't answer your question due to company CCI policy

I understand.

> > Exactly. It's a Lenovo machine that comes with Windows pre-installed and
> > we're working on enabling Linux on it with some help from Lenovo.
> >
> >> need customer to make a request for their requirements if the answer is
> >> yes for above question.
> >
> > Lenovo has made requests for X13s firmware from Qualcomm and pushed it
> > to linux-firmware [1], but they have not yet been able to get Qualcomm
> > to provide an NVM configuration file for Bluetooth (I think the problem
> > may be finding the right person to talk to inside Qualcomm).
> >
> > So I was hoping maybe you could help us with this since the difference
> > between 'hpnv21.bin' that you pushed to linux-firmware and what came
> > with Windows appears to be really small (e.g. just a few bytes).
> >
> let me try to find out the right person who will push this task at next
> monday.
> there are some other internal procedures before we can push BT firmware
> into linux-firmware.

Much appreciated, thank you.

Johan