From 0d0e9b6e52da97231ec843d70df4540b76cf5af3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 12 May 2026 09:35:08 +0200 Subject: [PATCH 01/15] novacustom/firmware-transition.md: note on problems with recent Heads on MTL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/novacustom/firmware-transition.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/unified/novacustom/firmware-transition.md b/docs/unified/novacustom/firmware-transition.md index a7d449f50f..0cfe7d4fb2 100644 --- a/docs/unified/novacustom/firmware-transition.md +++ b/docs/unified/novacustom/firmware-transition.md @@ -86,6 +86,18 @@ and the other way around. Your device should reboot into UEFI firmware. + !!! warning "PLEASE NOTE:" + + There is an [issue](https://github.com/Dasharo/dasharo-issues/issues/1837) with + transitioning between the **v0.9.1 release of Heads on V5x0TU** laptops and UEFI firmware, + where the flash attempt fails and ends in recovery shell. in such case + please run the command: + ``` + flashprog -p internal:boardmismatch=force -w /media/novacustom_${MODEL}_mtl_igpu_v0.9.1_heads.rom + ``` + Where `${MODEL}` is `v56x` or `v54x`. + + > When reverting to UEFI, it's not possible to restore EFI boot manager entries > that were added before installing Heads. Therefore, you may need to re-create > your boot entries manually, or find your boot loader using `Boot From File` From 047048a53e97446730757375d0f05b5e43ebf354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 12 May 2026 10:12:11 +0200 Subject: [PATCH 02/15] novacustom_v5*0tu/releases_heads.md: fix FTP link paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/novacustom_v540tu/releases_heads.md | 8 ++++---- docs/variants/novacustom_v560tu/releases_heads.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/variants/novacustom_v540tu/releases_heads.md b/docs/variants/novacustom_v540tu/releases_heads.md index 1637834fdd..fa3d79a676 100644 --- a/docs/variants/novacustom_v540tu/releases_heads.md +++ b/docs/variants/novacustom_v540tu/releases_heads.md @@ -104,10 +104,10 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/customer-key - [Intel microcode version MTL C0 0x00000025 0x25 19/03/2025](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20251111/intel-ucode/06-aa-04) + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20251111/license) -[novacustom_v54x_mtl_igpu_ec_v0.9.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v5x0_mtl/novacustom_mtl_igpu/novacustom_v540tu_mtl/heads/v0.9.1/novacustom_v54x_mtl_igpu_ec_v0.9.1.rom.sha256 -[novacustom_v54x_mtl_igpu_ec_v0.9.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v5x0_mtl/novacustom_mtl_igpu/novacustom_v540tu_mtl/heads/v0.9.1/novacustom_v54x_mtl_igpu_ec_v0.9.1.rom.sha256.sig -[novacustom_v54x_mtl_igpu_v0.9.1_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v5x0_mtl/novacustom_mtl_igpu/novacustom_v540tu_mtl/heads/v0.9.1/novacustom_v54x_mtl_igpu_v0.9.1_heads.rom.sha256 -[novacustom_v54x_mtl_igpu_v0.9.1_heads.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v5x0_mtl/novacustom_mtl_igpu/novacustom_v540tu_mtl/heads/v0.9.1/novacustom_v54x_mtl_igpu_v0.9.1_heads.rom.sha256.sig +[novacustom_v54x_mtl_igpu_ec_v0.9.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl_igpu/heads/v0.9.1/novacustom_v54x_mtl_igpu_ec_v0.9.1.rom.sha256 +[novacustom_v54x_mtl_igpu_ec_v0.9.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl_igpu/heads/v0.9.1/novacustom_v54x_mtl_igpu_ec_v0.9.1.rom.sha256.sig +[novacustom_v54x_mtl_igpu_v0.9.1_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl_igpu/heads/v0.9.1/novacustom_v54x_mtl_igpu_v0.9.1_heads.rom.sha256 +[novacustom_v54x_mtl_igpu_v0.9.1_heads.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl_igpu/heads/v0.9.1/novacustom_v54x_mtl_igpu_v0.9.1_heads.rom.sha256.sig ## v0.9.0 - 2025-03-20 diff --git a/docs/variants/novacustom_v560tu/releases_heads.md b/docs/variants/novacustom_v560tu/releases_heads.md index be56a02d18..a4ebff1ba6 100644 --- a/docs/variants/novacustom_v560tu/releases_heads.md +++ b/docs/variants/novacustom_v560tu/releases_heads.md @@ -97,10 +97,10 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/customer-key - [Intel microcode version MTL C0 0x00000025 0x25 19/03/2025](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20251111/intel-ucode/06-aa-04) + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20251111/license) -[novacustom_v56x_mtl_igpu_ec_v0.9.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v5x0_mtl/novacustom_mtl_igpu/novacustom_v560tu_mtl/heads/v0.9.1/novacustom_v56x_mtl_igpu_ec_v0.9.1.rom.sha256 -[novacustom_v56x_mtl_igpu_ec_v0.9.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v5x0_mtl/novacustom_mtl_igpu/novacustom_v560tu_mtl/heads/v0.9.1/novacustom_v56x_mtl_igpu_ec_v0.9.1.rom.sha256.sig -[novacustom_v56x_mtl_igpu_v0.9.1_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v5x0_mtl/novacustom_mtl_igpu/novacustom_v560tu_mtl/heads/v0.9.1/novacustom_v56x_mtl_igpu_v0.9.1_heads.rom.sha256 -[novacustom_v56x_mtl_igpu_v0.9.1_heads.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v5x0_mtl/novacustom_mtl_igpu/novacustom_v560tu_mtl/heads/v0.9.1/novacustom_v56x_mtl_igpu_v0.9.1_heads.rom.sha256.sig +[novacustom_v56x_mtl_igpu_ec_v0.9.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl_igpu/heads/v0.9.1/novacustom_v56x_mtl_igpu_ec_v0.9.1.rom.sha256 +[novacustom_v56x_mtl_igpu_ec_v0.9.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl_igpu/heads/v0.9.1/novacustom_v56x_mtl_igpu_ec_v0.9.1.rom.sha256.sig +[novacustom_v56x_mtl_igpu_v0.9.1_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl_igpu/heads/v0.9.1/novacustom_v56x_mtl_igpu_v0.9.1_heads.rom.sha256 +[novacustom_v56x_mtl_igpu_v0.9.1_heads.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl_igpu/heads/v0.9.1/novacustom_v56x_mtl_igpu_v0.9.1_heads.rom.sha256.sig ## v0.9.0 - 2025-01-30 From a272d678a9767ed44874ecf55eaff4c0aae82939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 12 May 2026 10:35:00 +0200 Subject: [PATCH 03/15] novacustom/building-manual.md: update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/novacustom/building-manual.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/unified/novacustom/building-manual.md b/docs/unified/novacustom/building-manual.md index 821322f623..1ade6f202f 100644 --- a/docs/unified/novacustom/building-manual.md +++ b/docs/unified/novacustom/building-manual.md @@ -354,17 +354,17 @@ === "V540TU 14th Gen" ```bash - git checkout novacustom_v54x_mtl_v0.9.0 + git checkout novacustom_v54x_mtl_heads_v0.9.1 ``` === "V560TU 14th Gen" ```bash - git checkout novacustom_v56x_mtl_v0.9.0 + git checkout novacustom_v56x_mtl_heads_v0.9.1 ``` === "NV4x 12th Gen" ```bash - git checkout novacustom_nv4x_adl_v0.9.2 + git checkout novacustom_nv4x_adl_heads_v0.9.3 ``` 3. Start the build inside the docker container: @@ -426,7 +426,7 @@ ``` This will produce a Dasharo binary placed in - `build/x86/novacustom-nv4x_adl/dasharo-novacustom-nv4x_adl-novacustom_nv4x_adl_v0.9.2.rom`. + `build/x86/novacustom-nv4x_adl/dasharo-novacustom-nv4x_adl-novacustom_nv4x_adl_heads_v0.9.3.rom`. ## Install Dasharo firmware From b6a1a8473ae9ce244b533a5b35d092898e549676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 12 May 2026 10:41:43 +0200 Subject: [PATCH 04/15] nv4x_adl/openness-score.md: add v0.9.2 heads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- ...4x_adl_v0.9.2_heads.rom_openness_chart.png | Bin 0 -> 28846 bytes ....2_heads.rom_openness_chart_full_image.png | Bin 0 -> 33018 bytes .../novacustom_nv4x_adl/openness-score.md | 68 ++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.2_heads.rom_openness_chart.png create mode 100644 docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.2_heads.rom_openness_chart_full_image.png diff --git a/docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.2_heads.rom_openness_chart.png b/docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.2_heads.rom_openness_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..5f4a549457206c2cd8f2bdccb585f8b4ca3546b9 GIT binary patch literal 28846 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 literal 0 HcmV?d00001 diff --git a/docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.2_heads.rom_openness_chart_full_image.png b/docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.2_heads.rom_openness_chart_full_image.png new file mode 100644 index 0000000000000000000000000000000000000000..feb7e0c496baa130e4a5d53faffb2a37f9858ac5 GIT binary patch literal 33018 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 USxS3x82Imu`gu~Rs#W0s03(>mEdT%j literal 0 HcmV?d00001 diff --git a/docs/variants/novacustom_nv4x_adl/openness-score.md b/docs/variants/novacustom_nv4x_adl/openness-score.md index 9cdbf155d7..4638250c9f 100644 --- a/docs/variants/novacustom_nv4x_adl/openness-score.md +++ b/docs/variants/novacustom_nv4x_adl/openness-score.md @@ -72,6 +72,74 @@ Closed-source code percentage: **40.0%** | (empty) | null | 100 | none | empty | | (empty) | null | 4983780 | none | empty | +## v0.9.2 Heads + +Openness Score for novacustom_nv4x_adl_v0.9.2_heads.rom + +Open-source code percentage: **60.1%** +Closed-source code percentage: **39.9%** + +* Image size: 33554432 (0x2000000) +* Number of regions: 7 +* Number of CBFSes: 1 +* Total open-source code size: 9944607 (0x97be1f) +* Total closed-source code size: 6593380 (0x649b64) +* Total data size: 106613 (0x1a075) +* Total empty size: 16909832 (0x1020608) + +![](novacustom_nv4x_adl_v0.9.2_heads.rom_openness_chart.png) + +![](novacustom_nv4x_adl_v0.9.2_heads.rom_openness_chart_full_image.png) + +> Numbers given above already include the calculations from CBFS regions +> presented below + +### FMAP regions + +| FMAP region | Offset | Size | Category | +| ----------- | ------ | ---- | -------- | +| SI_ME | 0x1000 | 0x4b6000 | closed-source | +| SI_DESC | 0x0 | 0x1000 | data | +| RW_MRC_CACHE | 0x1000000 | 0x10000 | data | +| FMAP | 0x1010000 | 0x200 | data | +| SI_DEVICEEXT2 | 0x4b7000 | 0xb49000 | empty | + +### CBFS COREBOOT + +* CBFS size: 16711168 +* Number of files: 20 +* Open-source files size: 9944607 (0x97be1f) +* Closed-source files size: 1653604 (0x193b64) +* Data size: 36469 (0x8e75) +* Empty size: 5076488 (0x4d7608) + +> Numbers given above are already normalized (i.e. they already include size +> of metadata and possible closed-source LAN drivers included in the payload +> which are not visible in the table below) + +| CBFS filename | CBFS filetype | Size | Compression | Category | +| ------------- | ------------- | ---- | ----------- | -------- | +| fallback/payload | simple elf | 9597114 | none | open-source | +| fallback/romstage | stage | 84704 | none | open-source | +| fallback/ramstage | stage | 169034 | LZMA | open-source | +| fallback/dsdt.aml | raw | 22719 | none | open-source | +| fallback/postcar | stage | 35068 | none | open-source | +| bootblock | bootblock | 35968 | none | open-source | +| cpu_microcode_blob.bin | microcode | 562176 | none | closed-source | +| fspm.bin | fsp | 786432 | none | closed-source | +| fsps.bin | fsp | 304996 | LZ4 | closed-source | +| cbfs_master_header | cbfs header | 32 | none | data | +| intel_fit | intel_fit | 80 | none | data | +| config | raw | 4689 | LZMA | data | +| revision | raw | 867 | none | data | +| build_info | raw | 96 | none | data | +| bootsplash.jpg | bootsplash | 26784 | none | data | +| vbt.bin | raw | 1290 | LZMA | data | +| cmos.default | cmos_default | 256 | none | data | +| cmos_layout.bin | cmos_layout | 800 | none | data | +| (empty) | null | 996 | none | empty | +| (empty) | null | 5075492 | none | empty | + ## v1.8.0 Openness Score for novacustom_nv4x_adl_v1.8.0_btg_prod.rom From 9744728fafcf7499da3902556d1ed10cc6025442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 12 May 2026 11:15:52 +0200 Subject: [PATCH 05/15] novacustom/building-manual.md: fix docker ref obtaining MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/novacustom/building-manual.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/docs/unified/novacustom/building-manual.md b/docs/unified/novacustom/building-manual.md index 1ade6f202f..11f229b6fd 100644 --- a/docs/unified/novacustom/building-manual.md +++ b/docs/unified/novacustom/building-manual.md @@ -388,8 +388,7 @@ === "V540TU 14th Gen" ```bash - DOCKER_IMAGE=$(grep -oP '^\s*-?\s*image:\s*\K(tlaurion/heads-dev-env:[^\s]+)' \ - .circleci/config.yml | head -n 1) + DOCKER_IMAGE=$(grep -oP '^\s*-\s*image:\s*\K[^\s]+' .circleci/config.yml | head -n 1) docker run --rm -it \ -v "$(pwd)":/home/coreboot/coreboot \ -w /home/coreboot/coreboot \ @@ -402,8 +401,7 @@ === "V560TU 14th Gen" ```bash - DOCKER_IMAGE=$(grep -oP '^\s*-?\s*image:\s*\K(tlaurion/heads-dev-env:[^\s]+)' \ - .circleci/config.yml | head -n 1) + DOCKER_IMAGE=$(grep -oP '^\s*-\s*image:\s*\K[^\s]+' .circleci/config.yml | head -n 1) docker run --rm -it \ -v "$(pwd)":/home/coreboot/coreboot \ -w /home/coreboot/coreboot \ @@ -416,8 +414,7 @@ === "NV4x 12th Gen" ```bash - DOCKER_IMAGE=$(grep -oP '^\s*-?\s*image:\s*\K(tlaurion/heads-dev-env:[^\s]+)' \ - .circleci/config.yml | head -n 1) + DOCKER_IMAGE=$(grep -oP '^\s*-\s*image:\s*\K[^\s]+' .circleci/config.yml | head -n 1) docker run --rm -it \ -v "$(pwd)":/home/coreboot/coreboot \ -w /home/coreboot/coreboot \ From e6a3517320be4e7dd2f402c61464455cca315dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 12 May 2026 11:30:12 +0200 Subject: [PATCH 06/15] nv4x_adl/openness-score.md: add v0.9.1 heads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- ...4x_adl_v0.9.1_heads.rom_openness_chart.png | Bin 0 -> 28589 bytes ....1_heads.rom_openness_chart_full_image.png | Bin 0 -> 34296 bytes .../novacustom_nv4x_adl/openness-score.md | 68 ++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.1_heads.rom_openness_chart.png create mode 100644 docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.1_heads.rom_openness_chart_full_image.png diff --git a/docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.1_heads.rom_openness_chart.png b/docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.1_heads.rom_openness_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..87d68b4be6367de94be58819132fdaee5fdf2181 GIT binary patch literal 28589 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 U3-WyC!@wVn3zt+&lx-gTUtDG~6951J literal 0 HcmV?d00001 diff --git a/docs/variants/novacustom_nv4x_adl/openness-score.md b/docs/variants/novacustom_nv4x_adl/openness-score.md index 4638250c9f..6d99c6f068 100644 --- a/docs/variants/novacustom_nv4x_adl/openness-score.md +++ b/docs/variants/novacustom_nv4x_adl/openness-score.md @@ -140,6 +140,74 @@ Closed-source code percentage: **39.9%** | (empty) | null | 996 | none | empty | | (empty) | null | 5075492 | none | empty | +## v0.9.1 Heads + +Openness Score for novacustom_nv4x_adl_v0.9.1_heads.rom + +Open-source code percentage: **58.0%** +Closed-source code percentage: **42.0%** + +* Image size: 33554432 (0x2000000) +* Number of regions: 7 +* Number of CBFSes: 1 +* Total open-source code size: 9089775 (0x8ab2ef) +* Total closed-source code size: 6573197 (0x644c8d) +* Total data size: 106492 (0x19ffc) +* Total empty size: 17784968 (0x10f6088) + +![](novacustom_nv4x_adl_v0.9.1_heads.rom_openness_chart.png) + +![](novacustom_nv4x_adl_v0.9.1_heads.rom_openness_chart_full_image.png) + +> Numbers given above already include the calculations from CBFS regions +> presented below + +### FMAP regions + +| FMAP region | Offset | Size | Category | +| ----------- | ------ | ---- | -------- | +| SI_ME | 0x1000 | 0x4b6000 | closed-source | +| SI_DESC | 0x0 | 0x1000 | data | +| RW_MRC_CACHE | 0x1000000 | 0x10000 | data | +| FMAP | 0x1010000 | 0x200 | data | +| SI_DEVICEEXT2 | 0x4b7000 | 0xb49000 | empty | + +### CBFS COREBOOT + +* CBFS size: 16711168 +* Number of files: 20 +* Open-source files size: 9089775 (0x8ab2ef) +* Closed-source files size: 1633421 (0x18ec8d) +* Data size: 36348 (0x8dfc) +* Empty size: 5951624 (0x5ad088) + +> Numbers given above are already normalized (i.e. they already include size +> of metadata and possible closed-source LAN drivers included in the payload +> which are not visible in the table below) + +| CBFS filename | CBFS filetype | Size | Compression | Category | +| ------------- | ------------- | ---- | ----------- | -------- | +| fallback/romstage | stage | 77376 | none | open-source | +| fallback/ramstage | stage | 145659 | LZMA | open-source | +| fallback/dsdt.aml | raw | 22675 | none | open-source | +| fallback/postcar | stage | 31648 | none | open-source | +| fallback/payload | simple elf | 8776449 | none | open-source | +| bootblock | bootblock | 35968 | none | open-source | +| cpu_microcode_blob.bin | microcode | 550912 | none | closed-source | +| fspm.bin | fsp | 786432 | none | closed-source | +| fsps.bin | fsp | 296077 | LZ4 | closed-source | +| cbfs_master_header | cbfs header | 28 | none | data | +| intel_fit | intel_fit | 80 | none | data | +| config | raw | 4579 | LZMA | data | +| revision | raw | 867 | none | data | +| build_info | raw | 96 | none | data | +| bootsplash.jpg | bootsplash | 26784 | none | data | +| cmos.default | cmos_default | 256 | none | data | +| vbt.bin | raw | 1290 | LZMA | data | +| cmos_layout.bin | cmos_layout | 800 | none | data | +| (empty) | null | 612 | none | empty | +| (empty) | null | 5951012 | none | empty | + ## v1.8.0 Openness Score for novacustom_nv4x_adl_v1.8.0_btg_prod.rom From 445ec1a6bec53bda6c0990b9d28cfeb75d64b655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 12 May 2026 11:41:14 +0200 Subject: [PATCH 07/15] nv4x_adl/openness-score.md: add v0.9.0 heads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- ...4x_adl_v0.9.0_heads.rom_openness_chart.png | Bin 0 -> 28630 bytes ....0_heads.rom_openness_chart_full_image.png | Bin 0 -> 34344 bytes .../novacustom_nv4x_adl/openness-score.md | 68 ++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.0_heads.rom_openness_chart.png create mode 100644 docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.0_heads.rom_openness_chart_full_image.png diff --git a/docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.0_heads.rom_openness_chart.png b/docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.0_heads.rom_openness_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..9b11be0c0aa0b7a87ae892ed3cb6ad50227b620b GIT binary patch literal 28630 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%0AkgLC*8{C>4s569lJ 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 literal 0 HcmV?d00001 diff --git a/docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.0_heads.rom_openness_chart_full_image.png b/docs/variants/novacustom_nv4x_adl/novacustom_nv4x_adl_v0.9.0_heads.rom_openness_chart_full_image.png new file mode 100644 index 0000000000000000000000000000000000000000..a879c42e749165ce07101c7c5b50d3dd248b5520 GIT binary patch literal 34344 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 Numbers given above already include the calculations from CBFS regions +> presented below + +### FMAP regions + +| FMAP region | Offset | Size | Category | +| ----------- | ------ | ---- | -------- | +| SI_ME | 0x1000 | 0x4b6000 | closed-source | +| SI_DESC | 0x0 | 0x1000 | data | +| RW_MRC_CACHE | 0x1000000 | 0x10000 | data | +| FMAP | 0x1010000 | 0x200 | data | +| SI_DEVICEEXT2 | 0x4b7000 | 0xb49000 | empty | + +### CBFS COREBOOT + +* CBFS size: 16711168 +* Number of files: 20 +* Open-source files size: 9089775 (0x8ab2ef) +* Closed-source files size: 1633421 (0x18ec8d) +* Data size: 36348 (0x8dfc) +* Empty size: 5951624 (0x5ad088) + +> Numbers given above are already normalized (i.e. they already include size +> of metadata and possible closed-source LAN drivers included in the payload +> which are not visible in the table below) + +| CBFS filename | CBFS filetype | Size | Compression | Category | +| ------------- | ------------- | ---- | ----------- | -------- | +| fallback/romstage | stage | 77376 | none | open-source | +| fallback/ramstage | stage | 145659 | LZMA | open-source | +| fallback/dsdt.aml | raw | 22675 | none | open-source | +| fallback/postcar | stage | 31648 | none | open-source | +| fallback/payload | simple elf | 8776449 | none | open-source | +| bootblock | bootblock | 35968 | none | open-source | +| cpu_microcode_blob.bin | microcode | 550912 | none | closed-source | +| fspm.bin | fsp | 786432 | none | closed-source | +| fsps.bin | fsp | 296077 | LZ4 | closed-source | +| cbfs_master_header | cbfs header | 28 | none | data | +| intel_fit | intel_fit | 80 | none | data | +| config | raw | 4579 | LZMA | data | +| revision | raw | 867 | none | data | +| build_info | raw | 96 | none | data | +| bootsplash.jpg | bootsplash | 26784 | none | data | +| cmos.default | cmos_default | 256 | none | data | +| vbt.bin | raw | 1290 | LZMA | data | +| cmos_layout.bin | cmos_layout | 800 | none | data | +| (empty) | null | 612 | none | empty | +| (empty) | null | 5951012 | none | empty | + ## v1.8.0 Openness Score for novacustom_nv4x_adl_v1.8.0_btg_prod.rom From 4d246855224f076ab9a056e8766b2913f962fbff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 12 May 2026 11:42:26 +0200 Subject: [PATCH 08/15] nv4x_adl/openness-score.md: rearrange chronologically MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- .../novacustom_nv4x_adl/openness-score.md | 262 +++++++++--------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/docs/variants/novacustom_nv4x_adl/openness-score.md b/docs/variants/novacustom_nv4x_adl/openness-score.md index 899e804c49..4d22e2d354 100644 --- a/docs/variants/novacustom_nv4x_adl/openness-score.md +++ b/docs/variants/novacustom_nv4x_adl/openness-score.md @@ -72,6 +72,137 @@ Closed-source code percentage: **40.0%** | (empty) | null | 100 | none | empty | | (empty) | null | 4983780 | none | empty | +## v1.8.0 + +Openness Score for novacustom_nv4x_adl_v1.8.0_btg_prod.rom + +Open-source code percentage: **30.8%** +Closed-source code percentage: **69.2%** + +* Image size: 33554432 (0x2000000) +* Number of regions: 27 +* Number of CBFSes: 3 +* Total open-source code size: 3982612 (0x3cc514) +* Total closed-source code size: 8963820 (0x88c6ec) +* Total data size: 954756 (0xe9184) +* Total empty size: 19653244 (0x12be27c) + +![](novacustom_nv4x_adl_v1.8.0_btg_prod.rom_openness_chart.png) + +![](novacustom_nv4x_adl_v1.8.0_btg_prod.rom_openness_chart_full_image.png) + +> Numbers given above already include the calculations from CBFS regions +> presented below + +### FMAP regions + +| FMAP region | Offset | Size | Category | +| ----------- | ------ | ---- | -------- | +| SI_ME | 0x1000 | 0x4ff000 | closed-source | +| SI_DESC | 0x0 | 0x1000 | data | +| RECOVERY_MRC_CACHE | 0x1000000 | 0x10000 | data | +| RW_MRC_CACHE | 0x1010000 | 0x10000 | data | +| SMMSTORE | 0x1020000 | 0x80000 | data | +| SHARED_DATA | 0x10a0000 | 0x2000 | data | +| VBLOCK_DEV | 0x10a2000 | 0x2000 | data | +| RW_NVRAM | 0x10a4000 | 0x6000 | data | +| CONSOLE | 0x10aa000 | 0x20000 | data | +| VBLOCK_A | 0x11ca000 | 0x10000 | data | +| RW_FWID_A | 0x1bfffc0 | 0x40 | data | +| RO_VPD | 0x1c00000 | 0x4000 | data | +| FMAP | 0x1c04000 | 0x800 | data | +| RO_FRID | 0x1c04800 | 0x40 | data | +| RO_FRID_PAD | 0x1c04840 | 0x7c0 | data | +| GBB | 0x1c05000 | 0x3000 | data | +| UNUSED | 0x500000 | 0xb00000 | empty | + +### CBFS BOOTSPLASH + +* CBFS size: 1048576 +* Number of files: 1 +* Open-source files size: 0 (0x0) +* Closed-source files size: 0 (0x0) +* Data size: 28 (0x1c) +* Empty size: 1048548 (0xfffe4) + +> Numbers given above are already normalized (i.e. they already include size +> of metadata and possible closed-source LAN drivers included in the payload +> which are not visible in the table below) + +| CBFS filename | CBFS filetype | Size | Compression | Category | +| ------------- | ------------- | ---- | ----------- | -------- | +| (empty) | null | 1048548 | none | empty | + +### CBFS FW_MAIN_A + +* CBFS size: 10641344 +* Number of files: 16 +* Open-source files size: 1933962 (0x1d828a) +* Closed-source files size: 1705589 (0x1a0675) +* Data size: 10197 (0x27d5) +* Empty size: 6991596 (0x6aaeec) + +> Numbers given above are already normalized (i.e. they already include size +> of metadata and possible closed-source LAN drivers included in the payload +> which are not visible in the table below) + +| CBFS filename | CBFS filetype | Size | Compression | Category | +| ------------- | ------------- | ---- | ----------- | -------- | +| fallback/payload | simple elf | 1549959 | none | open-source | +| fallback/romstage | stage | 113480 | none | open-source | +| fallback/ramstage | stage | 164903 | LZMA | open-source | +| fallback/dsdt.aml | raw | 23248 | none | open-source | +| fallback/postcar | stage | 82372 | none | open-source | +| cpu_microcode_blob.bin | microcode | 569344 | none | closed-source | +| fspm.bin | fsp | 786432 | none | closed-source | +| fsps.bin | fsp | 333763 | LZ4 | closed-source | +| config | raw | 6218 | LZMA | data | +| revision | raw | 859 | none | data | +| build_info | raw | 102 | none | data | +| vbt.bin | raw | 1290 | LZMA | data | +| (empty) | null | 266660 | none | empty | +| (empty) | null | 2084 | none | empty | +| (empty) | null | 6722852 | none | empty | + +### CBFS COREBOOT + +* CBFS size: 4161536 +* Number of files: 24 +* Open-source files size: 2048650 (0x1f428a) +* Closed-source files size: 2019447 (0x1ed077) +* Data size: 14675 (0x3953) +* Empty size: 78764 (0x133ac) + +> Numbers given above are already normalized (i.e. they already include size +> of metadata and possible closed-source LAN drivers included in the payload +> which are not visible in the table below) + +| CBFS filename | CBFS filetype | Size | Compression | Category | +| ------------- | ------------- | ---- | ----------- | -------- | +| fallback/payload | simple elf | 1549959 | none | open-source | +| fallback/romstage | stage | 113480 | none | open-source | +| fallback/dsdt.aml | raw | 23248 | none | open-source | +| fallback/ramstage | stage | 164903 | LZMA | open-source | +| fallback/postcar | stage | 82372 | none | open-source | +| bootblock | bootblock | 114688 | none | open-source | +| cpu_microcode_blob.bin | microcode | 569344 | none | closed-source | +| txt_bios_acm.bin | raw | 256000 | none | closed-source | +| fspm.bin | fsp | 786432 | none | closed-source | +| fsps.bin | fsp | 333763 | LZ4 | closed-source | +| txt_sinit_acm.bin | raw | 57858 | LZMA | closed-source | +| cbfs_master_header | cbfs header | 32 | none | data | +| intel_fit | intel_fit | 272 | none | data | +| boot_policy_manifest.bin | raw | 1536 | none | data | +| key_manifest.bin | raw | 1024 | none | data | +| config | raw | 6218 | LZMA | data | +| revision | raw | 859 | none | data | +| build_info | raw | 102 | none | data | +| vbt.bin | raw | 1290 | LZMA | data | +| cmos_layout.bin | cmos_layout | 800 | none | data | +| (empty) | null | 40548 | none | empty | +| (empty) | null | 676 | none | empty | +| (empty) | null | 37540 | none | empty | + ## v0.9.2 Heads Openness Score for novacustom_nv4x_adl_v0.9.2_heads.rom @@ -276,137 +407,6 @@ Closed-source code percentage: **42.0%** | (empty) | null | 612 | none | empty | | (empty) | null | 5951012 | none | empty | -## v1.8.0 - -Openness Score for novacustom_nv4x_adl_v1.8.0_btg_prod.rom - -Open-source code percentage: **30.8%** -Closed-source code percentage: **69.2%** - -* Image size: 33554432 (0x2000000) -* Number of regions: 27 -* Number of CBFSes: 3 -* Total open-source code size: 3982612 (0x3cc514) -* Total closed-source code size: 8963820 (0x88c6ec) -* Total data size: 954756 (0xe9184) -* Total empty size: 19653244 (0x12be27c) - -![](novacustom_nv4x_adl_v1.8.0_btg_prod.rom_openness_chart.png) - -![](novacustom_nv4x_adl_v1.8.0_btg_prod.rom_openness_chart_full_image.png) - -> Numbers given above already include the calculations from CBFS regions -> presented below - -### FMAP regions - -| FMAP region | Offset | Size | Category | -| ----------- | ------ | ---- | -------- | -| SI_ME | 0x1000 | 0x4ff000 | closed-source | -| SI_DESC | 0x0 | 0x1000 | data | -| RECOVERY_MRC_CACHE | 0x1000000 | 0x10000 | data | -| RW_MRC_CACHE | 0x1010000 | 0x10000 | data | -| SMMSTORE | 0x1020000 | 0x80000 | data | -| SHARED_DATA | 0x10a0000 | 0x2000 | data | -| VBLOCK_DEV | 0x10a2000 | 0x2000 | data | -| RW_NVRAM | 0x10a4000 | 0x6000 | data | -| CONSOLE | 0x10aa000 | 0x20000 | data | -| VBLOCK_A | 0x11ca000 | 0x10000 | data | -| RW_FWID_A | 0x1bfffc0 | 0x40 | data | -| RO_VPD | 0x1c00000 | 0x4000 | data | -| FMAP | 0x1c04000 | 0x800 | data | -| RO_FRID | 0x1c04800 | 0x40 | data | -| RO_FRID_PAD | 0x1c04840 | 0x7c0 | data | -| GBB | 0x1c05000 | 0x3000 | data | -| UNUSED | 0x500000 | 0xb00000 | empty | - -### CBFS BOOTSPLASH - -* CBFS size: 1048576 -* Number of files: 1 -* Open-source files size: 0 (0x0) -* Closed-source files size: 0 (0x0) -* Data size: 28 (0x1c) -* Empty size: 1048548 (0xfffe4) - -> Numbers given above are already normalized (i.e. they already include size -> of metadata and possible closed-source LAN drivers included in the payload -> which are not visible in the table below) - -| CBFS filename | CBFS filetype | Size | Compression | Category | -| ------------- | ------------- | ---- | ----------- | -------- | -| (empty) | null | 1048548 | none | empty | - -### CBFS FW_MAIN_A - -* CBFS size: 10641344 -* Number of files: 16 -* Open-source files size: 1933962 (0x1d828a) -* Closed-source files size: 1705589 (0x1a0675) -* Data size: 10197 (0x27d5) -* Empty size: 6991596 (0x6aaeec) - -> Numbers given above are already normalized (i.e. they already include size -> of metadata and possible closed-source LAN drivers included in the payload -> which are not visible in the table below) - -| CBFS filename | CBFS filetype | Size | Compression | Category | -| ------------- | ------------- | ---- | ----------- | -------- | -| fallback/payload | simple elf | 1549959 | none | open-source | -| fallback/romstage | stage | 113480 | none | open-source | -| fallback/ramstage | stage | 164903 | LZMA | open-source | -| fallback/dsdt.aml | raw | 23248 | none | open-source | -| fallback/postcar | stage | 82372 | none | open-source | -| cpu_microcode_blob.bin | microcode | 569344 | none | closed-source | -| fspm.bin | fsp | 786432 | none | closed-source | -| fsps.bin | fsp | 333763 | LZ4 | closed-source | -| config | raw | 6218 | LZMA | data | -| revision | raw | 859 | none | data | -| build_info | raw | 102 | none | data | -| vbt.bin | raw | 1290 | LZMA | data | -| (empty) | null | 266660 | none | empty | -| (empty) | null | 2084 | none | empty | -| (empty) | null | 6722852 | none | empty | - -### CBFS COREBOOT - -* CBFS size: 4161536 -* Number of files: 24 -* Open-source files size: 2048650 (0x1f428a) -* Closed-source files size: 2019447 (0x1ed077) -* Data size: 14675 (0x3953) -* Empty size: 78764 (0x133ac) - -> Numbers given above are already normalized (i.e. they already include size -> of metadata and possible closed-source LAN drivers included in the payload -> which are not visible in the table below) - -| CBFS filename | CBFS filetype | Size | Compression | Category | -| ------------- | ------------- | ---- | ----------- | -------- | -| fallback/payload | simple elf | 1549959 | none | open-source | -| fallback/romstage | stage | 113480 | none | open-source | -| fallback/dsdt.aml | raw | 23248 | none | open-source | -| fallback/ramstage | stage | 164903 | LZMA | open-source | -| fallback/postcar | stage | 82372 | none | open-source | -| bootblock | bootblock | 114688 | none | open-source | -| cpu_microcode_blob.bin | microcode | 569344 | none | closed-source | -| txt_bios_acm.bin | raw | 256000 | none | closed-source | -| fspm.bin | fsp | 786432 | none | closed-source | -| fsps.bin | fsp | 333763 | LZ4 | closed-source | -| txt_sinit_acm.bin | raw | 57858 | LZMA | closed-source | -| cbfs_master_header | cbfs header | 32 | none | data | -| intel_fit | intel_fit | 272 | none | data | -| boot_policy_manifest.bin | raw | 1536 | none | data | -| key_manifest.bin | raw | 1024 | none | data | -| config | raw | 6218 | LZMA | data | -| revision | raw | 859 | none | data | -| build_info | raw | 102 | none | data | -| vbt.bin | raw | 1290 | LZMA | data | -| cmos_layout.bin | cmos_layout | 800 | none | data | -| (empty) | null | 40548 | none | empty | -| (empty) | null | 676 | none | empty | -| (empty) | null | 37540 | none | empty | - ## v1.7.2 Report has been generated with Openness Score utility version v0.2 From 76b0dcc0e267c26f6f80eb83e7664d9726169386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Wed, 13 May 2026 08:27:54 +0200 Subject: [PATCH 09/15] novacustom/firmware-transition.md: update flashprog command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/novacustom/firmware-transition.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/unified/novacustom/firmware-transition.md b/docs/unified/novacustom/firmware-transition.md index 0cfe7d4fb2..8722b457f1 100644 --- a/docs/unified/novacustom/firmware-transition.md +++ b/docs/unified/novacustom/firmware-transition.md @@ -92,8 +92,8 @@ and the other way around. transitioning between the **v0.9.1 release of Heads on V5x0TU** laptops and UEFI firmware, where the flash attempt fails and ends in recovery shell. in such case please run the command: - ``` - flashprog -p internal:boardmismatch=force -w /media/novacustom_${MODEL}_mtl_igpu_v0.9.1_heads.rom + ```sh + flashprog -p internal:boardmismatch=force -w /media/novacustom_${MODEL}_mtl_igpu_v1.0.1_btg_prod.rom --ifd -i bios -i fd -i me ``` Where `${MODEL}` is `v56x` or `v54x`. From fecd8b7178c7f1f510749ef489a6075ce7f74c72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Wed, 13 May 2026 08:32:23 +0200 Subject: [PATCH 10/15] novacustom/firmware-update.md: note on barrell jack power requirement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/novacustom/firmware-update.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/unified/novacustom/firmware-update.md b/docs/unified/novacustom/firmware-update.md index f425bb87a5..d5bce43c23 100644 --- a/docs/unified/novacustom/firmware-update.md +++ b/docs/unified/novacustom/firmware-update.md @@ -111,3 +111,9 @@ firmware version is currently installed on your device. [Build](building-manual.md#dasharo-coreboot--heads) or download Dasharo Heads firmware, and proceed with the official [Heads update documentation](https://osresearch.net/Updating). + + !!! warning "PLEASE NOTE:" + As of the Heads releases **v0.9.1 for V5x0TU** and **v0.9.3 for + NV4xPZ**, a **barrell jack power supply** needs to be plugged in during + the update, due to EC firmware sync. + From d03cb0d677d6e684a1fd5c25801259202ff31c25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Wed, 13 May 2026 08:35:24 +0200 Subject: [PATCH 11/15] novacustom/firmware-update.md: pre-commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/novacustom/firmware-update.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/unified/novacustom/firmware-update.md b/docs/unified/novacustom/firmware-update.md index d5bce43c23..443e2e8b70 100644 --- a/docs/unified/novacustom/firmware-update.md +++ b/docs/unified/novacustom/firmware-update.md @@ -116,4 +116,3 @@ firmware version is currently installed on your device. As of the Heads releases **v0.9.1 for V5x0TU** and **v0.9.3 for NV4xPZ**, a **barrell jack power supply** needs to be plugged in during the update, due to EC firmware sync. - From 5eec34b435f178c082bedc4eb6201b68dce36a4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Wed, 13 May 2026 10:18:27 +0200 Subject: [PATCH 12/15] novacustom/firmware-update.md: remind of initial deployment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/novacustom/firmware-update.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/unified/novacustom/firmware-update.md b/docs/unified/novacustom/firmware-update.md index 443e2e8b70..a6b681f773 100644 --- a/docs/unified/novacustom/firmware-update.md +++ b/docs/unified/novacustom/firmware-update.md @@ -116,3 +116,7 @@ firmware version is currently installed on your device. As of the Heads releases **v0.9.1 for V5x0TU** and **v0.9.3 for NV4xPZ**, a **barrell jack power supply** needs to be plugged in during the update, due to EC firmware sync. + + Furthermore, please make sure that you have followed our + [Initial deployment](https://docs.dasharo.com/unified/novacustom/initial-deployment/#apt-package-manager_1) + guide beforehand, specifically the section on EC firmware installation. From a090c5b772a6b323ee5a43f691bd3982a490440e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Wed, 13 May 2026 10:20:06 +0200 Subject: [PATCH 13/15] novacustom/firmware-transition.md: newline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/novacustom/firmware-transition.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/unified/novacustom/firmware-transition.md b/docs/unified/novacustom/firmware-transition.md index 8722b457f1..9ab58355a6 100644 --- a/docs/unified/novacustom/firmware-transition.md +++ b/docs/unified/novacustom/firmware-transition.md @@ -92,9 +92,11 @@ and the other way around. transitioning between the **v0.9.1 release of Heads on V5x0TU** laptops and UEFI firmware, where the flash attempt fails and ends in recovery shell. in such case please run the command: + ```sh flashprog -p internal:boardmismatch=force -w /media/novacustom_${MODEL}_mtl_igpu_v1.0.1_btg_prod.rom --ifd -i bios -i fd -i me ``` + Where `${MODEL}` is `v56x` or `v54x`. From b15c548cca215dda7fc42754dcd588759ad6a746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 14 May 2026 13:23:56 +0200 Subject: [PATCH 14/15] nv4x_adl/releases.md: add EC component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/novacustom_nv4x_adl/releases.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/variants/novacustom_nv4x_adl/releases.md b/docs/variants/novacustom_nv4x_adl/releases.md index 603c32d99e..51c7152691 100644 --- a/docs/variants/novacustom_nv4x_adl/releases.md +++ b/docs/variants/novacustom_nv4x_adl/releases.md @@ -192,6 +192,8 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo coreboot fork based on 4.21 revision cb6ef1b9](https://github.com/Dasharo/coreboot/tree/cb6ef1b9) - [Dasharo EDKII fork based on edk2-stable202002 revision b7274c98](https://github.com/Dasharo/edk2/tree/b7274c98) +- [Dasharo fork of System76 EC based on 2b2c17a revision 2b2c17a](https://github.com/Dasharo/ec/tree/2b2c17a/) + + [License](https://github.com/Dasharo/ec/blob/2b2c17a/LICENSE) [novacustom_nv4x_adl_ec_v1.7.2.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.2/novacustom_nv4x_adl_ec_v1.7.2.rom [novacustom_nv4x_adl_ec_v1.7.2.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.2/novacustom_nv4x_adl_ec_v1.7.2.rom.sha256 @@ -295,6 +297,8 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo coreboot fork based on 4.21 revision 36032e55](https://github.com/Dasharo/coreboot/tree/36032e55) - [Dasharo EDKII fork based on edk2-stable202002 revision b68e46b0](https://github.com/Dasharo/edk2/tree/b68e46b0) +- [Dasharo fork of System76 EC based on f148431 revision f148431](https://github.com/Dasharo/ec/tree/f148431/) + + [License](https://github.com/Dasharo/ec/blob/f148431/LICENSE) [novacustom_nv4x_adl_ec_v1.7.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.1/novacustom_nv4x_adl_ec_v1.7.1.rom [novacustom_nv4x_adl_ec_v1.7.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.1/novacustom_nv4x_adl_ec_v1.7.1.rom.sha256 @@ -368,6 +372,8 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo coreboot fork based on 1a8eb6c02103727431ac1ea23f4f507e49f3cde7 revision a3056ac5](https://github.com/Dasharo/coreboot/tree/a3056ac5) - [Dasharo EDKII fork based on e0334c228ce4ba51f47ff79a118f214031d4650f revision bd421b40](https://github.com/Dasharo/edk2/tree/bd421b40) +- [Dasharo fork of System76 EC based on c0fe220 revision c0fe220](https://github.com/Dasharo/ec/tree/c0fe220/) + + [License](https://github.com/Dasharo/ec/blob/c0fe220/LICENSE) - Intel ME version 16.1.25.1865 [novacustom_nv4x_adl_ec_v1.6.0.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.6.0/novacustom_nv4x_adl_ec_v1.6.0.rom @@ -422,6 +428,8 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo coreboot fork based on 1a8eb6c02103727431ac1ea23f4f507e49f3cde7 revision cd975d74](https://github.com/Dasharo/coreboot/tree/cd975d74) - [Dasharo EDKII fork based on e0334c228ce4ba51f47ff79a118f214031d4650f revision abfdef40](https://github.com/Dasharo/edk2/tree/abfdef40) +- [Dasharo fork of System76 EC based on 45eb3b4 revision 45eb3b4](https://github.com/Dasharo/ec/tree/45eb3b4/) + + [License](https://github.com/Dasharo/ec/blob/45eb3b4/LICENSE) [novacustom_nv4x_adl_ec_v1.4.0.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.4.0/novacustom_nv4x_adl_ec_v1.4.0.rom [novacustom_nv4x_adl_ec_v1.4.0.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.4.0/novacustom_nv4x_adl_ec_v1.4.0.rom.sha256 From ba3b44f7f3b15f3d446d16961adfeec25cfcdb36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Mon, 18 May 2026 13:49:48 +0200 Subject: [PATCH 15/15] novacustom/firmware-update.md: elaborate on the barrel jack requirement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/novacustom/firmware-update.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/unified/novacustom/firmware-update.md b/docs/unified/novacustom/firmware-update.md index a6b681f773..d053ddf503 100644 --- a/docs/unified/novacustom/firmware-update.md +++ b/docs/unified/novacustom/firmware-update.md @@ -114,8 +114,11 @@ firmware version is currently installed on your device. !!! warning "PLEASE NOTE:" As of the Heads releases **v0.9.1 for V5x0TU** and **v0.9.3 for - NV4xPZ**, a **barrell jack power supply** needs to be plugged in during - the update, due to EC firmware sync. + NV4xPZ**, a **barrel jack power supply** needs to be plugged in during + the update. The reboot triggered by the EC update resets the USB-PD + controller, which does not come back up in time for the EC update's + AC adapter check, causing it to fail. A barrel jack supply bypasses + this issue. Furthermore, please make sure that you have followed our [Initial deployment](https://docs.dasharo.com/unified/novacustom/initial-deployment/#apt-package-manager_1)