Skip to content

Simplify a way to sideload proprietary firmware#1692

Open
lumag wants to merge 8 commits intoqualcomm-linux:masterfrom
lumag:upd-fw
Open

Simplify a way to sideload proprietary firmware#1692
lumag wants to merge 8 commits intoqualcomm-linux:masterfrom
lumag:upd-fw

Conversation

@lumag
Copy link
Contributor

@lumag lumag commented Mar 5, 2026

In case of Qualcomm HDK platforms not all the firmware is included into the NON-HLOS.bin image. Typically Adreno, IPA and Iris firmware are provided separately. Currently we have firmware-qcom-adreno.inc, which lets users to sideload Adreno firmware only. Let users provide all missing firmware files as an archive instead.

lumag added 8 commits March 5, 2026 10:26
Not all firmware files are included into the NON-HLOS.bin. Adreno, IPA
and Iris firmware is typically left out. Add a way to sideload those
files from an archive that is provided separately.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Include the VPU firmware from the generic VPU firmware location into the
venus firmware package.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Package IPA firmware provided for the SDA845 HDK.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
For the SM8150 HDK the firmware for Iris core isn't provided as a part
of the NON-HLOS.bin image (nor is it currently available in
linux-firmware). Sideload it via the proprietary firmware archive and
create a package for it.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
For the SM8350 HDK the firmware for Iris core isn't provided as a part
of the NON-HLOS.bin image (nor is it currently available in
linux-firmware)t. Sideload it via the proprietary firmware archive and
create a package for it.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
For the SM8450 HDK the firmware for Iris core isn't provided as a part
of the NON-HLOS.bin image (nor is it currently available in
linux-firmware)t. Sideload it via the proprietary firmware archive and
create a package for it.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Stop using firmware-qcom-adreno.inc to load Adreno firmware for the AR2
Gen1 platform. Use new PROPRIETARY_URI mechanism instead.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Historically meta-qcom had a special way of providing Adreno firmware
files. With the Adreno firmware for SM8x50 being a part of
linux-firmware this has mostly lost sense and now it has been
transformed into the 'PROPRIETARY_URI' support in the
firmware-qcom-hlos.inc. Since none of the boards in meta-qcom uses
firmware-qcom-adreno.inc anymore, drop it from the layer.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
@koenkooi
Copy link
Contributor

koenkooi commented Mar 6, 2026

The first commit sets PROPRIETARY_URI to an empty string, but I can't see where it's getting set to something else. The second to last commit mentions PROPRIETARY_URI in the commit message, but it's not in the actual diff. So what does it do exactly?

@lumag
Copy link
Contributor Author

lumag commented Mar 6, 2026

@koenkooi those files are not distributable, so I have:

$ grep sm8350 conf/local.conf
NHLOS_URI:pn-firmware-qcom-sm8350-hdk = "file:///home/lumag/Projects/Qcomm/NHLOS/NON-HLOS-sm8350-1.0.bin"
PROPRIETARY_URI:pn-firmware-qcom-sm8350-hdk = "file:///home/lumag/Projects/Qcomm/NHLOS/proprietary-sm8350.zip"
DSPSO_URI:pn-hexagon-dspso-qcom-sm8350-hdk = "file:///home/lumag/Projects/Qcomm/NHLOS/dspso-sm8350.bin"

$ unzip -l /home/lumag/Projects/Qcomm/NHLOS/proprietary-sm8350.zip
Archive:  /home/lumag/Projects/Qcomm/NHLOS/proprietary-sm8350.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
  4201752  2026-03-05 09:42   CAMERA_ICP_170.elf
  4288536  2026-03-05 09:42   CAMERA_ICP.elf
  1547480  2026-03-05 09:42   evass-lt.mbn
  1547464  2026-03-05 09:42   evass.mbn
    37704  2026-03-05 09:42   ipa_fws.mbn
  2031252  2026-03-05 09:42   vpu20_1v.mbn
  2030660  2026-03-05 09:42   vpu20_2v.mbn
  2030756  2026-03-05 09:42   vpu20_4v.mbn
