All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 RESEND 0/3] Expand firmware-name property to load specific
@ 2025-01-07  9:26 Cheng Jiang
  2025-01-07  9:26 ` [PATCH v6 RESEND 1/3] dt-bindings: net: bluetooth: qca: Expand firmware-name property Cheng Jiang
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Cheng Jiang @ 2025-01-07  9:26 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Balakrishna Godavarthi,
	Rocky Liao
  Cc: linux-bluetooth, devicetree, linux-kernel, quic_chejiang,
	quic_jiaymao, quic_shuaz, quic_zijuhu, quic_mohamull

Expand the firmware-name property to specify the names of NVM and
rampatch firmware to load.

This update will support loading specific firmware (nvm and rampatch)
for certain chips, like the QCA6698 Bluetooth chip, which shares the
same IP core as the WCN6855 but has different RF components and RAM
sizes, requiring new firmware files.

Different connectivity boards may be attached to the same platform. For
example, QCA6698-based boards can support either a two-antenna or
three-antenna solution, both of which work on the sa8775p-ride platform.
Due to differences in connectivity boards and variations in RF
performance from different foundries, different NVM configurations are
used based on the board ID.

So In firmware-name, if the NVM file has an extension, the NVM file will
be used. Otherwise, the system will first try the .bNN (board ID) file,
and if that fails, it will fall back to the .bin file.

Possible configurations:
firmware-name = "QCA6698/hpnv21.bin", "QCA6698/hpbtfw21.tlv";
firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
firmware-name = "QCA6698/hpnv21.bin";

---
v6:
  - Pick up Acked-by Krzysztof Kozlowski for dt-bindings
  - Fix type error in btqca.c
  - Optimize the have-suffix function
  - Seperate the sa8775p-ride.dtsi change to another patch
  - Link to v5: https://lore.kernel.org/all/20241212150232.3823088-1-quic_chejiang@quicinc.com/

v5:
  - Update the dt-bindings decription.
  - Extract the have-suffix check code to a helper function.
  - Merge three generate nvm name functions to a signle function.
  - Link to v4: https://lore.kernel.org/all/20241210151636.2474809-1-quic_chejiang@quicinc.com/

v4:
  - Split nvm and rampatch changes to 2 commits.
  - Fix the dt_binding_check error.
  - Change the qca_get_alt_nvm_path return type from int to bool.
  - Fix the nvm name suffix check error when path has '.'.
  - Optimize the nvm file name generation function.
  - Link to v3: https://lore.kernel.org/all/20241205102213.1281865-1-quic_chejiang@quicinc.com/

v3:
  - Expand firmware-name property to specify the nvm and rampatch to
  load.
  - Change the driver to support two items in firmware-name and choose
  the NVM file according to board id if there is no extension in NVM
  file.
  - Update the dts file to idendify the firmware for QCA6698.
---


Cheng Jiang (3):
  dt-bindings: net: bluetooth: qca: Expand firmware-name property
  Bluetooth: qca: Update firmware-name to support board specific nvm
  Bluetooth: qca: Expand firmware-name to load specific rampatch

 .../net/bluetooth/qualcomm-bluetooth.yaml     |   5 +-
 drivers/bluetooth/btqca.c                     | 195 ++++++++++++------
 drivers/bluetooth/btqca.h                     |   5 +-
 drivers/bluetooth/hci_qca.c                   |  22 +-
 4 files changed, 152 insertions(+), 75 deletions(-)


base-commit: fdb298fa865b0136f7be842e6c2e6310dede421a
-- 
2.34.1


^ permalink raw reply	[flat|nested] 10+ messages in thread
* [PATCH v6 1/3] dt-bindings: net: bluetooth: qca: Expand firmware-name property
@ 2024-12-17 14:24 Cheng Jiang
  2024-12-17 15:00 ` Expand firmware-name property to load specific bluez.test.bot
  0 siblings, 1 reply; 10+ messages in thread
From: Cheng Jiang @ 2024-12-17 14:24 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Balakrishna Godavarthi,
	Rocky Liao
  Cc: linux-bluetooth, devicetree, linux-kernel, quic_chejiang,
	quic_jiaymao, quic_shuaz, quic_zijuhu, quic_mohamull,
	Krzysztof Kozlowski

Expand the firmware-name property to specify the names of NVM and
rampatch firmware to load. This update will support loading specific
firmware (nvm and rampatch) for certain chips, like the QCA6698
Bluetooth chip, which shares the same IP core as the WCN6855 but has
different RF components and RAM sizes, requiring new firmware files.

