From: "Cheng Jiang (IOE)" <quic_chejiang@quicinc.com>
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
Marcel Holtmann <marcel@holtmann.org>,
Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
"Rob Herring" <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
"Konrad Dybcio" <konradybcio@kernel.org>,
Balakrishna Godavarthi <quic_bgodavar@quicinc.com>,
Rocky Liao <quic_rjliao@quicinc.com>
Cc: <linux-bluetooth@vger.kernel.org>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
<quic_jiaymao@quicinc.com>, <quic_shuaz@quicinc.com>,
<quic_zijuhu@quicinc.com>, <quic_mohamull@quicinc.com>
Subject: Re: [PATCH v5 2/4] Bluetooth: qca: Update firmware-name to support board specific nvm
Date: Mon, 23 Dec 2024 10:47:13 +0800 [thread overview]
Message-ID: <3a8fe16f-aca7-482e-b1cb-e6fa37717843@quicinc.com> (raw)
In-Reply-To: <d5fe224b-7ef5-47ae-840c-7b6df21da816@oss.qualcomm.com>
Hi Konrad,
On 12/20/2024 9:46 PM, Konrad Dybcio wrote:
> On 13.12.2024 8:05 AM, Cheng Jiang (IOE) wrote:
>
> [...]
>
>>> /*
>>> * If the board-specific file is missing, try loading the default
>>> * one, unless that was attempted already
>>> */
>>>
>>> But, even more importantly:
>>>
>>> a) do we want to load the "incorrect" file?
>> Normally, there is a default NVM file ending with .bin, which is suitable
>> for most boards. However, some boards have different configurations that
>> require a specific NVM. If a board-specific NVM is not found, a default
>> NVM is preferred over not loading any NVM.
>
> So, if one is specified, but not found, this should either be a loud error,
> or a very loud warning & fallback. Otherwise, the device may provide subpar
> user experience without the user getting a chance to know the reason.
>
> I think failing is better here, as that sends a clearer message, and would
> only happen if the DT has a specific path (meaning the user put some
> intentions behind that choice)
>
In the existing BT driver implementation, even if the rampatch/nvm are not found,
BT still works with ROM code only. No fails, just a warning in the dmesg. For this
new approach, we use the similar logic.
The fallback to load a default nvm file is due to each board has a unique board
id, it's not necessary to upstream all the board-specific nvm since most of them
may be the same, the default nvm file is suitable for them. But we can't set the
default nvm file name in the DT, since the platform can attach different
connectivity boards. This is a reasonable way to approach this.
>>> b) why would we want to specify the .bin file if it's the default anyway?
>> The default NVM directory is the root of qca. The 'firmware-name' property
>> can specify an NVM file in another directory. This can be either a default
>> NVM like 'QCA6698/hpnv21.bin' or a board-specific NVM like 'QCA6698/hpnv21.b205'.
>
> Do we expect QCA6698/hpnv21.bin and QCAabcd/hpnv21.bin to be compatible?
>
No. It may be different.
> [...]
>
>>>> -static inline void qca_get_nvm_name_generic(struct qca_fw_config *cfg,
>>>> - const char *stem, u8 rom_ver, u16 bid)
>>>> -{
>>>> - if (bid == 0x0)
>>>> - snprintf(cfg->fwname, sizeof(cfg->fwname), "qca/%snv%02x.bin", stem, rom_ver);
>>>> - else if (bid & 0xff00)
>>>> - snprintf(cfg->fwname, sizeof(cfg->fwname),
>>>> - "qca/%snv%02x.b%x", stem, rom_ver, bid);
>>>> - else
>>>> - snprintf(cfg->fwname, sizeof(cfg->fwname),
>>>> - "qca/%snv%02x.b%02x", stem, rom_ver, bid);
>>>> + if (soc_type == QCA_WCN6855 || soc_type == QCA_QCA2066) {
>>>> + /* hsp gf chip */
>>>
>>> This is a good opportunity to explain what that means
>>>
>> Ack. This means the chip is produced by GlobalFoundries.
>
> Please update the comment there
>
ACK.
> Konrad
next prev parent reply other threads:[~2024-12-23 2:47 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-12 15:02 [PATCH v5 0/4] Expand firmware-name property to load specific Cheng Jiang
2024-12-12 15:02 ` [PATCH v5 1/4] dt-bindings: net: bluetooth: qca: Expand firmware-name property Cheng Jiang
2024-12-12 15:17 ` Expand firmware-name property to load specific bluez.test.bot
2024-12-13 8:49 ` [PATCH v5 1/4] dt-bindings: net: bluetooth: qca: Expand firmware-name property Krzysztof Kozlowski
2024-12-12 15:02 ` [PATCH v5 2/4] Bluetooth: qca: Update firmware-name to support board specific nvm Cheng Jiang
2024-12-13 0:17 ` Konrad Dybcio
2024-12-13 7:05 ` Cheng Jiang (IOE)
2024-12-20 13:46 ` Konrad Dybcio
2024-12-23 2:47 ` Cheng Jiang (IOE) [this message]
2024-12-23 11:46 ` Konrad Dybcio
2024-12-24 8:29 ` Cheng Jiang (IOE)
2024-12-12 15:02 ` [PATCH v5 3/4] Bluetooth: qca: Expand firmware-name to load specific rampatch Cheng Jiang
2024-12-12 15:02 ` [PATCH v5 4/4] arm64: dts: qcom: sa8775p-ride: Add firmware-name in BT node Cheng Jiang
2024-12-13 8:51 ` Krzysztof Kozlowski
2024-12-16 6:51 ` Cheng Jiang (IOE)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3a8fe16f-aca7-482e-b1cb-e6fa37717843@quicinc.com \
--to=quic_chejiang@quicinc.com \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=konrad.dybcio@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
--cc=marcel@holtmann.org \
--cc=quic_bgodavar@quicinc.com \
--cc=quic_jiaymao@quicinc.com \
--cc=quic_mohamull@quicinc.com \
--cc=quic_rjliao@quicinc.com \
--cc=quic_shuaz@quicinc.com \
--cc=quic_zijuhu@quicinc.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox