Compare commits

...

34 commits

Author SHA1 Message Date
Juerg Haefliger
13d49fb355 Merge branch 'wip/whence2yaml' into 'main'
Draft: RFC: Add whence2yaml.py and helper library

See merge request kernel-firmware/linux-firmware!611
2025-12-02 19:00:40 +00:00
Dmitry Baryshkov
38c82f07a9 Merge branch 'robot/pr-0-1764573234' into 'main'
robot/pr-0-1764573234

See merge request kernel-firmware/linux-firmware!811
2025-12-02 00:54:05 +00:00
Yushan Li
c277a009eb qcom: update ADSP firmware for x1e80100 platform, change the license
Update ADSP firmware for Qualcomm x1e80100 platform.
Change the license from LICENSE.qcom to LICENSE.qcom-2.

Signed-off-by: Yushan Li <yushan.li@oss.qualcomm.com>
2025-12-02 00:51:29 +00:00
Yushan Li
6e06e5eac7 qcom: reorder ADSP, CDSP firmware entries for qcs8300 in WHENCE
Reorganized ADSP, CDSP firmware entries for qcs8300 to maintain
alphabetical order. No new firmware files or versions added.

Signed-off-by: Yushan Li <yushan.li@oss.qualcomm.com>
2025-12-02 00:51:29 +00:00
Mario Limonciello
934bfe7e1e Merge branch 'amd-staging' into 'main'
Reapply "amdgpu: update SMU 14.0.3 firmware"

See merge request kernel-firmware/linux-firmware!812
2025-12-01 14:19:58 +00:00
Mario Limonciello (AMD)
9db3ba0dbc Reapply "amdgpu: update SMU 14.0.3 firmware"
It turns out this was intended behavior.
This reverts commit d52797f0d283796004ef90a1f11c73edc5053fdf.

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/4735
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
2025-12-01 14:11:43 +00:00
Mario Limonciello
56c191dba4 Merge branch 'amd-staging' into 'main'
Revert recent GPU microcode updates that are reported to cause regressions

See merge request kernel-firmware/linux-firmware!810
2025-12-01 04:04:01 +00:00
Mario Limonciello (AMD)
5698af42f1 Revert "amdgpu: update SMU 14.0.3 firmware"
SMU I2C access was broken in the SMU F/W upgrade.
This reverts commit b8ee4087b3.

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/4735
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
2025-12-01 04:03:22 +00:00
Mario Limonciello (AMD)
baf6c2f67a Revert "amdgpu: update GC 10.3.6 firmware"
This is reported to cause stability issues (GPU resets and driver hangs).
This reverts commit aaa7079598.

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/4737
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
2025-12-01 04:03:22 +00:00
Mario Limonciello (AMD)
c092c7487e Revert "amdgpu: update GC 11.5.1 firmware"
MES FW 0x83 is reported to cause ROCm page faults.
This reverts commit 85173cf441.

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/4738
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
2025-12-01 04:03:22 +00:00
Josh Boyer
01006f5dea Merge branch 'mt7925' into 'main'
mediatek MT7925: update bluetooth and wifi firmware

See merge request kernel-firmware/linux-firmware!809
2025-11-29 16:59:31 +00:00
Allan Wang
5b890c92e7 linux-firmware: update firmware for MT7925 WiFi device
Update binary firmware for MT7925 WiFi devices

File: mediatek/mt7925/WIFI_MT7925_PATCH_MCU_1_1_hdr.bin
Version: 20251124092925a
File: mediatek/mt7925/WIFI_RAM_CODE_MT7925_1_1.bin
Version: 20251124092846

Signed-off-by: Allan Wang <allan.wang@mediatek.com>
Signed-off-by: Josh Boyer <jwboyer@kernel.org>
2025-11-29 11:56:34 -05:00
Chris Lu
474cca8b3f mediatek MT7925: update bluetooth firmware to 20251124093155
Update binary firmware for MT7925 BT devices.

File: mediatek/mt7925/BT_RAM_CODE_MT7925_1_1_hdr.bin
Version: 20251124093155

Signed-off-by: Chris Lu <chris.lu@mediatek.com>
Signed-off-by: Josh Boyer <jwboyer@kernel.org>
2025-11-29 11:56:00 -05:00
Josh Boyer
cf5db46334 Merge branch 'intel-vpu-v1.26.0' into 'main'
intel_vpu: Update NPU firmware