We might use different connectivity boards on the same platform. For
example, QCA6698-based boards can support either a two-antenna or
three-antenna solution, both of which work on the sa8775p-ride platform.
Due to differences in connectivity boards and variations in RF
performance from different foundries, different NVM configurations are
used based on the board ID.

So In firmware-name, if the NVM file has an extension, the NVM file will
be used. Otherwise, the system will first try the .bNN (board ID) file,
and if that fails, it will fall back to the .bin file.

Possible configurations:
firmware-name = "QCA6698/hpnv21.bin", "QCA6698/hpbtfw21.tlv";
firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
firmware-name = "QCA6698/hpnv21.bin";

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Cheng Jiang <quic_chejiang@quicinc.com>
---
 .../bindings/net/bluetooth/qualcomm-bluetooth.yaml           | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
index 7bb68311c..a6bc0b18b 100644
--- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
+++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
@@ -101,7 +101,10 @@ properties:
   max-speed: true
 
   firmware-name:
-    description: specify the name of nvm firmware to load
+    minItems: 1
+    items:
+      - description: specify the name of nvm firmware to load
+      - description: specify the name of rampatch firmware to load
 
   local-bd-address: true
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [PATCH v5 1/4] dt-bindings: net: bluetooth: qca: Expand firmware-name property
@ 2024-12-12 15:02 Cheng Jiang
  2024-12-12 15:17 ` Expand firmware-name property to load specific bluez.test.bot
  0 siblings, 1 reply; 10+ messages in thread
From: Cheng Jiang @ 2024-12-12 15:02 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Balakrishna Godavarthi, Rocky Liao
  Cc: linux-bluetooth, devicetree, linux-kernel, linux-arm-msm,
	quic_chejiang, quic_jiaymao, quic_shuaz, quic_zijuhu,
	quic_mohamull

Expand the firmware-name property to specify the names of NVM and
rampatch firmware to load. This update will support loading specific
firmware (nvm and rampatch) for certain chips, like the QCA6698
Bluetooth chip, which shares the same IP core as the WCN6855 but has
different RF components and RAM sizes, requiring new firmware files.

We might use different connectivity boards on the same platform. For
example, QCA6698-based boards can support either a two-antenna or
three-antenna solution, both of which work on the sa8775p-ride platform.
Due to differences in connectivity boards and variations in RF
performance from different foundries, different NVM configurations are
used based on the board ID.

So In firmware-name, if the NVM file has an extension, the NVM file will
be used. Otherwise, the system will first try the .bNN (board ID) file,
and if that fails, it will fall back to the .bin file.

Possible configurations:
firmware-name = "QCA6698/hpnv21.bin", "QCA6698/hpbtfw21.tlv";
firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
firmware-name = "QCA6698/hpnv21.bin";

Signed-off-by: Cheng Jiang <quic_chejiang@quicinc.com>
---
 .../bindings/net/bluetooth/qualcomm-bluetooth.yaml           | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
index 7bb68311c..a6bc0b18b 100644
--- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
+++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
@@ -101,7 +101,10 @@ properties:
   max-speed: true
 
   firmware-name:
-    description: specify the name of nvm firmware to load
+    minItems: 1
+    items:
+      - description: specify the name of nvm firmware to load
+      - description: specify the name of rampatch firmware to load
 
   local-bd-address: true
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [PATCH v4 1/4] dt-bindings: net: bluetooth: qca: Expand firmware-name property
@ 2024-12-10 15:16 Cheng Jiang
  2024-12-10 15:45 ` Expand firmware-name property to load specific bluez.test.bot
  0 siblings, 1 reply; 10+ messages in thread
From: Cheng Jiang @ 2024-12-10 15:16 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Balakrishna Godavarthi, Rocky Liao
  Cc: linux-bluetooth, devicetree, linux-kernel, linux-arm-msm,
	quic_chejiang, quic_jiaymao, quic_shuaz, quic_zijuhu,
	quic_mohamull

Expand the firmware-name property to specify the names of NVM and
rampatch firmware to load. This update will support loading specific
firmware (nvm and rampatch) for certain chips, like the QCA6698
Bluetooth chip, which shares the same IP core as the WCN6855 but has
different RF components and RAM sizes, requiring new firmware files.

We might use different connectivity boards on the same platform. For
example, QCA6698-based boards can support either a two-antenna or
three-antenna solution, both of which work on the sa8775p-ride platform.
Due to differences in connectivity boards and variations in RF
performance from different foundries, different NVM configurations are
used based on the board ID.

