diff --git a/docs/dev-proc/source-code-structure.md b/docs/dev-proc/source-code-structure.md index 7b11d4025c..1237151788 100644 --- a/docs/dev-proc/source-code-structure.md +++ b/docs/dev-proc/source-code-structure.md @@ -6,7 +6,7 @@ branch structure: * `master` or `main` - follows upstream project master or main branch * `dasharo` - contains all code releases for supported platforms, the list of supported platforms is in - [Hardware Compatibility List](../variants/hardware-compatibility-list.md) + [Hardware Compatibility List](../variants/overview.md) section * `/rel_vX.Y.Z` - release branch for version X.Y.Z * `` - tracks development of feature diff --git a/docs/osf-trivia-list/deployment.md b/docs/osf-trivia-list/deployment.md index 6bd9f4bc19..7999106bca 100644 --- a/docs/osf-trivia-list/deployment.md +++ b/docs/osf-trivia-list/deployment.md @@ -139,7 +139,7 @@ of the method to mitigate the issues is to put ME in Manufacturing Mode. Such operation depends on ME version, SPI flash layout and platform design. Detail information you should find in sections dedicated to given hardware. To access documentation for supported hardware please go to [Hardware Compatibility -List](../variants/hardware-compatibility-list.md). +List](../variants/overview.md). Please note we consider further mitigations in [Dasharo Roadmap](../ecosystem/roadmap.md). diff --git a/docs/unified-test-documentation/dasharo-compatibility/320-fwupd-firmware-update.md b/docs/unified-test-documentation/dasharo-compatibility/320-fwupd-firmware-update.md index 7d8c7a6e6b..d9cf45ffb3 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/320-fwupd-firmware-update.md +++ b/docs/unified-test-documentation/dasharo-compatibility/320-fwupd-firmware-update.md @@ -13,8 +13,6 @@ 1. Proceed with the [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). 1. Install the `dmidecode` package: `sudo apt install dmidecode`. -1. Make yourself familiar with - [Updating firmware using fwupd](/unified/novacustom/fwupd-usage) ## FFW001.001 Firmware update by using fwupd @@ -39,8 +37,6 @@ using fwupd demon. 1. Power on the DUT. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Configure environment in accordance with the - [documentation](/unified/novacustom/fwupd-usage) 1. Start firmware updating procedure by executing the following command in the terminal: diff --git a/docs/unified/msi/overview.md b/docs/unified/msi/overview.md index f2dc52b35c..afc63fab9c 100644 --- a/docs/unified/msi/overview.md +++ b/docs/unified/msi/overview.md @@ -75,6 +75,3 @@ You can also buy the product by mailing us at: Device assembly and presale validation will be carried out in accordance with the [following procedure](../../transparent-validation/msi-z690/presale-assembly-and-validation.md). - - -[![empty-pixel](../../images/empty_pixel.png)](../../variants/msi_z690/overview.md) diff --git a/docs/variants/hardware-compatibility-list.md b/docs/variants/hardware-compatibility-list.md deleted file mode 100644 index 38d17b84fa..0000000000 --- a/docs/variants/hardware-compatibility-list.md +++ /dev/null @@ -1,17 +0,0 @@ -# Hardware Compatibility List - -| Vendor | Model | Status | Roadmap | Shop | Documentation | -:-------:|:-----:|:------:|:-------:|:----------:|:--------:| -|Dell | OptiPlex 7010 SFF | Implementation | TBD | TBD | [link](dell_optiplex/overview.md) | -|Dell | OptiPlex 7010 DT | Implementation | TBD | TBD | [link](dell_optiplex/overview.md) | -|Dell | OptiPlex 9010 SFF | Implementation | TBD | TBD | [link](dell_optiplex/overview.md) | - -Possible status: - -* **Planning** - platform support is planned either through internal, community - or commercial sponsorship. -* **Implementation** - under active development to provide baseline support. -* **Testing and Integration** - under validation to sign-off on baseline - quality criteria. -* **Maintenance** - under active maintenance release cycle according to - schedule presented in Roadmap. diff --git a/docs/variants/msi_z690/building-manual.md b/docs/variants/msi_z690/building-manual.md deleted file mode 100644 index 3779064010..0000000000 --- a/docs/variants/msi_z690/building-manual.md +++ /dev/null @@ -1,3 +0,0 @@ -# Building Manual - -We moved the page to [MSI Desktops -> Building Manual](../../unified/msi/building-manual.md) diff --git a/docs/variants/msi_z690/cpu-hcl.md b/docs/variants/msi_z690/cpu-hcl.md deleted file mode 100644 index 7a7bdf2b60..0000000000 --- a/docs/variants/msi_z690/cpu-hcl.md +++ /dev/null @@ -1,3 +0,0 @@ -# CPU HCL - -We moved the page to [MSI Desktops -> Hardware Compatibility](../../unified/msi/hcl.md) diff --git a/docs/variants/msi_z690/development.md b/docs/variants/msi_z690/development.md deleted file mode 100644 index 9c3414a07a..0000000000 --- a/docs/variants/msi_z690/development.md +++ /dev/null @@ -1,3 +0,0 @@ -# Development - -We moved the page to [MSI Desktops -> Development](../../unified/msi/development.md) diff --git a/docs/variants/msi_z690/faq.md b/docs/variants/msi_z690/faq.md deleted file mode 100644 index 4c3db769cf..0000000000 --- a/docs/variants/msi_z690/faq.md +++ /dev/null @@ -1,3 +0,0 @@ -# FAQ - -We moved the page to [MSI Desktops -> FAQ](../../unified/msi/faq.md) diff --git a/docs/variants/msi_z690/firmware-update.md b/docs/variants/msi_z690/firmware-update.md deleted file mode 100644 index 90b13999a6..0000000000 --- a/docs/variants/msi_z690/firmware-update.md +++ /dev/null @@ -1,3 +0,0 @@ -# Firmware Update - -We moved the page to [MSI Desktops -> Firmware Update](../../unified/msi/firmware-update.md) diff --git a/docs/variants/msi_z690/gpu-hcl.md b/docs/variants/msi_z690/gpu-hcl.md deleted file mode 100644 index aa7800d795..0000000000 --- a/docs/variants/msi_z690/gpu-hcl.md +++ /dev/null @@ -1,3 +0,0 @@ -# GPU HCL - -We moved the page to [MSI Desktops -> Hardware Compatibility](../../unified/msi/hcl.md) diff --git a/docs/variants/msi_z690/initial-deployment.md b/docs/variants/msi_z690/initial-deployment.md deleted file mode 100644 index 24a35195c5..0000000000 --- a/docs/variants/msi_z690/initial-deployment.md +++ /dev/null @@ -1,3 +0,0 @@ -# Initial Deployment - -We moved the page to [MSI Desktops -> Initial Deployment](../../unified/msi/initial-deployment.md) diff --git a/docs/variants/msi_z690/memory-hcl.md b/docs/variants/msi_z690/memory-hcl.md deleted file mode 100644 index bcdbae0d00..0000000000 --- a/docs/variants/msi_z690/memory-hcl.md +++ /dev/null @@ -1,3 +0,0 @@ -# Memory HCL - -We moved the page to [MSI Desktops -> Hardware Compatibility](../../unified/msi/hcl.md) diff --git a/docs/variants/msi_z690/openness_analysis.md b/docs/variants/msi_z690/openness_analysis.md deleted file mode 100644 index 769be362a7..0000000000 --- a/docs/variants/msi_z690/openness_analysis.md +++ /dev/null @@ -1,203 +0,0 @@ -# Dasharo Openness Score - -This document aims to compare the openness of Dasharo firmware and AMI BIOS for -MSI PRO Z690-A DDR4 WiFI. - -There is an -[ongoing discussion](https://github.com/Dasharo/dasharo-issues/issues/43) -about the methodology of the openness metric. - -## BIOS versions used in the analysis - -* [Dasharo v1.0.0](https://3mdeb.com/open-source-firmware/Dasharo/msi_ms7d25/v1.0.0/msi_ms7d25_v1.0.0.rom) -* [AMI BIOS v1.0](https://download.msi.com/bos_exe/mb/7D25v10.zip) - -## MSI original BIOS from AMI - -In the case of the AMI BIOS, the entire image should be considered proprietary. -There are several parts of the image that have a well-known structure or make -use of a public standard. However, to decode these structures, one needs to -employ reverse-engineering tools and techniques to know what structures are -present. For simplicity we treat UEFI variables as BIOS data. All empty padding -regions between FFS and all volume free spaces are treated as unused space. - -## Dasharo BIOS - -### CBFS regions - -The below table shows only a single FMAP region COREBOOT. There are also two RW -vboot partitions containing copies of the same components from COREBOOT region -(except the verstage, bootblock and cbfs master header). Note that there are -other regions to store non-volatile data like MRC cache, UEFI variables or -vboot state backup. - -Region COREBOOT: - -| File | Size (bytes) | Is it open-source? | -| --- | ---: | --- | -| cbfs master header | 32 | ✔ | -| fallback/romstage | 95152 | ✔ | -| cpu_microcode_blob.bin | 944144 | ✖ | -| intel_fit | 80 | ✔ | -| fallback/ramstage | 127231(LZMA) | ✔ | -| config | 1378 | ✔ | -| revision | 842 | ✔ | -| build_info | 142 | ✔ | -| fallback/dsdt.aml | 9973 | ✔ | -| vbt.bin | 1254 (LZMA) | ✔ | -| (empty) | 2596 | N/A | -| fspm.bin | 720896 | ✖ | -| fsps.bin | 290481 (LZ4) | ✖ | -| fallback/postcar | 37504 | ✔ | -| fallback/payload | 1813047 (LZMA) | ✔ (with exceptions) | -| fallback/verstage | 77008 | ✔ | -| (empty) | 1055076 | N/A | -| bootblock | 31808 | ✔ | - -The payload used is Tianocore EDK2 UEFIPayload. In order to support network -boot over i225 Ethernet, an i225 EFI driver is included in the payload. The -driver is 154064 bytes in size uncompressed (63445 LZMA compressed). The 63445 -bytes will be added to closed source pool and removed from the payload size in -the calculations. - -Note that UEFIPayload has support for Option ROM loading, for example to -support external graphics card output during POST. It is an additional -closed-source code which depends on the hardware configuration and is not -included in the calculations. - -| Type | Total size (bytes) | Percent | -| --- | ---: | ---: | -| COREBOOT region | 5208644 | N/A | -| empty | 1057672 | N/A | -| code size (open + closed) | 4150972 | N/A | -| open-source | 2132006 | **51.36%** | -| closed-source | 2018966 | 48.64% | - -Region FW_MAIN_A/FW_MAIN_B: - -| File | Size (bytes) | Is it open-source? | -| --- | ---: | --- | -| fallback/romstage | 95152 | ✔ | -| cpu_microcode_blob.bin | 944144 | ✖ | -| fallback/ramstage | 127231(LZMA) | ✔ | -| config | 1378 | ✔ | -| revision | 842 | ✔ | -| build_info | 142 | ✔ | -| fallback/dsdt.aml | 9973 | ✔ | -| (empty) | 100 | N/A | -| fspm.bin | 720896 | ✖ | -| fsps.bin | 290481 (LZ4) | ✖ | -| vbt.bin | 1254 (LZMA) | ✔ | -| fallback/postcar | 37504 | ✔ | -| fallback/payload | 1813047 (LZMA) | ✔ (with exceptions) | -| (empty) | 1306724 | N/A | - -The FW_MAIN_A/FW_MAIN_B regions have been expanded first with CBFStool to show -whole empty space for given region. - -| Type | Total size (bytes) | Percent | -| --- | ---: | ---: | -| FW_MAIN_A/B region | 5340928 | N/A | -| empty | 1306824 | N/A | -| code size (open + closed) | 4042044 | N/A | -| open-source | 2023078 | **50.05%** | -| closed-source | 2018966 | 49.95% | - -COREBOOT has slightly higher open-source code percentage due to verstage and -bootblock not being present in FW_MAIN_A/B regions. Summary for all 3 regions: - -### Whole flash image - -To get the overall BIOS region and full image percentage of open source code we -ignore unused space or FMAP regions which do not have CBFS and are merely data -generated during build process or boot process. The BIOS region percentage is -calculated as follows: - -`(COREBOOT region open-source size + FW_MAIN_A/B open-source size * 2) * 100` -divided by `(COREBOOT region code size + FW_MAIN_A/B code size * 2)`. - -Full image code only percentage is calculated as follows: - -`(COREBOOT region open-source size + FW_MAIN_A/B open-source size * 2) * 100` -divided by -`(ME + descriptor + COREBOOT region code size + FW_MAIN_A/B code size * 2)`. - -| Region | Size (bytes) | Open-source percent (bytes) | -| --- | ---: | ---: | -| descriptor | 0x1000 | 0% | -| ME | 0x3D9000 | 0% | -| unused hole | 0xC26000 | N/A | -| BIOS | 0x1000000 | **50.5%** | -| **Summary** | 0x2000000 | **38%** | - -Comparison of pure code open-source vs closed-source. - -![](../../images/openness_msi_bios.jpg) - -![](../../images/openness_msi_bios_ami.jpg) - -This was rather expected result. - -AMI BIOS region statistics: - -| Type | Total size (bytes) | Percent | -| --- | ---: | ---: | -| BIOS data (UEFI var) | 524288 | N/A | -| empty | 7638472 | N/A | -| code size (open + closed) | 8614456 | N/A | -| open-source | 0 | **0%** | -| closed-source | 8614456 | **100%** | - -Full BIOS region openness compared to AMI BIOS with data and free space: - -![](../../images/openness_msi_bios_full.jpg) - -![](../../images/openness_msi_bios_full_ami.jpg) - -That mean - -Full image openness code only compared to AMI BIOS: - -![](../../images/openness_msi_full_code.jpg) - -![](../../images/openness_msi_full_code_ami.jpg) - -Few conclusions from the above charts: - -* Dasharo needs more space for BIOS data, it is mainly dictated by the usage of - vboot which needs a significant amount of space for VBLOCKs, GBB and other - stuff -* BIOS data is rather comparable between the firmware distributions, although - it must be noted that vboot also generates BIOS data as explained above -* Dasharo has much less free space than AMI, however it must be noted that - Dasharo contains 3! copies of functional firmware, but AMI only a single - copy. Without vboot, BIOS region free space would reach over 70%! -* While BIOS region's Dasharo Openness Score is 50%, when compared with Intel - ME and descriptor, the overall Dasharo Openness Score is 38% -* ME share is different because the size of BIOS code is different on both - distributions - -## Summary - -| Image | Open-source percent (bytes) | -| --- | ---: | -| AMI BIOS | 0% | -| Dasharo | **38%** | - -Dasharo code takes approximately 4MB of space for a single region + some space -for data which is less than 1MB. This reduces the single copy of firmware from -8MB to roughly 4MB compared to AMI BIOS. This is roughly **50% reduction of -TCB!** More over, given the 50% share in size of open-source code, **Dasharo -liberates BIOS in 75%!** - -![](../../images/openness_msi_full.jpg) - -![](../../images/openness_msi_full_ami.jpg) - -Few conclusions: - -* Although the reduction of TCB is 50% it cannot be seen on the charts due to - 3 copies of the firmware in Dasharo image. It also effectively increases the - percentage of BIOS code both open and closed source in the full image. -* More significant differences would be seen with vboot disabled, there would - be more free space and even less BIOS code both open and closed diff --git a/docs/variants/msi_z690/openness_score.md b/docs/variants/msi_z690/openness_score.md index 6ed0c522e3..0efde4ebca 100644 --- a/docs/variants/msi_z690/openness_score.md +++ b/docs/variants/msi_z690/openness_score.md @@ -6,9 +6,6 @@ compatible with MSI PRO Z690-A boards. The content of the page is generated with [Dasharo Openness Score utility](https://github.com/Dasharo/Openness-Score). -The very first historical attempt to measure the openness of an firmware image -is available [here](openness_analysis.md). - ## v0.9.0 heads Openness Score for msi_ms7d25_v0.9.0_ddr5_heads.rom diff --git a/docs/variants/msi_z690/overview.md b/docs/variants/msi_z690/overview.md deleted file mode 100644 index 34d05f0e85..0000000000 --- a/docs/variants/msi_z690/overview.md +++ /dev/null @@ -1,14 +0,0 @@ -# Overview - -We moved the page to [MSI Desktops -> Overview](../../unified/msi/overview.md) - -[![empty-pixel](../../images/empty_pixel.png)](building-manual.md) -[![empty-pixel](../../images/empty_pixel.png)](cpu-hcl.md) -[![empty-pixel](../../images/empty_pixel.png)](gpu-hcl.md) -[![empty-pixel](../../images/empty_pixel.png)](memory-hcl.md) -[![empty-pixel](../../images/empty_pixel.png)](development.md) -[![empty-pixel](../../images/empty_pixel.png)](faq.md) -[![empty-pixel](../../images/empty_pixel.png)](initial-deployment.md) -[![empty-pixel](../../images/empty_pixel.png)](firmware-update.md) -[![empty-pixel](../../images/empty_pixel.png)](recovery.md) -[![empty-pixel](../../images/empty_pixel.png)](recovery.md) diff --git a/docs/variants/msi_z690/recovery.md b/docs/variants/msi_z690/recovery.md deleted file mode 100644 index d1e1d8861f..0000000000 --- a/docs/variants/msi_z690/recovery.md +++ /dev/null @@ -1,3 +0,0 @@ -# Recovery - -We moved the page to [MSI Desktops -> Recovery](../../unified/msi/recovery.md) diff --git a/mkdocs.yml b/mkdocs.yml index b2825536c9..f163c78520 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -139,6 +139,19 @@ plugins: 'variants/protectli_vp2410/test-matrix.md': 'unified/protectli/test-matrix.md#vp2410' 'variants/protectli_vp2420/test-matrix.md': 'unified/protectli/test-matrix.md#vp2420' + 'variants/hardware-compatibility-list.md': 'variants/overview.md' + 'variants/msi_z690/building-manual.md': 'unified/msi/building-manual.md' + 'variants/msi_z690/cpu-hcl.md': 'unified/msi/hcl.md' + 'variants/msi_z690/overview.md': 'unified/msi/overview.md' + 'variants/msi_z690/development.md': 'unified/msi/development.md' + 'variants/msi_z690/faq.md': 'unified/msi/faq.md' + 'variants/msi_z690/firmware-update.md': 'unified/msi/firmware-update.md' + 'variants/msi_z690/gpu-hcl.md': 'unified/msi/hcl.md' + 'variants/msi_z690/initial-deployment.md': 'unified/msi/initial-deployment.md' + 'variants/msi_z690/memory-hcl.md': 'unified/msi/hcl.md' + 'variants/msi_z690/openness-analysis.md': 'variants/msi_z690/openness_score.md' + 'variants/msi_z690/recovery.md': 'unified/msi/recovery.md' + # This parameter excludes the listed pages from being added to the sitemap. # This solves the problem of orphaned pages (pages that are in the site map, # but there are no internal links to them).