See merge request kernel-firmware/linux-firmware!805
2025-11-29 16:54:34 +00:00
Maciej Falkowski
214b4374c0 intel_vpu: Update NPU firmware
Update firmware for Intel NPUs found in MTL, ARL and LNL platforms.
Release: https://github.com/intel/linux-npu-driver/releases/tag/v1.26.0

Signed-off-by: Maciej Falkowski <maciej.falkowski@linux.intel.com>
2025-11-28 17:09:35 +01:00
Dmitry Baryshkov
e3b0cfe73e Merge branch 'robot/pr-0-1764225931' into 'main'
robot/pr-0-1764225931

See merge request kernel-firmware/linux-firmware!806
2025-11-27 12:46:37 +00:00
Dikshita Agarwal
c91948d8a6 WHENCE: fix version string for video firmware
Fix the version string for video firmware for SM8550 to match the
version string in firmware binary.

Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
2025-11-27 12:08:48 +05:30
Dmitry Baryshkov
14d4b18b06 Merge branch 'robot/pr-0-1764146897' into 'main'
robot/pr-0-1764146897

See merge request kernel-firmware/linux-firmware!804
2025-11-26 09:08:47 +00:00
Dikshita Agarwal
095130d8e3 qcom: vpu: update video firmware binary for SM8250
Update video firmware binary for SM8250 to have proper version string
i.e. VIDEO.VPU.1.0-00119.

Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
2025-11-26 14:08:26 +05:30
Josh Boyer
23568a4b94 Merge branch 'intel/guc-v70540' into 'main'
xe: Update GUC to v70.54.0 for BMG, PTL

See merge request kernel-firmware/linux-firmware!800
2025-11-25 18:40:29 +00:00
Julia Filipchuk
323507dc0c xe: Update GUC to v70.54.0 for BMG, PTL
UAPI compatibility version 1.27.0

Release latest recommended GUC release for BMG, PTL.

Signed-off-by: Julia Filipchuk <julia.filipchuk@intel.com>
(cherry picked from commit 59dae17b92763814a381f4c3e40c8af1c22db61c)
Signed-off-by: Julia Filipchuk <julia.filipchuk@intel.com>
2025-11-25 18:36:13 +00:00
Mario Limonciello
4ee5122b3f Merge branch 'robot/pr-0-1764088604' into 'main'
robot/pr-0-1764088604

See merge request kernel-firmware/linux-firmware!803
2025-11-25 16:42:30 +00:00
Alex Deucher
00c92044d9 Revert "amdgpu: update GC 11.0.1 firmware"
This reverts commit df7ad95b38.

This causes page faults in some OpenCL applications.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2025-11-25 16:40:02 +00:00
Dmitry Baryshkov
7f1c74ab33 Merge branch 'robot/pr-0-1764076583' into 'main'
robot/pr-0-1764076583

See merge request kernel-firmware/linux-firmware!802
2025-11-25 14:27:47 +00:00
Wei Deng
1b629c2ee1 QCA: Add Bluetooth firmware for WCN685x uart interface
This commit will add required Bluetooth firmware files for WCN685x
uart interface.

The image version is 2.1.0-00660.

wcnhpbtfw21.tlv : RAM FW dump
wcnhpnv21.bin : NVM dump.
wcnhpnv21g.bin : NVM dump.
wcnhpnv21.b8c : NVM dump.
wcnhpnv21.b9f : NVM dump.
wcnhpnv21.ba0 : NVM dump.
wcnhpnv21.ba1 : NVM dump.
wcnhpnv21.ba2 : NVM dump.
wcnhpnv21.ba3 : NVM dump.
wcnhpnv21.ba4 : NVM dump.
wcnhpnv21.baa : NVM dump.
wcnhpnv21.bb8 : NVM dump.
wcnhpnv21.b10c : NVM dump.
wcnhpnv21.b111 : NVM dump.
wcnhpnv21g.b8c : NVM dump.
wcnhpnv21g.b9f : NVM dump.
wcnhpnv21g.ba0 : NVM dump.
wcnhpnv21g.ba1 : NVM dump.
wcnhpnv21g.ba2 : NVM dump.
wcnhpnv21g.ba3 : NVM dump.
wcnhpnv21g.ba4 : NVM dump.
wcnhpnv21g.baa : NVM dump.
wcnhpnv21g.bb8 : NVM dump.
wcnhpnv21g.b10c : NVM dump.
wcnhpnv21g.b111 : NVM dump.

Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com>
2025-11-25 14:25:16 +00:00
Dmitry Baryshkov
999d97a336 Merge branch 'main' into 'main'
qcom: Add ADSP firmware for qcs6490-thundercomm-rubikpi3