---------                     -------
 17715604                     8 files

With the NON-HLOS.bin and dspso.bin coming from Android flash images for the HDK and proprietaery.zip being created manually with the files repacked from vendor.img

@github-actions
Copy link

github-actions bot commented Mar 6, 2026

Test run workflow

Test jobs for commit e30df9b

Test qcs615-adp-air qcs6490 qcs8300 qcs9100 qcs9100-rb8 qrb2210-rb1
AudioRecord pass pass pass pass pass pass
BT_FW_KMD_Service pass pass pass pass pass pass
BT_ON_OFF pass pass pass pass pass pass
BT_SCAN pass pass pass pass pass pass
CPUFreq_Validation pass pass pass pass pass pass
DSP_AudioPD pass pass pass pass pass pass
Ethernet ⚠️ skip 🚫 pass pass pass ⚠️ skip
Interrupts pass pass pass pass pass pass
OpenCV pass pass pass pass pass pass
WiFi_Firmware_Driver pass fail pass pass pass pass
WiFi_OnOff pass ⚠️ skip pass pass pass pass
adsp_remoteproc pass fail pass pass pass pass
boot pass pass pass pass pass pass
cdsp_remoteproc ⚠️ skip fail pass pass pass ⚠️ skip
hotplug pass pass pass pass pass pass
irq pass pass pass pass pass pass

All jobs summary

Job ID Device State Health
155916 qcs9100-rb8 Finished Complete
155919 qcs8300 Finished Complete
155928 qcs8300 Finished Complete
155959 qcs6490 Finished Complete
155958 qcs9100 Finished Complete
155967 qcs615-adp-air Submitted Unknown
155973 qcs9100-rb8 Finished Complete
155964 qcs615-adp-air Running Unknown
155969 qcs6490 Finished Complete
155927 qcs6490 Finished Complete
155971 qcs9100 Finished Complete
155977 qcs6490 Finished Complete
155962 qcs8300 Finished Complete
155907 qrb2210-rb1 Finished Complete
155968 qcs9100 Finished Complete
155912 qrb2210-rb1 Finished Complete
155976 qcs6490 Finished Complete
155975 qcs9100-rb8 Finished Complete
155956 qrb2210-rb1 Finished Complete
155965 qcs8300 Finished Incomplete
155913 qcs9100-rb8 Finished Complete
155966 qcs9100-rb8 Finished Complete
155923 qcs6490 Finished Complete
155974 qrb2210-rb1 Finished Complete
155978 qcs615-adp-air Submitted Unknown
155922 qcs6490 Finished Complete
155908 qrb2210-rb1 Finished Complete
155917 qcs9100 Finished Complete
155921 qcs615-adp-air Finished Complete
155910 qrb2210-rb1 Finished Complete
155905 qcs8300 Finished Complete
155970 qcs8300 Finished Complete
155955 qcs9100 Finished Complete
155914 qcs6490 Finished Complete
155972 qcs8300 Finished Complete
155918 qcs615-adp-air Finished Complete
155911 qcs9100 Finished Complete
155924 qcs8300 Finished Complete
155920 qcs615-adp-air Finished Complete
155963 qcs615-adp-air Running Unknown
155961 qrb2210-rb1 Finished Complete
155906 qcs9100 Finished Complete
155909 qcs9100 Finished Complete
155925 qcs9100-rb8 Finished Complete
155915 qcs615-adp-air Finished Complete
155960 qcs9100-rb8 Finished Complete
155926 qcs9100-rb8 Finished Complete
155957 qrb2210-rb1 Finished Complete

@test-reporting-app
Copy link

Test Results

   43 files   -   3    178 suites   - 29   2h 7m 2s ⏱️ - 33m 44s
   43 tests ±  0     40 ✅  -   2  0 💤 ±0  3 ❌ +2 
1 651 runs   - 299  1 642 ✅  - 296  6 💤  - 5  3 ❌ +2 

For more details on these failures, see this check.

Results for commit e30df9b. ± Comparison against base commit 57cbaaa.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants