From d76a796230f0e97d13b442b65b6aeb5b997dd082 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Fri, 31 Jan 2025 19:11:21 +0100 Subject: [PATCH] docs/variants/hardkernel_odroid_h4/releases.md: add MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip LewiƄski --- ...el_odroid_h4_v0.9.0.rom_openness_chart.png | Bin 0 -> 27314 bytes ...4_v0.9.0.rom_openness_chart_full_image.png | Bin 0 -> 34676 bytes .../hardkernel_odroid_h4/openness_score.md | 125 ++++++++++++++++++ .../variants/hardkernel_odroid_h4/releases.md | 74 ++++++++++- mkdocs.yml | 1 + 5 files changed, 196 insertions(+), 4 deletions(-) create mode 100644 docs/variants/hardkernel_odroid_h4/hardkernel_odroid_h4_v0.9.0.rom_openness_chart.png create mode 100644 docs/variants/hardkernel_odroid_h4/hardkernel_odroid_h4_v0.9.0.rom_openness_chart_full_image.png create mode 100644 docs/variants/hardkernel_odroid_h4/openness_score.md diff --git a/docs/variants/hardkernel_odroid_h4/hardkernel_odroid_h4_v0.9.0.rom_openness_chart.png b/docs/variants/hardkernel_odroid_h4/hardkernel_odroid_h4_v0.9.0.rom_openness_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..7b72a24c74b050a0dd3ddfa2603f6632dc804beb GIT binary patch literal 27314 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�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 BT+aXi literal 0 HcmV?d00001 diff --git a/docs/variants/hardkernel_odroid_h4/openness_score.md b/docs/variants/hardkernel_odroid_h4/openness_score.md new file mode 100644 index 0000000000..85ab16c997 --- /dev/null +++ b/docs/variants/hardkernel_odroid_h4/openness_score.md @@ -0,0 +1,125 @@ +# Dasharo Openness Score + +This page contains the [Dasharo Openness +Score](../../glossary.md#dasharo-openness-score) for Hardkernel ODROID H4+ +Dasharo releases. The content of the page is generated with [Dasharo Openness +Score utility](https://github.com/Dasharo/Openness-Score). + +## v0.9.0 + +Openness Score for hardkernel_odroid_h4_v0.9.0.rom + +Open-source code percentage: **38.3%** +Closed-source code percentage: **61.7%** + +* Image size: 16777216 (0x1000000) +* Number of regions: 21 +* Number of CBFSes: 3 +* Total open-source code size: 4143436 (0x3f394c) +* Total closed-source code size: 6684614 (0x65ffc6) +* Total data size: 632358 (0x9a626) +* Total empty size: 5316808 (0x5120c8) + +![](hardkernel_odroid_h4_v0.9.0.rom_openness_chart.png) + +![](hardkernel_odroid_h4_v0.9.0.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 | 0x413000 | closed-source | +| SI_DESC | 0x0 | 0x1000 | data | +| SMMSTORE | 0x600000 | 0x40000 | data | +| RECOVERY_MRC_CACHE | 0x640000 | 0x20000 | data | +| RW_MRC_CACHE | 0x660000 | 0x20000 | data | +| RW_NVRAM | 0x680000 | 0x1000 | data | +| VBLOCK_A | 0x6c0000 | 0x10000 | data | +| RW_FWID_A | 0xafff00 | 0x100 | data | +| FMAP | 0xb00000 | 0x800 | data | +| RO_FRID | 0xb00800 | 0x100 | data | +| RO_FRID_PAD | 0xb00900 | 0x700 | data | +| GBB | 0xb01000 | 0x3000 | data | +| SI_DEVICEEXT2 | 0x414000 | 0x1ec000 | empty | + +### CBFS BOOTSPLASH + +* CBFS size: 258048 +* Number of files: 1 +* Open-source files size: 0 (0x0) +* Closed-source files size: 0 (0x0) +* Data size: 28 (0x1c) +* Empty size: 258020 (0x3efe4) + +> 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 | 258020 | none | empty | + +### CBFS FW_MAIN_A + +* CBFS size: 4390656 +* Number of files: 13 +* Open-source files size: 2027238 (0x1eeee6) +* Closed-source files size: 1206243 (0x1267e3) +* Data size: 8603 (0x219b) +* Empty size: 1148572 (0x11869c) + +> 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 | 1727490 | none | open-source | +| fallback/romstage | stage | 98320 | none | open-source | +| fallback/ramstage | stage | 145034 | LZMA | open-source | +| fallback/dsdt.aml | raw | 18114 | none | open-source | +| fallback/postcar | stage | 38280 | none | open-source | +| cpu_microcode_blob.bin | microcode | 138240 | none | closed-source | +| fspm.bin | fsp | 786432 | none | closed-source | +| fsps.bin | fsp | 281571 | LZ4 | closed-source | +| config | raw | 5421 | LZMA | data | +| revision | raw | 860 | none | data | +| build_info | raw | 108 | none | data | +| vbt.bin | raw | 1272 | LZMA | data | +| (empty) | null | 2404 | none | empty | + +### CBFS COREBOOT + +* CBFS size: 5226496 +* Number of files: 17 +* Open-source files size: 2116198 (0x204a66) +* Closed-source files size: 1206243 (0x1267e3) +* Data size: 9071 (0x236f) +* Empty size: 1894984 (0x1cea48) + +> 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 | 1727490 | none | open-source | +| fallback/romstage | stage | 98320 | none | open-source | +| fallback/ramstage | stage | 145034 | LZMA | open-source | +| fallback/dsdt.aml | raw | 18114 | none | open-source | +| fallback/postcar | stage | 38280 | none | open-source | +| bootblock | bootblock | 88960 | none | open-source | +| cpu_microcode_blob.bin | microcode | 138240 | none | closed-source | +| fspm.bin | fsp | 786432 | none | closed-source | +| fsps.bin | fsp | 281571 | LZ4 | closed-source | +| cbfs_master_header | cbfs header | 32 | none | data | +| intel_fit | intel_fit | 80 | none | data | +| config | raw | 5421 | LZMA | data | +| revision | raw | 860 | none | data | +| build_info | raw | 108 | none | data | +| vbt.bin | raw | 1272 | LZMA | data | +| (empty) | null | 2148 | none | empty | +| (empty) | null | 1892836 | none | empty | diff --git a/docs/variants/hardkernel_odroid_h4/releases.md b/docs/variants/hardkernel_odroid_h4/releases.md index 7f3b808e79..9a96f3b041 100644 --- a/docs/variants/hardkernel_odroid_h4/releases.md +++ b/docs/variants/hardkernel_odroid_h4/releases.md @@ -1,6 +1,6 @@ -# Dasharo compatible with Hardkernel ODROID H4+ +# Hardkernel ODROID H4 Dasharo Release Notes -Following Release Notes describe status of Open Source Firmware development for +Following Release Notes describe status of open-source firmware development for Hardkernel ODROID H4 For details about our release process please read @@ -13,7 +13,73 @@ For details about our release process please read -Coming soon in the [Dasharo Pro Package for Network Appliance](https://shop.3mdeb.com/shop/dasharo-pro-package/1-year-dasharo-entry-subscription-for-network-appliance/). +## v0.9.0 - 2025-02-13 + +Test results for this release can be found +[here](https://github.com/Dasharo/osfv-results/blob/main/boards/Hardkernel/Odroid_H4/v0.9.0_results.csv). + +### Added + +- Initial support for the Hardkernel ODROID H4 device, based on Intel Alder + Lake N +- [UEFI compatible interface](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/30M-uefi-compatible-interface/) +- [Support for discrete TPM](https://docs.dasharo.com/unified-test-documentation/dasharo-security/200-tpm-support/) +- [UEFI Secure Boot support](https://docs.dasharo.com/unified-test-documentation/dasharo-security/206-secure-boot/) +- [Boot logo customization support](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/328-logo-customization-functionality/) +- [USB boot support](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/31N-usb-boot/) +- [NVMe boot support](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/312-nvme-support/) +- [TPM Measured Boot](https://docs.dasharo.com/unified-test-documentation/dasharo-security/203-measured-boot/) +- [UEFI Shell](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/30P-uefi-shell/) +- [Network boot](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/315b-netboot-utilities/) +- [Windows 11 booting](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/31A-windows-booting/) +- [Ubuntu LTS booting](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/308-debian-stable-and-ubuntu-lts-support/) +- [Serial port console redirection](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/31G-ec-and-superio/#sio004001-serial-port-in-firmware) +- [Vboot Verified Boot](https://docs.dasharo.com/guides/vboot-signing/) +- [Intel ME HAP disable](https://docs.dasharo.com/unified-test-documentation/dasharo-security/20F-me-neuter/) +- [BIOS flash protection for Vboot recovery region](https://docs.dasharo.com/unified-test-documentation/dasharo-security/20J-bios-lock-support/) +- [Setup menu password configuration](https://docs.dasharo.com/dasharo-menu-docs/overview/#dasharo-menu-guides) +- [SMM BIOS write protection](https://docs.dasharo.com/dasharo-menu-docs/dasharo-system-features/#dasharo-security-options) +- [USB stack disable option in setup menu](https://docs.dasharo.com/dasharo-menu-docs/dasharo-system-features/#usb-configuration) +- [Network stack disable option in setup menu](https://docs.dasharo.com/dasharo-menu-docs/dasharo-system-features/#networking-options) + +### Known issues + +- [S3 sleep too short on ODROID H4 Plus](https://github.com/Dasharo/dasharo-issues/issues/1213) + +### Binaries + +[sha256][hardkernel_odroid_h4_v0.9.0.rom_hash]{.md-button} +[sha256.sig][hardkernel_odroid_h4_v0.9.0.rom_sig]{.md-button} + +This is a Dasharo Pro Package Release. To obtain access to the pre-built +binaries you will have to +[become the Dasharo Pro Package subscriber](../../ways-you-can-help-us.md#become-a-dasharo-pro-package-subscriber). +You will get the access to all of the firmware updates for the duration of the +subscription via Dasharo Pro Package newsletter. + +To verify binary integrity with hash and signature please follow the +instructions in [Dasharo release signature verification](/guides/signature-verification) +using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/dasharo/hardkernel_odroid_h4/dasharo-release-0.x-compatible-with-hardkernel-odroid-h4-family-signing-key.asc) + +### SBOM (Software Bill of Materials) + +- [Dasharo coreboot fork based on 24.02 revision 93eb5819](https://github.com/Dasharo/coreboot/tree/93eb5819) + + [License](https://github.com/Dasharo/coreboot/blob/93eb5819/COPYING) +- [Dasharo EDKII fork based on edk2-stable202402 revision 7dbfe58b](https://github.com/Dasharo/edk2/tree/7dbfe58b) + + [License](https://github.com/Dasharo/edk2/blob/7dbfe58b/License.txt) +- [Dasharo iPXE fork based on 2024.05 revision 35d84756](https://github.com/Dasharo/ipxe/tree/35d84756) + + [License](https://github.com/Dasharo/ipxe/blob/35d84756/COPYING.GPLv2) +- [vboot based on 3d37d2aafe revision 3d37d2aa](https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/3d37d2aa/) + + [License](https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/3d37d2aa/LICENSE) +- [Intel Management Engine version v16.50.10.1351](https://github.com/Dasharo/dasharo-blobs/blob/c4ecc9e3/hardkernel/odroid_h4/me.bin) + + [License](https://github.com/Dasharo/dasharo-blobs/blob/c4ecc9e3/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) +- [Intel Flash Descriptor version v1.0](https://github.com/Dasharo/dasharo-blobs/blob/c4ecc9e3/hardkernel/odroid_h4/descriptor.bin) + + [License](https://github.com/Dasharo/dasharo-blobs/blob/c4ecc9e3/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) +- [Intel Firmware Support Package version IoT ADL-N MR4 (5061_00)](https://github.com/intel/FSP/commits/3819544e/AlderLakeFspBinPkg/IoT/AlderLakeN) + + [License](https://github.com/intel/FSP/blob/3819544e/FSP_License.pdf) +- [Intel microcode version ADL-N N0 0x17 07/12/2023](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-be-00) + + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240531/license) - [newsletter]: https://newsletter.3mdeb.com/subscription/pULA4K0Eo +[hardkernel_odroid_h4_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/hardkernel_odroid_h4/v0.9.0/hardkernel_odroid_h4_v0.9.0.rom.sha256 +[hardkernel_odroid_h4_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/hardkernel_odroid_h4/v0.9.0/hardkernel_odroid_h4_v0.9.0.rom.sha256.sig diff --git a/mkdocs.yml b/mkdocs.yml index 2290fdee68..21416339ac 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -404,6 +404,7 @@ nav: - 'Recovery': variants/hardkernel_odroid_h4/recovery.md - 'Hardware Configuration Matrix': variants/hardkernel_odroid_h4/hardware-matrix.md - 'Test matrix': variants/hardkernel_odroid_h4/test-matrix.md + - 'Openness score': variants/hardkernel_odroid_h4/openness_score.md # - 'Development Environment': # - 'Nix': dev-env/nix-dev-env.md - 'Guides':