See merge request kernel-firmware/linux-firmware!797
2025-11-24 20:32:24 +00:00
Hongyang Zhao
338d4f11a1 qcom: Add ADSP firmware for qcs6490-thundercomm-rubikpi3
Add ADSP firmware for Thundercomm RUBIK Pi 3.

Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
2025-11-25 00:57:00 +08:00
Dmitry Baryshkov
9dba680579 Merge branch 'robot/pr-0-1763698591' into 'main'
robot/pr-0-1763698591

See merge request kernel-firmware/linux-firmware!793
2025-11-23 14:07:05 +00:00
Renjiang Han
e5f2034193 qcom: venus-5.4: update firmware binary for v5.4
Update firmware binary to fix the ELF alignment issue for v5.4. And
this binary can be re-signed with sectools v1 and v2.

Signed-off-by: Renjiang Han <renjiang.han@oss.qualcomm.com>
2025-11-23 14:04:45 +00:00
Renjiang Han
beeb1c6d8f qcom: venus-5.4: remove unused firmware file
Since venus_s2.mbn is not used anywhere, remove it.

Signed-off-by: Renjiang Han <renjiang.han@oss.qualcomm.com>
2025-11-23 14:04:45 +00:00
Dmitry Baryshkov
ac89518a50 Merge branch 'robot/pr-0-1763903813' into 'main'
robot/pr-0-1763903813

See merge request kernel-firmware/linux-firmware!796
2025-11-23 14:03:52 +00:00
Miri Korenblit
4b245479aa iwlwifi: add Sc/Wh FW for core98-181 release
Add the -101 ucode firmware for Sc/Wh devices.

Build number: Core_manual_signed_core98-181
Revision: 80584591 (wh)

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
2025-11-23 15:03:47 +02:00
Juerg Haefliger
6eec0ebeac check_whence.py: Add new files to exceptions lists
Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
2025-07-23 11:21:29 +00:00
Juerg Haefliger
ead3209904 Add whence2yaml.py and helper library
Add a script and helper library that convert the WHENCE file to YAML
format and write the data to WHENCE.yaml. This can we be used as a
starting point for making the WHENCE data better machine-parseable and
also serves as a foundation for adding more relavant data for firmware
consumers like distros.

Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
2025-07-23 11:21:29 +00:00
54 changed files with 335 additions and 31 deletions

99
WHENCE
View file