So In firmware-name, if the NVM file has an extension, the NVM file will
be used. Otherwise, the system will first try the .bNN (board ID) file,
and if that fails, it will fall back to the .bin file.

Possible configurations:
firmware-name = "QCA6698/hpnv21.bin", "QCA6698/hpbtfw21.tlv";
firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
firmware-name = "QCA6698/hpnv21.bin";

Signed-off-by: Cheng Jiang <quic_chejiang@quicinc.com>
---
 .../bindings/net/bluetooth/qualcomm-bluetooth.yaml           | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
index 7bb68311c..2782d2325 100644
--- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
+++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
@@ -101,7 +101,10 @@ properties:
   max-speed: true
 
   firmware-name:
-    description: specify the name of nvm firmware to load
+    description:
+      If one item is present, specify the name of the NVM firmware to load.
+      If two items are present, the first item specifies the name of the NVM,
+      and the second specifies the name of the rampatch firmware to load.
 
   local-bd-address: true
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [PATCH v3 1/3] dt-bindings: net: bluetooth: qca: Expand firmware-name property
@ 2024-12-05 10:22 Cheng Jiang
  2024-12-05 10:46 ` Expand firmware-name property to load specific bluez.test.bot
  0 siblings, 1 reply; 10+ messages in thread
From: Cheng Jiang @ 2024-12-05 10:22 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Balakrishna Godavarthi, Rocky Liao
  Cc: linux-bluetooth, devicetree, linux-kernel, linux-arm-msm,
	quic_chejiang, quic_jiaymao, quic_shuaz, quic_zijuhu,
	quic_mohamull

Expand the firmware-name property to specify the names of NVM and
rampatch firmware to load. This update will support loading specific
firmware (nvm and rampatch) for certain chips, like the QCA6698
Bluetooth chip, which shares the same IP core as the WCN6855 but has
different RF components and RAM sizes, requiring new firmware files.

We might use different connectivity boards on the same platform. For
example, QCA6698-based boards can support either a two-antenna or
three-antenna solution, both of which work on the sa8775p-ride platform.
Due to differences in connectivity boards and variations in RF
performance from different foundries, different NVM configurations are
used based on the board ID.

So In firmware-name, if the NVM file has an extension, the NVM file will
be used. Otherwise, the system will first try the .bNN (board ID) file,
and if that fails, it will fall back to the .bin file.

Possible configurations:
firmware-name = "QCA6698/hpnv21.bin", "QCA6698/hpbtfw21.tlv";
firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
firmware-name = "QCA6698/hpnv21.bin";

Signed-off-by: Cheng Jiang <quic_chejiang@quicinc.com>
---
 .../devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml   | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
index 7bb68311c..6d73de9cd 100644
--- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
+++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
@@ -101,7 +101,9 @@ properties:
   max-speed: true
 
   firmware-name:
+    maxItems: 2
     description: specify the name of nvm firmware to load
+    description: specify the name of rampatch firmware to load
 
   local-bd-address: true
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-01-08 16:10 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-07  9:26 [PATCH v6 RESEND 0/3] Expand firmware-name property to load specific Cheng Jiang
2025-01-07  9:26 ` [PATCH v6 RESEND 1/3] dt-bindings: net: bluetooth: qca: Expand firmware-name property Cheng Jiang
2025-01-07  9:56   ` Expand firmware-name property to load specific bluez.test.bot
2025-01-07  9:26 ` [PATCH v6 RESEND 2/3] Bluetooth: qca: Update firmware-name to support board specific nvm Cheng Jiang
2025-01-07  9:26 ` [PATCH v6 RESEND 3/3] Bluetooth: qca: Expand firmware-name to load specific rampatch Cheng Jiang
2025-01-08 16:10 ` [PATCH v6 RESEND 0/3] Expand firmware-name property to load specific patchwork-bot+bluetooth
  -- strict thread matches above, loose matches on Subject: below --
2024-12-17 14:24 [PATCH v6 1/3] dt-bindings: net: bluetooth: qca: Expand firmware-name property Cheng Jiang
2024-12-17 15:00 ` Expand firmware-name property to load specific bluez.test.bot
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-10 15:16 [PATCH v4 1/4] dt-bindings: net: bluetooth: qca: Expand firmware-name property Cheng Jiang
2024-12-10 15:45 ` Expand firmware-name property to load specific bluez.test.bot
2024-12-05 10:22 [PATCH v3 1/3] dt-bindings: net: bluetooth: qca: Expand firmware-name property Cheng Jiang
2024-12-05 10:46 ` Expand firmware-name property to load specific bluez.test.bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.