@ -1355,6 +1355,10 @@ File: intel/iwlwifi/iwlwifi-ma-b0-hr-b0-89.ucode
Link: iwlwifi-ma-b0-hr-b0-89.ucode -> intel/iwlwifi/iwlwifi-ma-b0-hr-b0-89.ucode
Version: 86.7207fc64.0
File: intel/iwlwifi/iwlwifi-sc-a0-wh-b0-101.ucode
Link: iwlwifi-sc-a0-wh-b0-101.ucode -> intel/iwlwifi/iwlwifi-sc-a0-wh-b0-101.ucode
Version: 98.80584591.0
Licence: Redistributable. See LICENCE.iwlwifi_firmware for details
Also available from http://wireless.kernel.org/en/users/Drivers/iwlwifi#Firmware
@ -4863,6 +4867,39 @@ Licence: Redistributable. See LICENSE.QualcommAtheros_ath10k and qca/NOTICE.txt
--------------------------------------------------------------------------
Driver: qca - Qualcomm Atheros Bluetooth support for WCN685x uart interface chips
File: qca/wcnhpbtfw21.tlv
Version: BTFW.HSP.2.1.0-00660-USB_UART_PATCHZ-6
File: qca/wcnhpnv21.bin
File: qca/wcnhpnv21g.bin
File: qca/wcnhpnv21.b8c
File: qca/wcnhpnv21.b9f
File: qca/wcnhpnv21.ba0
File: qca/wcnhpnv21.ba1
File: qca/wcnhpnv21.ba2
File: qca/wcnhpnv21.ba3
File: qca/wcnhpnv21.ba4
File: qca/wcnhpnv21.baa
File: qca/wcnhpnv21.bb8
File: qca/wcnhpnv21.b10c
File: qca/wcnhpnv21.b111
File: qca/wcnhpnv21g.b8c
File: qca/wcnhpnv21g.b9f
File: qca/wcnhpnv21g.ba0
File: qca/wcnhpnv21g.ba1
File: qca/wcnhpnv21g.ba2
File: qca/wcnhpnv21g.ba3
File: qca/wcnhpnv21g.ba4
File: qca/wcnhpnv21g.baa
File: qca/wcnhpnv21g.bb8
File: qca/wcnhpnv21g.b10c
File: qca/wcnhpnv21g.b111
Licence: Redistributable. See LICENSE.QualcommAtheros_ath10k and qca/NOTICE.txt for details
--------------------------------------------------------------------------
Driver: qca - Qualcomm Atheros Bluetooth support for QCA2066 chips
File: qca/hpbtfw21.tlv
@ -5360,7 +5397,7 @@ File: xe/lnl_huc.bin
Version: HuC API/APB ver 9.4.13 for Lunarlake
File: xe/bmg_guc_70.bin
Version: GuC API/APB ver 70.53.0 for Battlemage
Version: GuC API/APB ver 70.54.0 for Battlemage
File: xe/bmg_huc.bin
Version: HuC API/APB ver 8.2.10 for Battlemage
@ -5369,7 +5406,7 @@ File: xe/fan_control_8086_e20b_8086_1100.bin
Version: fan_control ver 203.0.0.0 for Battlemage
File: xe/ptl_guc_70.bin
Version: GuC API/APB ver 70.53.0 for Pantherlake
Version: GuC API/APB ver 70.54.0 for Pantherlake
File: xe/ptl_huc.bin
Version: HuC API/APB ver 10.3.3 for Pantherlake
@ -6181,9 +6218,9 @@ Licence: Redistributable. See LICENCE.mediatek for details.
Driver: mt7925 - MediaTek MT7925 Wireless MACs
File: mediatek/mt7925/WIFI_MT7925_PATCH_MCU_1_1_hdr.bin
Version: 20251015212927a
Version: 20251124092925a
File: mediatek/mt7925/WIFI_RAM_CODE_MT7925_1_1.bin
Version: 20251015212814
Version: 20251124092846
Licence: Redistributable. See LICENCE.mediatek for details.
@ -6192,7 +6229,7 @@ Licence: Redistributable. See LICENCE.mediatek for details.
Driver: mt7925 - MediaTek MT7925 bluetooth chipset
File: mediatek/mt7925/BT_RAM_CODE_MT7925_1_1_hdr.bin
Version: 20251015213201
Version: 20251124093155
Licence: Redistributable. See LICENCE.mediatek for details.
@ -6419,11 +6456,7 @@ Version: VIDEO.VE.5.2-00023-PROD-2
File: qcom/venus-5.4/venus.mbn
Link: qcom/venus-5.4/venus.mdt -> venus.mbn
Version: VIDEO.VE.5.4-00059-PROD-1
File: qcom/venus-5.4/venus_s2.mbn
Version: VIDEO.VE.5.4-00060-PROD-1
Version: VIDEO.VE.5.4-00062-PROD-1
File: qcom/venus-6.0/venus.mbn
@ -6438,7 +6471,7 @@ File: qcom/vpu/vpu20_p4.mbn
Link: qcom/vpu-1.0/venus.mbn -> ../vpu/vpu20_p4.mbn
Link: qcom/vpu-1.0/venus.mdt -> ../vpu/vpu20_p4.mbn
Version: VIDEO.VPU.1.0-00119-PROD-1
Version: VIDEO.VPU.1.0-00119
Licence: Redistributable. See LICENSE.qcom and qcom/NOTICE.txt for details
@ -6456,7 +6489,7 @@ Version: VIDEO.VPU.2.4.2-00025
File: qcom/vpu/vpu30_p4_s7.mbn
Link: qcom/vpu/vpu30_p4.mbn -> vpu30_p4_s7.mbn
Version: VIDEO.VPU.3.1-0096
Version: VIDEO.VPU.3.1-0095
File: qcom/vpu/vpu30_p4_s6.mbn
@ -6638,6 +6671,11 @@ Version: ADSP.HT.5.5.c8-00217-KODIAK-1
RawFile: qcom/qcs6490/radxa/dragon-q6a/adspr.jsn
RawFile: qcom/qcs6490/radxa/dragon-q6a/adsps.jsn
RawFile: qcom/qcs6490/radxa/dragon-q6a/adspua.jsn
File: qcom/qcs6490/Thundercomm/RubikPi3/adsp.mbn
Version: ADSP.HT.5.5.c8-00217-KODIAK-1
RawFile: qcom/qcs6490/Thundercomm/RubikPi3/adspr.jsn
RawFile: qcom/qcs6490/Thundercomm/RubikPi3/adsps.jsn
RawFile: qcom/qcs6490/Thundercomm/RubikPi3/adspua.jsn
File: qcom/qcs615/adsp.mbn
Version: ADSP.VT.5.2.c6-00059-SM6150-1
RawFile: qcom/qcs615/adspr.jsn
@ -6694,13 +6732,6 @@ File: qcom/sc8280xp/LENOVO/21BX/qcvss8280.mbn
Version: video-firmware.1.1-b158087140355883dc40b004032856a8feb5d565
File: qcom/x1e80100/LENOVO/21N1/qcvss8380.mbn
Version: vfw-3.1:rel0085-070fa3311d9ef968015fee7fea07198d7eb208a1
File: qcom/x1e80100/adsp.mbn
File: qcom/x1e80100/adsp_dtb.mbn
Version: ADSP.HT.5.9-00796-HAMOA-1
RawFile: qcom/x1e80100/adspr.jsn
RawFile: qcom/x1e80100/adsps.jsn
RawFile: qcom/x1e80100/adspua.jsn
RawFile: qcom/x1e80100/battmgr.jsn
RawFile: qcom/x1e80100/LENOVO/21N1/adspua.jsn
File: qcom/x1e80100/cdsp.mbn
File: qcom/x1e80100/cdsp_dtb.mbn
@ -6764,6 +6795,15 @@ File: qcom/kaanapali/soccp.mbn
File: qcom/kaanapali/soccp_dtb.mbn
Version: SOCCP.FW.2.1-00204-KAANAPALI_SOCCP_PACK-1
RawFile: qcom/kaanapali/soccpr.jsn
File: qcom/qcs8300/adsp.mbn
Version: DSP.AT.1.0.1-00163-LEMANS-1
RawFile: qcom/qcs8300/adspr.jsn
RawFile: qcom/qcs8300/adspua.jsn
File: qcom/qcs8300/cdsp0.mbn
Version: DSP.AT.1.0.1-00163-LEMANS-1
RawFile: qcom/qcs8300/cdspr.jsn
File: qcom/qcs8300/gpdsp0.mbn
Version: DSP.AT.1.0.1-00163-LEMANS-1
File: qcom/sa8775p/adsp.mbn
Version: DSP.AT.1.0.1-00163-LEMANS-1
RawFile: qcom/sa8775p/adspr.jsn
@ -6779,16 +6819,6 @@ File: qcom/sa8775p/gpdsp1.mbn
Version: DSP.AT.1.0.1-00163-LEMANS-1
RawFile: qcom/sa8775p/gpdsp1r.jsn
RawFile: qcom/sa8775p/gpdspr.jsn
File: qcom/qcs8300/adsp.mbn
Version: DSP.AT.1.0.1-00163-LEMANS-1
RawFile: qcom/qcs8300/adspr.jsn
RawFile: qcom/qcs8300/adspua.jsn
File: qcom/qcs8300/cdsp0.mbn
Version: DSP.AT.1.0.1-00163-LEMANS-1
RawFile: qcom/qcs8300/cdspr.jsn
File: qcom/qcs8300/gpdsp0.mbn
Version: DSP.AT.1.0.1-00163-LEMANS-1
File: qcom/sm8750/adsp.mbn
File: qcom/sm8750/adsp_dtb.mbn
Version: LPAIDSP.HT.1.2.c1-00379-PAKALA-1
@ -6800,6 +6830,13 @@ File: qcom/sm8750/cdsp.mbn
File: qcom/sm8750/cdsp_dtb.mbn
Version: CDSP.HT.3.1-00883-PAKALA-1
RawFile: qcom/sm8750/cdspr.jsn
File: qcom/x1e80100/adsp.mbn
File: qcom/x1e80100/adsp_dtb.mbn
Version: ADSP.HT.5.9-00828-HAMOA-1
RawFile: qcom/x1e80100/adspr.jsn
RawFile: qcom/x1e80100/adsps.jsn
RawFile: qcom/x1e80100/adspua.jsn
RawFile: qcom/x1e80100/battmgr.jsn
Licence: Redistributable. See LICENSE.qcom-2 and qcom/NOTICE.txt for details
@ -8983,11 +9020,11 @@ License: Redistributable. See LICENSE.qcom and qcom/NOTICE.txt for details
Driver: intel_vpu - Intel NPU driver
File: intel/vpu/vpu_37xx_v1.bin
Version: 20250723*MTL_CLIENT_SILICON-NVR+NN-deployment*52e7ebee50a93a07d14a1f162226cd55ad3999f0*52e7ebee50a93a07d14a1f162226cd55ad3999f0*52e7ebee50a
Version: 20251016*MTL_CLIENT_SILICON-release*1600*ci_tag_ud202544_vpu_rc_20251016_1600*74b0ef77ba8
Link: intel/vpu/vpu_37xx_v0.0.bin -> vpu_37xx_v1.bin
File: intel/vpu/vpu_40xx_v1.bin
Version: Jul 23 2025*NPU40xx*build/ci/npu-fw-ci-main-20250721_233537-27032-2-g52e7ebee50a*52e7ebee50a93a07d14a1f162226cd55ad3999f0
Version: Oct 16 2025*NPU40xx*ci_tag_ud202544_vpu_rc_20251016_1600*74b0ef77ba8227e491c299e8efa1d23a86c250ea
Link: intel/vpu/vpu_40xx_v0.0.bin -> vpu_40xx_v1.bin
License: Redistributable. See LICENSE.intel_vpu for details

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -89,10 +89,12 @@ def main():
"build_packages.py",
"check_whence.py",
"contrib/process_linux_firmware.py",
"contrib/pylib/whence.py",
"contrib/templates/debian.changelog",
"contrib/templates/debian.control",
"contrib/templates/debian.copyright",
"contrib/templates/rpm.spec",
"contrib/whence2yaml.py",
"copy-firmware.sh",
"dedup-firmware.sh",
]
@ -106,6 +108,7 @@ def main():
"carl9170fw/autogen.sh",
"check_whence.py",
"contrib/process_linux_firmware.py",
"contrib/whence2yaml.py",
"copy-firmware.sh",
"dedup-firmware.sh",
]

179
contrib/pylib/whence.py Normal file
View file

@ -0,0 +1,179 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: GPL-2.0
#
# WHENCE data classes
#
import json
import re
from dataclasses import asdict, dataclass, field
from pathlib import Path
from ruamel.yaml import YAML
def strip(obj: list) -> list:
"""Remove leading and trailing empty strings from a list of strings"""
if obj:
while obj[0] == "":
obj = obj[1:]
while obj[-1] == "":
obj = obj[:-1]
return obj
@dataclass
class BaseWhence:
"""Base WHENCE data class"""
def __str__(self):
return json.dumps(asdict(self), indent=2)
@dataclass
class Entry(BaseWhence):
"""WHENCE file/link entry class"""
type: str = "" # File or RawFile or Link
path: str = "" # Firmware file or link
target: str = "" # Link target
sources: list[str] = field(default_factory=list) # List of source files
version: str = ""
info: str = ""
origin: str = ""
@dataclass
class Section(BaseWhence):
"""WHENCE driver section class"""
driver: str = ""
module: str = ""
description: str = ""
licence: list[str] = field(default_factory=list)
licence_file: str = ""
notes: list[str] = field(default_factory=list)
entries: list[Entry] = field(default_factory=list)
@dataclass
class Whence(BaseWhence):
"""Main WHENCE data class"""
header: list[str] = field(default_factory=list)
sections: list[Section] = field(default_factory=list)
def load_whence(self, whence_file: Path) -> None:
"""Load data from a WHENCE file"""
self.sections = []
HEADER = 0
SECTION = 1
NOTES = 2
LICENCE = 3
with open(whence_file, encoding="utf-8") as fh:
whence_type = HEADER
for line in fh:
line = line.rstrip()
if ":" in line:
key, val = line.split(":", 1)
val = val.strip()
else:
key = None
val = None
if line.startswith("----------"):
whence_type = SECTION
section = Section()
self.sections.append(section)
continue
if key == "Driver":
section.driver = val
if " " in val:
module, desc = val.split(" ", 1)
desc = desc.strip(" -")
else:
module = val
desc = ""
section.module = module
section.description = desc
continue
if key in ("File", "RawFile"):
entry = Entry(type=key, path=val)
section.entries.append(entry)
continue
if key == "Version":
entry.version = val
continue
if key == "Link":
path, _, target = val.partition(" -> ")
entry = Entry(type=key, path=path, target=target)
section.entries.append(entry)
continue
if key == "Source":
entry.sources.append(val)
continue
if key == "Info":
entry.info = val
continue
if key == "Origin":
entry.origin = val
continue
if key in ("Licence", "License"):
whence_type = LICENCE
section.licence.append(val or "--")
m = re.search(r"(LICEN[CS]E\.[^ ]+) for details", line)
if m:
section.licence_file = m.group(1)
continue
if whence_type == HEADER:
self.header.append(line)
continue
if whence_type == NOTES or (whence_type == SECTION and line):
whence_type = NOTES
section.notes.append(line)
continue
if whence_type == LICENCE:
section.licence.append(line)
continue
if line:
raise Exception(f"Failed to parse line: {line}")
# Strip leading and trailing empty lines
self.header = strip(self.header)
for s in self.sections:
s.licence = strip(s.licence)
s.notes = strip(s.notes)
def save_yaml(self, whence_yaml: Path, remove_empty: bool = False) -> None:
"""Save the WHENCE data to a YAML file"""
d = asdict(self)
if remove_empty:
# Hack: Remove empty items to reduce clutter
for s in d["sections"]:
for key in list(s):
if not s[key]:
del s[key]
for e in s["entries"]:
for key in list(e):
if not e[key]:
del e[key]
with open(whence_yaml, mode="w", encoding="utf-8") as fh:
yaml = YAML()
yaml.dump(d, fh)

12
contrib/whence2yaml.py Executable file
View file

@ -0,0 +1,12 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: GPL-2.0
#
# Convert WHENCE to YAML format
#
from pylib.whence import Whence
whence = Whence()
whence.load_whence("WHENCE")
whence.save_yaml("WHENCE.yaml", remove_empty=True)
print("WHENCE data converted to YAML and saved to WHENCE.yaml")

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
qca/wcnhpbtfw21.tlv Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.b10c Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.b111 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.b8c Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.b9f Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.ba0 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.ba1 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.ba2 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.ba3 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.ba4 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.baa Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.bb8 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21.bin Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.b10c Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.b111 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.b8c Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.b9f Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.ba0 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.ba1 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.ba2 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.ba3 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.ba4 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.baa Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.bb8 Normal file

Binary file not shown.

BIN
qca/wcnhpnv21g.bin Normal file

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,22 @@
{
"sr_version": {
"major": 1,
"minor": 1,
"patch": 1
},
"sr_domain": {
"soc": "msm",
"domain": "adsp",
"subdomain": "root_pd",
"qmi_instance_id": 74
},
"sr_service": [
{
"provider": "tms",
"service": "servreg",
"service_data_valid": 0,
"service_data": 0,
"dcomment": "data can be used to configure ACK timeout.Make data_valid 1 as well.Unit is second"
}
]
}

View file

@ -0,0 +1,22 @@
{
"sr_version": {
"major": 1,
"minor": 1,
"patch": 1
},
"sr_domain": {
"soc": "msm",
"domain": "adsp",
"subdomain": "sensor_pd",
"qmi_instance_id": 74
},
"sr_service": [
{
"provider": "tms",
"service": "servreg",
"service_data_valid": 0,
"service_data": 0,
"dcomment": "data can be used to configure ACK timeout.Make data_valid 1 as well.Unit is second"
}
]
}

View file

@ -0,0 +1,29 @@
{
"sr_version": {
"major": 1,
"minor": 1,
"patch": 1
},
"sr_domain": {
"soc": "msm",
"domain": "adsp",
"subdomain": "audio_pd",
"qmi_instance_id": 74
},
"sr_service": [
{
"provider": "tms",
"service": "servreg",
"service_data_valid": 0,
"service_data": 0,
"dcomment": "data can be used to configure ACK timeout.Make data_valid 1 as well.Unit is second"
},
{
"provider": "avs",
"service": "audio",
"service_data_valid": 0,
"service_data": 0,
"dcomment": "No comment"
}
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.