From e6b21b48faa07a445e0647087dc3167a182a73e5 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Wed, 2 Oct 2024 18:11:52 +0200 Subject: [PATCH 001/133] docs/security.md: init info on security issues Based on: https://www.qubes-os.org/security/#reporting-security-issues-in-qubes-os Signed-off-by: Maciej Pijanowski --- docs/security.md | 18 ++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 19 insertions(+) create mode 100644 docs/security.md diff --git a/docs/security.md b/docs/security.md new file mode 100644 index 0000000000..12fbc32647 --- /dev/null +++ b/docs/security.md @@ -0,0 +1,18 @@ +# Dasharo Security + +## Reporting security issues in Dasharo + +!!! note "Please note" + + Dasharo security email address is intended for responsible disclosure by + security researchers and others who discover legitimate security + vulnerabilities. Please do not attempt to contact us via this address unless + you can demonstrate an actual security vulnerability or provide us with + reasonable steps we could follow to verify your claims. + +If you’ve discovered a security issue affecting Dasharo, please send an +encrypted (using [Dasharo security team PGP key][sec-key] e-mail to this +address: `security@dasharo.com`. Please not that unencrypted e-mails sent to +this address may be ignored. + +[sec-key]: https://github.com/3mdeb/3mdeb-secpack/tree/master/keys/security-team/dasharo-security-team-encryption-key.asc diff --git a/mkdocs.yml b/mkdocs.yml index a30dc49127..e57bdf821b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -168,6 +168,7 @@ nav: - 'Intro': - 'About Dasharo': index.md - 'New? Start here': newcomers.md + - 'Security': security.md - 'Supported hardware': - 'Overview': variants/overview.md - 'Version matrix': variants/versions.md From d0b1074f317d6b375b2e834011de8c21ddc78e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 20 Mar 2025 16:29:16 +0100 Subject: [PATCH 002/133] docs/variants/novacustom_v540tu/releases_heads.md: add changes between UEFI and Heads tags 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 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/variants/novacustom_v540tu/releases_heads.md b/docs/variants/novacustom_v540tu/releases_heads.md index d5b440946a..e7aadfccf8 100644 --- a/docs/variants/novacustom_v540tu/releases_heads.md +++ b/docs/variants/novacustom_v540tu/releases_heads.md @@ -39,6 +39,16 @@ Test results for this release can be found ### Added +- [Configured correct clock for GbE on Clevo/MTL-H](https://github.com/Dasharo/coreboot/commit/8554fcaac3e1b9790298ef658ec8ba03c5f9b497) +- [Fixed touchpad IRQ pin assignment on Clevo/MTL-H](https://github.com/Dasharo/coreboot/commit/5a28a0b82c13e41e147d082ab47ce287fa11ffda) +- [Adjusted ACPI configuration to fix missing CNVi pinmux](https://github.com/Dasharo/coreboot/commit/41de74e14e802aec65ea4e8538577a27b4269882) +- [Meteor Lake graphics operations integrated into SoC](https://github.com/Dasharo/coreboot/commit/ea0d2ab2daea6f17506c3da87aae4783db7df53d) +- [Clevo/MTL-H PCIe root port flags added](https://github.com/Dasharo/coreboot/commit/6757a4679e2d4a1ebffbcf8d404fb85b5cf2154d) +- [Windows BSOD caused by missing ACPI device names](https://github.com/Dasharo/coreboot/commit/160fa32c8493e88f67e5167abdc08b2870d366f2) +- [RTC failure workaround for MRC fastboot](https://github.com/Dasharo/coreboot/commit/d7eb079076fc5213d525468425e4def12bf6c204) +- [SPD size correctly set for Clevo/MTL-H](https://github.com/Dasharo/coreboot/commit/041ef28b686417204cd3850731ea4a9ab1c8a7a7) +- [Corrected temperature control offsets in Meteor Lake](https://github.com/Dasharo/coreboot/commit/c835072d2fa67be113631efb53ad85a68c24889d) +- [Fixed duplicate temperature symbol in Kconfig](https://github.com/Dasharo/coreboot/commit/c835072d2fa67be113631efb53ad85a68c24889d) - [Introduced Quiet Mode for reduced technical output in logs](https://github.com/linuxboot/heads/pull/1875) - [Added TPM extend operations logging while maintaining quiet mode](https://github.com/linuxboot/heads/pull/1875) - [Added support for GPG Admin/User PIN output grabbing for Nitrokey HOTP verification](https://github.com/Nitrokey/nitrokey-hotp-verification/issues/38) From 62ac2922e12c151878750fd865ca3accba092d3f Mon Sep 17 00:00:00 2001 From: Artur Raglis Date: Thu, 20 Mar 2025 18:00:09 +0100 Subject: [PATCH 003/133] docs/variants/overview.md: propose clear support list Signed-off-by: Artur Raglis --- docs/variants/overview.md | 44 +++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/variants/overview.md b/docs/variants/overview.md index c04e9895ec..adb8f32b90 100644 --- a/docs/variants/overview.md +++ b/docs/variants/overview.md @@ -5,13 +5,13 @@ open-source firmware distribution. ## Emulation -* Following emulation targets are supported under Dasharo Community Support: +* Following emulation targets are supported under **Dasharo Community Support**: - [QEMU Q35](qemu_q35/overview.md) ## Network appliance -* Following network appliances are supported under Dasharo Support Package: +* Following network appliances are supported under **Dasharo Support Package**: - [Protectli FW6](../unified/protectli/overview.md#fw6) - [Protectli v1000-series](../unified/protectli/overview.md#v1000-series) @@ -20,19 +20,17 @@ open-source firmware distribution. - [Protectli VP46XX](../unified/protectli/overview.md#vp46xx) - [Protectli VP66XX](../unified/protectli/overview.md#vp66xx) -* Following network appliances are planned to be supported under Dasharo - Community Support: - - - [PC Engines](pc_engines/post-eol-fw-announcement.md) - -* Available at the 3mdeb online store: +* Following network appliances are supported under **Dasharo Pro Package**: - [Dasharo (coreboot+UEFI) Pro Package for Network Appliance](https://shop.3mdeb.com/shop/dasharo-pro-package/1-year-dasharo-entry-subscription-for-network-appliance/) + - [PC Engines APU 2/3/4/6 platforms](../variants/pc_engines/releases_uefi.md) + - [Hardkernel Odroid H4+](../variants/hardkernel_odroid_h4/overview.md) - [Dasharo (coreboot+SeaBIOS) Pro Package for Network Appliance](https://shop.3mdeb.com/shop/dasharo-pro-package/1-year-dasharo-entry-subscription-for-network-appliance-corebootseabios/) + - [PC Engines APU 2/3/4/6 platforms](../variants/pc_engines/releases_seabios.md) ## Laptops -* Following laptops are supported under Dasharo Support Package +* Following laptops are supported under **Dasharo Support Package**: - [NovaCustom V54 14th Gen](../unified/novacustom/overview.md) - [NovaCustom V56 14th Gen](../unified/novacustom/overview.md) @@ -41,38 +39,40 @@ open-source firmware distribution. - [NovaCustom NV4x 11th Gen](../unified/novacustom/overview.md) - [NovaCustom NS5x/7x 11th Gen](../unified/novacustom/overview.md) -* Following laptops are supported under Dasharo Community Support +* Following laptops are supported under **Dasharo Pro Package**: - - [Tuxedo IBS15](tuxedo_ibs15/releases.md) + - [Dasharo (coreboot+UEFI) transition to (coreboot+Heads) for Laptops](https://shop.3mdeb.com/shop/dasharo-pro-package/dasharo-corebootuefi-entry-subscription-upgrade-to-corebootheads-for-laptop-users/) + - [NovaCustom V540TU 14th Gen](https://docs.dasharo.com/variants/novacustom_v540tu/releases_heads/) + - [NovaCustom V560TU 14th Gen](https://docs.dasharo.com/variants/novacustom_v560tu/releases_heads/) + - [NovaCustom NV4x 12th Gen](https://docs.dasharo.com/variants/novacustom_nv4x_adl/releases_heads/) -* Available at the 3mdeb online store: +* Following laptops are supported under **Dasharo Community Support**: - - [Dasharo (coreboot+UEFI) transition to (coreboot+Heads) for Laptops](https://shop.3mdeb.com/shop/dasharo-pro-package/dasharo-corebootuefi-entry-subscription-upgrade-to-corebootheads-for-laptop-users/) + - [Tuxedo IBS15](tuxedo_ibs15/releases.md) ## Desktop -* Following desktops are supported under Dasharo Support Package +* Following desktops are supported under **Dasharo Pro Package**: - - [Dell OptiPlex](dell_optiplex/overview.md) + - [Dasharo (coreboot+UEFI) Pro Package for Desktop](https://shop.3mdeb.com/shop/dasharo-pro-package/1year-desktop/) + - [Dell OptiPlex](dell_optiplex/overview.md) + - [MSI PRO Z690-A](../unified/msi/overview.md) + - [MSI PRO Z790-P](../unified/msi/overview.md) -* Following desktops are supported under Dasharo Community Support +* Following desktops are supported under **Dasharo Community Support**: - [MSI PRO Z690-A](../unified/msi/overview.md) - [MSI PRO Z790-P](../unified/msi/overview.md) -* Available at the 3mdeb online store: - - - [Dasharo (coreboot+UEFI) Pro Package for Desktop](https://shop.3mdeb.com/shop/dasharo-pro-package/1year-desktop/) - ## Workstation -* Following workstations are supported under Dasharo Community Support +* Following workstations are supported under **Dasharo Community Support**: - [Asus KGPE-D16](asus_kgpe_d16/overview.md) - [Raptor CS Talos II](talos_2/overview.md) ## Servers -* Following servers are supported under Dasharo Community Support +* Following servers are supported under **Dasharo Community Support**: - [Supermicro X11 LGA1151 Series](supermicro_x11_lga1151_series/overview.md) From 0ba36daaf79513b5cc00422025d3105e055a92c4 Mon Sep 17 00:00:00 2001 From: Artur Raglis Date: Fri, 21 Mar 2025 13:48:45 +0100 Subject: [PATCH 004/133] docs/variants/overview.md: fix unordered list style Signed-off-by: Artur Raglis --- docs/variants/overview.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/variants/overview.md b/docs/variants/overview.md index adb8f32b90..1040a6ac8b 100644 --- a/docs/variants/overview.md +++ b/docs/variants/overview.md @@ -23,10 +23,10 @@ open-source firmware distribution. * Following network appliances are supported under **Dasharo Pro Package**: - [Dasharo (coreboot+UEFI) Pro Package for Network Appliance](https://shop.3mdeb.com/shop/dasharo-pro-package/1-year-dasharo-entry-subscription-for-network-appliance/) - - [PC Engines APU 2/3/4/6 platforms](../variants/pc_engines/releases_uefi.md) - - [Hardkernel Odroid H4+](../variants/hardkernel_odroid_h4/overview.md) + + [PC Engines APU 2/3/4/6 platforms](../variants/pc_engines/releases_uefi.md) + + [Hardkernel Odroid H4+](../variants/hardkernel_odroid_h4/overview.md) - [Dasharo (coreboot+SeaBIOS) Pro Package for Network Appliance](https://shop.3mdeb.com/shop/dasharo-pro-package/1-year-dasharo-entry-subscription-for-network-appliance-corebootseabios/) - - [PC Engines APU 2/3/4/6 platforms](../variants/pc_engines/releases_seabios.md) + + [PC Engines APU 2/3/4/6 platforms](../variants/pc_engines/releases_seabios.md) ## Laptops @@ -42,9 +42,9 @@ open-source firmware distribution. * Following laptops are supported under **Dasharo Pro Package**: - [Dasharo (coreboot+UEFI) transition to (coreboot+Heads) for Laptops](https://shop.3mdeb.com/shop/dasharo-pro-package/dasharo-corebootuefi-entry-subscription-upgrade-to-corebootheads-for-laptop-users/) - - [NovaCustom V540TU 14th Gen](https://docs.dasharo.com/variants/novacustom_v540tu/releases_heads/) - - [NovaCustom V560TU 14th Gen](https://docs.dasharo.com/variants/novacustom_v560tu/releases_heads/) - - [NovaCustom NV4x 12th Gen](https://docs.dasharo.com/variants/novacustom_nv4x_adl/releases_heads/) + + [NovaCustom V540TU 14th Gen](https://docs.dasharo.com/variants/novacustom_v540tu/releases_heads/) + + [NovaCustom V560TU 14th Gen](https://docs.dasharo.com/variants/novacustom_v560tu/releases_heads/) + + [NovaCustom NV4x 12th Gen](https://docs.dasharo.com/variants/novacustom_nv4x_adl/releases_heads/) * Following laptops are supported under **Dasharo Community Support**: @@ -55,9 +55,9 @@ open-source firmware distribution. * Following desktops are supported under **Dasharo Pro Package**: - [Dasharo (coreboot+UEFI) Pro Package for Desktop](https://shop.3mdeb.com/shop/dasharo-pro-package/1year-desktop/) - - [Dell OptiPlex](dell_optiplex/overview.md) - - [MSI PRO Z690-A](../unified/msi/overview.md) - - [MSI PRO Z790-P](../unified/msi/overview.md) + + [Dell OptiPlex](dell_optiplex/overview.md) + + [MSI PRO Z690-A](../unified/msi/overview.md) + + [MSI PRO Z790-P](../unified/msi/overview.md) * Following desktops are supported under **Dasharo Community Support**: From b96bf5c2f481445bd629e6f2ae3e6231ea040538 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Mon, 24 Mar 2025 16:37:24 +0100 Subject: [PATCH 005/133] Dasharo Compatibility: USB A and C Always On ports test suite. Test suite verifying "USB power and charging" setup menu option. Signed-off-by: Mateusz Maciejewski --- .../350-usb-a-and-c-always-on-ports.md | 279 ++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 280 insertions(+) create mode 100644 docs/unified-test-documentation/dasharo-compatibility/350-usb-a-and-c-always-on-ports.md diff --git a/docs/unified-test-documentation/dasharo-compatibility/350-usb-a-and-c-always-on-ports.md b/docs/unified-test-documentation/dasharo-compatibility/350-usb-a-and-c-always-on-ports.md new file mode 100644 index 0000000000..30b4d11ac3 --- /dev/null +++ b/docs/unified-test-documentation/dasharo-compatibility/350-usb-a-and-c-always-on-ports.md @@ -0,0 +1,279 @@ +# Dasharo Compatibility: USB A and C Always On ports + +## Test cases common documentation + +1. Proceed with the + [Generic test setup: firmware](../generic-test-setup.md#firmware). +2. Refer to [docs.dasharo.com/variants](https://docs.dasharo.com/variants/overview/) + and identify USB A & USB C ports that are affected and not affected by + "USB power and charging" option. +3. Let's define TIANOCORE_STRING as "ENTER to boot directly" (however, this is platform-dependant) + +## USC001.001 "USB power and charging" option is present + +**Test description** + +This test aims to verify that "USB power and charging" option is present in +setup menu. + +**Test setup** + +1. Proceed with the + [Test cases common documentation](#test-cases-common-documentation) section. + +**Test steps** + +1. Turn on DUT +2. Press F2 to enter setup menu +3. Enter Dasharo System Features submenu +4. Enter Power Management Options submenu +5. Note, if "USB ports power and charging" menu option is present +6. Enter value submenu, to check available values, but don't change anything. +7. Turn off DUT + +**Expected results** + +"USB ports power and charging" menu option present in Power Management Options +submenu, available option values: "While System is On", "Always On". + +**Test configuration data** + +1. `FIRMWARE` = Dasharo + +## USC002.001 Power IS delivered thru always-on USB A ports + +**Test description** + +This test verifies, if setting "USB ports power and charging" menu option to " +Always On " keeps electrical power supply on selected USB A ports, after DUT is +power off. + +**Test setup** + +1. Proceed with the + [Test cases common documentation](#test-cases-common-documentation) section. +2. Check if available USB power meter works without any additional + devices attached. + +**Test steps** + +1. Turn on DUT +2. Press F2 to enter setup menu +3. Enter Dasharo System Features submenu +4. Enter Power Management Options submenu +5. Set value of "USB ports power and charging" to "Always On" +6. Save setup configuration with F10 key, confirm with Y +7. Power off DUT +8. Power on DUT (this is when setup change takes effect) +9. Wait until TIANOCORE_STRING appears on screen +10. Power off DUT +11. Verify state of all USB A ports marked in "Hardware configuration matrix" +as "Always On USB" using USB power meter + +**Expected results** + +On each USB A port marked as "Always On USB", power meter should be working on +tested port supply, showing voltage >= 5.0V + +**Test configuration data** + +1. `FIRMWARE` = Dasharo + +## USC003.001 Power IS delivered thru always-on USB C ports + +**Test description** + +This test verifies, if setting "USB ports power and charging" menu option to " +Always On " keeps electrical power supply on selected USB C ports, after DUT is +power off. + +**Test setup** + +1. Proceed with the + [Test cases common documentation](#test-cases-common-documentation) section. +2. Check if available USB power meter works without any additional + devices attached. + +**Test steps** + +1. Turn on DUT +2. Press F2 to enter setup menu +3. Enter Dasharo System Features submenu +4. Enter Power Management Options submenu +5. Set value of "USB ports power and charging" to "Always On" +6. Save setup configuration with F10 key, confirm with Y +7. Power off DUT +8. Power on DUT (this is when setup change takes effect) +9. Wait until TIANOCORE_STRING appears on screen +10. Power off DUT +11. Verify state of all USB C ports marked in "Hardware configuration matrix" +as "Always On USB" using USB power meter + +**Expected results** + +On each USB C port marked as "Always On USB", power meter should be working on +tested port supply, showing voltage >= 5.0V + +**Test configuration data** + +1. `FIRMWARE` = Dasharo + +## USC004.001 Power IS NOT delivered thru always-on USB A ports + +**Test description** + +This test verifies, if setting "USB ports power and charging" menu option to +"While System is On" is disabling electrical power supply on selected USB A +ports, after DUT is power off. + +**Test setup** + +1. Proceed with the + [Test cases common documentation](#test-cases-common-documentation) section. +2. Check if available USB power meter works without any additional + devices attached. + +**Test steps** + +1. Turn on DUT +2. Press F2 to enter setup menu +3. Enter Dasharo System Features submenu +4. Enter Power Management Options submenu +5. Set value of "USB ports power and charging" to "While System is On" +6. Save setup configuration with F10 key, confirm with Y +7. Power off DUT +8. Power on DUT (this is when setup change takes effect) +9. Wait until TIANOCORE_STRING appears on screen +10. Power off DUT +11. Verify state of all USB A ports marked in "Hardware configuration matrix" +as "Always On USB" using USB power meter + +**Expected results** + +USB power meter not working (or, in case of DUT-independent power supply, +showing voltage close to 0V) + +**Test configuration data** + +1. `FIRMWARE` = Dasharo + +## USC005.001 Power IS NOT delivered thru always-on USB C ports + +**Test description** + +This test verifies, if setting "USB ports power and charging" menu option to +"While System is On" is disabling electrical power supply on selected USB A +ports, after DUT is power off. + +**Test setup** + +1. Proceed with the + [Test cases common documentation](#test-cases-common-documentation) section. +2. Check if available USB power meter works without any additional + devices attached. + +**Test steps** + +1. Turn on DUT +2. Press F2 to enter setup menu +3. Enter Dasharo System Features submenu +4. Enter Power Management Options submenu +5. Set value of "USB ports power and charging" to "While System is On" +6. Save setup configuration with F10 key, confirm with Y +7. Power off DUT +8. Power on DUT (this is when setup change takes effect) +9. Wait until TIANOCORE_STRING appears on screen +10. Power off DUT +11. Verify state of all USB C ports marked in "Hardware configuration matrix" +as "Always On USB" using USB power meter + +**Expected results** + +USB power meter not working (or, in case of DUT-independent power supply, +showing voltage close to 0V) + +**Test configuration data** + +1. `FIRMWARE` = Dasharo + +## USC006.001 Power IS NOT delivered thru regular USB A ports + +**Test description** + +This test verifies, if setting "USB ports power and charging" menu option to +"Always On" is NOT enabling electrical power supply to USB A ports that are +NOT marked as "Always On USB", after DUT is power off. + +**Test setup** + +1. Proceed with the + [Test cases common documentation](#test-cases-common-documentation) section. +2. Check if available USB power meter works without any additional + devices attached. +3. Make sure that there are USB A ports, that are not marked as "Always On USB", + otherwise skip this test case. + +**Test steps** + +1. Turn on DUT +2. Press F2 to enter setup menu +3. Enter Dasharo System Features submenu +4. Enter Power Management Options submenu +5. Set value of "USB ports power and charging" to "Always On" +6. Save setup configuration with F10 key, confirm with Y +7. Power off DUT +8. Power on DUT (this is when setup change takes effect) +9. Wait until TIANOCORE_STRING appears on screen +10. Power off DUT +11. Verify state of all USB A ports NOT marked in "Hardware configuration matrix" +as "Always On USB" using USB power meter + +**Expected results** + +USB power meter not working (or, in case of DUT-independent power supply, +showing voltage close to 0V) + +**Test configuration data** + +1. `FIRMWARE` = Dasharo + +## USC007.001 Power IS NOT delivered thru regular USB C ports + +**Test description** + +This test verifies, if setting "USB ports power and charging" menu option to +"Always On" is NOT enabling electrical power supply to USB C ports that are +NOT marked as "Always On USB", after DUT is power off. + +**Test setup** + +1. Proceed with the + [Test cases common documentation](#test-cases-common-documentation) section. +2. Check if available USB power meter works without any additional + devices attached. +3. Make sure that there are USB C ports, that are not marked as "Always On USB", + otherwise skip this test case. + +**Test steps** + +1. Turn on DUT +2. Press F2 to enter setup menu +3. Enter Dasharo System Features submenu +4. Enter Power Management Options submenu +5. Set value of "USB ports power and charging" to "Always On" +6. Save setup configuration with F10 key, confirm with Y +7. Power off DUT +8. Power on DUT (this is when setup change takes effect) +9. Wait until TIANOCORE_STRING appears on screen +10. Power off DUT +11. Verify state of all USB C ports NOT marked in "Hardware configuration matrix" +as "Always On USB" using USB power meter + +**Expected results** + +USB power meter not working (or, in case of DUT-independent power supply, +showing voltage close to 0V) + +**Test configuration data** + +1. `FIRMWARE` = Dasharo diff --git a/mkdocs.yml b/mkdocs.yml index 0ef0f30f00..e6dfab0554 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -610,6 +610,7 @@ nav: - '[UBT] USB Boot': unified-test-documentation/dasharo-compatibility/31N-usb-boot.md - '[UDT] USB Detection': unified-test-documentation/dasharo-compatibility/31O-usb-detect.md - '[USB] USB HID and MSC support': unified-test-documentation/dasharo-compatibility/306-usb-hid-and-msc-support.md + - '[USC] USB A and C Always On ports': unified-test-documentation/dasharo-compatibility/350-usb-a-and-c-always-on-ports.md - '[USH] UEFI Shell': unified-test-documentation/dasharo-compatibility/30P-uefi-shell.md - '[USS] Ubuntu Server support': unified-test-documentation/dasharo-compatibility/349-ubuntu-server-support.md - '[UTC] USB-C docking station support': unified-test-documentation/dasharo-compatibility/31H-usb-type-c.md From a00e60863d66a57be4343ffa12a43fb6ce6b368e Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Tue, 25 Mar 2025 15:43:54 +0100 Subject: [PATCH 006/133] Broadcom EXSI installation guide and download link fixed (CI complaints) Signed-off-by: Mateusz Maciejewski --- docs/unified/protectli/os-installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/unified/protectli/os-installation.md b/docs/unified/protectli/os-installation.md index 000db829c1..80c4648a18 100644 --- a/docs/unified/protectli/os-installation.md +++ b/docs/unified/protectli/os-installation.md @@ -104,7 +104,7 @@ Installer images can be downloaded from the official ### Installation documentation Official documentation can be found -[here](https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/7-0/esxi-installation-and-setup-7-0/installing-and-setting-up-esxi-install/installing-esxi-install/installing-esxi-interactively-install/install-esxi-interactivelly-install.html). +[here](https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/7-0/esxi-installation-and-setup-7-0/installing-and-setting-up-esxi/installing-esxi/installing-esxi-interactively/install-esxi-interactivelly.html) !!! note "Installation using only serial port" From cb465a7103f54873ba4adb09a004d224a81bd2d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 21 Mar 2025 19:01:08 +0100 Subject: [PATCH 007/133] novacustom/building: change docker link from ubuntu to all distros MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/unified/novacustom/building-manual.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/unified/novacustom/building-manual.md b/docs/unified/novacustom/building-manual.md index 881a402ad9..9a42016ae2 100644 --- a/docs/unified/novacustom/building-manual.md +++ b/docs/unified/novacustom/building-manual.md @@ -19,7 +19,7 @@ Make sure that you have following packages installed: - Docker - + follow [Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/) + + follow [Install Docker Engine for Linux](https://docs.docker.com/engine/install/) + follow [Post-installation steps for Linux](https://docs.docker.com/engine/install/linux-postinstall/) - Git @@ -284,7 +284,7 @@ Make sure that you have following packages installed: - Docker - + follow [Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/) + + follow [Install Docker Engine on Linux](https://docs.docker.com/engine/install/) + follow [Post-installation steps for Linux](https://docs.docker.com/engine/install/linux-postinstall/) - Git From 8ea67da6aee236308c51e521ac0f6c4679f679fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 09:03:18 +0100 Subject: [PATCH 008/133] unified/novacustom/initial-deployment: Fedora instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/unified/novacustom/initial-deployment.md | 48 ++++++++++++++----- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/docs/unified/novacustom/initial-deployment.md b/docs/unified/novacustom/initial-deployment.md index b65ba67449..7bd70c49e0 100644 --- a/docs/unified/novacustom/initial-deployment.md +++ b/docs/unified/novacustom/initial-deployment.md @@ -26,13 +26,21 @@ devices. as of the time of writing does not have support for the flash chip model present in these devices. - 1. Install build dependencies (on Ubuntu and derivatives): + 1. Install build dependencies + + === "APT package manager" ```bash apt update apt upgrade apt install git build-essential debhelper pkg-config libpci-dev libusb-1.0-0-dev libftdi1-dev meson ``` + === "DNF package manager" + + ```bash + dnf group install c-development development-tools + dnf install git debhelper pkgconf-pkg-config pciutils-devel libusb-compat-0.1-devel libftdi-devel meson + ``` 1. Clone the flashrom repository: @@ -114,11 +122,20 @@ devices. Install flashrom: - ```bash - apt update - apt upgrade - sudo apt -y install flashrom - ``` + === "APT package manager" + + ```bash + apt update + apt upgrade + sudo apt -y install flashrom + ``` + + === "DNF package manager" + + ```bash + dnf install flashrom + ``` + ### BIOS installation @@ -165,11 +182,20 @@ devices. 1. Install build dependencies: - ```bash - apt update - apt upgrade - apt install git build-essential debhelper pkg-config libpci-dev libusb-1.0-0-dev libftdi1-dev meson - ``` + === "APT package manager" + + ```bash + apt update + apt upgrade + apt install git build-essential debhelper pkg-config libpci-dev libusb-1.0-0-dev libftdi1-dev meson + ``` + + === "DNF package manager" + + ```bash + dnf group install c-development development-tools + dnf install git debhelper pkgconf-pkg-config pciutils-devel libusb-compat-0.1-devel libftdi-devel meson + ``` 2. Obtain source code: From 103c45d54637712f2bdcdc94e8ab6d7636f6b4cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 09:17:04 +0100 Subject: [PATCH 009/133] clevo/post-install: Fedora instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/unified/clevo/post-install.md | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/docs/unified/clevo/post-install.md b/docs/unified/clevo/post-install.md index ce63e61faf..5ad270681a 100644 --- a/docs/unified/clevo/post-install.md +++ b/docs/unified/clevo/post-install.md @@ -73,6 +73,56 @@ Select your operating system to view applicable instructions: curl -sSf https://raw.githubusercontent.com/Dasharo/dasharo-tools/main/clevo/sata-suspend-fixup | sudo sh ``` +=== "Fedora" + ### Touchpad hotkey enablement + + The touchpad hotkey may need extra setup to function correctly under Linux. + If the key isn't working, execute the following command to apply a fix: + + ```bash + curl -sSf https://raw.githubusercontent.com/Dasharo/dasharo-tools/main/clevo/touchpad-fixup | sudo sh + ``` + + After executing these steps, it should be possible to enable and disable the + touchpad using the touchpad hotkey (Fn+F1) on the keyboard when using GNOME. + + ### NVIDIA drivers + + If your device comes with NVIDIA graphics, proprietary NVIDIA drivers are + recommended for optimal performance and battery life. + + 1. Install drivers according to + [instructions by RPM fusion](https://rpmfusion.org/Howto/NVIDIA#Current_GeForce.2FQuadro.2FTesla) + + 1. Reboot the device to apply changes + + 1. (Optional) If you're suffering from poor battery life caused by the GPU + not turning off, ensure On-Demand mode is enabled in NVIDIA Control + Panel: + + ![](../../images/nv4x_nvidia_panel.jpg){ class="center" } + + 1. (Optional) If the GPU is still not powering down, run the following + command, and then reboot the laptop: + + ```bash + echo options nvidia "NVreg_DynamicPowerManagement=0x02" | sudo tee /etc/modprobe.d/nvidia_rtd3.conf + ``` + + ### Suspend fix for SATA disks + + Only affects laptops with M.2 SATA disks experiencing sleep issues (the power + LED not blinking while the laptop is suspended) + + Windows and certain Linux distros such as Ubuntu do not enable the necessary + power saving tweaks to enable sleep mode while a SATA disk is installed. + + Execute fixup script: + + ```bash + curl -sSf https://raw.githubusercontent.com/Dasharo/dasharo-tools/main/clevo/sata-suspend-fixup | sudo sh + ``` + === "Qubes OS" ### Touchpad hotkey enablement From e0ed746765222156eb3f60894be8ff8f5cf6f2db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 09:56:07 +0100 Subject: [PATCH 010/133] nv4x_adl test-matrix: Update Ubuntu/Fedora test variants MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/variants/novacustom_nv4x_adl/test-matrix.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/variants/novacustom_nv4x_adl/test-matrix.md b/docs/variants/novacustom_nv4x_adl/test-matrix.md index 23f888c45a..f2c6b64386 100644 --- a/docs/variants/novacustom_nv4x_adl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_adl/test-matrix.md @@ -11,8 +11,8 @@ subjected from before the release of the new binary. |:----:|:-------------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | -| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.002, DSP001.003, DSP002.201, DSP002.301 | -| 4. | [Embedded Controller and Super I/O initialization][ECR]| ECR | Without ECR021.001, ECR021.002, ECR022.001, ECR022.002, ECR023.001, ECR023.002, ECR024.001, ECR024.002 | +| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.201, DSP001.202, DSP001.301, DSP002.201, DSP002.202, DSP002.301 | +| 4. | [Embedded Controller and Super I/O initialization][ECR]| ECR | ECR021.201, ECR021.202, ECR021.301, ECR022.201, ECR022.202, ECR022.301, ECR023.201, ECR023.202, ECR023.301, ECR024.201, ECR024.202, ECR024.301 | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | | 7. | [Custom boot keys][CBK] | CBK | All | @@ -26,8 +26,8 @@ subjected from before the release of the new binary. | 15. | [M.2 WiFi/Bluetooth][WLE] | WLE | All - NOTE: Needs to be carried out for both the default network card and the Atheros QCNFA222. | | 16. | [SD card support][SDC] | SDC | All | | 17. | [USB Camera verification][CAM] | CAM | All | -| 18. | [Fan speed measure][FAN] | FAN | FAN001.001 | -| 19. | [SMBIOS][DMI] | DMI | Without DMI001.001 | +| 18. | [Fan speed measure][FAN] | FAN | FAN001.201, FAN001.202 | +| 19. | [SMBIOS][DMI] | DMI | Without DMI001 | | 20. | [Firmware update using fwupd][FFW] | FFW | All | | 21. | [Dasharo Tools Suite][DTS] | DTS | DTS006.001, DTS007.001 | | 22. | [CPU status][CPU] | CPU | All | @@ -37,7 +37,7 @@ subjected from before the release of the new binary. | 26. | [Custom Boot Order][CBO] | CBO | CBO001.002 | | 27. | [QubesOS support][QBS] | QBS | All | | 28. | [Fedora support][FED] | FED | All | -| 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004.001 and SUSP006.001 | +| 29. | [Platform suspend and resume][SUSP] | SUSP | SUSP001.201, SUSP001.202, SUSP001.203, SUSP002.201, SUSP002.202, SUSP002.203, SUSP003.201, SUSP003.202, SUSP003.203, SUSP005.201, SUSP005.202 | | 30. | [Boot blocking][BBB] | BBB | All | | 31. | [Reset to defaults][RTD] | RTD | All | | 32. | [Suspend mechanism switchcing (S0ix/S3)][SMS] | SMS | All | @@ -86,7 +86,7 @@ subjected from before the release of the new binary. | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | Without SBO006.001, SBO007.001 and SBO008.001 | -| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE006.001 | +| 5. | [ME disable/neuter support][MNE] | MNE | MNE001.001, MNE002.201, MNE002.202, MNE003.201, MNE003.202, MNE004.201, MNE004.202, MNE005.001, MNE005.002 | | 6. | [USB stack][USS] | USS | All | | 7. | [Network boot availability][PXE] | PXE | All | | 8. | [BIOS lock support][BLS] | BLS | All | @@ -133,7 +133,7 @@ subjected from before the release of the new binary. | 2. | [M.2 Wi-fi][SMW] | SMW | All | | 3. | [NVMe detection][SNV] | SNV | All | | 4. | [NET interface detection][NET] | NET | All | -| 5. | [TPM detection][TPD] | TPD | TPD003.001, TPD004.001 | +| 5. | [TPM detection][TPD] | TPD | TPD003.201, TPD003.202, TPD004.201, TPD004.202 | [SUD]: ../../unified-test-documentation/dasharo-stability/C01-usb-type-a-devices-detection.md [SMW]: ../../unified-test-documentation/dasharo-stability/C02-m2-wi-fi.md From 1564361917a69b28d30628c45917291ee052b163 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 09:56:56 +0100 Subject: [PATCH 011/133] unified-test-documentation/overview: Update fedora support 37 to 41 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/unified-test-documentation/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/unified-test-documentation/overview.md b/docs/unified-test-documentation/overview.md index b31bbb13f1..7c3972be26 100644 --- a/docs/unified-test-documentation/overview.md +++ b/docs/unified-test-documentation/overview.md @@ -46,7 +46,7 @@ be distinguished: * Ubuntu 22.04 * Ubuntu Server 22.04 LTS * Debian 11.0 -* Fedora 37 +* Fedora 41 * FreeBSD 13.2 * Proxmox VE 7.4 * OPNsense 23.01 From 54889f2e09387665009d8bb3f1b715613bd02338 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 10:24:14 +0100 Subject: [PATCH 012/133] nv4 test-matrix: Simplify MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/variants/novacustom_nv4x_adl/test-matrix.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/variants/novacustom_nv4x_adl/test-matrix.md b/docs/variants/novacustom_nv4x_adl/test-matrix.md index f2c6b64386..f984acda7a 100644 --- a/docs/variants/novacustom_nv4x_adl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_adl/test-matrix.md @@ -26,7 +26,7 @@ subjected from before the release of the new binary. | 15. | [M.2 WiFi/Bluetooth][WLE] | WLE | All - NOTE: Needs to be carried out for both the default network card and the Atheros QCNFA222. | | 16. | [SD card support][SDC] | SDC | All | | 17. | [USB Camera verification][CAM] | CAM | All | -| 18. | [Fan speed measure][FAN] | FAN | FAN001.201, FAN001.202 | +| 18. | [Fan speed measure][FAN] | FAN | FAN001.001 | | 19. | [SMBIOS][DMI] | DMI | Without DMI001 | | 20. | [Firmware update using fwupd][FFW] | FFW | All | | 21. | [Dasharo Tools Suite][DTS] | DTS | DTS006.001, DTS007.001 | @@ -37,7 +37,7 @@ subjected from before the release of the new binary. | 26. | [Custom Boot Order][CBO] | CBO | CBO001.002 | | 27. | [QubesOS support][QBS] | QBS | All | | 28. | [Fedora support][FED] | FED | All | -| 29. | [Platform suspend and resume][SUSP] | SUSP | SUSP001.201, SUSP001.202, SUSP001.203, SUSP002.201, SUSP002.202, SUSP002.203, SUSP003.201, SUSP003.202, SUSP003.203, SUSP005.201, SUSP005.202 | +| 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004 and SUSP006 | | 30. | [Boot blocking][BBB] | BBB | All | | 31. | [Reset to defaults][RTD] | RTD | All | | 32. | [Suspend mechanism switchcing (S0ix/S3)][SMS] | SMS | All | From b2b827c1e5de4215f9d220a5dcba00fe90a3b806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 15:13:28 +0100 Subject: [PATCH 013/133] clevo/post-install restore mutlitouch instructions for ns7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/unified/clevo/post-install.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/unified/clevo/post-install.md b/docs/unified/clevo/post-install.md index 5ad270681a..4fbd9b72ff 100644 --- a/docs/unified/clevo/post-install.md +++ b/docs/unified/clevo/post-install.md @@ -86,6 +86,24 @@ Select your operating system to view applicable instructions: After executing these steps, it should be possible to enable and disable the touchpad using the touchpad hotkey (Fn+F1) on the keyboard when using GNOME. + ### Touchpad multi-touch support + + On NS7x an additional fix is necessary to enable multi-touch on Linux. Create + a file `/etc/modprobe.d/blacklist-psmouse.conf` with the following contents: + + ```bash + blacklist psmouse + ``` + + and then run the following commands: + + ```bash + sudo depmod -a + sudo update-initramfs -u + ``` + + and reboot to use the new kernel. + ### NVIDIA drivers If your device comes with NVIDIA graphics, proprietary NVIDIA drivers are From f5cb5c897bfa632b534616068ad2b7476d960249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 15:24:57 +0100 Subject: [PATCH 014/133] ns5x_tgl/test-matrix: Update with fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/variants/novacustom_ns5x_tgl/test-matrix.md | 2 +- docs/variants/novacustom_nv4x_adl/test-matrix.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/variants/novacustom_ns5x_tgl/test-matrix.md b/docs/variants/novacustom_ns5x_tgl/test-matrix.md index 6e5e318161..0cd54fe5f6 100644 --- a/docs/variants/novacustom_ns5x_tgl/test-matrix.md +++ b/docs/variants/novacustom_ns5x_tgl/test-matrix.md @@ -133,7 +133,7 @@ subjected before the release of the new binary. | 2. | [M.2 Wi-fi][SMW] | SMW | All | | 3. | [NVMe detection][SNV] | SNV | All | | 4. | [NET interface detection][NET] | NET | All | -| 5. | [TPM detection][TPD] | TPD | TPD003.001, TPD004.001 | +| 5. | [TPM detection][TPD] | TPD | TPD003.201, TPD003.202, TPD004.201, TPD004.202 | [SUD]: ../../unified-test-documentation/dasharo-stability/C01-usb-type-a-devices-detection.md [SMW]: ../../unified-test-documentation/dasharo-stability/C02-m2-wi-fi.md diff --git a/docs/variants/novacustom_nv4x_adl/test-matrix.md b/docs/variants/novacustom_nv4x_adl/test-matrix.md index f984acda7a..fa76ac43d5 100644 --- a/docs/variants/novacustom_nv4x_adl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_adl/test-matrix.md @@ -27,7 +27,7 @@ subjected from before the release of the new binary. | 16. | [SD card support][SDC] | SDC | All | | 17. | [USB Camera verification][CAM] | CAM | All | | 18. | [Fan speed measure][FAN] | FAN | FAN001.001 | -| 19. | [SMBIOS][DMI] | DMI | Without DMI001 | +| 19. | [SMBIOS][DMI] | DMI | Without DMI001.001 | | 20. | [Firmware update using fwupd][FFW] | FFW | All | | 21. | [Dasharo Tools Suite][DTS] | DTS | DTS006.001, DTS007.001 | | 22. | [CPU status][CPU] | CPU | All | @@ -86,7 +86,7 @@ subjected from before the release of the new binary. | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | Without SBO006.001, SBO007.001 and SBO008.001 | -| 5. | [ME disable/neuter support][MNE] | MNE | MNE001.001, MNE002.201, MNE002.202, MNE003.201, MNE003.202, MNE004.201, MNE004.202, MNE005.001, MNE005.002 | +| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE006.001 | | 6. | [USB stack][USS] | USS | All | | 7. | [Network boot availability][PXE] | PXE | All | | 8. | [BIOS lock support][BLS] | BLS | All | @@ -133,7 +133,7 @@ subjected from before the release of the new binary. | 2. | [M.2 Wi-fi][SMW] | SMW | All | | 3. | [NVMe detection][SNV] | SNV | All | | 4. | [NET interface detection][NET] | NET | All | -| 5. | [TPM detection][TPD] | TPD | TPD003.201, TPD003.202, TPD004.201, TPD004.202 | +| 5. | [TPM detection][TPD] | TPD | TPD003.201, TPD003.202, TPD004.201, TPD004.202 | [SUD]: ../../unified-test-documentation/dasharo-stability/C01-usb-type-a-devices-detection.md [SMW]: ../../unified-test-documentation/dasharo-stability/C02-m2-wi-fi.md From 60a20992a73b7f91504308432d5aa3bca77c7060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 15:28:07 +0100 Subject: [PATCH 015/133] novacustom/building: Add missing git install instruction for dnf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/unified/novacustom/building-manual.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/unified/novacustom/building-manual.md b/docs/unified/novacustom/building-manual.md index 9a42016ae2..a870f3aa86 100644 --- a/docs/unified/novacustom/building-manual.md +++ b/docs/unified/novacustom/building-manual.md @@ -23,9 +23,17 @@ + follow [Post-installation steps for Linux](https://docs.docker.com/engine/install/linux-postinstall/) - Git - ```bash - sudo apt -y install git - ``` + === "APT package manager" + + ```bash + sudo apt -y install git + ``` + + === "DNF package manager" + + ```bash + sudo dnf -y install git + ``` ## Build Dasharo EC firmware From a41cd37cb9c7e7b5149ea487f055ae1fbbd360a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 15:32:58 +0100 Subject: [PATCH 016/133] ns5x_adl: Add fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/variants/novacustom_ns5x_adl/test-matrix.md | 6 +++--- docs/variants/novacustom_ns5x_tgl/test-matrix.md | 4 ++-- docs/variants/novacustom_nv4x_adl/test-matrix.md | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/variants/novacustom_ns5x_adl/test-matrix.md b/docs/variants/novacustom_ns5x_adl/test-matrix.md index 6e5e318161..e5ee28a7ca 100644 --- a/docs/variants/novacustom_ns5x_adl/test-matrix.md +++ b/docs/variants/novacustom_ns5x_adl/test-matrix.md @@ -37,10 +37,10 @@ subjected before the release of the new binary. | 26. | [Custom Boot Order][CBO] | CBO | CBO001.002 | | 27. | [QubesOS support][QBS] | QBS | All | | 28. | [Fedora support][FED] | FED | All | -| 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004.001 and SUSP006.001 | +| 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004 and SUSP006 | | 30. | [Boot blocking][BBB] | BBB | All | | 31. | [Reset to defaults][RTD] | RTD | All | -| 32. | [Suspend mechanism switchcing (S0ix/S3)][SMS] | SMS | All | +| 32. | [Suspend mechanism switching (S0ix/S3)][SMS] | SMS | All | | 33. | [Platform hibernation and resume][HBN] | HBN | All | | 34. | [Sign of life][SOL] | SOL | All | | 35. | [Power after fail][PSF] | PSF | All | @@ -133,7 +133,7 @@ subjected before the release of the new binary. | 2. | [M.2 Wi-fi][SMW] | SMW | All | | 3. | [NVMe detection][SNV] | SNV | All | | 4. | [NET interface detection][NET] | NET | All | -| 5. | [TPM detection][TPD] | TPD | TPD003.001, TPD004.001 | +| 5. | [TPM detection][TPD] | TPD | TPD003.201, TPD003.202, TPD004.201, TPD004.202 | [SUD]: ../../unified-test-documentation/dasharo-stability/C01-usb-type-a-devices-detection.md [SMW]: ../../unified-test-documentation/dasharo-stability/C02-m2-wi-fi.md diff --git a/docs/variants/novacustom_ns5x_tgl/test-matrix.md b/docs/variants/novacustom_ns5x_tgl/test-matrix.md index 0cd54fe5f6..cf2cc9fa26 100644 --- a/docs/variants/novacustom_ns5x_tgl/test-matrix.md +++ b/docs/variants/novacustom_ns5x_tgl/test-matrix.md @@ -11,7 +11,7 @@ subjected before the release of the new binary. |:----:|:-------------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | -| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.002, DSP001.003, DSP002.201, DSP002.301 | +| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.201, DSP001.202, DSP001.301, DSP002.201, DSP002.202, DSP002.301 | | 4. | [Embedded Controller and Super I/O initialization][ECR]| ECR | All | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | @@ -40,7 +40,7 @@ subjected before the release of the new binary. | 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004.001 and SUSP006.001 | | 30. | [Boot blocking][BBB] | BBB | All | | 31. | [Reset to defaults][RTD] | RTD | All | -| 32. | [Suspend mechanism switchcing (S0ix/S3)][SMS] | SMS | All | +| 32. | [Suspend mechanism switching (S0ix/S3)][SMS] | SMS | All | | 33. | [Platform hibernation and resume][HBN] | HBN | All | | 34. | [Sign of life][SOL] | SOL | All | | 35. | [Power after fail][PSF] | PSF | All | diff --git a/docs/variants/novacustom_nv4x_adl/test-matrix.md b/docs/variants/novacustom_nv4x_adl/test-matrix.md index fa76ac43d5..5fe0886008 100644 --- a/docs/variants/novacustom_nv4x_adl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_adl/test-matrix.md @@ -40,7 +40,7 @@ subjected from before the release of the new binary. | 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004 and SUSP006 | | 30. | [Boot blocking][BBB] | BBB | All | | 31. | [Reset to defaults][RTD] | RTD | All | -| 32. | [Suspend mechanism switchcing (S0ix/S3)][SMS] | SMS | All | +| 32. | [Suspend mechanism switching (S0ix/S3)][SMS] | SMS | All | | 33. | [Platform hibernation and resume][HBN] | HBN | All | | 34. | [Sign of life][SOL] | SOL | All | | 35. | [Power after fail][PSF] | PSF | All | From 16d2203ad42a4df953ab6721f0042ca2de1498b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 26 Mar 2025 16:24:37 +0100 Subject: [PATCH 017/133] generic-test-setup.md: Update with Fedora instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../generic-test-setup.md | 166 +++++++++++------- 1 file changed, 101 insertions(+), 65 deletions(-) diff --git a/docs/unified-test-documentation/generic-test-setup.md b/docs/unified-test-documentation/generic-test-setup.md index 13a8873fdd..8ea2944274 100644 --- a/docs/unified-test-documentation/generic-test-setup.md +++ b/docs/unified-test-documentation/generic-test-setup.md @@ -58,96 +58,132 @@ Make sure that the hostname, username and password are the same as in the OSFV repository in order for the automatic tests to run properly if the device already had the OS installed. -##### Windows +=== "Windows" -1.(Windows 11) Run PowerShell as an Administrator. -1. Install the OpenSSH Client + 1. Run PowerShell as an Administrator. + 1. Install the OpenSSH Client - ```powershell - Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 - ``` + ```powershell + Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 + ``` -2. Install the OpenSSH Server + 2. Install the OpenSSH Server - ```powershell - Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 - ``` + ```powershell + Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 + ``` -3. Start the sshd service + 3. Start the sshd service - ```powershell - Start-Service sshd - ``` + ```powershell + Start-Service sshd + ``` -4. Make the sshd service start automatically on startup: + 4. Make the sshd service start automatically on startup: - ```powershell - Set-Service -Name sshd -StartupType 'Automatic' - ``` + ```powershell + Set-Service -Name sshd -StartupType 'Automatic' + ``` -5. Confirm the Firewall rule is configured. It should be created automatically -by setup. Run the following to verify + 5. Confirm the Firewall rule is configured. It should be created automatically + by setup. Run the following to verify - ```powershell - if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) { - Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..." - New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 - } else { - Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists." - } - ``` + ```powershell + if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) { + Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..." + New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 + } else { + Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists." + } + ``` -6. If during connection via SSH you want to run `PowerShell.exe` instead of -`cmd.exe` use below command: + 6. If during connection via SSH you want to run `PowerShell.exe` instead of + `cmd.exe` use below command: - ```powershell - New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell \ - -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" \ - -PropertyType String -Force - ``` + ```powershell + New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell \ + -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" \ + -PropertyType String -Force + ``` -7. Sets the PowerShell execution policies for Windows computers. + 7. Sets the PowerShell execution policies for Windows computers. - ```powershell - Set-ExecutionPolicy RemoteSigned - ``` + ```powershell + Set-ExecutionPolicy RemoteSigned + ``` -8. Use powercfg.exe to control power plans to prevent sleep. + 8. Use powercfg.exe to control power plans to prevent sleep. - ```powershell - Powercfg /Change standby-timeout-ac 0 - Powercfg /Change standby-timeout-dc 0 - ``` + ```powershell + Powercfg /Change standby-timeout-ac 0 + Powercfg /Change standby-timeout-dc 0 + ``` -##### Linux +=== "Ubuntu" -1. Open the terminal. -1. Disable the shutdown confirmation dialogues + 1. Open the terminal. + 1. Disable the shutdown confirmation dialogues - ```bash - sudo gsettings set org.gnome.SessionManager logout-prompt false - ``` + ```bash + sudo gsettings set org.gnome.SessionManager logout-prompt false + ``` -1. Set up a serial terminal: + 1. Set up a serial terminal: - ```bash - sudo nano /etc/default/grub - ``` + ```bash + sudo nano /etc/default/grub + ``` -1. Edit the file `/etc/default/grub` by adding -`console=tty0 console=ttyS0,115200` in variable `GRUB_CMDLINE_LINUX_DEFAULT`. -1. Update grub + 1. Edit the file `/etc/default/grub` by adding + `console=tty0 console=ttyS0,115200` in variable `GRUB_CMDLINE_LINUX_DEFAULT`. + 1. Update grub - ```bash - sudo update-grub - ``` + ```bash + sudo update-grub + ``` -1. Configure SSH: + 1. Configure SSH: - ```bash - sudo apt install openssh-server - systemctl start sshd - ``` + ```bash + sudo apt install openssh-server + systemctl start sshd + ``` + +=== "Fedora" + + 1. Open the terminal. + 1. Disable the shutdown confirmation dialogues + + ```bash + sudo gsettings set org.gnome.SessionManager logout-prompt false + ``` + + 1. Set up a serial terminal: + + ```bash + sudo nano /etc/default/grub + ``` + + 1. Add the following at the end of`/etc/default/grub`: + + ``` + GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,115200n8' + GRUB_TERMINAL='serial' + GRUB_SERIAL_COMMAND='serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1' + ``` + + 1. Update grub + + ```bash + sudo grub2-mkconfig -o /boot/grub2/grub.cfg + ``` + + 1. Configure SSH: + + ```bash + sudo dnf install openssh-server + systemctl enable --now sshd + ``` #### NVIDIA drivers - Ubuntu From 611a6c2ec9a4f27d07c966fb1ffab63bb758a3b3 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Fri, 28 Mar 2025 16:10:28 +0100 Subject: [PATCH 018/133] /unified/novacustom/features.md add: description for the ACPI driver Signed-off-by: Jakub Redmerski --- docs/unified/novacustom/features.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/unified/novacustom/features.md b/docs/unified/novacustom/features.md index 0f204f0b2a..4a4381f9ad 100644 --- a/docs/unified/novacustom/features.md +++ b/docs/unified/novacustom/features.md @@ -177,6 +177,18 @@ stuck, the EC can be forcefully reset by simply holding the power button for more than 10 seconds. +## ACPI driver + +The ACPI Driver is a Linux kernel module that utilizes the hwmon +interface to monitor the hardware. This interface is based on the sysfs +file system, enabling reading of the real-time data about the hardware +status.\ +The driver provides support for sensors that report values +of temperature, fan speeds and fan PWM for CPU and GPU +(if supported by the platform). + +To install this feature follow: [Dasharo ACPI README](https://github.com/Dasharo/dasharo-acpi-dkms/tree/develop). + ## Graphics Card Modes **V5xxTNX** models offer multiple graphics modes, accessible via From d50e823c7813eb142af8871519d80cf01ab882d4 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Fri, 28 Mar 2025 16:32:33 +0100 Subject: [PATCH 019/133] unified/novacustom/features.md change: remove newline character and add newline by enter Signed-off-by: Jakub Redmerski --- docs/unified/novacustom/features.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/unified/novacustom/features.md b/docs/unified/novacustom/features.md index 4a4381f9ad..525d2fc104 100644 --- a/docs/unified/novacustom/features.md +++ b/docs/unified/novacustom/features.md @@ -182,7 +182,8 @@ more than 10 seconds. The ACPI Driver is a Linux kernel module that utilizes the hwmon interface to monitor the hardware. This interface is based on the sysfs file system, enabling reading of the real-time data about the hardware -status.\ +status. + The driver provides support for sensors that report values of temperature, fan speeds and fan PWM for CPU and GPU (if supported by the platform). From 0803a666cde5707a7ee9f00d27ea63e4e3a34040 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Wed, 26 Mar 2025 11:12:26 +0100 Subject: [PATCH 020/133] mkdocs.yml: drop analytics Signed-off-by: Maciej Pijanowski --- mkdocs.yml | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index e6dfab0554..bf84368d46 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -18,30 +18,6 @@ theme: - navigation.tabs - navigation.tabs.sticky extra: - analytics: - provider: google - property: G-LH2JM6P96R - # feedback: - # title: Was this page helpful? - # ratings: - # - icon: material/thumb-up-outline - # name: This page was helpful - # data: 1 - # note: >- - # Thanks for your feedback! - # - icon: material/thumb-down-outline - # name: This page was not helpful - # data: 0 - # note: >- - # Thanks for your feedback! Help us improve this page by - # using our feedback form. - consent: - title: Cookie consent - description: >- - We use cookies to recognize your repeated visits and preferences, as well - as to measure the effectiveness of our documentation and whether users - find what they're searching for. With your consent, you're helping us to - make our documentation better. social: - icon: fontawesome/brands/github link: https://github.com/dasharo From 23f1dcb8c78207afd1cc5528f26723096267aa6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Kr=C3=B3l?= Date: Sat, 29 Mar 2025 23:07:50 +0100 Subject: [PATCH 021/133] docs/newcomers.md: remove lab internal ip MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Piotr Król --- docs/newcomers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/newcomers.md b/docs/newcomers.md index 43fd23072a..6a476d1b3f 100644 --- a/docs/newcomers.md +++ b/docs/newcomers.md @@ -123,12 +123,12 @@ quick answers it's best to join our matrix space and talk to us there. If you've never used Matrix before, you will first need to get a client. Available clients are listed [here](https://matrix.org/clients/). -## Dasharo lab user guide +## Dasharo Certification Lab User Guide [**Test environment overview**](https://github.com/Dasharo/open-source-firmware-validation?tab=readme-ov-file#test-environment-overview) To get information about available platforms it's or it's RTE's IP address, use -the platform reservation tool: [SnipeIT](https://192.168.4.202/) +3mdeb's the platform reservation tool available from internal network. [OSFV_CLI](https://github.com/Dasharo/osfv-scripts/tree/main/osfv_cli) is a script, which allows to interact with devices setup in Dasharo OSFV lab. From 5f1f02286dca58b7167d0ce75155e419780d2803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Kr=C3=B3l?= Date: Sat, 29 Mar 2025 23:21:53 +0100 Subject: [PATCH 022/133] novacustom/firmware-transition.md: fix invalid link MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Piotr Król --- docs/unified/novacustom/firmware-transition.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/unified/novacustom/firmware-transition.md b/docs/unified/novacustom/firmware-transition.md index 7540f25117..2eb5e6a279 100644 --- a/docs/unified/novacustom/firmware-transition.md +++ b/docs/unified/novacustom/firmware-transition.md @@ -24,7 +24,7 @@ firmware installation: !!! tip For a more detailed guide on the UEFI Setup Menu options, check out the - [Dasharo menu documentation](https://docs.dasharo.com/dasharo-menu-docs/). + [Dasharo menu documentation](https://docs.dasharo.com/dasharo-menu-docs/overview). - [Boot into Dasharo Tools Suite](https://docs.dasharo.com/dasharo-tools-suite/documentation/running/) From 747c5518c638724b419e1fcea55bebaf2ea4b53f Mon Sep 17 00:00:00 2001 From: Pawel Langowski Date: Mon, 10 Feb 2025 15:25:39 +0100 Subject: [PATCH 023/133] osf-trivia-list/dasharo-pro-package.md: Change binary download guide Signed-off-by: Pawel Langowski --- docs/osf-trivia-list/dasharo-pro-package.md | 23 ++++++--------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/docs/osf-trivia-list/dasharo-pro-package.md b/docs/osf-trivia-list/dasharo-pro-package.md index fd55353727..013093e0dc 100644 --- a/docs/osf-trivia-list/dasharo-pro-package.md +++ b/docs/osf-trivia-list/dasharo-pro-package.md @@ -10,8 +10,6 @@ you can download them: subscription. Look for an email from Dasharo that includes your subscription data. This email will contain several vital pieces of information: - - **Logs Key:** A key you might need for other operations or support. - - **Download Key:** A unique string that allows you to access the download area. - **Password:** The password you'll need to access the files. - **Expiration Date:** The date until your subscription is valid. @@ -19,29 +17,20 @@ you can download them: following URL: ```txt - https://cloud.3mdeb.com/index.php/s/{download_key} + https://dl.dasharo.com ``` - Replace `{download_key}` with the download key provided in your email. - 3. **Enter Your Password:** Once you visit the above link, you'll be prompted - to enter a password. Use the password from your subscription email. + to enter a username and password. Use the password from your subscription + email. The username is your email address. 4. **Download the Binaries:** After entering the password, you can access the - cloud folder containing the binaries. You can now download them as needed. - -**Example:** - -- Suppose your download key is `abc123` and your password is - `securepassword123`. -- You can visit `https://cloud.3mdeb.com/index.php/s/abc123`. -- When prompted, you would enter `securepassword123` as the password. -- After authentication, you can download your subscribed binaries. + bucket containing the binaries. You can now download them as needed. **Notes:** -- Ensure you enter the download key and password exactly as they appear in your - email, as they are case-sensitive. +- Ensure you enter the password exactly as it appears in your email, as it is + case-sensitive. - If you have not received your email or cannot find it, check your spam folder or contact Dasharo support for assistance. From c7855dc6145de322c29cc00a4b8da49ba155fe91 Mon Sep 17 00:00:00 2001 From: Pawel Langowski Date: Tue, 25 Mar 2025 12:02:24 +0100 Subject: [PATCH 024/133] docs: Add minio buckets image Signed-off-by: Pawel Langowski --- docs/images/minio-buckets.png | Bin 0 -> 59616 bytes docs/osf-trivia-list/dasharo-pro-package.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 docs/images/minio-buckets.png diff --git a/docs/images/minio-buckets.png b/docs/images/minio-buckets.png new file mode 100644 index 0000000000000000000000000000000000000000..e11d2df3d4f54ffb067bc978c6fd3aa8fb7af159 GIT binary patch literal 59616 zcmce;2UOEp_cqGts3VGu1yKaCPy_^2nsgNfLvJAvs&qn=8VOBBV5CZD(rYMzfRxaS zjsnu9B%z~p2mvV}w7_?mSLdC%cYXK%*InPbXRR3WYv*^)*=L_;Kl?ep)>KzwVq{}v zU|?W^JbtLnz;G19z;L+px1-<)LywsV`1e=02N2!gK=Jv_@(=L)qWdF#cO7SIcjOaS zD+U`UXGbeRHw#xQDzKW^Wa5|fk?yL;un+7*RIx*w~H3mF)$FhCyO*L{|}IEwV?ByqN^(CQ%%gML4A zbtCoaMxJqjH6PqDfAGGCZ4btK*F9ca9;0F?h$HHiTX*Uk=>2vz>ctxu5iZ)^-f!^& zuelNh^2fF}Xg=Mv>f;o&OJ|&3Ri3Bv%a3#Km)JvV z7{2cJ1bjT2SBI3W7n^i5xEYrzbnKruJC!-549{mgIZP#&;@MK#iN3)Ruk2cu=#};2 zKd)PCa>|G)`;g9@+-{4suJNl%E=U0yzAw0m(@ zsFbvny(bF&XUE0C<_n8+*d2CbE=XjqiDu?ashK7FdQ&v^61!N%tE8d3F`7(S(Oi54 zbK+&U8a-q6p5lvqf!h}uBue#fN^yAUsjEjw`Cm0TZIkJ`$a)F6S3&yO!_Q?01!GoY z?$hqp%w1MuWpZ)vS+ip;3xphnFiTh4mFn zBePC!Yqa*l6Qi)OUZEkQ6CHJh?>pMJ1w_M}-v6TJYZYYj zcDHJb{`8bU){pwH96K6t-*<;eH&oBjN|Y_MCYe2<)0#3`rc>T5ZV?IfqrB+wi3Ot*YoUS@`&g_4^-YnJb&H8Vs!H~K~yR)`NRG3 z9Nt-}u_tR*6w%y*PzA^XzJc)R8fTl${JzAMRwF2GLgmKKUXYv{c1~wcQJ$knm}psB zZ)Ev~96okTiOP9bAG}+C8%yJO`EtsJ%n=Vm^Qtrr+u$Ju@9LEmizo$@xXCx3>j9a)mZsQwq3$U8Tw{J=(sA#$^gw4GT)*MJ1eXbtOw) ze3N@gVY;lxg>isYS9khHkK8LEWibf2(-+Sx z8}HZBqGwLZrg>^H=OpV?ZIuccb|j{y<_YoL-oE-V`&@$a9qo;kF8w=VV$@7j!bG|F zb?)KS+wDx>bh5d1PS2bScXw^~*hMKS;oY7R#q}T`)K769@7r2SHu!0^TL+`z@!Sn+ zZLQc)Fv`in2}aGSEa;azWJd{cMY=90Zn7STST%lgK&9ky@K&;4^6 zYg&R9VhpoKFB%j?bd9}}9S?ue|Doe#Q$nYdc|$V!S<4-fseDo6&rhI)({4e{xh8KK zdm!{=BX_>wfXY7wFD}?i<@TsMv5}{o+$hOSg~4jGEKYoT^ISh`c;6T``XK+r9dbth z+SY(bLL59Ua5_rGNR^h)2c@&-YF74EcrOxW`(Xrh1 zb$6U`S!SL}Yo8-CW(e<8RDny%w+_ehlMNJSyIRPbuXTnRMDG2v6X1k$cH3`W_)
sbmitKUur3oauFDQM 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 abK_MlT>sdkE5o@b Date: Fri, 28 Mar 2025 16:11:44 +0100 Subject: [PATCH 025/133] osf-trivia-list/dasharo-pro-package: Newsletter unsubscribing disclaimer Signed-off-by: Pawel Langowski --- docs/osf-trivia-list/dasharo-pro-package.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/osf-trivia-list/dasharo-pro-package.md b/docs/osf-trivia-list/dasharo-pro-package.md index fd55353727..d18c7a6a54 100644 --- a/docs/osf-trivia-list/dasharo-pro-package.md +++ b/docs/osf-trivia-list/dasharo-pro-package.md @@ -72,3 +72,19 @@ be flashed with proprietary firmware using this method. The keys/credentials have no other usages outside Dasharo Tools Suite and have no impact on other components of the system. + +## How can I unsubscribe from a DPP newsletter + +Emails sent from DPP newsletters have an `Unsubscribe` link at the bottom, which +will take you to Listmonk's unsubscribe form. + +If you choose to `Unsubscribe from all future e-mails`, you will be blocklisted +from every list in 3mdeb Listmonk's instance. It is currently impossible to +unsubscribe from only one private list - see [related issue][listmonk-issue]. + +!!! warning + + Choosing `Wipe your data` will remove you from Listmonk and revoke your DPP + access. Please refrain from using this option. + +[listmonk-issue]: https://github.com/knadh/listmonk/issues/2382 From 6412daa07c1d07a3eae5152358ae835e484aa390 Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Mon, 31 Mar 2025 17:02:22 +0200 Subject: [PATCH 026/133] .pre-commit-config.yaml: add internal_links hook Signed-off-by: Eduard Kaverinskyi --- .pre-commit-config.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ace8059c4d..b856a1ab96 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -57,6 +57,11 @@ repos: entry: (\:\s|\()[^\s]*(? Date: Mon, 31 Mar 2025 17:58:23 +0200 Subject: [PATCH 027/133] .pre-commit-config.yml: improve internal_links pattern New pattern supports both the 192.168.x.x and 10.x.x.x networks, and only searches for links (http/https) Signed-off-by: Eduard Kaverinskyi --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b856a1ab96..1331faa4e1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -58,8 +58,8 @@ repos: language: pygrep exclude: '^.*.(webp|jpeg|jpg|png|pdf)$' - id: internal_links - name: Check internal links (192.168.x.x) - entry: 192\.168\.[0-9]+\.[0-9]+ + name: Check internal links (http://192.168.x.x or http://10.x.x.x) + entry: https?:\/\/(192\.168\.[0-9]+\.[0-9]+|10\.[0-9]+\.[0-9]+\.[0-9]+) language: pygrep types: [text] From 0aa7e5b7f00fbe0bcfbb91916caf51e7679bcfbe Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Tue, 1 Apr 2025 10:22:50 +0200 Subject: [PATCH 028/133] .pre-commit-config.yaml: narrow check to markdown links Make the internal_links check detect only markdown links: [link-text](link) Signed-off-by: Eduard Kaverinskyi --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1331faa4e1..6b7a4841a6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -58,8 +58,8 @@ repos: language: pygrep exclude: '^.*.(webp|jpeg|jpg|png|pdf)$' - id: internal_links - name: Check internal links (http://192.168.x.x or http://10.x.x.x) - entry: https?:\/\/(192\.168\.[0-9]+\.[0-9]+|10\.[0-9]+\.[0-9]+\.[0-9]+) + name: Check internal markdown links (http://192.168.x.x or http://10.x.x.x) + entry: \]\(https?:\/\/(192\.168\.[0-9]+\.[0-9]+|10\.[0-9]+\.[0-9]+\.[0-9]+)[^)]*\) language: pygrep types: [text] From 347ad4797659c440e2a0dbb862f2f28cd84d7691 Mon Sep 17 00:00:00 2001 From: Pawel Langowski Date: Tue, 25 Mar 2025 16:29:42 +0100 Subject: [PATCH 029/133] Change Mailtrain links to Listmonk form links Signed-off-by: Pawel Langowski --- docs/variants/asus_kgpe_d16/releases.md | 10 ---------- docs/variants/asus_kgpe_d16/setup.md | 6 ++---- docs/variants/dell_optiplex/releases.md | 2 +- docs/variants/hardkernel_odroid_h4/releases.md | 2 +- docs/variants/msi_z690/releases.md | 2 +- docs/variants/msi_z690/releases_heads.md | 1 - docs/variants/msi_z790/releases.md | 2 +- docs/variants/msi_z790/releases_heads.md | 1 - docs/variants/novacustom_ns5x_adl/releases.md | 8 ++++---- docs/variants/novacustom_ns5x_tgl/releases.md | 2 +- docs/variants/novacustom_nv4x_adl/releases.md | 4 ++-- docs/variants/novacustom_nv4x_tgl/releases.md | 2 +- docs/variants/novacustom_v540tnx/releases.md | 4 +--- docs/variants/novacustom_v540tu/releases.md | 2 +- docs/variants/novacustom_v540tu/releases_heads.md | 2 +- docs/variants/novacustom_v560tnx/releases.md | 4 +--- docs/variants/novacustom_v560tu/releases.md | 2 +- docs/variants/novacustom_v560tu/releases_heads.md | 2 +- docs/variants/pc_engines/releases_seabios.md | 2 +- docs/variants/pc_engines/releases_uefi.md | 2 +- docs/variants/protectli_fw6/releases.md | 2 +- docs/variants/protectli_v1000-series/releases.md | 2 +- docs/variants/protectli_vp2410/releases.md | 2 +- docs/variants/protectli_vp2420/releases.md | 4 +--- docs/variants/protectli_vp46xx/releases.md | 4 ++-- docs/variants/protectli_vp66xx/releases.md | 2 +- .../variants/supermicro_x11_lga1151_series/releases.md | 3 --- docs/variants/talos_2/releases.md | 4 +--- docs/variants/tuxedo_ibs15/releases.md | 7 ------- 29 files changed, 30 insertions(+), 62 deletions(-) diff --git a/docs/variants/asus_kgpe_d16/releases.md b/docs/variants/asus_kgpe_d16/releases.md index 13aedd9bd0..a94218a1f9 100644 --- a/docs/variants/asus_kgpe_d16/releases.md +++ b/docs/variants/asus_kgpe_d16/releases.md @@ -6,15 +6,6 @@ ASUS KGPE-D16. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to Release Newsletter][newsletter] -{ .md-button .md-button--primary .center } - -[newsletter]: https://newsletter.3mdeb.com/subscription/ozes4Jxuo - -
- Feel free to contact us on our [Matrix Dasharo space](https://matrix.to/#/#dasharo:matrix.org). Test results for this platform can be found @@ -263,7 +254,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [coreboot based on 03aef28 revision e6af2206](https://github.com/Dasharo/coreboot/tree/e6af2206) -[newsletter]: https://newsletter.3mdeb.com/subscription/ozes4Jxuo [asus_kgpe-d16_v0.4.0_16M_vboot_notpm.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/asus_kgpe-d16/v0.4.0/asus_kgpe-d16_v0.4.0_16M_vboot_notpm.rom [asus_kgpe-d16_v0.4.0_16M_vboot_notpm.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/asus_kgpe-d16/v0.4.0/asus_kgpe-d16_v0.4.0_16M_vboot_notpm.rom.sha256 [asus_kgpe-d16_v0.4.0_16M_vboot_notpm.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/asus_kgpe-d16/v0.4.0/asus_kgpe-d16_v0.4.0_16M_vboot_notpm.rom.sha256.sig diff --git a/docs/variants/asus_kgpe_d16/setup.md b/docs/variants/asus_kgpe_d16/setup.md index f032c0263c..16c92d9c9c 100644 --- a/docs/variants/asus_kgpe_d16/setup.md +++ b/docs/variants/asus_kgpe_d16/setup.md @@ -255,10 +255,8 @@ email to [leads@3mdeb.com](mailto:leads@3mdeb.com) with a request. ## Newsletter -If you are interested in this project, you can subscribe to the -[Dasharo KGPE-D16 Newsletter](https://newsletter.3mdeb.com/subscription/ozes4Jxuo). -If you are interested in the Dasharo in general, you are welcome to subscribe -to the [Dasharo Newsletter](https://newsletter.3mdeb.com/subscription/wwL90UkXP). +If you are interested in the Dasharo, you are welcome to subscribe +to the [Dasharo Newsletter](https://3mdeb.com/subscribe/dasharo_newsletter.html). ## Gallery diff --git a/docs/variants/dell_optiplex/releases.md b/docs/variants/dell_optiplex/releases.md index acc536b758..2ebf617c21 100644 --- a/docs/variants/dell_optiplex/releases.md +++ b/docs/variants/dell_optiplex/releases.md @@ -68,6 +68,6 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/dasharo/dell - [Intel microcode based on SNB D2/G1/Q0 0x0000002f revision microcode-20240531](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-2a-07) + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240531/license) -[newsletter]: https://newsletter.3mdeb.com/subscription/8dp1vv5mR +[newsletter]: https://3mdeb.com/subscribe/optiplex_7010_9010_uefi.html [dell_optiplex_7010_9010_v0.1.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/dell_optiplex_7010_9010/v0.1.1/dell_optiplex_7010_9010_v0.1.1.rom.sha256 [dell_optiplex_7010_9010_v0.1.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/dell_optiplex_7010_9010/v0.1.1/dell_optiplex_7010_9010_v0.1.1.rom.sha256.sig diff --git a/docs/variants/hardkernel_odroid_h4/releases.md b/docs/variants/hardkernel_odroid_h4/releases.md index 025b4855ee..75ff5cc840 100644 --- a/docs/variants/hardkernel_odroid_h4/releases.md +++ b/docs/variants/hardkernel_odroid_h4/releases.md @@ -92,7 +92,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [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 +[newsletter]: https://3mdeb.com/subscribe/odroid_h4_plus_uefi.html [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 [hardkernel_odroid_h4_v0.9.0_dev_signed.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/hardkernel_odroid_h4/v0.9.0/hardkernel_odroid_h4_v0.9.0_dev_signed.rom.sha256 diff --git a/docs/variants/msi_z690/releases.md b/docs/variants/msi_z690/releases.md index 2a475df285..29246711bc 100644 --- a/docs/variants/msi_z690/releases.md +++ b/docs/variants/msi_z690/releases.md @@ -695,7 +695,7 @@ gpg --verify msi_ms7d25_v0.1.0.rom.sha256.sig msi_ms7d25_v0.1.0.rom.sha256 - [coreboot based on a552cfc9 revision 53948cd8](https://github.com/Dasharo/coreboot/commit/53948cd8) - [edk2 based on 4d2846ba revision 4d2846ba](https://github.com/Dasharo/edk2/tree/4d2846ba) -[newsletter]: https://newsletter.3mdeb.com/subscription/aKgTJjYEA +[newsletter]: https://3mdeb.com/subscribe/msi_z690_a_uefi.html [msi_ms7d25_v1.1.4_ddr4.cap_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7d25/v1.1.4/msi_ms7d25_v1.1.4_ddr4.cap.sha256 [msi_ms7d25_v1.1.4_ddr4.cap_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7d25/v1.1.4/msi_ms7d25_v1.1.4_ddr4.cap.sha256.sig [msi_ms7d25_v1.1.4_ddr4_dev_signed.cap_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7d25/v1.1.4/msi_ms7d25_v1.1.4_ddr4_dev_signed.cap.sha256 diff --git a/docs/variants/msi_z690/releases_heads.md b/docs/variants/msi_z690/releases_heads.md index 56f7327301..87243a4248 100644 --- a/docs/variants/msi_z690/releases_heads.md +++ b/docs/variants/msi_z690/releases_heads.md @@ -54,7 +54,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [Intel microcode based on ADL/RPL C0/H0 0x0000002e revision microcode-20230808](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20230808/intel-ucode/06-97-05) - [Intel microcode based on RPL B0 0x00000119 revision microcode-20230808](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20230808/intel-ucode/06-b7-01) -[newsletter]: https://newsletter.3mdeb.com/subscription/D7dQvGx6k [msi_ms7d25_v0.9.0_ddr4_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7d25/heads/v0.9.0/msi_ms7d25_v0.9.0_ddr4_heads.rom.sha256 [msi_ms7d25_v0.9.0_ddr4_heads.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7d25/heads/v0.9.0/msi_ms7d25_v0.9.0_ddr4_heads.rom.sha256.sig [msi_ms7d25_v0.9.0_ddr5_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7d25/heads/v0.9.0/msi_ms7d25_v0.9.0_ddr5_heads.rom.sha256 diff --git a/docs/variants/msi_z790/releases.md b/docs/variants/msi_z790/releases.md index 11f7247ff9..e71c623bf5 100644 --- a/docs/variants/msi_z790/releases.md +++ b/docs/variants/msi_z790/releases.md @@ -278,7 +278,7 @@ subscription via Dasharo Pro Package newsletter. - [Intel microcode based on ADL H0 0x0000002c revision microcode-20230613](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20230613/intel-ucode/06-97-05) - [Intel microcode based on RPL B0 0x00000113 revision microcode-20230613](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20230613/intel-ucode/06-b7-01) -[newsletter]: https://newsletter.3mdeb.com/subscription/KgJ7V_mmJ +[newsletter]: https://3mdeb.com/subscribe/msi_z790_p_uefi.html [msi_ms7e06_v0.9.2_ddr4.cap_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7e06/v0.9.2/msi_ms7e06_v0.9.2_ddr4.cap.sha256 [msi_ms7e06_v0.9.2_ddr4.cap_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7e06/v0.9.2/msi_ms7e06_v0.9.2_ddr4.cap.sha256.sig [msi_ms7e06_v0.9.2_ddr4_dev_signed.cap_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7e06/v0.9.2/msi_ms7e06_v0.9.2_ddr4_dev_signed.cap.sha256 diff --git a/docs/variants/msi_z790/releases_heads.md b/docs/variants/msi_z790/releases_heads.md index 65b3c2b014..7b8b427952 100644 --- a/docs/variants/msi_z790/releases_heads.md +++ b/docs/variants/msi_z790/releases_heads.md @@ -62,7 +62,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [Intel microcode based on ADL/RPL C0/H0 0x0000002e revision microcode-20230808](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20230808/intel-ucode/06-97-05) - [Intel microcode based on RPL B0 0x00000119 revision microcode-20230808](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20230808/intel-ucode/06-b7-01) -[newsletter]: https://newsletter.3mdeb.com/subscription/D7dQvGx6k [msi_ms7e06_v0.9.0_ddr4_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7e06/heads/v0.9.0/msi_ms7e06_v0.9.0_ddr4_heads.rom.sha256 [msi_ms7e06_v0.9.0_ddr4_heads.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7e06/heads/v0.9.0/msi_ms7e06_v0.9.0_ddr4_heads.rom.sha256.sig [msi_ms7e06_v0.9.0_ddr5_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7e06/heads/v0.9.0/msi_ms7e06_v0.9.0_ddr5_heads.rom.sha256 diff --git a/docs/variants/novacustom_ns5x_adl/releases.md b/docs/variants/novacustom_ns5x_adl/releases.md index 0993375541..118c2c7b22 100644 --- a/docs/variants/novacustom_ns5x_adl/releases.md +++ b/docs/variants/novacustom_ns5x_adl/releases.md @@ -80,7 +80,7 @@ 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) -[newsletter]: https://newsletter.3mdeb.com/subscription/RJrTXDhWR +[newsletter]: https://3mdeb.com/subscribe/nc_ns5x_7x_12th.html [novacustom_ns5x_adl_ec_v1.7.2.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.7.2/novacustom_ns5x_adl_ec_v1.7.2.rom [novacustom_ns5x_adl_ec_v1.7.2.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.7.2/novacustom_ns5x_adl_ec_v1.7.2.rom.sha256 [novacustom_ns5x_adl_ec_v1.7.2.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.7.2/novacustom_ns5x_adl_ec_v1.7.2.rom.sha256.sig @@ -175,7 +175,7 @@ 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) -[newsletter]: https://newsletter.3mdeb.com/subscription/RJrTXDhWR +[newsletter]: https://3mdeb.com/subscribe/nc_ns5x_7x_12th.html [novacustom_ns5x_adl_ec_v1.7.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.7.1/novacustom_ns5x_adl_ec_v1.7.1.rom [novacustom_ns5x_adl_ec_v1.7.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.7.1/novacustom_ns5x_adl_ec_v1.7.1.rom.sha256 [novacustom_ns5x_adl_ec_v1.7.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.7.1/novacustom_ns5x_adl_ec_v1.7.1.rom.sha256.sig @@ -249,7 +249,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo EDKII fork based on e0334c228ce4ba51f47ff79a118f214031d4650f revision bd421b40](https://github.com/Dasharo/edk2/tree/bd421b40) - Intel ME version 16.1.25.1865 -[newsletter]: https://newsletter.3mdeb.com/subscription/RJrTXDhWR +[newsletter]: https://3mdeb.com/subscribe/nc_ns5x_7x_12th.html [novacustom_ns5x_adl_ec_v1.6.0.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.6.0/novacustom_ns5x_adl_ec_v1.6.0.rom [novacustom_ns5x_adl_ec_v1.6.0.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.6.0/novacustom_ns5x_adl_ec_v1.6.0.rom.sha256 [novacustom_ns5x_adl_ec_v1.6.0.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.6.0/novacustom_ns5x_adl_ec_v1.6.0.rom.sha256.sig @@ -303,7 +303,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo coreboot fork based on 1a8eb6c02103 revision cf81af26](https://github.com/Dasharo/coreboot/tree/cf81af26) - [Dasharo EDKII fork based on dd7523b5b123 revision abfdef40](https://github.com/Dasharo/edk2/tree/abfdef40) -[newsletter]: https://newsletter.3mdeb.com/subscription/RJrTXDhWR +[newsletter]: https://3mdeb.com/subscribe/nc_ns5x_7x_12th.html [novacustom_ns5x_adl_ec_v1.4.0.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.4.0/novacustom_ns5x_adl_ec_v1.4.0.rom [novacustom_ns5x_adl_ec_v1.4.0.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.4.0/novacustom_ns5x_adl_ec_v1.4.0.rom.sha256 [novacustom_ns5x_adl_ec_v1.4.0.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.4.0/novacustom_ns5x_adl_ec_v1.4.0.rom.sha256.sig diff --git a/docs/variants/novacustom_ns5x_tgl/releases.md b/docs/variants/novacustom_ns5x_tgl/releases.md index 4532fbf6b4..26d67f9ee7 100644 --- a/docs/variants/novacustom_ns5x_tgl/releases.md +++ b/docs/variants/novacustom_ns5x_tgl/releases.md @@ -403,4 +403,4 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [coreboot based on 4.16 revision ecf1e9b8](https://github.com/Dasharo/coreboot/tree/ecf1e9b8) - [tianocore based on e0334c228ce4ba51f47ff79a118f214031d4650f revision ec6805c2](https://github.com/Dasharo/edk2/tree/ec6805c2) -[newsletter]: https://newsletter.3mdeb.com/subscription/4X0c3e5Y6 +[newsletter]: https://3mdeb.com/subscribe/nc_ns5x_7x_11th.html diff --git a/docs/variants/novacustom_nv4x_adl/releases.md b/docs/variants/novacustom_nv4x_adl/releases.md index 8ad3e8db5e..23f4dadce7 100644 --- a/docs/variants/novacustom_nv4x_adl/releases.md +++ b/docs/variants/novacustom_nv4x_adl/releases.md @@ -81,7 +81,7 @@ 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) -[newsletter]: https://newsletter.3mdeb.com/subscription/RJrTXDhWR +[newsletter]: https://3mdeb.com/subscribe/nc_nv4x_12th.html [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 [novacustom_nv4x_adl_ec_v1.7.2.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.2/novacustom_nv4x_adl_ec_v1.7.2.rom.sha256.sig @@ -307,7 +307,7 @@ 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) -[newsletter]: https://newsletter.3mdeb.com/subscription/ZkbNv4qdO +[newsletter]: https://3mdeb.com/subscribe/nc_nv4x_12th.html [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 [novacustom_nv4x_adl_ec_v1.4.0.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.4.0/novacustom_nv4x_adl_ec_v1.4.0.rom.sha256.sig diff --git a/docs/variants/novacustom_nv4x_tgl/releases.md b/docs/variants/novacustom_nv4x_tgl/releases.md index d9a893cfea..e725c09c7f 100644 --- a/docs/variants/novacustom_nv4x_tgl/releases.md +++ b/docs/variants/novacustom_nv4x_tgl/releases.md @@ -720,4 +720,4 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [coreboot 4.14 (with additional commits for Clevo NV41MZ board support)](https://gitlab.com/novacustom/coreboot/-/compare/4.14...v0.1.1?from_project_id=29249618) - [EDK2](https://github.com/MrChromebox/edk2/commit/659ed4cb983a66ec241c05f42b69ad4d2e47b714) -[newsletter]: https://newsletter.3mdeb.com/subscription/S5ze5u_qN +[newsletter]: https://3mdeb.com/subscribe/nc_nv4x_11th.html diff --git a/docs/variants/novacustom_v540tnx/releases.md b/docs/variants/novacustom_v540tnx/releases.md index 8b1d7f1e06..521c71aa27 100644 --- a/docs/variants/novacustom_v540tnx/releases.md +++ b/docs/variants/novacustom_v540tnx/releases.md @@ -13,8 +13,6 @@ For details about our release process please read -[newsletter]: https://newsletter.3mdeb.com/subscription/08oQoyxIG - ## v0.9.1 - 2024-11-07 Test results for this release can be found @@ -98,7 +96,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Intel processor microcode based on MTL C0 0x0000001c revision microcode-20240531](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-aa-04) * [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240531/license) -[newsletter]: https://newsletter.3mdeb.com/subscription/4yriJD4GX +[newsletter]: https://3mdeb.com/subscribe/nc_v540tnx_14th.html [novacustom_v54x_mtl_ec_v0.9.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.1/novacustom_v54x_mtl_ec_v0.9.1.rom [novacustom_v54x_mtl_ec_v0.9.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.1/novacustom_v54x_mtl_ec_v0.9.1.rom.sha256 [novacustom_v54x_mtl_ec_v0.9.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.1/novacustom_v54x_mtl_ec_v0.9.1.rom.sha256.sig diff --git a/docs/variants/novacustom_v540tu/releases.md b/docs/variants/novacustom_v540tu/releases.md index c8a2027d65..dd0efd4ff2 100644 --- a/docs/variants/novacustom_v540tu/releases.md +++ b/docs/variants/novacustom_v540tu/releases.md @@ -77,7 +77,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo coreboot fork based on 24.02 revision 316f964c](https://github.com/Dasharo/coreboot/tree/316f964c) - [Dasharo EDKII fork based on edk2-stable202402 revision cc2be228](https://github.com/Dasharo/edk2/tree/cc2be228) -[newsletter]: https://newsletter.3mdeb.com/subscription/4yriJD4GX +[newsletter]: https://3mdeb.com/subscribe/nc_v540tu_14th.html [novacustom_v54x_mtl_ec_v0.9.0.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.0/novacustom_v54x_mtl_ec_v0.9.0.rom [novacustom_v54x_mtl_ec_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.0/novacustom_v54x_mtl_ec_v0.9.0.rom.sha256 [novacustom_v54x_mtl_ec_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.0/novacustom_v54x_mtl_ec_v0.9.0.rom.sha256.sig diff --git a/docs/variants/novacustom_v540tu/releases_heads.md b/docs/variants/novacustom_v540tu/releases_heads.md index e7aadfccf8..03ea53eadb 100644 --- a/docs/variants/novacustom_v540tu/releases_heads.md +++ b/docs/variants/novacustom_v540tu/releases_heads.md @@ -110,7 +110,7 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/customer-key - [Intel Firmware Support Package for Meteor Lake-H version 2024/04/30 v4122_12](https://github.com/Dasharo/dasharo-blobs/tree/32cffee4/novacustom/v5x0tu/MeteorLakeFspBinPkg) + [License](https://github.com/Dasharo/dasharo-blobs/blob/main/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) -[newsletter]: https://newsletter.3mdeb.com/subscription/4yriJD4GX +[newsletter]: https://3mdeb.com/subscribe/nc_v540tu_14th.html [novacustom_v54x_mtl_ec_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/heads/v0.9.0/novacustom_v54x_mtl_ec_v0.9.0.rom.sha256 [novacustom_v54x_mtl_ec_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/heads/v0.9.0/novacustom_v54x_mtl_ec_v0.9.0.rom.sha256.sig [novacustom_v54x_mtl_v0.9.0_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/heads/v0.9.0/novacustom_v54x_mtl_v0.9.0_heads.rom.sha256 diff --git a/docs/variants/novacustom_v560tnx/releases.md b/docs/variants/novacustom_v560tnx/releases.md index dadd77e322..bd0a6ccd03 100644 --- a/docs/variants/novacustom_v560tnx/releases.md +++ b/docs/variants/novacustom_v560tnx/releases.md @@ -13,8 +13,6 @@ For details about our release process please read -[newsletter]: https://newsletter.3mdeb.com/subscription/CcLgb48NQ - ## v0.9.1 - 2024-11-07 Test results for this release can be found @@ -98,7 +96,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Intel processor microcode based on MTL C0 0x0000001c revision microcode-20240531](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-aa-04) * [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240531/license) -[newsletter]: https://newsletter.3mdeb.com/subscription/sB4G9eq9h +[newsletter]: https://3mdeb.com/subscribe/nc_v560tnx_14th.html [novacustom_v56x_mtl_ec_v0.9.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.1/novacustom_v56x_mtl_ec_v0.9.1.rom [novacustom_v56x_mtl_ec_v0.9.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.1/novacustom_v56x_mtl_ec_v0.9.1.rom.sha256 [novacustom_v56x_mtl_ec_v0.9.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.1/novacustom_v56x_mtl_ec_v0.9.1.rom.sha256.sig diff --git a/docs/variants/novacustom_v560tu/releases.md b/docs/variants/novacustom_v560tu/releases.md index e8e4de8ac4..db1168a5d1 100644 --- a/docs/variants/novacustom_v560tu/releases.md +++ b/docs/variants/novacustom_v560tu/releases.md @@ -77,7 +77,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo coreboot fork based on 24.02 revision 316f964c](https://github.com/Dasharo/coreboot/tree/316f964c) - [Dasharo EDKII fork based on edk2-stable202402 revision cc2be228](https://github.com/Dasharo/edk2/tree/cc2be228) -[newsletter]: https://newsletter.3mdeb.com/subscription/sB4G9eq9h +[newsletter]: https://3mdeb.com/subscribe/nc_v560tu_14th.html [novacustom_v56x_mtl_ec_v0.9.0.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.0/novacustom_v56x_mtl_ec_v0.9.0.rom [novacustom_v56x_mtl_ec_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.0/novacustom_v56x_mtl_ec_v0.9.0.rom.sha256 [novacustom_v56x_mtl_ec_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.0/novacustom_v56x_mtl_ec_v0.9.0.rom.sha256.sig diff --git a/docs/variants/novacustom_v560tu/releases_heads.md b/docs/variants/novacustom_v560tu/releases_heads.md index 87b03b972b..c54004445f 100644 --- a/docs/variants/novacustom_v560tu/releases_heads.md +++ b/docs/variants/novacustom_v560tu/releases_heads.md @@ -63,7 +63,7 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/customer-key - [Intel Firmware Support Package for Meteor Lake-H version 2024/04/30 v4122_12](https://github.com/Dasharo/dasharo-blobs/tree/32cffee4/novacustom/v5x0tu/MeteorLakeFspBinPkg) + [License](https://github.com/Dasharo/dasharo-blobs/blob/main/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) -[newsletter]: https://newsletter.3mdeb.com/subscription/sB4G9eq9h +[newsletter]: https://3mdeb.com/subscribe/nc_v540tu_14th.html [novacustom_v56x_mtl_ec_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/heads/v0.9.0/novacustom_v56x_mtl_ec_v0.9.0.rom.sha256 [novacustom_v56x_mtl_ec_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/heads/v0.9.0/novacustom_v56x_mtl_ec_v0.9.0.rom.sha256.sig [novacustom_v56x_mtl_v0.9.0_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/heads/v0.9.0/novacustom_v56x_mtl_v0.9.0_heads.rom.sha256 diff --git a/docs/variants/pc_engines/releases_seabios.md b/docs/variants/pc_engines/releases_seabios.md index 22331bdb4f..60f6224a3a 100644 --- a/docs/variants/pc_engines/releases_seabios.md +++ b/docs/variants/pc_engines/releases_seabios.md @@ -92,7 +92,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [AMD System Management Unit - Software Configuration Settings binary based on 1433 revision a8db7dfe](https://github.com/coreboot/blobs/tree/a8db7dfe/southbridge/amd/avalon/PSP/SmuScs.bin) - [AMD Hudson xHCI firmware based on 1.1.0.0068 revision a8db7dfe](https://github.com/coreboot/blobs/tree/a8db7dfe/southbridge/amd/avalon/xhci.bin) -[newsletter]: https://newsletter.3mdeb.com/subscription/ReBpt3IZY +[newsletter]: https://3mdeb.com/subscribe/pcengines_seabios.html [pcengines_apu2_seabios_v24.05.00.01.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v24.05.00.01/pcengines_apu2_seabios_v24.05.00.01.rom.sha256 [pcengines_apu2_seabios_v24.05.00.01.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v24.05.00.01/pcengines_apu2_seabios_v24.05.00.01.rom.sha256.sig [pcengines_apu3_seabios_v24.05.00.01.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v24.05.00.01/pcengines_apu3_seabios_v24.05.00.01.rom.sha256 diff --git a/docs/variants/pc_engines/releases_uefi.md b/docs/variants/pc_engines/releases_uefi.md index 72b17b27d5..3fc06619e3 100644 --- a/docs/variants/pc_engines/releases_uefi.md +++ b/docs/variants/pc_engines/releases_uefi.md @@ -95,7 +95,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [AMD System Management Unit - Software Configuration Settings binary based on 1433 revision a8db7dfe](https://github.com/coreboot/blobs/tree/a8db7dfe/southbridge/amd/avalon/PSP/SmuScs.bin) - [AMD Hudson xHCI firmware based on 1.1.0.0068 revision a8db7dfe](https://github.com/coreboot/blobs/tree/a8db7dfe/southbridge/amd/avalon/xhci.bin) -[newsletter]: https://newsletter.3mdeb.com/subscription/ReBpt3IZY +[newsletter]: https://3mdeb.com/subscribe/pcengines_seabios.html [pcengines_apu2_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v0.9.0/pcengines_apu2_v0.9.0.rom.sha256 [pcengines_apu2_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v0.9.0/pcengines_apu2_v0.9.0.rom.sha256.sig [pcengines_apu2_v0.9.0_dev_signed.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v0.9.0/pcengines_apu2_v0.9.0_dev_signed.rom.sha256 diff --git a/docs/variants/protectli_fw6/releases.md b/docs/variants/protectli_fw6/releases.md index 0e0ebd5ce0..df3b67c82c 100644 --- a/docs/variants/protectli_fw6/releases.md +++ b/docs/variants/protectli_fw6/releases.md @@ -53,7 +53,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu + VBIOS blob for FW6D/E, SHA256: d1c746127e5288942efae65907739e18ff395fab70925b44dbafafd9e7b30cd7 -[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL +[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [v1.0.14_rom]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom [v1.0.14_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom.sha256 [v1.0.14_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom.sha256.sig diff --git a/docs/variants/protectli_v1000-series/releases.md b/docs/variants/protectli_v1000-series/releases.md index 76d633d4ba..b1438098e4 100644 --- a/docs/variants/protectli_v1000-series/releases.md +++ b/docs/variants/protectli_v1000-series/releases.md @@ -94,7 +94,7 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/raw/master/customer-keys - [Intel microcode based on JSL A0 0x24000026 revision microcode-20240312](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240312/intel-ucode/06-9c-00) + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240312/license) -[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL +[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [protectli_v1210_v0.9.3.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_jsl/v0.9.3/protectli_v1210_v0.9.3.rom [protectli_v1210_v0.9.3.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_jsl/v0.9.3/protectli_v1210_v0.9.3.rom.sha256 [protectli_v1210_v0.9.3.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_jsl/v0.9.3/protectli_v1210_v0.9.3.rom.sha256.sig diff --git a/docs/variants/protectli_vp2410/releases.md b/docs/variants/protectli_vp2410/releases.md index 03662343d2..d899e7813c 100644 --- a/docs/variants/protectli_vp2410/releases.md +++ b/docs/variants/protectli_vp2410/releases.md @@ -163,7 +163,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu + CPU signature: 0x0706A0, Date: 12.07.2017, Revision: 0x26 + CPU signature: 0x0706A1, Date: 09.06.2020, Revision: 0x34 -[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL +[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [protectli_vp2410_v1.1.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.1.1/protectli_vp2410_v1.1.1.rom [protectli_vp2410_v1.1.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.1.1/protectli_vp2410_v1.1.1.rom.sha256 [protectli_vp2410_v1.1.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.1.1/protectli_vp2410_v1.1.1.rom.sha256.sig diff --git a/docs/variants/protectli_vp2420/releases.md b/docs/variants/protectli_vp2420/releases.md index 9c96a7d14e..5196654f79 100644 --- a/docs/variants/protectli_vp2420/releases.md +++ b/docs/variants/protectli_vp2420/releases.md @@ -183,7 +183,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [coreboot based on c86c926 revision e36a117d](https://github.com/Dasharo/coreboot/tree/e36a117d) - [edk2 based on 7f90b9cd revision 19bf14b4](https://github.com/Dasharo/edk2/tree/19bf14b4) -[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL [protectli_vp2420_v1.1.0.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.1.0/protectli_vp2420_v1.1.0.rom [protectli_vp2420_v1.1.0.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.1.0/protectli_vp2420_v1.1.0.rom.sha256 [protectli_vp2420_v1.1.0.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.1.0/protectli_vp2420_v1.1.0.rom.sha256.sig @@ -227,7 +226,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [coreboot based on c86c926 revision 54cbbc5b](https://github.com/Dasharo/coreboot/tree/54cbbc5b) - [edk2 based on 7f90b9cd revision e31b7a71](https://github.com/Dasharo/edk2/tree/e31b7a71) -[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL [protectli_vp2420_v1.0.1.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.0.1/protectli_vp2420_v1.0.1.rom [protectli_vp2420_v1.0.1.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.0.1/protectli_vp2420_v1.0.1.rom.sha256 [protectli_vp2420_v1.0.1.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.0.1/protectli_vp2420_v1.0.1.rom.sha256.sig @@ -276,7 +274,7 @@ gpg -v --verify protectli_vp2420_v1.0.0.rom.sha256.sig protectli_vp2420_v1.0.0.r - [edk2 based on e461f08 revision 7948a20](https://github.com/Dasharo/edk2/tree/7948a20) - [iPXE for EFI revision 988d2](https://github.com/ipxe/ipxe/tree/988d2c13cdf0f0b4140685af35ced70ac5b3283c) -[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL +[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [v1.0.0_rom]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.0.0/protectli_vp2420_v1.0.0.rom [v1.0.0_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.0.0/protectli_vp2420_v1.0.0.rom.sha256 [v1.0.0_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.0.0/protectli_vp2420_v1.0.0.rom.sha256.sig diff --git a/docs/variants/protectli_vp46xx/releases.md b/docs/variants/protectli_vp46xx/releases.md index 006df716f8..617c064cc5 100644 --- a/docs/variants/protectli_vp46xx/releases.md +++ b/docs/variants/protectli_vp46xx/releases.md @@ -135,7 +135,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [edk2 based on 7f90b9cd revision 19bf14b4](https://github.com/Dasharo/edk2/tree/19bf14b4) - [iPXE based on 6ba671ac revision 6ba671ac](https://github.com/ipxe/ipxe/tree/6ba671ac) -[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL +[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [protectli_vp4670_v1.1.0.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.1.0/protectli_vp4670_v1.1.0.rom [protectli_vp4670_v1.1.0.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.1.0/protectli_vp4670_v1.1.0.rom.sha256 [protectli_vp4670_v1.1.0.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.1.0/protectli_vp4670_v1.1.0.rom.sha256.sig @@ -363,7 +363,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu + CPU signature: 0x0806EC, Date: 28.04.2021, Revision: 0xEC + CPU signature: 0x0A0660, Date: 28.04.2021, Revision: 0xEA -[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL +[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [protectli_vp4630_vp4650_v1.0.19.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.0.19/protectli_vp4630_vp4650_v1.0.19.rom [protectli_vp4630_vp4650_v1.0.19.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.0.19/protectli_vp4630_vp4650_v1.0.19.rom.sha256 [protectli_vp4630_vp4650_v1.0.19.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.0.19/protectli_vp4630_vp4650_v1.0.19.rom.sha256.sig diff --git a/docs/variants/protectli_vp66xx/releases.md b/docs/variants/protectli_vp66xx/releases.md index 0636bcd5b9..c52310ebff 100644 --- a/docs/variants/protectli_vp66xx/releases.md +++ b/docs/variants/protectli_vp66xx/releases.md @@ -135,7 +135,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [Intel microcode based on ADL R0 0x432 revision microcode-20240312](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240312/intel-ucode/06-9a-04) - [Intel microcode based on RPL-H/P/PX 6+8 J0 0x4121 revision microcode-20240312](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240312/intel-ucode/06-ba-02) -[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL +[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [protectli_vp66xx_v0.9.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_adl/v0.9.1/protectli_vp66xx_v0.9.1.rom [protectli_vp66xx_v0.9.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_adl/v0.9.1/protectli_vp66xx_v0.9.1.rom.sha256 [protectli_vp66xx_v0.9.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_adl/v0.9.1/protectli_vp66xx_v0.9.1.rom.sha256.sig diff --git a/docs/variants/supermicro_x11_lga1151_series/releases.md b/docs/variants/supermicro_x11_lga1151_series/releases.md index 851787f01b..f089809401 100644 --- a/docs/variants/supermicro_x11_lga1151_series/releases.md +++ b/docs/variants/supermicro_x11_lga1151_series/releases.md @@ -9,9 +9,6 @@ Dell OptiPlex 7010 SFF, DT and Dell OptiPlex 9010 SFF, MT. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -[Subscribe to Dell OptiPlex 7010/9010 Dasharo Release Newsletter](https://newsletter.3mdeb.com/subscription/8dp1vv5mR) -{ .md-button .md-button--primary .center } - ## Unreleased Software BOM: diff --git a/docs/variants/talos_2/releases.md b/docs/variants/talos_2/releases.md index 06d995422e..e468b644bb 100644 --- a/docs/variants/talos_2/releases.md +++ b/docs/variants/talos_2/releases.md @@ -11,8 +11,6 @@ For details about our release process please read [Subscribe to Release Newsletter][newsletter] { .md-button .md-button--primary .center } -[newsletter]: https://newsletter.3mdeb.com/subscription/w2Y2G4Rrj - Test results for this platform can be found @@ -112,7 +110,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [skiboot based on 7f90b9cd revision fa060c2c](https://github.com/Dasharo/skiboot/tree/fa060c2c) - [heads based on fdbd9b2 revision 66f0fce0870b729d](https://github.com/osresearch/heads/tree/66f0fce0870b729d) -[newsletter]: https://newsletter.3mdeb.com/subscription/w2Y2G4Rrj +[newsletter]: https://3mdeb.com/subscribe/raptor_cs_talos_2_heads.html [zImage_v0.6.0_file]: https://3mdeb.com/open-source-firmware/Dasharo/raptor-cs_talos-2/v0.6.0/raptor-cs_talos-2_zImage_v0.6.0.bundled [zImage_v0.6.0_hash]: https://3mdeb.com/open-source-firmware/Dasharo/raptor-cs_talos-2/v0.6.0/raptor-cs_talos-2_zImage_v0.6.0.bundled.sha256 [zImage_v0.6.0_sig]: https://3mdeb.com/open-source-firmware/Dasharo/raptor-cs_talos-2/v0.6.0/raptor-cs_talos-2_zImage_v0.6.0.bundled.sha256.sig diff --git a/docs/variants/tuxedo_ibs15/releases.md b/docs/variants/tuxedo_ibs15/releases.md index c25861a676..fe4a5548a0 100644 --- a/docs/variants/tuxedo_ibs15/releases.md +++ b/docs/variants/tuxedo_ibs15/releases.md @@ -6,13 +6,6 @@ Tuxedo IBS15 For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to Tuxedo IBS15 Dasharo Release Newsletter](https://newsletter.3mdeb.com/subscription/7IPf_aUHR) -{ .md-button .md-button--primary .center } - -
- Test results for this platform can be found [here](https://docs.google.com/spreadsheets/d/126oG3VLk51sTIz-uVIAOTVPxA0qpH9wQ4P-ue2fJLtI/edit?usp=sharing). From 8b6133a3297ec6884a94443e7f987da84e5fd430 Mon Sep 17 00:00:00 2001 From: Pawel Langowski Date: Tue, 1 Apr 2025 12:25:57 +0200 Subject: [PATCH 030/133] guides/lab-assembly/msi-zx90.md: Remove expired link Signed-off-by: Pawel Langowski --- docs/guides/lab-assembly/msi-zx90.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/lab-assembly/msi-zx90.md b/docs/guides/lab-assembly/msi-zx90.md index fe451d5a3a..860e27f334 100644 --- a/docs/guides/lab-assembly/msi-zx90.md +++ b/docs/guides/lab-assembly/msi-zx90.md @@ -107,7 +107,7 @@ preparation before a TPM can flashing wires can be connected. You will need: * flat screwdriver * pliers * MSI SPI TPM 2.0 -* [6x test hook clips](https://www.amazon.ca/Dupont-Jumper-Electrical-Testing-Colors/dp/B0CK5MT1CG) +* 6x test hook clips * [a 2mm pitch header 2x6 pin with long through pins](https://www.mouser.pl/ProductDetail/Samtec/ESQT-106-02-F-D-785?qs=0ekZTeX6RYyA%252Bo3ZUhzipw%3D%3D) ![msi_tpm_items](images/tpm/msi_tpm_items.jpg) From 78c7a7b73cd88fb97ca76d6614026807ad33739e Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Wed, 2 Apr 2025 14:20:46 +0200 Subject: [PATCH 031/133] docs/transparent-validation/rte/revision-history.md: add notes from v1.1.1 1. Footprint of Q5 adapted to the recommended footprint of Si9435bdy 2. Refactored the USB data lines routes to have more equal length. 3. Changed board version to v1.1.1 on PCB and the schematics Source: https://github.com/3mdeb/rte-schematics/pull/8 Signed-off-by: Eduard Kaverinskyi --- docs/transparent-validation/rte/revision-history.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/transparent-validation/rte/revision-history.md b/docs/transparent-validation/rte/revision-history.md index 64ac739dc1..add2e373fe 100644 --- a/docs/transparent-validation/rte/revision-history.md +++ b/docs/transparent-validation/rte/revision-history.md @@ -1,5 +1,12 @@ # Revision history +## v1.1.1 + +* Footprint of Q5 adapted to the recommended footprint of + [Si9435bdy](https://www.vishay.com/docs/72245/si9435bd.pdf) +* Refactored the USB data lines routes to have more equal length +* Changed board version to v1.1.1 on PCB and the schematics + ## v1.1.0 * added `Open hardware` logo From 86b2570927c6e96db93ac18e7990392c0bc8e43a Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Wed, 2 Apr 2025 15:57:55 +0200 Subject: [PATCH 032/133] docs/transparent-validation/rte/v1.1.0/flashing-guide.md: rewrite guide Signed-off-by: Eduard Kaverinskyi --- .../rte/v1.1.0/flashing-guide.md | 106 +++++++----------- 1 file changed, 43 insertions(+), 63 deletions(-) diff --git a/docs/transparent-validation/rte/v1.1.0/flashing-guide.md b/docs/transparent-validation/rte/v1.1.0/flashing-guide.md index 61dd3b958f..4dcec84160 100644 --- a/docs/transparent-validation/rte/v1.1.0/flashing-guide.md +++ b/docs/transparent-validation/rte/v1.1.0/flashing-guide.md @@ -3,86 +3,66 @@ This document describes how to set up external flashing for the devices using RTE. -## NS5x/7x 12th Generation - -### Prerequisites +## Prerequisites * [Prepared RTE](../v1.1.0/quick-start-guide.md) -* WSON8 probe - - ![](../../../images/ch341a_rec/wson8_probe.jpg) - -### Flashing - -> Note: the `flash.sh` script, used in this chapter, is available only in 0.8.1 -> or newer RTE OS releases, check [meta-rte](https://github.com/3mdeb/meta-rte) -> for more inf.. - -1. Unscrew the bottom cover of the laptop. -1. Disconnect the battery - - > All power must be removed from the laptop during flashing. - ![](../../../images/ns5x_7x_battery_unplugged.jpg) +## Connection to SPI header -1. Localize the flash chip. +To prepare the stand for flashing follow the steps described below: - ![](../../../images/ns5x_7x_without_bottom_cover.jpg) +1. Open the platform cover. -1. Take the WSON8 probe and locate the white dot on the needles side. The dot - indicates the first reference pin that should be connected to the pin on the - flash chip also marked with a dot. +2. Connect the 6-pin flash header to the SPI header on RTE. - ![](../../../images/ch341a_rec/wson8_probe2.jpg) +```text + SPI header 6 pin header + Vcc pin 1 (Vcc) + GND pin 2 (GND) + CS pin 4 (CS) + SCLK pin 6 (CLK) + MISO pin 5 (MISO) + MOSI pin 3 (MOSI) +``` -1. Connect the cables coming out from the WSON8 probe to the - [SPI header](specification.md) according to the pictures and table - below. +```text + ______ + > | | +Vcc 3.3V ----1 2---- GND + | | + MOSI ----3 4---- CS + | | + MISO ----5 6---- CLK + |______| +``` - - Top view of flash chip: +## Platform-specific steps - ![](../../../images/rte-v1.1.0-flash_chip_NS50_70PU.jpg) +To find more specific information, regarding recovery of a given platform, +navigate to a recovery section in the documentation for a specific platform: - - Table with all required connections: +1. [Supported hardware](https://docs.dasharo.com/variants/overview/) +2. Choose a vendor. For example, `Protectli` +3. Navigate to the `Recovery` section - | RTE SPI header | Flash Chip | - |:--------------:|:----------:| - | Vcc | VCC | - | CS | CS# | - | MISO (SO) | SO (IO1) | - | GND | VSS | - | SCLK | SCLK | - | MOSI (SI) | SI | +For example: - > Note: both the SPI header and the WSON8 probe have 8-pin headers. - Pins marked as NC on the RTE board and as IO2 and IO3 on the flash chip - do not require a connection. +* [Protectli recovery + guide](https://docs.dasharo.com/unified/protectli/recovery/) +* [NovaCustom recovery + guide](https://docs.dasharo.com/unified/novacustom/recovery/) - - Example connection appearance: +## Remote flashing - ![](../../../images/rte-v1.1.0-WSON8-SPI-header.jpg) +To remotely initiate flashing via RTE, use the `osfv_cli` tool. -1. Login to RTE via `ssh` or `minicom`. -1. Connect and hold the WSON8 probe to the flash chip. -1. Read the flash chip by executing the following command on RTE: +Example flashing command: - ```bash - ./flash.sh read dump.rom - ``` +`osfv_cli rte --rte_ip= flash write --rom ` -1. If the reading was successful, the output from the command above should - contain the phrase `Verifying flash... VERIFIED.`. Only after the entire - script has been executed, the WSON8 probe can be disconnected. -1. Connect and hold again the WSON8 probe to the flash chip. -1. Write the flash chip by executing the following command on RTE: +More information about `osfv_cli`: - ```bash - ./flash.sh write coreboot.rom - ``` +* [osfv-scripts repository](https://github.com/Dasharo/osfv-scripts/) -1. If the writing was successful, the output from the command above should - contain the phrase `Verifying flash... VERIFIED.`. Only after the entire - script has been executed, the WSON8 probe can be disconnected. -1. Reconnect the battery and screw in the bottom cover. -1. Power on the device. If the platform is booting up and basic functionalities - are working, the entire procedure was successful. +* [osfv_cli + documentation](https://github.com/Dasharo/osfv-scripts/blob/main/osfv_cli/README.md) From f801068dfb3c9150d0d1ac899256845b0823ca03 Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Wed, 2 Apr 2025 16:24:49 +0200 Subject: [PATCH 033/133] docs/transparent-validation/rte/v1.1.0/flashing-guide.md: generalize fl. header Signed-off-by: Eduard Kaverinskyi --- docs/transparent-validation/rte/v1.1.0/flashing-guide.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/transparent-validation/rte/v1.1.0/flashing-guide.md b/docs/transparent-validation/rte/v1.1.0/flashing-guide.md index 4dcec84160..c96ef058f3 100644 --- a/docs/transparent-validation/rte/v1.1.0/flashing-guide.md +++ b/docs/transparent-validation/rte/v1.1.0/flashing-guide.md @@ -13,7 +13,8 @@ To prepare the stand for flashing follow the steps described below: 1. Open the platform cover. -2. Connect the 6-pin flash header to the SPI header on RTE. +2. Connect the 6-pin from the flashing device (WSON8, Pomona clip, jumper wires) + to the SPI header on RTE. ```text SPI header 6 pin header From 7bd4ceec072658dd0dbf646cb0fc4053232b52a6 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Thu, 3 Apr 2025 09:47:15 +0200 Subject: [PATCH 034/133] dasharo-compatibility/350-usb-a-and-c-always-on-ports.md removed USC (USB Always On) test suite removed from mkdocs.yml and deleted. Signed-off-by: Mateusz Maciejewski --- .../350-usb-a-and-c-always-on-ports.md | 279 ------------------ mkdocs.yml | 1 - 2 files changed, 280 deletions(-) delete mode 100644 docs/unified-test-documentation/dasharo-compatibility/350-usb-a-and-c-always-on-ports.md diff --git a/docs/unified-test-documentation/dasharo-compatibility/350-usb-a-and-c-always-on-ports.md b/docs/unified-test-documentation/dasharo-compatibility/350-usb-a-and-c-always-on-ports.md deleted file mode 100644 index 30b4d11ac3..0000000000 --- a/docs/unified-test-documentation/dasharo-compatibility/350-usb-a-and-c-always-on-ports.md +++ /dev/null @@ -1,279 +0,0 @@ -# Dasharo Compatibility: USB A and C Always On ports - -## Test cases common documentation - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -2. Refer to [docs.dasharo.com/variants](https://docs.dasharo.com/variants/overview/) - and identify USB A & USB C ports that are affected and not affected by - "USB power and charging" option. -3. Let's define TIANOCORE_STRING as "ENTER to boot directly" (however, this is platform-dependant) - -## USC001.001 "USB power and charging" option is present - -**Test description** - -This test aims to verify that "USB power and charging" option is present in -setup menu. - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Turn on DUT -2. Press F2 to enter setup menu -3. Enter Dasharo System Features submenu -4. Enter Power Management Options submenu -5. Note, if "USB ports power and charging" menu option is present -6. Enter value submenu, to check available values, but don't change anything. -7. Turn off DUT - -**Expected results** - -"USB ports power and charging" menu option present in Power Management Options -submenu, available option values: "While System is On", "Always On". - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -## USC002.001 Power IS delivered thru always-on USB A ports - -**Test description** - -This test verifies, if setting "USB ports power and charging" menu option to " -Always On " keeps electrical power supply on selected USB A ports, after DUT is -power off. - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Check if available USB power meter works without any additional - devices attached. - -**Test steps** - -1. Turn on DUT -2. Press F2 to enter setup menu -3. Enter Dasharo System Features submenu -4. Enter Power Management Options submenu -5. Set value of "USB ports power and charging" to "Always On" -6. Save setup configuration with F10 key, confirm with Y -7. Power off DUT -8. Power on DUT (this is when setup change takes effect) -9. Wait until TIANOCORE_STRING appears on screen -10. Power off DUT -11. Verify state of all USB A ports marked in "Hardware configuration matrix" -as "Always On USB" using USB power meter - -**Expected results** - -On each USB A port marked as "Always On USB", power meter should be working on -tested port supply, showing voltage >= 5.0V - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -## USC003.001 Power IS delivered thru always-on USB C ports - -**Test description** - -This test verifies, if setting "USB ports power and charging" menu option to " -Always On " keeps electrical power supply on selected USB C ports, after DUT is -power off. - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Check if available USB power meter works without any additional - devices attached. - -**Test steps** - -1. Turn on DUT -2. Press F2 to enter setup menu -3. Enter Dasharo System Features submenu -4. Enter Power Management Options submenu -5. Set value of "USB ports power and charging" to "Always On" -6. Save setup configuration with F10 key, confirm with Y -7. Power off DUT -8. Power on DUT (this is when setup change takes effect) -9. Wait until TIANOCORE_STRING appears on screen -10. Power off DUT -11. Verify state of all USB C ports marked in "Hardware configuration matrix" -as "Always On USB" using USB power meter - -**Expected results** - -On each USB C port marked as "Always On USB", power meter should be working on -tested port supply, showing voltage >= 5.0V - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -## USC004.001 Power IS NOT delivered thru always-on USB A ports - -**Test description** - -This test verifies, if setting "USB ports power and charging" menu option to -"While System is On" is disabling electrical power supply on selected USB A -ports, after DUT is power off. - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Check if available USB power meter works without any additional - devices attached. - -**Test steps** - -1. Turn on DUT -2. Press F2 to enter setup menu -3. Enter Dasharo System Features submenu -4. Enter Power Management Options submenu -5. Set value of "USB ports power and charging" to "While System is On" -6. Save setup configuration with F10 key, confirm with Y -7. Power off DUT -8. Power on DUT (this is when setup change takes effect) -9. Wait until TIANOCORE_STRING appears on screen -10. Power off DUT -11. Verify state of all USB A ports marked in "Hardware configuration matrix" -as "Always On USB" using USB power meter - -**Expected results** - -USB power meter not working (or, in case of DUT-independent power supply, -showing voltage close to 0V) - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -## USC005.001 Power IS NOT delivered thru always-on USB C ports - -**Test description** - -This test verifies, if setting "USB ports power and charging" menu option to -"While System is On" is disabling electrical power supply on selected USB A -ports, after DUT is power off. - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Check if available USB power meter works without any additional - devices attached. - -**Test steps** - -1. Turn on DUT -2. Press F2 to enter setup menu -3. Enter Dasharo System Features submenu -4. Enter Power Management Options submenu -5. Set value of "USB ports power and charging" to "While System is On" -6. Save setup configuration with F10 key, confirm with Y -7. Power off DUT -8. Power on DUT (this is when setup change takes effect) -9. Wait until TIANOCORE_STRING appears on screen -10. Power off DUT -11. Verify state of all USB C ports marked in "Hardware configuration matrix" -as "Always On USB" using USB power meter - -**Expected results** - -USB power meter not working (or, in case of DUT-independent power supply, -showing voltage close to 0V) - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -## USC006.001 Power IS NOT delivered thru regular USB A ports - -**Test description** - -This test verifies, if setting "USB ports power and charging" menu option to -"Always On" is NOT enabling electrical power supply to USB A ports that are -NOT marked as "Always On USB", after DUT is power off. - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Check if available USB power meter works without any additional - devices attached. -3. Make sure that there are USB A ports, that are not marked as "Always On USB", - otherwise skip this test case. - -**Test steps** - -1. Turn on DUT -2. Press F2 to enter setup menu -3. Enter Dasharo System Features submenu -4. Enter Power Management Options submenu -5. Set value of "USB ports power and charging" to "Always On" -6. Save setup configuration with F10 key, confirm with Y -7. Power off DUT -8. Power on DUT (this is when setup change takes effect) -9. Wait until TIANOCORE_STRING appears on screen -10. Power off DUT -11. Verify state of all USB A ports NOT marked in "Hardware configuration matrix" -as "Always On USB" using USB power meter - -**Expected results** - -USB power meter not working (or, in case of DUT-independent power supply, -showing voltage close to 0V) - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -## USC007.001 Power IS NOT delivered thru regular USB C ports - -**Test description** - -This test verifies, if setting "USB ports power and charging" menu option to -"Always On" is NOT enabling electrical power supply to USB C ports that are -NOT marked as "Always On USB", after DUT is power off. - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Check if available USB power meter works without any additional - devices attached. -3. Make sure that there are USB C ports, that are not marked as "Always On USB", - otherwise skip this test case. - -**Test steps** - -1. Turn on DUT -2. Press F2 to enter setup menu -3. Enter Dasharo System Features submenu -4. Enter Power Management Options submenu -5. Set value of "USB ports power and charging" to "Always On" -6. Save setup configuration with F10 key, confirm with Y -7. Power off DUT -8. Power on DUT (this is when setup change takes effect) -9. Wait until TIANOCORE_STRING appears on screen -10. Power off DUT -11. Verify state of all USB C ports NOT marked in "Hardware configuration matrix" -as "Always On USB" using USB power meter - -**Expected results** - -USB power meter not working (or, in case of DUT-independent power supply, -showing voltage close to 0V) - -**Test configuration data** - -1. `FIRMWARE` = Dasharo diff --git a/mkdocs.yml b/mkdocs.yml index bf84368d46..2492701174 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -586,7 +586,6 @@ nav: - '[UBT] USB Boot': unified-test-documentation/dasharo-compatibility/31N-usb-boot.md - '[UDT] USB Detection': unified-test-documentation/dasharo-compatibility/31O-usb-detect.md - '[USB] USB HID and MSC support': unified-test-documentation/dasharo-compatibility/306-usb-hid-and-msc-support.md - - '[USC] USB A and C Always On ports': unified-test-documentation/dasharo-compatibility/350-usb-a-and-c-always-on-ports.md - '[USH] UEFI Shell': unified-test-documentation/dasharo-compatibility/30P-uefi-shell.md - '[USS] Ubuntu Server support': unified-test-documentation/dasharo-compatibility/349-ubuntu-server-support.md - '[UTC] USB-C docking station support': unified-test-documentation/dasharo-compatibility/31H-usb-type-c.md From 430add59fcf6918e2322b9c8f52c47d2666edabf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Thu, 3 Apr 2025 17:49:02 +0200 Subject: [PATCH 035/133] docs/guides/lab-assembly/protectli.md: Add VP2430/VP2440 lab assembly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- docs/guides/lab-assembly/protectli.md | 52 +++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/docs/guides/lab-assembly/protectli.md b/docs/guides/lab-assembly/protectli.md index 432d1428d1..49abf5e814 100644 --- a/docs/guides/lab-assembly/protectli.md +++ b/docs/guides/lab-assembly/protectli.md @@ -57,10 +57,15 @@ connect ports 3 and 4 together with an additional RJ45 cable. * Sonoff S20 type E (relay unused due to disruptions in power during high CPU load) * USB-UART converter with 4-wire cable * 4-pin header 2.54 mm raster - * Pomona SOIC8 clip * USB-C to USB-A male-male cable for console * Power supply for the platform: 12V 10A +=== "VP2430/VP2440" + + * VP2430/VP2440 platform + * USB-C to USB-A male-male cable for console + * Power supply for the platform: 12V 5A + ### External flashing enabling === "VP2410" @@ -95,7 +100,25 @@ connect ports 3 and 4 together with an additional RJ45 cable. === "VP6630/VP6650/VP6670" - Connect the J1 and J2 flash headers to the SPI header on RTE. + Connect the J1 and J2 flash headers to the SPI header on RTE using 2.54mm + to 2mm wires as described in the table: + + | RTE SPI header | J2 flash header | + |:-------------------:|:--------------------------------------:| + | J7 pin 1 (Vcc) | pin 1 (Vcc) | + | J7 pin 4 (SCLK) | pin 3 (CLK) | + | J7 pin 6 (MOSI) | pin 4 (MOSI) | + + | RTE SPI header | J1 flash header | + |:-------------------:|:--------------------------------------:| + | J7 pin 2 (GND) | pin 4 (GND) | + | J7 pin 3 (CS) | pin 1 (CS) | + | J7 pin 5 (MISO) | pin 2 (MISO) | + +=== "VP2430/VP2440" + + Connect the J1 and J2 flash headers to the SPI header on RTE using 2.54mm + to 2mm wires as described in the table: | RTE SPI header | J2 flash header | |:-------------------:|:--------------------------------------:| @@ -171,6 +194,18 @@ connect ports 3 and 4 together with an additional RJ45 cable. Resetting CMOS is required for proper external flashing. +=== "VP2430/VP2440" + + Connect the RTE J11 header to the platform JCMOS1 header using 2.54mm to 2.54mm + wires as described in the table: + + | RTE | Protectli | + |:---------:|:--------------------------:| + | J11 pin 8 | JCMOS1 pin 2 (CLR_CMOS) | + | Any GND | JCMOS1 pin 1 (GND) | + + Resetting CMOS is required for proper external flashing. + ## Theory of operation The following sections describe how to use all of the enabled features: @@ -273,6 +308,19 @@ The method of setting and using serial connection is described in the osfv_cli sonoff --sonoff_ip off ``` +=== "VP2430/VP2440" + + Power supply controlling is performed with the relay module on RTE + connected to one of RTE GPIOs. Power operation should be performed using + the `rte_ctrl` script implemented in `meta-rte` (OS image dedicated to the + RTE platform). + + To toggle the power supply use the below command: + + ```bash + rte_ctrl rel + ``` + ### Basic power operations Basic power operations should be performed based on the `rte_ctrl` script From 2ee76035a946583dc87eb2ae48bf81b05576b040 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 3 Apr 2025 18:10:14 +0200 Subject: [PATCH 036/133] docs/variants/protectli_v1000-series/releases.md: missing link Signed-off-by: Wiktor Mowinski --- docs/variants/protectli_v1000-series/releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/variants/protectli_v1000-series/releases.md b/docs/variants/protectli_v1000-series/releases.md index b1438098e4..368be4f395 100644 --- a/docs/variants/protectli_v1000-series/releases.md +++ b/docs/variants/protectli_v1000-series/releases.md @@ -16,6 +16,7 @@ For details about our release process please read Test results for this release can be found here: - [V1210](https://github.com/Dasharo/osfv-results/blob/main/boards/Protectli/JSL_v1000/JSL_V1210/v0.9.3_results.csv) +- [V1211](https://github.com/Dasharo/osfv-results/blob/main/boards/Protectli/JSL_v1000/JSL_V1210/v0.9.3_results.csv) - [V1410](https://github.com/Dasharo/osfv-results/blob/main/boards/Protectli/JSL_v1000/JSL_V1410/v0.9.3_results.csv) - [V1610](https://github.com/Dasharo/osfv-results/blob/main/boards/Protectli/JSL_v1000/JSL_V1610/v0.9.3_results.csv) From 3058b81e60a343fe21d522ef38f3e9658977ea00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Fri, 4 Apr 2025 11:56:17 +0200 Subject: [PATCH 037/133] variants/novacustom_v5*0tu/releases.md: add manual update disclaimer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/variants/novacustom_v540tu/releases.md | 6 ++++++ docs/variants/novacustom_v560tu/releases.md | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/docs/variants/novacustom_v540tu/releases.md b/docs/variants/novacustom_v540tu/releases.md index dd0efd4ff2..4fa46023e0 100644 --- a/docs/variants/novacustom_v540tu/releases.md +++ b/docs/variants/novacustom_v540tu/releases.md @@ -13,6 +13,12 @@ For details about our release process please read +## v1.0.0 - coming soon + +Note: Due to [issue 1142](https://github.com/Dasharo/dasharo-issues/issues/1142) +this update must be installed by following the process described in +[Firmware Update - Manual Steps](https://docs.dasharo.com/unified/novacustom/firmware-update/#prerequisites)\ + ## v0.9.0 - 2024-07-18 Test results for this release can be found diff --git a/docs/variants/novacustom_v560tu/releases.md b/docs/variants/novacustom_v560tu/releases.md index db1168a5d1..e22712e535 100644 --- a/docs/variants/novacustom_v560tu/releases.md +++ b/docs/variants/novacustom_v560tu/releases.md @@ -13,6 +13,12 @@ For details about our release process please read +## v1.0.0 - coming soon + +Note: Due to [issue 1142](https://github.com/Dasharo/dasharo-issues/issues/1142) +this update must be installed by following the process described in +[Firmware Update - Manual Steps](https://docs.dasharo.com/unified/novacustom/firmware-update/#prerequisites) + ## v0.9.0 - 2024-07-18 Test results for this release can be found From c0170ace8b1e5597e5ecad624fcce2a0b00aa1bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Fri, 4 Apr 2025 12:12:02 +0200 Subject: [PATCH 038/133] variants/novacustom_v5*0tu/releases.md: put update disclaimer in admonition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/variants/novacustom_v540tu/releases.md | 7 ++++--- docs/variants/novacustom_v560tu/releases.md | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/variants/novacustom_v540tu/releases.md b/docs/variants/novacustom_v540tu/releases.md index 4fa46023e0..1cf5fa5d98 100644 --- a/docs/variants/novacustom_v540tu/releases.md +++ b/docs/variants/novacustom_v540tu/releases.md @@ -15,9 +15,10 @@ For details about our release process please read ## v1.0.0 - coming soon -Note: Due to [issue 1142](https://github.com/Dasharo/dasharo-issues/issues/1142) -this update must be installed by following the process described in -[Firmware Update - Manual Steps](https://docs.dasharo.com/unified/novacustom/firmware-update/#prerequisites)\ +!!! warning + Note: Due to [issue 1142](https://github.com/Dasharo/dasharo-issues/issues/1142), + this update must be installed by following the process described in + [Firmware Update - Manual Steps](https://docs.dasharo.com/unified/novacustom/firmware-update/#prerequisites) ## v0.9.0 - 2024-07-18 diff --git a/docs/variants/novacustom_v560tu/releases.md b/docs/variants/novacustom_v560tu/releases.md index e22712e535..5d3eba36ef 100644 --- a/docs/variants/novacustom_v560tu/releases.md +++ b/docs/variants/novacustom_v560tu/releases.md @@ -15,9 +15,10 @@ For details about our release process please read ## v1.0.0 - coming soon -Note: Due to [issue 1142](https://github.com/Dasharo/dasharo-issues/issues/1142) -this update must be installed by following the process described in -[Firmware Update - Manual Steps](https://docs.dasharo.com/unified/novacustom/firmware-update/#prerequisites) +!!! warning + Note: Due to [issue 1142](https://github.com/Dasharo/dasharo-issues/issues/1142), + this update must be installed by following the process described in + [Firmware Update - Manual Steps](https://docs.dasharo.com/unified/novacustom/firmware-update/#prerequisites) ## v0.9.0 - 2024-07-18 From c25317ecd5003a833ec3a17bbe8aa17669ac3362 Mon Sep 17 00:00:00 2001 From: Artur Raglis Date: Fri, 4 Apr 2025 18:04:44 +0200 Subject: [PATCH 039/133] /: add embedded subscribe forms Signed-off-by: Artur Raglis --- .gitignore | 1 + docs/stylesheets/extra.css | 41 +++++++++++++++++++ docs/variants/dell_optiplex/releases.md | 5 +-- .../variants/hardkernel_odroid_h4/releases.md | 9 +--- docs/variants/msi_z690/releases.md | 7 +--- docs/variants/msi_z790/releases.md | 9 +--- docs/variants/novacustom_ns5x_adl/releases.md | 9 +--- docs/variants/novacustom_ns5x_tgl/releases.md | 10 +---- docs/variants/novacustom_nv4x_adl/releases.md | 9 +--- docs/variants/novacustom_nv4x_tgl/releases.md | 10 +---- docs/variants/novacustom_v540tnx/releases.md | 9 +--- docs/variants/novacustom_v540tu/releases.md | 9 +--- .../novacustom_v540tu/releases_heads.md | 9 +--- docs/variants/novacustom_v560tnx/releases.md | 9 +--- docs/variants/novacustom_v560tu/releases.md | 9 +--- .../novacustom_v560tu/releases_heads.md | 9 +--- docs/variants/pc_engines/releases_seabios.md | 9 +--- docs/variants/pc_engines/releases_uefi.md | 7 +--- docs/variants/protectli_fw6/releases.md | 7 +--- .../protectli_v1000-series/releases.md | 7 +--- docs/variants/protectli_vp2410/releases.md | 7 +--- docs/variants/protectli_vp2420/releases.md | 7 +--- docs/variants/protectli_vp46xx/releases.md | 7 +--- docs/variants/protectli_vp66xx/releases.md | 9 +--- docs/variants/talos_2/releases.md | 9 +--- main.py | 14 +++++++ mkdocs.yml | 1 + requirements.txt | 1 + 28 files changed, 104 insertions(+), 145 deletions(-) create mode 100644 main.py diff --git a/.gitignore b/.gitignore index 6b0018adb3..05a136f8e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ venv/ site/ utils/blc/blc.txt +__pycache__/ diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index 0bc212f835..cc3e4d71ee 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -16,3 +16,44 @@ margin-right: auto; width: 95%; } + +.subscribe-form { + display: flex; + flex-direction: column; + gap: 10px; + align-items: center; + text-align: center; + justify-content: center; + margin-top: 20px; + width: 95%; + max-width: 500px; + margin-left: auto; + margin-right: auto; +} + +.subscribe-form input[type="email"], +.subscribe-form button { + padding: 10px; + font-size: 16px; + border-radius: 5px; + text-align: center; + width: 100%; +} + +.subscribe-form input[type="email"] { + border: 1px solid #ccc; +} + +.subscribe-form button { + all: unset; + background-color: var(--md-primary-fg-color); + color: var(--md-primary-bg-color); + cursor: pointer; + font-weight: bold; + padding-left: 20px; + padding-right: 20px; +} + +.subscribe-form button:hover { + background-color: var(--md-accent-fg-color); +} diff --git a/docs/variants/dell_optiplex/releases.md b/docs/variants/dell_optiplex/releases.md index 2ebf617c21..fcac61ab48 100644 --- a/docs/variants/dell_optiplex/releases.md +++ b/docs/variants/dell_optiplex/releases.md @@ -6,8 +6,8 @@ Dell OptiPlex 7010/9010 For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -[Subscribe to Dell OptiPlex 7010/9010 Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } +{{ subscribe_form("8c26dbbd-7a0e-4a58-b888-d46feea41896", +"Subscribe to Dell OptiPlex 7010/9010 Dasharo Release Newsletter") }} ## v0.1.1 - 2024-12-17 @@ -68,6 +68,5 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/dasharo/dell - [Intel microcode based on SNB D2/G1/Q0 0x0000002f revision microcode-20240531](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-2a-07) + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240531/license) -[newsletter]: https://3mdeb.com/subscribe/optiplex_7010_9010_uefi.html [dell_optiplex_7010_9010_v0.1.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/dell_optiplex_7010_9010/v0.1.1/dell_optiplex_7010_9010_v0.1.1.rom.sha256 [dell_optiplex_7010_9010_v0.1.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/dell_optiplex_7010_9010/v0.1.1/dell_optiplex_7010_9010_v0.1.1.rom.sha256.sig diff --git a/docs/variants/hardkernel_odroid_h4/releases.md b/docs/variants/hardkernel_odroid_h4/releases.md index 75ff5cc840..91f866bb81 100644 --- a/docs/variants/hardkernel_odroid_h4/releases.md +++ b/docs/variants/hardkernel_odroid_h4/releases.md @@ -16,12 +16,8 @@ Hardkernel ODROID H4 For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to Hardkernel ODROID H4 Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("d4b31e80-7663-4f6b-8fcb-f5ff551eb1d6", +"Subscribe to Hardkernel ODROID H4 Dasharo Release Newsletter") }} ## v0.9.0 - 2025-02-20 @@ -92,7 +88,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [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://3mdeb.com/subscribe/odroid_h4_plus_uefi.html [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 [hardkernel_odroid_h4_v0.9.0_dev_signed.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/hardkernel_odroid_h4/v0.9.0/hardkernel_odroid_h4_v0.9.0_dev_signed.rom.sha256 diff --git a/docs/variants/msi_z690/releases.md b/docs/variants/msi_z690/releases.md index 29246711bc..b24e7ddf91 100644 --- a/docs/variants/msi_z690/releases.md +++ b/docs/variants/msi_z690/releases.md @@ -11,10 +11,8 @@ recommend seeing our [FAQ](../../unified/msi/faq.md). For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
-[Subscribe to Dasharo compatible with MSI PRO Z690-A Newsletter] -[newsletter]{.md-button .md-button--primary .center} -
+{{ subscribe_form("bae1674f-bd25-4a12-b6b5-c2099739cd93", +"Subscribe to Dasharo compatible with MSI PRO Z690-A Newsletter") }} ## v1.1.4 - 2024-12-10 @@ -695,7 +693,6 @@ gpg --verify msi_ms7d25_v0.1.0.rom.sha256.sig msi_ms7d25_v0.1.0.rom.sha256 - [coreboot based on a552cfc9 revision 53948cd8](https://github.com/Dasharo/coreboot/commit/53948cd8) - [edk2 based on 4d2846ba revision 4d2846ba](https://github.com/Dasharo/edk2/tree/4d2846ba) -[newsletter]: https://3mdeb.com/subscribe/msi_z690_a_uefi.html [msi_ms7d25_v1.1.4_ddr4.cap_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7d25/v1.1.4/msi_ms7d25_v1.1.4_ddr4.cap.sha256 [msi_ms7d25_v1.1.4_ddr4.cap_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7d25/v1.1.4/msi_ms7d25_v1.1.4_ddr4.cap.sha256.sig [msi_ms7d25_v1.1.4_ddr4_dev_signed.cap_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7d25/v1.1.4/msi_ms7d25_v1.1.4_ddr4_dev_signed.cap.sha256 diff --git a/docs/variants/msi_z790/releases.md b/docs/variants/msi_z790/releases.md index e71c623bf5..c0521acef6 100644 --- a/docs/variants/msi_z790/releases.md +++ b/docs/variants/msi_z790/releases.md @@ -11,12 +11,8 @@ For detailed information on our validation setup, please refer to the understanding of the nomenclature reasons behind the Z690/Z790 boards, we recommend seeing our [FAQ](../../unified/msi/faq.md). -
- -[Subscribe to MSI PRO Z790-P (WIFI) (DDR5) Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("b7d54f08-baae-4762-9ce2-c1df12bdca58", +"Subscribe to MSI PRO Z790-P (WIFI) (DDR5) Dasharo Release Newsletter") }} ## v0.9.2 - 2024-12-10 @@ -278,7 +274,6 @@ subscription via Dasharo Pro Package newsletter. - [Intel microcode based on ADL H0 0x0000002c revision microcode-20230613](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20230613/intel-ucode/06-97-05) - [Intel microcode based on RPL B0 0x00000113 revision microcode-20230613](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20230613/intel-ucode/06-b7-01) -[newsletter]: https://3mdeb.com/subscribe/msi_z790_p_uefi.html [msi_ms7e06_v0.9.2_ddr4.cap_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7e06/v0.9.2/msi_ms7e06_v0.9.2_ddr4.cap.sha256 [msi_ms7e06_v0.9.2_ddr4.cap_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7e06/v0.9.2/msi_ms7e06_v0.9.2_ddr4.cap.sha256.sig [msi_ms7e06_v0.9.2_ddr4_dev_signed.cap_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/msi_ms7e06/v0.9.2/msi_ms7e06_v0.9.2_ddr4_dev_signed.cap.sha256 diff --git a/docs/variants/novacustom_ns5x_adl/releases.md b/docs/variants/novacustom_ns5x_adl/releases.md index 118c2c7b22..32866eedaf 100644 --- a/docs/variants/novacustom_ns5x_adl/releases.md +++ b/docs/variants/novacustom_ns5x_adl/releases.md @@ -6,12 +6,8 @@ NovaCustom NS5x/7x 12th Gen For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to NovaCustom NS5x/7x 12th Gen Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("6d886099-78e1-4f28-a856-017570418ce4", +"Subscribe to NovaCustom NS5x/7x 12th Gen Dasharo Release Newsletter") }} ## v1.7.2 - 2024-01-03 @@ -303,7 +299,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo coreboot fork based on 1a8eb6c02103 revision cf81af26](https://github.com/Dasharo/coreboot/tree/cf81af26) - [Dasharo EDKII fork based on dd7523b5b123 revision abfdef40](https://github.com/Dasharo/edk2/tree/abfdef40) -[newsletter]: https://3mdeb.com/subscribe/nc_ns5x_7x_12th.html [novacustom_ns5x_adl_ec_v1.4.0.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.4.0/novacustom_ns5x_adl_ec_v1.4.0.rom [novacustom_ns5x_adl_ec_v1.4.0.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.4.0/novacustom_ns5x_adl_ec_v1.4.0.rom.sha256 [novacustom_ns5x_adl_ec_v1.4.0.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.4.0/novacustom_ns5x_adl_ec_v1.4.0.rom.sha256.sig diff --git a/docs/variants/novacustom_ns5x_tgl/releases.md b/docs/variants/novacustom_ns5x_tgl/releases.md index 26d67f9ee7..6f11835e1e 100644 --- a/docs/variants/novacustom_ns5x_tgl/releases.md +++ b/docs/variants/novacustom_ns5x_tgl/releases.md @@ -6,12 +6,8 @@ NovaCustom NS5x/7x 11th Gen For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to NovaCustom NS5x/7x 11th Gen Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("8f2fb839-a6ce-40b8-a26d-8d1fa4de12f7", +"Subscribe to NovaCustom NS5x/7x 11th Gen Dasharo Release Newsletter") }} ## v1.5.2 - 2024-01-17 @@ -402,5 +398,3 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [coreboot based on 4.16 revision ecf1e9b8](https://github.com/Dasharo/coreboot/tree/ecf1e9b8) - [tianocore based on e0334c228ce4ba51f47ff79a118f214031d4650f revision ec6805c2](https://github.com/Dasharo/edk2/tree/ec6805c2) - -[newsletter]: https://3mdeb.com/subscribe/nc_ns5x_7x_11th.html diff --git a/docs/variants/novacustom_nv4x_adl/releases.md b/docs/variants/novacustom_nv4x_adl/releases.md index 23f4dadce7..896bac4fee 100644 --- a/docs/variants/novacustom_nv4x_adl/releases.md +++ b/docs/variants/novacustom_nv4x_adl/releases.md @@ -6,12 +6,8 @@ NovaCustom NV4x 12th Gen For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to NovaCustom NV4x 12th Gen Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("310eac18-d302-478f-a617-5f5d65e8e0ac", +"Subscribe to NovaCustom NV4x 12th Gen Dasharo Release Newsletter") }} ## v1.7.2 - 2024-01-03 @@ -307,7 +303,6 @@ 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) -[newsletter]: https://3mdeb.com/subscribe/nc_nv4x_12th.html [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 [novacustom_nv4x_adl_ec_v1.4.0.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.4.0/novacustom_nv4x_adl_ec_v1.4.0.rom.sha256.sig diff --git a/docs/variants/novacustom_nv4x_tgl/releases.md b/docs/variants/novacustom_nv4x_tgl/releases.md index e725c09c7f..351f4de20a 100644 --- a/docs/variants/novacustom_nv4x_tgl/releases.md +++ b/docs/variants/novacustom_nv4x_tgl/releases.md @@ -6,12 +6,8 @@ NovaCustom NV4x 11th Gen For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to NovaCustom NV4x 11th Gen Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("68d08070-7966-476d-a2f0-212dda0e2723", +"Subscribe to NovaCustom NV4x 11th Gen Dasharo Release Newsletter") }} ## v1.5.2 - 2024-01-11 @@ -719,5 +715,3 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [coreboot 4.14 (with additional commits for Clevo NV41MZ board support)](https://gitlab.com/novacustom/coreboot/-/compare/4.14...v0.1.1?from_project_id=29249618) - [EDK2](https://github.com/MrChromebox/edk2/commit/659ed4cb983a66ec241c05f42b69ad4d2e47b714) - -[newsletter]: https://3mdeb.com/subscribe/nc_nv4x_11th.html diff --git a/docs/variants/novacustom_v540tnx/releases.md b/docs/variants/novacustom_v540tnx/releases.md index 521c71aa27..23ecfd237d 100644 --- a/docs/variants/novacustom_v540tnx/releases.md +++ b/docs/variants/novacustom_v540tnx/releases.md @@ -6,12 +6,8 @@ NovaCustom V54xTNx 14th Gen For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to NovaCustom V54xTNx 14th Gen Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("1a00f9c2-a8cc-48b6-8913-3b84036d33e6", +"Subscribe to NovaCustom V54xTNx 14th Gen Dasharo Release Newsletter") }} ## v0.9.1 - 2024-11-07 @@ -96,7 +92,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Intel processor microcode based on MTL C0 0x0000001c revision microcode-20240531](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-aa-04) * [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240531/license) -[newsletter]: https://3mdeb.com/subscribe/nc_v540tnx_14th.html [novacustom_v54x_mtl_ec_v0.9.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.1/novacustom_v54x_mtl_ec_v0.9.1.rom [novacustom_v54x_mtl_ec_v0.9.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.1/novacustom_v54x_mtl_ec_v0.9.1.rom.sha256 [novacustom_v54x_mtl_ec_v0.9.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.1/novacustom_v54x_mtl_ec_v0.9.1.rom.sha256.sig diff --git a/docs/variants/novacustom_v540tu/releases.md b/docs/variants/novacustom_v540tu/releases.md index 1cf5fa5d98..c2ec39e2b4 100644 --- a/docs/variants/novacustom_v540tu/releases.md +++ b/docs/variants/novacustom_v540tu/releases.md @@ -6,12 +6,8 @@ NovaCustom V540TU For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to NovaCustom V540TU 14th Gen Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("c82fe8ab-8332-460e-8251-401f0d7b89ee", +"Subscribe to NovaCustom V540TU 14th Gen Dasharo Release Newsletter") }} ## v1.0.0 - coming soon @@ -84,7 +80,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo coreboot fork based on 24.02 revision 316f964c](https://github.com/Dasharo/coreboot/tree/316f964c) - [Dasharo EDKII fork based on edk2-stable202402 revision cc2be228](https://github.com/Dasharo/edk2/tree/cc2be228) -[newsletter]: https://3mdeb.com/subscribe/nc_v540tu_14th.html [novacustom_v54x_mtl_ec_v0.9.0.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.0/novacustom_v54x_mtl_ec_v0.9.0.rom [novacustom_v54x_mtl_ec_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.0/novacustom_v54x_mtl_ec_v0.9.0.rom.sha256 [novacustom_v54x_mtl_ec_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/v0.9.0/novacustom_v54x_mtl_ec_v0.9.0.rom.sha256.sig diff --git a/docs/variants/novacustom_v540tu/releases_heads.md b/docs/variants/novacustom_v540tu/releases_heads.md index 03ea53eadb..85b5fbbfb2 100644 --- a/docs/variants/novacustom_v540tu/releases_heads.md +++ b/docs/variants/novacustom_v540tu/releases_heads.md @@ -25,12 +25,8 @@ direct engagement with the Dasharo Team and fellow subscribers for personalized For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to NovaCustom V54x 14th Gen Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("c82fe8ab-8332-460e-8251-401f0d7b89ee", +"Subscribe to NovaCustom V54x 14th Gen Dasharo Release Newsletter") }} ## v0.9.0 - 2025-03-20 @@ -110,7 +106,6 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/customer-key - [Intel Firmware Support Package for Meteor Lake-H version 2024/04/30 v4122_12](https://github.com/Dasharo/dasharo-blobs/tree/32cffee4/novacustom/v5x0tu/MeteorLakeFspBinPkg) + [License](https://github.com/Dasharo/dasharo-blobs/blob/main/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) -[newsletter]: https://3mdeb.com/subscribe/nc_v540tu_14th.html [novacustom_v54x_mtl_ec_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/heads/v0.9.0/novacustom_v54x_mtl_ec_v0.9.0.rom.sha256 [novacustom_v54x_mtl_ec_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/heads/v0.9.0/novacustom_v54x_mtl_ec_v0.9.0.rom.sha256.sig [novacustom_v54x_mtl_v0.9.0_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v54x_mtl/heads/v0.9.0/novacustom_v54x_mtl_v0.9.0_heads.rom.sha256 diff --git a/docs/variants/novacustom_v560tnx/releases.md b/docs/variants/novacustom_v560tnx/releases.md index bd0a6ccd03..3a5558f9f3 100644 --- a/docs/variants/novacustom_v560tnx/releases.md +++ b/docs/variants/novacustom_v560tnx/releases.md @@ -6,12 +6,8 @@ NovaCustom V56xTNx 14th Gen For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to NovaCustom V56xTNx 14th Gen Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("afc2dba2-664f-4b85-9fea-70df53400f1f", +"Subscribe to NovaCustom V56xTNx 14th Gen Dasharo Release Newsletter") }} ## v0.9.1 - 2024-11-07 @@ -96,7 +92,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Intel processor microcode based on MTL C0 0x0000001c revision microcode-20240531](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-aa-04) * [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240531/license) -[newsletter]: https://3mdeb.com/subscribe/nc_v560tnx_14th.html [novacustom_v56x_mtl_ec_v0.9.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.1/novacustom_v56x_mtl_ec_v0.9.1.rom [novacustom_v56x_mtl_ec_v0.9.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.1/novacustom_v56x_mtl_ec_v0.9.1.rom.sha256 [novacustom_v56x_mtl_ec_v0.9.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.1/novacustom_v56x_mtl_ec_v0.9.1.rom.sha256.sig diff --git a/docs/variants/novacustom_v560tu/releases.md b/docs/variants/novacustom_v560tu/releases.md index 5d3eba36ef..37df8d9b63 100644 --- a/docs/variants/novacustom_v560tu/releases.md +++ b/docs/variants/novacustom_v560tu/releases.md @@ -6,12 +6,8 @@ NovaCustom V560TU For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to NovaCustom V560TU 14th Gen Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("d8319dd2-9108-48c5-86bf-318bb2ae94d2", +"Subscribe to NovaCustom V560TU 14th Gen Dasharo Release Newsletter") }} ## v1.0.0 - coming soon @@ -84,7 +80,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Dasharo coreboot fork based on 24.02 revision 316f964c](https://github.com/Dasharo/coreboot/tree/316f964c) - [Dasharo EDKII fork based on edk2-stable202402 revision cc2be228](https://github.com/Dasharo/edk2/tree/cc2be228) -[newsletter]: https://3mdeb.com/subscribe/nc_v560tu_14th.html [novacustom_v56x_mtl_ec_v0.9.0.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.0/novacustom_v56x_mtl_ec_v0.9.0.rom [novacustom_v56x_mtl_ec_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.0/novacustom_v56x_mtl_ec_v0.9.0.rom.sha256 [novacustom_v56x_mtl_ec_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/v0.9.0/novacustom_v56x_mtl_ec_v0.9.0.rom.sha256.sig diff --git a/docs/variants/novacustom_v560tu/releases_heads.md b/docs/variants/novacustom_v560tu/releases_heads.md index c54004445f..3dcf5bf3b8 100644 --- a/docs/variants/novacustom_v560tu/releases_heads.md +++ b/docs/variants/novacustom_v560tu/releases_heads.md @@ -6,12 +6,8 @@ V560TU series of laptops. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to NovaCustom V54x 14th Gen Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("c82fe8ab-8332-460e-8251-401f0d7b89ee", +"Subscribe to NovaCustom V54x 14th Gen Dasharo Release Newsletter") }} ## v0.9.0 - 2025-01-30 @@ -63,7 +59,6 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/customer-key - [Intel Firmware Support Package for Meteor Lake-H version 2024/04/30 v4122_12](https://github.com/Dasharo/dasharo-blobs/tree/32cffee4/novacustom/v5x0tu/MeteorLakeFspBinPkg) + [License](https://github.com/Dasharo/dasharo-blobs/blob/main/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) -[newsletter]: https://3mdeb.com/subscribe/nc_v540tu_14th.html [novacustom_v56x_mtl_ec_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/heads/v0.9.0/novacustom_v56x_mtl_ec_v0.9.0.rom.sha256 [novacustom_v56x_mtl_ec_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/heads/v0.9.0/novacustom_v56x_mtl_ec_v0.9.0.rom.sha256.sig [novacustom_v56x_mtl_v0.9.0_heads.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_v56x_mtl/heads/v0.9.0/novacustom_v56x_mtl_v0.9.0_heads.rom.sha256 diff --git a/docs/variants/pc_engines/releases_seabios.md b/docs/variants/pc_engines/releases_seabios.md index 60f6224a3a..e2fee6611f 100644 --- a/docs/variants/pc_engines/releases_seabios.md +++ b/docs/variants/pc_engines/releases_seabios.md @@ -6,12 +6,8 @@ of open-source firmware development for PC Engines apu2/3/4/6 platform. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
-[Subscribe to Dasharo for PC Engines Release Notification Newsletter] -[newsletter]{.md-button .md-button--primary .center} -
- - +{{ subscribe_form("667a3af1-424e-439e-9144-57bfcf921ca4", +"Subscribe to Dasharo for PC Engines Release Notification Newsletter") }} ## v24.05.00.01 - 2024-06-28 @@ -92,7 +88,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [AMD System Management Unit - Software Configuration Settings binary based on 1433 revision a8db7dfe](https://github.com/coreboot/blobs/tree/a8db7dfe/southbridge/amd/avalon/PSP/SmuScs.bin) - [AMD Hudson xHCI firmware based on 1.1.0.0068 revision a8db7dfe](https://github.com/coreboot/blobs/tree/a8db7dfe/southbridge/amd/avalon/xhci.bin) -[newsletter]: https://3mdeb.com/subscribe/pcengines_seabios.html [pcengines_apu2_seabios_v24.05.00.01.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v24.05.00.01/pcengines_apu2_seabios_v24.05.00.01.rom.sha256 [pcengines_apu2_seabios_v24.05.00.01.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v24.05.00.01/pcengines_apu2_seabios_v24.05.00.01.rom.sha256.sig [pcengines_apu3_seabios_v24.05.00.01.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v24.05.00.01/pcengines_apu3_seabios_v24.05.00.01.rom.sha256 diff --git a/docs/variants/pc_engines/releases_uefi.md b/docs/variants/pc_engines/releases_uefi.md index 3fc06619e3..e0e2ad5be1 100644 --- a/docs/variants/pc_engines/releases_uefi.md +++ b/docs/variants/pc_engines/releases_uefi.md @@ -6,10 +6,8 @@ open-source firmware development for PC Engines apu2/3/4/6 platform. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
-[Subscribe to Dasharo for PC Engines Release Notification Newsletter] -[newsletter]{.md-button .md-button--primary .center} -
+{{ subscribe_form("667a3af1-424e-439e-9144-57bfcf921ca4", +"Subscribe to Dasharo for PC Engines Release Notification Newsletter") }} Test results for this platform can be found [here](https://docs.google.com/spreadsheets/d/1wSE6xA3K3nXewwLn5lV39_2wZL1kg5AkGb4mvmG3bwE/edit#gid=1670191276). @@ -95,7 +93,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [AMD System Management Unit - Software Configuration Settings binary based on 1433 revision a8db7dfe](https://github.com/coreboot/blobs/tree/a8db7dfe/southbridge/amd/avalon/PSP/SmuScs.bin) - [AMD Hudson xHCI firmware based on 1.1.0.0068 revision a8db7dfe](https://github.com/coreboot/blobs/tree/a8db7dfe/southbridge/amd/avalon/xhci.bin) -[newsletter]: https://3mdeb.com/subscribe/pcengines_seabios.html [pcengines_apu2_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v0.9.0/pcengines_apu2_v0.9.0.rom.sha256 [pcengines_apu2_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v0.9.0/pcengines_apu2_v0.9.0.rom.sha256.sig [pcengines_apu2_v0.9.0_dev_signed.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/pcengines_apu2/v0.9.0/pcengines_apu2_v0.9.0_dev_signed.rom.sha256 diff --git a/docs/variants/protectli_fw6/releases.md b/docs/variants/protectli_fw6/releases.md index df3b67c82c..f1275ceb66 100644 --- a/docs/variants/protectli_fw6/releases.md +++ b/docs/variants/protectli_fw6/releases.md @@ -6,10 +6,8 @@ for Protectli FW6. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
-[Subscribe to Protectli Dasharo Release Newsletter] -[newsletter]{.md-button .md-button--primary .center} -
+{{ subscribe_form("49abc4a2-0807-4720-aef2-b150ef701b30", +"Subscribe to Protectli Dasharo Release Newsletter") }} Test results for this platform can be found [here](https://docs.google.com/spreadsheets/d/1wI0qBSLdaluayYsm_lIa9iJ9LnPnCOZ9eNOyrKSc-j4/edit?usp=sharing). @@ -53,7 +51,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu + VBIOS blob for FW6D/E, SHA256: d1c746127e5288942efae65907739e18ff395fab70925b44dbafafd9e7b30cd7 -[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [v1.0.14_rom]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom [v1.0.14_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom.sha256 [v1.0.14_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom.sha256.sig diff --git a/docs/variants/protectli_v1000-series/releases.md b/docs/variants/protectli_v1000-series/releases.md index b1438098e4..45201b04e0 100644 --- a/docs/variants/protectli_v1000-series/releases.md +++ b/docs/variants/protectli_v1000-series/releases.md @@ -6,10 +6,8 @@ for Protectli V1000 series. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
-[Subscribe to Protectli Dasharo Release Newsletter] -[newsletter]{.md-button .md-button--primary .center} -
+{{ subscribe_form("49abc4a2-0807-4720-aef2-b150ef701b30", +"Subscribe to Protectli Dasharo Release Newsletter") }} ## v0.9.3 - 2024-09-16 @@ -94,7 +92,6 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/raw/master/customer-keys - [Intel microcode based on JSL A0 0x24000026 revision microcode-20240312](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240312/intel-ucode/06-9c-00) + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240312/license) -[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [protectli_v1210_v0.9.3.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_jsl/v0.9.3/protectli_v1210_v0.9.3.rom [protectli_v1210_v0.9.3.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_jsl/v0.9.3/protectli_v1210_v0.9.3.rom.sha256 [protectli_v1210_v0.9.3.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_jsl/v0.9.3/protectli_v1210_v0.9.3.rom.sha256.sig diff --git a/docs/variants/protectli_vp2410/releases.md b/docs/variants/protectli_vp2410/releases.md index d899e7813c..8b5e5c77cd 100644 --- a/docs/variants/protectli_vp2410/releases.md +++ b/docs/variants/protectli_vp2410/releases.md @@ -6,10 +6,8 @@ for Protectli VP2410. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
-[Subscribe to Protectli Dasharo Release Newsletter] -[newsletter]{.md-button .md-button--primary .center} -
+{{ subscribe_form("49abc4a2-0807-4720-aef2-b150ef701b30", +"Subscribe to Protectli Dasharo Release Newsletter") }} Test results for this platform can be found [here](https://docs.google.com/spreadsheets/d/1wSE6xA3K3nXewwLn5lV39_2wZL1kg5AkGb4mvmG3bwE/edit#gid=1033426620). @@ -163,7 +161,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu + CPU signature: 0x0706A0, Date: 12.07.2017, Revision: 0x26 + CPU signature: 0x0706A1, Date: 09.06.2020, Revision: 0x34 -[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [protectli_vp2410_v1.1.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.1.1/protectli_vp2410_v1.1.1.rom [protectli_vp2410_v1.1.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.1.1/protectli_vp2410_v1.1.1.rom.sha256 [protectli_vp2410_v1.1.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.1.1/protectli_vp2410_v1.1.1.rom.sha256.sig diff --git a/docs/variants/protectli_vp2420/releases.md b/docs/variants/protectli_vp2420/releases.md index 5196654f79..239c658f4d 100644 --- a/docs/variants/protectli_vp2420/releases.md +++ b/docs/variants/protectli_vp2420/releases.md @@ -6,10 +6,8 @@ for Protectli VP2420. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
-[Subscribe to Protectli Dasharo Release Newsletter] -[newsletter]{.md-button .md-button--primary .center} -
+{{ subscribe_form("49abc4a2-0807-4720-aef2-b150ef701b30", +"Subscribe to Protectli Dasharo Release Newsletter") }} Test results for this platform can be found [here](https://docs.google.com/spreadsheets/d/1wSE6xA3K3nXewwLn5lV39_2wZL1kg5AkGb4mvmG3bwE/edit#gid=270990532). @@ -274,7 +272,6 @@ gpg -v --verify protectli_vp2420_v1.0.0.rom.sha256.sig protectli_vp2420_v1.0.0.r - [edk2 based on e461f08 revision 7948a20](https://github.com/Dasharo/edk2/tree/7948a20) - [iPXE for EFI revision 988d2](https://github.com/ipxe/ipxe/tree/988d2c13cdf0f0b4140685af35ced70ac5b3283c) -[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [v1.0.0_rom]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.0.0/protectli_vp2420_v1.0.0.rom [v1.0.0_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.0.0/protectli_vp2420_v1.0.0.rom.sha256 [v1.0.0_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_ehl/v1.0.0/protectli_vp2420_v1.0.0.rom.sha256.sig diff --git a/docs/variants/protectli_vp46xx/releases.md b/docs/variants/protectli_vp46xx/releases.md index 617c064cc5..77e26b7bef 100644 --- a/docs/variants/protectli_vp46xx/releases.md +++ b/docs/variants/protectli_vp46xx/releases.md @@ -6,10 +6,8 @@ for Protectli VP4630/VP4650/VP4670 For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
-[Subscribe to Protectli Dasharo Release Newsletter] -[newsletter]{.md-button .md-button--primary .center} -
+{{ subscribe_form("49abc4a2-0807-4720-aef2-b150ef701b30", +"Subscribe to Protectli Dasharo Release Newsletter") }} Test results for this platform can be found [here](https://docs.google.com/spreadsheets/d/1wI0qBSLdaluayYsm_lIa9iJ9LnPnCOZ9eNOyrKSc-j4/edit?usp=sharing). @@ -363,7 +361,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu + CPU signature: 0x0806EC, Date: 28.04.2021, Revision: 0xEC + CPU signature: 0x0A0660, Date: 28.04.2021, Revision: 0xEA -[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [protectli_vp4630_vp4650_v1.0.19.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.0.19/protectli_vp4630_vp4650_v1.0.19.rom [protectli_vp4630_vp4650_v1.0.19.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.0.19/protectli_vp4630_vp4650_v1.0.19.rom.sha256 [protectli_vp4630_vp4650_v1.0.19.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.0.19/protectli_vp4630_vp4650_v1.0.19.rom.sha256.sig diff --git a/docs/variants/protectli_vp66xx/releases.md b/docs/variants/protectli_vp66xx/releases.md index c52310ebff..2263b8235c 100644 --- a/docs/variants/protectli_vp66xx/releases.md +++ b/docs/variants/protectli_vp66xx/releases.md @@ -6,12 +6,8 @@ for Protectli VP6630/VP6650/VP6670 For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to Protectli Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("49abc4a2-0807-4720-aef2-b150ef701b30", +"Subscribe to Protectli Dasharo Release Newsletter") }} ## v0.9.1 - 2025-01-23 @@ -135,7 +131,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [Intel microcode based on ADL R0 0x432 revision microcode-20240312](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240312/intel-ucode/06-9a-04) - [Intel microcode based on RPL-H/P/PX 6+8 J0 0x4121 revision microcode-20240312](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240312/intel-ucode/06-ba-02) -[newsletter]: https://3mdeb.com/subscribe/protectli_uefi.html [protectli_vp66xx_v0.9.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_adl/v0.9.1/protectli_vp66xx_v0.9.1.rom [protectli_vp66xx_v0.9.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_adl/v0.9.1/protectli_vp66xx_v0.9.1.rom.sha256 [protectli_vp66xx_v0.9.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_adl/v0.9.1/protectli_vp66xx_v0.9.1.rom.sha256.sig diff --git a/docs/variants/talos_2/releases.md b/docs/variants/talos_2/releases.md index e468b644bb..45ec2aed77 100644 --- a/docs/variants/talos_2/releases.md +++ b/docs/variants/talos_2/releases.md @@ -6,12 +6,8 @@ Raptor Computing Systems Talos II For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -
- -[Subscribe to Release Newsletter][newsletter] -{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("0f9f6d56-cc30-4caf-8087-bec92f1b9360", +"Subscribe to Release Newsletter") }} Test results for this platform can be found [here](https://docs.google.com/spreadsheets/d/1KpmuPEkWOj3SieophUbgf7CF6mydliMsEDLtOFOrKn0/edit?usp=sharing). @@ -110,7 +106,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [skiboot based on 7f90b9cd revision fa060c2c](https://github.com/Dasharo/skiboot/tree/fa060c2c) - [heads based on fdbd9b2 revision 66f0fce0870b729d](https://github.com/osresearch/heads/tree/66f0fce0870b729d) -[newsletter]: https://3mdeb.com/subscribe/raptor_cs_talos_2_heads.html [zImage_v0.6.0_file]: https://3mdeb.com/open-source-firmware/Dasharo/raptor-cs_talos-2/v0.6.0/raptor-cs_talos-2_zImage_v0.6.0.bundled [zImage_v0.6.0_hash]: https://3mdeb.com/open-source-firmware/Dasharo/raptor-cs_talos-2/v0.6.0/raptor-cs_talos-2_zImage_v0.6.0.bundled.sha256 [zImage_v0.6.0_sig]: https://3mdeb.com/open-source-firmware/Dasharo/raptor-cs_talos-2/v0.6.0/raptor-cs_talos-2_zImage_v0.6.0.bundled.sha256.sig diff --git a/main.py b/main.py new file mode 100644 index 0000000000..100c156f4e --- /dev/null +++ b/main.py @@ -0,0 +1,14 @@ +def define_env(env): + """ Define macros for MkDocs """ + + @env.macro + def subscribe_form(list_id, btn_text): + return ( + f'' + ) diff --git a/mkdocs.yml b/mkdocs.yml index 2492701174..a2e312523c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -85,6 +85,7 @@ plugins: shadow: true manual: false - search + - macros - mkdocs-video - redirects: redirect_maps: diff --git a/requirements.txt b/requirements.txt index d7196c43a6..aad420686b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -44,3 +44,4 @@ urllib3==2.2.2 virtualenv==20.26.3 watchdog==4.0.2 markdown-grid-tables==0.4.0 +mkdocs-macros-plugin From 5ba06fcd564c6922189d3d7550157e17a6b4c034 Mon Sep 17 00:00:00 2001 From: Artur Raglis Date: Fri, 4 Apr 2025 18:12:04 +0200 Subject: [PATCH 040/133] requirements.txt: set mkdocs-macros-plugin to v1.3.7 Signed-off-by: Artur Raglis --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index aad420686b..76efebffa5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -44,4 +44,4 @@ urllib3==2.2.2 virtualenv==20.26.3 watchdog==4.0.2 markdown-grid-tables==0.4.0 -mkdocs-macros-plugin +mkdocs-macros-plugin==1.3.7 From 38e0bbfa156575d2e4dda5d33bce00488f493fcf Mon Sep 17 00:00:00 2001 From: Artur Raglis Date: Tue, 8 Apr 2025 15:04:42 +0200 Subject: [PATCH 041/133] main.py: fix trailing whitespace Signed-off-by: Artur Raglis --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index 100c156f4e..98bd0596f9 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,6 @@ def define_env(env): """ Define macros for MkDocs """ - + @env.macro def subscribe_form(list_id, btn_text): return ( From e2dda042e1bdc499b1a25d7c8a68ab8287c3bfbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Thu, 10 Apr 2025 15:02:56 +0200 Subject: [PATCH 042/133] docs/dev-proc/versioning.md: Add prod versioning guideline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/dev-proc/versioning.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/dev-proc/versioning.md b/docs/dev-proc/versioning.md index 1289580c45..68887de3b6 100644 --- a/docs/dev-proc/versioning.md +++ b/docs/dev-proc/versioning.md @@ -109,3 +109,18 @@ e.g. PC Engines. Examples: Most recent status should be reflected in [3mdeb-secpack](https://github.com/3mdeb/3mdeb-secpack) repository. + +## Promotion to production-level versioning (v1.0.0 and up) + +A release may be promoted to v1.0.0 once it meets the following criteria: + +- Historical Foundation: There have been at least two releases targeting this + platform or one of its variants, targeting diverse user bases, over a span of + no fewer than five months. +- Sales Validation: Internal metrics confirm that a significant volume of + hardware devices were sold over the stated period. +- Testing Metrics: A minimum of 800 tests executed and a minimum pass rate of + 98%. + +A release not meeting these criteria may only use a version number with 0 as its +major component. From f037706f4eb5257ab48ccea363ee41de561da712 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Mon, 7 Apr 2025 14:56:57 +0200 Subject: [PATCH 043/133] docs/dev-proc/source-code-structure.md: add commit guidelines MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This has been agreed on a meeting of 7th Feb 2025 and agreed by: - Beata Skierka - Krystian Hebel - Maciej Pijanowski - Michał Żygowski - Michał Kopeć - Piotr Król Signed-off-by: Maciej Pijanowski --- docs/dev-proc/source-code-structure.md | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/docs/dev-proc/source-code-structure.md b/docs/dev-proc/source-code-structure.md index 1237151788..e7bb2c8c07 100644 --- a/docs/dev-proc/source-code-structure.md +++ b/docs/dev-proc/source-code-structure.md @@ -33,6 +33,34 @@ git submodule update --init --checkout git remote add upstream https://review.coreboot.org/coreboot.git ``` +## Commit message guidelines + +### Commit quality + +We keep patches for many repositories, but mainly for +[coreboot](https://github.com/Dasharo/coreboot/) and [edk2](https://github.com/Dasharo/edk2). +Even when creating commits in our forks, we should follow the guidelines +of the respective upstream projects, so the future upstream process is easier. + +In general, we want ensure that commits getting merged are of a similar quality +as required by upstream projects +([guidelines for coreboot](https://doc.coreboot.org/contributing/gerrit_guidelines.html)). + +We want to stress specifically on the following aspects: +* each commit can be built, +* each commit has body message, providing more context, and explaining **why** +the given change was necessary, +* before merging a PR, we squash the changes if necessary, to achieve a similar +granularity as if we would be sending the patch for upstream review. + +### Upstream-Status + +This is an extra tag in git commit body inspired by how patches are maintained +in the [Yocto Project](https://docs.yoctoproject.org/contributor-guide/recipe-style-guide.html#patch-upstream-status). + +The goal is to keep track of which patches should (eventually) be upstreamed, +and which patches are Dasharo-specific. + ## Tags Tags for Dasharo releases across repositories in the Dasharo GitHub organization From ad4b9e086edbcfee034d60714f2ce394f8eebc15 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Mon, 7 Apr 2025 15:57:45 +0200 Subject: [PATCH 044/133] docs/dev-proc/source-code-structure.md: add Upstream-Status list Signed-off-by: Maciej Pijanowski --- docs/dev-proc/source-code-structure.md | 33 ++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/dev-proc/source-code-structure.md b/docs/dev-proc/source-code-structure.md index e7bb2c8c07..ddcb6d022a 100644 --- a/docs/dev-proc/source-code-structure.md +++ b/docs/dev-proc/source-code-structure.md @@ -61,6 +61,39 @@ in the [Yocto Project](https://docs.yoctoproject.org/contributor-guide/recipe-st The goal is to keep track of which patches should (eventually) be upstreamed, and which patches are Dasharo-specific. +Currently, following `Upstream-Status` tags are available to choose from: + +**`Backport [revision]`** + +Patch has been backported from upstream. We should provide unique +identification of the original source of the patch. Possible values for +`revision`: + +* `CB:ID` - for coreboot gerrit ID, such as `CB:86758`, translating to: +[CB:86750](https://review.coreboot.org/c/coreboot/+/86750) +* git revision of the upstream project +* link to the mailing message, where the path has been submitted + +**`Inappropriate [reason]`** + +We believe that patch is not applicable for the upstream project, and provide +some reasining for it. Possible values for `reason`: + +* `Dasharo downstream` - patch specific to Dasharo distribution +* other explanation - although we should try to avoid it + +**`Pending`** + +Patch classified as one for sending upstream, but not yet submitted. + +**`Submitted [where]`** + +Submitted to upstream. Possible value for `where`: + +* `CB:ID` - for coreboot gerrit ID, such as `CB:86758`, translating to: +[CB:86750](https://review.coreboot.org/c/coreboot/+/86750) +* for other cases, link to the review system should be provided + ## Tags Tags for Dasharo releases across repositories in the Dasharo GitHub organization From fbf5be73c47474aa82dad1c72f2bbaf68703078e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Wed, 19 Mar 2025 12:31:28 +0100 Subject: [PATCH 045/133] docs/variants/dell_optiplex/releases.md: Update microcode description MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- docs/variants/dell_optiplex/releases.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/variants/dell_optiplex/releases.md b/docs/variants/dell_optiplex/releases.md index fcac61ab48..caa7054acd 100644 --- a/docs/variants/dell_optiplex/releases.md +++ b/docs/variants/dell_optiplex/releases.md @@ -63,9 +63,9 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/dasharo/dell + [License](https://github.com/Dasharo/edk2/blob/f3e18c6c/License.txt) - [Dasharo iPXE fork based on 838611b34e revision 35d84756](https://github.com/Dasharo/ipxe/tree/35d84756) + [License](https://github.com/Dasharo/ipxe/blob/35d84756/COPYING.GPLv2) -- [Intel microcode based on IVB E1/L1 0x00000021 revision microcode-20240531](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-3a-09) +- [Intel microcode version IVB E1/L1 0x21 13/02/2019](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-3a-09) + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240531/license) -- [Intel microcode based on SNB D2/G1/Q0 0x0000002f revision microcode-20240531](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-2a-07) +- [Intel microcode version SNB D2/G1/Q0 0x2f 17/02/2019](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240531/intel-ucode/06-2a-07) + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240531/license) [dell_optiplex_7010_9010_v0.1.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/dell_optiplex_7010_9010/v0.1.1/dell_optiplex_7010_9010_v0.1.1.rom.sha256 From 8e95d4cab373f02ec530163783315fa54b170874 Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Fri, 18 Apr 2025 16:02:23 +0200 Subject: [PATCH 046/133] docs/unified/msi/hcl.md: Move tables to separate files Signed-off-by: Eduard Kaverinskyi --- docs/unified/msi/hcl.md | 177 ++++-------------- .../resources/hcl/cpu/pro-z690-a-wifi-ddr4.md | 40 ++++ .../resources/hcl/cpu/pro-z790-p-wifi-ddr4.md | 21 +++ docs/unified/resources/hcl/gpu/manual.md | 13 ++ .../resources/hcl/gpu/z690-a-automatic.md | 26 +++ .../hcl/memory/pro-z690-a-wifi-ddr4.md | 40 ++++ .../resources/hcl/memory/pro-z690-a-wifi.md | 8 + .../hcl/memory/pro-z790-p-wifi-ddr4.md | 6 + .../resources/hcl/memory/pro-z790-p-wifi.md | 6 + mkdocs.yml | 11 ++ requirements.txt | 1 + 11 files changed, 213 insertions(+), 136 deletions(-) create mode 100644 docs/unified/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md create mode 100644 docs/unified/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md create mode 100644 docs/unified/resources/hcl/gpu/manual.md create mode 100644 docs/unified/resources/hcl/gpu/z690-a-automatic.md create mode 100644 docs/unified/resources/hcl/memory/pro-z690-a-wifi-ddr4.md create mode 100644 docs/unified/resources/hcl/memory/pro-z690-a-wifi.md create mode 100644 docs/unified/resources/hcl/memory/pro-z790-p-wifi-ddr4.md create mode 100644 docs/unified/resources/hcl/memory/pro-z790-p-wifi.md diff --git a/docs/unified/msi/hcl.md b/docs/unified/msi/hcl.md index d2d675f8a6..3557e4a9f1 100644 --- a/docs/unified/msi/hcl.md +++ b/docs/unified/msi/hcl.md @@ -34,63 +34,18 @@ hardware.
=== "PRO Z690-A (WIFI) (DDR4)" - | CPU Model | Dasharo version | Source | - |:---------:|:----------------------:|:---------:| - | 12th Gen Intel(R) Core(TM) i3-12100 | v1.1.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i3-12100T | v1.1.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12400 | v1.0.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12400 | v1.1.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12400F | - | [Github PR][3] | - | 12th Gen Intel(R) Core(TM) i5-12400F | v1.1.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12400F | v1.1.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12400F | v1.1.3 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12500T | v1.1.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12600 | v1.1.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12600K | v1.0.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12600K | v1.1.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12600K | v1.1.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12600K | v1.1.1-rc4 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12600K | v1.1.2 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12600K | v1.1.3 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i7-12700K | v1.0.0 | [Qubes HCL reports][2] | - | 12th Gen Intel(R) Core(TM) i7-12700K | v1.1.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i7-12700K | v1.1.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i7-12700K | v1.1.2 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i7-12700K | v1.1.3 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i7-12700KF | v1.1.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i9-12900K | v0.4.0 | [Qubes HCL reports][1] | - | 12th Gen Intel(R) Core(TM) i9-12900K | v1.1.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i9-12900K | v1.1.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i9-12900K | v1.1.2 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i9-12900KF | v1.1.1 | [Github PR][4] | - | 12th Gen Intel(R) Core(TM) i9-12900KS | v1.1.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i9-12900T | v1.1.0 | Dasharo HCL Report | - | 13th Gen Intel(R) Core(TM) i5-13600K | v0.9.0 | Dasharo HCL Report | - | 13th Gen Intel(R) Core(TM) i5-13600K | v1.1.2 | Dasharo HCL Report | - | 14th Gen Intel(R) Core(TM) i7-14700K | v0.9.0 | Dasharo HCL Report | - - [1]: https://forum.qubes-os.org/t/msi-pro-z690-a-wifi-ddr4-with-alder-lake-12900k/11490/6 - [2]: https://groups.google.com/g/qubes-users/c/lGOjuApLD_o/m/TBZN0PsXEgAJ + {% + include-markdown "unified/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md" + start="" + end="" + %} === "PRO Z790-P (WIFI) (DDR4)" - | CPU Model | Dasharo version | Source | - |:---------:|:----------------------:|:---------:| - | 12th Gen Intel(R) Core(TM) i5-12500 | v0.9.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12500 | v0.9.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12600K | v0.9.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12600K | v0.9.1 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i5-12600K | v0.9.2 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i7-12700K | v0.9.0 | Dasharo HCL Report | - | 12th Gen Intel(R) Core(TM) i7-12700K | v0.9.1 | Dasharo HCL Report | - | 13th Gen Intel(R) Core(TM) i5-13600K | v0.9.0 | Dasharo HCL Report | - | 13th Gen Intel(R) Core(TM) i5-13600K | v0.9.1 | Dasharo HCL Report | - | 13th Gen Intel(R) Core(TM) i5-13700K | v0.9.1 | Dasharo HCL Report | - | 13th Gen Intel(R) Core(TM) i9-13900K | v0.9.0 | Dasharo HCL Report | - | 14th Gen Intel(R) Core(TM) i9-14900K | v0.9.0 | Dasharo HCL Report | - | 14th Gen Intel(R) Core(TM) i9-14900K | v0.9.1 | Dasharo HCL Report | - | 14th Gen Intel(R) Core(TM) i9-14900K | v0.9.2 | Dasharo HCL Report | - | 14th Gen Intel(R) Core(TM) i9-14900KF | v0.9.0 | Dasharo HCL Report | - | 14th Gen Intel(R) Core(TM) i9-14900KS | v0.9.1 | Dasharo HCL Report | + {% + include-markdown "unified/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md" + start="" + end="" + %}
@@ -135,61 +90,34 @@ hardware.
=== "PRO Z690-A (WIFI) DDR4" - | Manufacturer | Part Number | Size | Speed | Configuration 1/2/4 | Dasharo version | Source | - |:------------:|:-----------:|:----:|:-----:|:-------------------:|:---------------:|:------:| - | Corsair | CMH16GX4M2E3200C16 | 8192 MB | 2133 MT/s (PC4-17000) | -/-/✔ | v1.1.1 | Dasharo HCL report | - | Corsair | CMK16GX4M1D3000C16 | 16384 MB | 2133 MT/s (PC4-17000) | ✔/-/- | v1.1.1 | Dasharo HCL report | - | Corsair | CMK16GX4M2B3200C16 | 8192 MB | 2133 MT/s (PC4-17000) | -/-/✔ | v1.1.1 | Dasharo HCL report | - | Corsair | CMK32GX4M2B3200C16 | 16384 MB | 2133 MT/s (PC4-17000) | ✔/-/- | v1.0.0 | Dasharo HCL report | - | Corsair | CMK32GX4M2E3200C16 | 16384 MB | 2133 MT/s (PC4-17000) | -/-/✔ | v1.1.0 | Dasharo HCL report | - | Corsair | CMK32GX4M2E3200C16 | 16384 MB | 2133 MT/s (PC4-17000) | ✔/-/- | v1.1.1 | Dasharo HCL report | - | Corsair | CMK64GX4M2E3200C16 | 32768 MB | 2133 MT/s (PC4-17000) | ✔/-/- | v1.1.1 | Dasharo HCL report | - | Crucial Technology | BL16G32C16U4B.16FE | 16384 MB | 2666 MT/s (PC4-21300) | ✔/-/- | v1.1.0 | Dasharo HCL report | - | Crucial Technology | BL16G32C16U4B.16FE | 16384 MB | 2666 MT/s (PC4-21300) | ✔/-/- | v1.1.1 | Dasharo HCL report | - | Crucial Technology | BLS16G4D32AESB.M16FE | 16384 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.1.1 | Dasharo HCL report | - | Crucial Technology | CT8G4DFS8266.C8FJ | 8192 MB | 2666 MT/s (PC4-21300) | ✔/-/- | v1.1.0 | Dasharo HCL report | - | Essencore Limited (former ISD Technology Limited) | KD4AGU880-36A180X | 16384 MB | 2666 MT/s (PC4-21300) | -/-/✔ | v1.1.1 | Dasharo HCL report | - | G Skill Intl | F4-3600C18-32GVK | 32768 MB | 2666 MT/s (PC4-21300) | ✔/-/- | v1.1.2 | Dasharo HCL report | - | Kingston | KF3200C16D4/16GX | 16384 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.1 | Dasharo HCL report | - | Kingston | KF3200C16D4/16GX | 16384 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.1.1 | Dasharo HCL report | - | Kingston | KF3200C16D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.0 | Dasharo HCL report | - | Kingston | KF3200C16D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.1 | Dasharo HCL report | - | Kingston | KF3200C16D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.1.1 | Dasharo HCL report | - | Kingston | KF3600C16D4/16GX | 16384 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.1 | Dasharo HCL report | - | Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v0.9.0 | Dasharo HCL report | - | Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.0.0 | Dasharo HCL report | - | Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.0 | Dasharo HCL report | - | Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.1 | Dasharo HCL report | - | Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.1-rc4 | Dasharo HCL report | - | Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.2 | Dasharo HCL report | - | Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.3 | Dasharo HCL report | - | Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.0.0 | Dasharo HCL report | - | Kingston | KF3600C18D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.2 | Dasharo HCL report | - | Kingston | KF3600C18D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.1.1 | Dasharo HCL report | - | Kingston | KF3600C18D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.1.3 | Dasharo HCL report | - | Patriot Memory | 4400 C19 Series | 8192 MB | 2133 MT/s (PC4-17000) | ✔/-/- | v1.0.0 | Dasharo HCL report | - | Samsung | M378A2G43AB3-CWE | 16384 MB | 3200 MT/s (PC4-25600) | ✔/-/- | v1.1.1 | Dasharo HCL report | - | Silicon Power Computer & Communications | | 16384 MB | 3200 MT/s (PC4-25600) | -/-/✔ | v1.1.1 | Dasharo HCL report | - | Team Group Inc. | TEAMGROUP-UD4-3200 | 16384 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.2 | Dasharo HCL report | - | Thermaltake Technology Co Ltd | RG26D408GX2-3600C18A | 8192 MB | 2666 MT/s (PC4-21300) | ✔/-/- | v1.1.0 | Dasharo HCL report | + {% + include-markdown "unified/resources/hcl/memory/pro-z690-a-wifi-ddr4.md" + start="" + end="" + %} + === "PRO Z690-A (WIFI)" + {% + include-markdown "unified/resources/hcl/memory/pro-z690-a-wifi.md" + start="" + end="" + %} - | DIMM vendor | Part Number | Size | SPD profile | Configuration 1/2/4 | - |:-----------:|:-----------:|:----:|:-----------:|:-------------------:| - | Kingston | KF556C40BB/8 |8GB | 5600MT/s 40-40-40 1.25V | ✔/✔/✔ | - | Crucial | CT8G48C40U5.M4A1/8 |8GB | 4800MT/s 40-39-39 1.1V | ✔/✔/✔ | - | ADATA | AD5U48008G-S |8GB | 4800MT/s 40-40-40 1.1V | ✔/✔/✔ | === "PRO Z790-P (WIFI) DDR4" - | DIMM vendor | Part Number | Size | SPD profile | Configuration 1/2/4 | - |:-----------:|:-----------:|:----:|:-----------:|:-------------------:| - | | | | | | + {% + include-markdown "unified/resources/hcl/memory/pro-z790-p-wifi-ddr4.md" + start="" + end="" + %} === "PRO Z790-P (WIFI)" - | DIMM vendor | Part Number | Size | SPD profile | Configuration 1/2/4 | - |:-----------:|:-----------:|:----:|:-----------:|:-------------------:| - | | | | | | + {% + include-markdown "unified/resources/hcl/memory/pro-z790-p-wifi.md" + start="" + end="" + %}
@@ -230,16 +158,11 @@ hardware. Information about GPU might be read from GPU package or documentation. - | GPU name | Memory size | Memory type | Bandwidth | PCI-E Gen | Multi-Graphics Technology | Results | - |:----------------:|:-----------:|:------------:|:---------:|:---------:|:-------------------------:|:----------------------:| - | AMD Radeon RX 5700 XT | 8 GB | GDDR6 | 448GB/s | Gen4 | 1 | | - | NVIDIA GeForce GTX 1060 | 3072 MB | GDDR5 | 192GB/s | Gen3 | 1 | [Qubes HCL reports][1] | - | MSI Radeon RX 6950 XT | 16 GB | GDDR6 | 576GB/s | Gen4 | 1 | | - | EVGA NVIDIA RTX 2080 | 8 GB | GDDR6 | 448GB/s | Gen3 | 1 | | - | PNY NVIDIA RTX A5000 | 24 GB | GDDR6 | 768GB/s | Gen4 | 1 | | - | NVIDIA GeForce GTX 1080TI | 11264 MB | GDDR5X | 484GB/s | Gen3 | 1 | [Qubes HCL reports][2] | - | MSI Radeon RX 6500 XT MECH 2X 4G OC | 4 GB | GDDR6 | 180GB/s | Gen4 | 1 | Works only on Dasharo v1.1.0 or newer | - | MSI GeForce RTX 3060 GAMING Z TRIO LHR | 12 GB | GDDR6 | 358GB/s | Gen4 | 1 | | + {% + include-markdown "unified/resources/hcl/gpu/manual.md" + start="" + end="" + %} === "GPU HCL (Z690-A automatic)" @@ -255,29 +178,11 @@ hardware. Please note it doesn't mean heterogeous or homogeneous configuration, it just mean there were many VGA controllers detected in given report. - | Vendor Name | GPU Code Name | Model | PCI VendorID:ModelID | Multi-Graphics Config | Results | - |:----------------:|:-------------:|:-----:|:---------------------:|:---------------------:|:-------:| - | Advanced Micro Devices, Inc. | AMD/ATI Device | 1002 | 1002:7480 | No | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Ellesmere | Radeon RX 470/480/570/570X/580/580X/590 | 1002:67df | No | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Navi 10 | Radeon RX 5600 OEM/5600 XT / 5700/5700 XT | 1002:731f | No | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Navi 10 | Radeon RX 5600 OEM/5600 XT / 5700/5700 XT | 1002:731f | Yes (2) | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Navi 21 | Radeon RX 6800/6800 XT / 6900 XT | 1002:73bf | No | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Navi 22 | Radeon RX 6700/6700 XT/6750 XT / 6800M | 1002:73df | No | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Navi 22 | Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT | 1002:73df | No | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Navi 23 | Radeon RX 6600/6600 XT/6600M | 1002:73ff | No | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Navi 23 | Radeon RX 6650 XT | 1002:73ef | No | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Device | 1002 | 1002:744c | No | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Device | 1002 | 1002:744c | Yes (2) | Dasharo HCL report | - | Advanced Micro Devices, Inc. | AMD/ATI Device | 1002 | 1002:7480 | No | Dasharo HCL report | - | NVIDIA Corporation | GA106 | Geforce RTX 3050 | 10de:2507 | No | Dasharo HCL report | - | NVIDIA Corporation | GA106 | RTX A2000 | 10de:2531 | No | Dasharo HCL report | - | NVIDIA Corporation | GK104 | GeForce GTX 660 Ti | 10de:1183 | No | Dasharo HCL report | - | NVIDIA Corporation | GP106 | GeForce GTX 1060 3GB | 10de:1c02 | No | Dasharo HCL report | - | NVIDIA Corporation | GP106 | GeForce GTX 1060 3GB | 10de:1c02 | Yes (2) | Dasharo HCL report | - | NVIDIA Corporation | GP108 | GeForce GT 1030 | 10de:1d01 | No | Dasharo HCL report | - | NVIDIA Corporation | TU104GL | Quadro RTX 4000 | 10de:1eb1 | Yes (2) | Dasharo HCL report | - | NVIDIA Corporation | TU116 | GeForce GTX 1650 SUPER | 10de:2187 | No | Dasharo HCL report | - | NVIDIA Corporation | TU117GLM | Quadro T1000 Mobile | 10de:1fb0 | No | Dasharo HCL report | + {% + include-markdown "unified/resources/hcl/gpu/z690-a-automatic.md" + start="" + end="" + %} For details how to maintain this documentation please consult [Dasharo HCL Maintainer documentation](../../dev-proc/hcl-maintainer.md). diff --git a/docs/unified/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md b/docs/unified/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md new file mode 100644 index 0000000000..6344ae0feb --- /dev/null +++ b/docs/unified/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md @@ -0,0 +1,40 @@ +# PRO Z690 A (WIFI) (DDR4) + +| CPU Model | Dasharo version | Source | +|:---------:|:----------------------:|:---------:| +| 12th Gen Intel(R) Core(TM) i3-12100 | v1.1.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i3-12100T | v1.1.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12400 | v1.0.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12400 | v1.1.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12400F | - | [Github PR][3] | +| 12th Gen Intel(R) Core(TM) i5-12400F | v1.1.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12400F | v1.1.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12400F | v1.1.3 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12500T | v1.1.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12600 | v1.1.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12600K | v1.0.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12600K | v1.1.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12600K | v1.1.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12600K | v1.1.1-rc4 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12600K | v1.1.2 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12600K | v1.1.3 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i7-12700K | v1.0.0 | [Qubes HCL reports][2] | +| 12th Gen Intel(R) Core(TM) i7-12700K | v1.1.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i7-12700K | v1.1.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i7-12700K | v1.1.2 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i7-12700K | v1.1.3 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i7-12700KF | v1.1.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i9-12900K | v0.4.0 | [Qubes HCL reports][1] | +| 12th Gen Intel(R) Core(TM) i9-12900K | v1.1.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i9-12900K | v1.1.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i9-12900K | v1.1.2 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i9-12900KF | v1.1.1 | [Github PR][4] | +| 12th Gen Intel(R) Core(TM) i9-12900KS | v1.1.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i9-12900T | v1.1.0 | Dasharo HCL Report | +| 13th Gen Intel(R) Core(TM) i5-13600K | v0.9.0 | Dasharo HCL Report | +| 13th Gen Intel(R) Core(TM) i5-13600K | v1.1.2 | Dasharo HCL Report | +| 14th Gen Intel(R) Core(TM) i7-14700K | v0.9.0 | Dasharo HCL Report | + +[1]: https://forum.qubes-os.org/t/msi-pro-z690-a-wifi-ddr4-with-alder-lake-12900k/11490/6 +[2]: https://groups.google.com/g/qubes-users/c/lGOjuApLD_o/m/TBZN0PsXEgAJ + diff --git a/docs/unified/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md b/docs/unified/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md new file mode 100644 index 0000000000..09f9efdcd7 --- /dev/null +++ b/docs/unified/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md @@ -0,0 +1,21 @@ +# PRO Z690-A (WIFI) (DDR4) + +| CPU Model | Dasharo version | Source | +|:---------:|:----------------------:|:---------:| +| 12th Gen Intel(R) Core(TM) i5-12500 | v0.9.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12500 | v0.9.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12600K | v0.9.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12600K | v0.9.1 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i5-12600K | v0.9.2 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i7-12700K | v0.9.0 | Dasharo HCL Report | +| 12th Gen Intel(R) Core(TM) i7-12700K | v0.9.1 | Dasharo HCL Report | +| 13th Gen Intel(R) Core(TM) i5-13600K | v0.9.0 | Dasharo HCL Report | +| 13th Gen Intel(R) Core(TM) i5-13600K | v0.9.1 | Dasharo HCL Report | +| 13th Gen Intel(R) Core(TM) i5-13700K | v0.9.1 | Dasharo HCL Report | +| 13th Gen Intel(R) Core(TM) i9-13900K | v0.9.0 | Dasharo HCL Report | +| 14th Gen Intel(R) Core(TM) i9-14900K | v0.9.0 | Dasharo HCL Report | +| 14th Gen Intel(R) Core(TM) i9-14900K | v0.9.1 | Dasharo HCL Report | +| 14th Gen Intel(R) Core(TM) i9-14900K | v0.9.2 | Dasharo HCL Report | +| 14th Gen Intel(R) Core(TM) i9-14900KF | v0.9.0 | Dasharo HCL Report | +| 14th Gen Intel(R) Core(TM) i9-14900KS | v0.9.1 | Dasharo HCL Report | + diff --git a/docs/unified/resources/hcl/gpu/manual.md b/docs/unified/resources/hcl/gpu/manual.md new file mode 100644 index 0000000000..5b39859698 --- /dev/null +++ b/docs/unified/resources/hcl/gpu/manual.md @@ -0,0 +1,13 @@ +# GPU HCL (manual) + +| GPU name | Memory size | Memory type | Bandwidth | PCI-E Gen | Multi-Graphics Technology | Results | +|:----------------:|:-----------:|:------------:|:---------:|:---------:|:-------------------------:|:----------------------:| +| AMD Radeon RX 5700 XT | 8 GB | GDDR6 | 448GB/s | Gen4 | 1 | | +| NVIDIA GeForce GTX 1060 | 3072 MB | GDDR5 | 192GB/s | Gen3 | 1 | [Qubes HCL reports][1] | +| MSI Radeon RX 6950 XT | 16 GB | GDDR6 | 576GB/s | Gen4 | 1 | | +| EVGA NVIDIA RTX 2080 | 8 GB | GDDR6 | 448GB/s | Gen3 | 1 | | +| PNY NVIDIA RTX A5000 | 24 GB | GDDR6 | 768GB/s | Gen4 | 1 | | +| NVIDIA GeForce GTX 1080TI | 11264 MB | GDDR5X | 484GB/s | Gen3 | 1 | [Qubes HCL reports][2] | +| MSI Radeon RX 6500 XT MECH 2X 4G OC | 4 GB | GDDR6 | 180GB/s | Gen4 | 1 | Works only on Dasharo v1.1.0 or newer | +| MSI GeForce RTX 3060 GAMING Z TRIO LHR | 12 GB | GDDR6 | 358GB/s | Gen4 | 1 | | + diff --git a/docs/unified/resources/hcl/gpu/z690-a-automatic.md b/docs/unified/resources/hcl/gpu/z690-a-automatic.md new file mode 100644 index 0000000000..79e7849f30 --- /dev/null +++ b/docs/unified/resources/hcl/gpu/z690-a-automatic.md @@ -0,0 +1,26 @@ +# Z690-A automatic + +| Vendor Name | GPU Code Name | Model | PCI VendorID:ModelID | Multi-Graphics Config | Results | +|:----------------:|:-------------:|:-----:|:---------------------:|:---------------------:|:-------:| +| Advanced Micro Devices, Inc. | AMD/ATI Device | 1002 | 1002:7480 | No | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Ellesmere | Radeon RX 470/480/570/570X/580/580X/590 | 1002:67df | No | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Navi 10 | Radeon RX 5600 OEM/5600 XT / 5700/5700 XT | 1002:731f | No | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Navi 10 | Radeon RX 5600 OEM/5600 XT / 5700/5700 XT | 1002:731f | Yes (2) | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Navi 21 | Radeon RX 6800/6800 XT / 6900 XT | 1002:73bf | No | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Navi 22 | Radeon RX 6700/6700 XT/6750 XT / 6800M | 1002:73df | No | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Navi 22 | Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT | 1002:73df | No | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Navi 23 | Radeon RX 6600/6600 XT/6600M | 1002:73ff | No | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Navi 23 | Radeon RX 6650 XT | 1002:73ef | No | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Device | 1002 | 1002:744c | No | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Device | 1002 | 1002:744c | Yes (2) | Dasharo HCL report | +| Advanced Micro Devices, Inc. | AMD/ATI Device | 1002 | 1002:7480 | No | Dasharo HCL report | +| NVIDIA Corporation | GA106 | Geforce RTX 3050 | 10de:2507 | No | Dasharo HCL report | +| NVIDIA Corporation | GA106 | RTX A2000 | 10de:2531 | No | Dasharo HCL report | +| NVIDIA Corporation | GK104 | GeForce GTX 660 Ti | 10de:1183 | No | Dasharo HCL report | +| NVIDIA Corporation | GP106 | GeForce GTX 1060 3GB | 10de:1c02 | No | Dasharo HCL report | +| NVIDIA Corporation | GP106 | GeForce GTX 1060 3GB | 10de:1c02 | Yes (2) | Dasharo HCL report | +| NVIDIA Corporation | GP108 | GeForce GT 1030 | 10de:1d01 | No | Dasharo HCL report | +| NVIDIA Corporation | TU104GL | Quadro RTX 4000 | 10de:1eb1 | Yes (2) | Dasharo HCL report | +| NVIDIA Corporation | TU116 | GeForce GTX 1650 SUPER | 10de:2187 | No | Dasharo HCL report | +| NVIDIA Corporation | TU117GLM | Quadro T1000 Mobile | 10de:1fb0 | No | Dasharo HCL report | + diff --git a/docs/unified/resources/hcl/memory/pro-z690-a-wifi-ddr4.md b/docs/unified/resources/hcl/memory/pro-z690-a-wifi-ddr4.md new file mode 100644 index 0000000000..b83e463fd5 --- /dev/null +++ b/docs/unified/resources/hcl/memory/pro-z690-a-wifi-ddr4.md @@ -0,0 +1,40 @@ +# MSI Z690-A (WIFI) (DDR4) + +| Manufacturer | Part Number | Size | Speed | Configuration 1/2/4 | Dasharo version | Source | +|:------------:|:-----------:|:----:|:-----:|:-------------------:|:---------------:|:------:| +| Corsair | CMH16GX4M2E3200C16 | 8192 MB | 2133 MT/s (PC4-17000) | -/-/✔ | v1.1.1 | Dasharo HCL report | +| Corsair | CMK16GX4M1D3000C16 | 16384 MB | 2133 MT/s (PC4-17000) | ✔/-/- | v1.1.1 | Dasharo HCL report | +| Corsair | CMK16GX4M2B3200C16 | 8192 MB | 2133 MT/s (PC4-17000) | -/-/✔ | v1.1.1 | Dasharo HCL report | +| Corsair | CMK32GX4M2B3200C16 | 16384 MB | 2133 MT/s (PC4-17000) | ✔/-/- | v1.0.0 | Dasharo HCL report | +| Corsair | CMK32GX4M2E3200C16 | 16384 MB | 2133 MT/s (PC4-17000) | -/-/✔ | v1.1.0 | Dasharo HCL report | +| Corsair | CMK32GX4M2E3200C16 | 16384 MB | 2133 MT/s (PC4-17000) | ✔/-/- | v1.1.1 | Dasharo HCL report | +| Corsair | CMK64GX4M2E3200C16 | 32768 MB | 2133 MT/s (PC4-17000) | ✔/-/- | v1.1.1 | Dasharo HCL report | +| Crucial Technology | BL16G32C16U4B.16FE | 16384 MB | 2666 MT/s (PC4-21300) | ✔/-/- | v1.1.0 | Dasharo HCL report | +| Crucial Technology | BL16G32C16U4B.16FE | 16384 MB | 2666 MT/s (PC4-21300) | ✔/-/- | v1.1.1 | Dasharo HCL report | +| Crucial Technology | BLS16G4D32AESB.M16FE | 16384 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.1.1 | Dasharo HCL report | +| Crucial Technology | CT8G4DFS8266.C8FJ | 8192 MB | 2666 MT/s (PC4-21300) | ✔/-/- | v1.1.0 | Dasharo HCL report | +| Essencore Limited (former ISD Technology Limited) | KD4AGU880-36A180X | 16384 MB | 2666 MT/s (PC4-21300) | -/-/✔ | v1.1.1 | Dasharo HCL report | +| G Skill Intl | F4-3600C18-32GVK | 32768 MB | 2666 MT/s (PC4-21300) | ✔/-/- | v1.1.2 | Dasharo HCL report | +| Kingston | KF3200C16D4/16GX | 16384 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.1 | Dasharo HCL report | +| Kingston | KF3200C16D4/16GX | 16384 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.1.1 | Dasharo HCL report | +| Kingston | KF3200C16D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.0 | Dasharo HCL report | +| Kingston | KF3200C16D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.1 | Dasharo HCL report | +| Kingston | KF3200C16D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.1.1 | Dasharo HCL report | +| Kingston | KF3600C16D4/16GX | 16384 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.1 | Dasharo HCL report | +| Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v0.9.0 | Dasharo HCL report | +| Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.0.0 | Dasharo HCL report | +| Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.0 | Dasharo HCL report | +| Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.1 | Dasharo HCL report | +| Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.1-rc4 | Dasharo HCL report | +| Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.2 | Dasharo HCL report | +| Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.3 | Dasharo HCL report | +| Kingston | KF3600C17D4/8GX | 8192 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.0.0 | Dasharo HCL report | +| Kingston | KF3600C18D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.2 | Dasharo HCL report | +| Kingston | KF3600C18D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.1.1 | Dasharo HCL report | +| Kingston | KF3600C18D4/32GX | 32768 MB | 2400 MT/s (PC4-19200) | ✔/-/- | v1.1.3 | Dasharo HCL report | +| Patriot Memory | 4400 C19 Series | 8192 MB | 2133 MT/s (PC4-17000) | ✔/-/- | v1.0.0 | Dasharo HCL report | +| Samsung | M378A2G43AB3-CWE | 16384 MB | 3200 MT/s (PC4-25600) | ✔/-/- | v1.1.1 | Dasharo HCL report | +| Silicon Power Computer & Communications | | 16384 MB | 3200 MT/s (PC4-25600) | -/-/✔ | v1.1.1 | Dasharo HCL report | +| Team Group Inc. | TEAMGROUP-UD4-3200 | 16384 MB | 2400 MT/s (PC4-19200) | -/-/✔ | v1.1.2 | Dasharo HCL report | +| Thermaltake Technology Co Ltd | RG26D408GX2-3600C18A | 8192 MB | 2666 MT/s (PC4-21300) | ✔/-/- | v1.1.0 | Dasharo HCL report | + diff --git a/docs/unified/resources/hcl/memory/pro-z690-a-wifi.md b/docs/unified/resources/hcl/memory/pro-z690-a-wifi.md new file mode 100644 index 0000000000..1e274efafd --- /dev/null +++ b/docs/unified/resources/hcl/memory/pro-z690-a-wifi.md @@ -0,0 +1,8 @@ +# PRO Z690-A (WIFI) + +| DIMM vendor | Part Number | Size | SPD profile | Configuration 1/2/4 | +|:-----------:|:-----------:|:----:|:-----------:|:-------------------:| +| Kingston | KF556C40BB/8 |8GB | 5600MT/s 40-40-40 1.25V | ✔/✔/✔ | +| Crucial | CT8G48C40U5.M4A1/8 |8GB | 4800MT/s 40-39-39 1.1V | ✔/✔/✔ | +| ADATA | AD5U48008G-S |8GB | 4800MT/s 40-40-40 1.1V | ✔/✔/✔ | + diff --git a/docs/unified/resources/hcl/memory/pro-z790-p-wifi-ddr4.md b/docs/unified/resources/hcl/memory/pro-z790-p-wifi-ddr4.md new file mode 100644 index 0000000000..12d3ae1686 --- /dev/null +++ b/docs/unified/resources/hcl/memory/pro-z790-p-wifi-ddr4.md @@ -0,0 +1,6 @@ +# PRO Z790-P (WIFI) (DDR4) + +| DIMM vendor | Part Number | Size | SPD profile | Configuration 1/2/4 | +|:-----------:|:-----------:|:----:|:-----------:|:-------------------:| +| | | | | | + diff --git a/docs/unified/resources/hcl/memory/pro-z790-p-wifi.md b/docs/unified/resources/hcl/memory/pro-z790-p-wifi.md new file mode 100644 index 0000000000..a79bcfca8e --- /dev/null +++ b/docs/unified/resources/hcl/memory/pro-z790-p-wifi.md @@ -0,0 +1,6 @@ +# PRO Z790-P (WIFI) + +| DIMM vendor | Part Number | Size | SPD profile | Configuration 1/2/4 | +|:-----------:|:-----------:|:----:|:-----------:|:-------------------:| +| | | | | | + diff --git a/mkdocs.yml b/mkdocs.yml index a2e312523c..cc3bcf33c2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -87,6 +87,17 @@ plugins: - search - macros - mkdocs-video + - include-markdown: + encoding: ascii + preserve_includer_indent: true + dedent: true + trailing_newlines: true + comments: true + rewrite_relative_urls: true + heading_offset: 0 + recursive: true + start: + end: - redirects: redirect_maps: 'common-coreboot-docs/dasharo_tools_suite.md': 'dasharo-tools-suite/overview.md' diff --git a/requirements.txt b/requirements.txt index 76efebffa5..54d3160494 100644 --- a/requirements.txt +++ b/requirements.txt @@ -45,3 +45,4 @@ virtualenv==20.26.3 watchdog==4.0.2 markdown-grid-tables==0.4.0 mkdocs-macros-plugin==1.3.7 +mkdocs-include-markdown-plugin From 0c10c98399fc249abbc8f2b615add8accd47574d Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Fri, 18 Apr 2025 16:26:44 +0200 Subject: [PATCH 047/133] docs/: fix orphan links Signed-off-by: Eduard Kaverinskyi --- .../resources/hcl/cpu/pro-z690-a-wifi-ddr4.md | 0 .../resources/hcl/cpu/pro-z790-p-wifi-ddr4.md | 0 .../{unified => }/resources/hcl/gpu/manual.md | 0 .../resources/hcl/gpu/z690-a-automatic.md | 0 .../hcl/memory/pro-z690-a-wifi-ddr4.md | 0 .../resources/hcl/memory/pro-z690-a-wifi.md | 0 .../hcl/memory/pro-z790-p-wifi-ddr4.md | 0 .../resources/hcl/memory/pro-z790-p-wifi.md | 0 docs/unified/msi/hcl.md | 20 +++++++++---------- 9 files changed, 10 insertions(+), 10 deletions(-) rename docs/{unified => }/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md (100%) rename docs/{unified => }/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md (100%) rename docs/{unified => }/resources/hcl/gpu/manual.md (100%) rename docs/{unified => }/resources/hcl/gpu/z690-a-automatic.md (100%) rename docs/{unified => }/resources/hcl/memory/pro-z690-a-wifi-ddr4.md (100%) rename docs/{unified => }/resources/hcl/memory/pro-z690-a-wifi.md (100%) rename docs/{unified => }/resources/hcl/memory/pro-z790-p-wifi-ddr4.md (100%) rename docs/{unified => }/resources/hcl/memory/pro-z790-p-wifi.md (100%) diff --git a/docs/unified/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md b/docs/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md similarity index 100% rename from docs/unified/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md rename to docs/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md diff --git a/docs/unified/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md b/docs/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md similarity index 100% rename from docs/unified/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md rename to docs/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md diff --git a/docs/unified/resources/hcl/gpu/manual.md b/docs/resources/hcl/gpu/manual.md similarity index 100% rename from docs/unified/resources/hcl/gpu/manual.md rename to docs/resources/hcl/gpu/manual.md diff --git a/docs/unified/resources/hcl/gpu/z690-a-automatic.md b/docs/resources/hcl/gpu/z690-a-automatic.md similarity index 100% rename from docs/unified/resources/hcl/gpu/z690-a-automatic.md rename to docs/resources/hcl/gpu/z690-a-automatic.md diff --git a/docs/unified/resources/hcl/memory/pro-z690-a-wifi-ddr4.md b/docs/resources/hcl/memory/pro-z690-a-wifi-ddr4.md similarity index 100% rename from docs/unified/resources/hcl/memory/pro-z690-a-wifi-ddr4.md rename to docs/resources/hcl/memory/pro-z690-a-wifi-ddr4.md diff --git a/docs/unified/resources/hcl/memory/pro-z690-a-wifi.md b/docs/resources/hcl/memory/pro-z690-a-wifi.md similarity index 100% rename from docs/unified/resources/hcl/memory/pro-z690-a-wifi.md rename to docs/resources/hcl/memory/pro-z690-a-wifi.md diff --git a/docs/unified/resources/hcl/memory/pro-z790-p-wifi-ddr4.md b/docs/resources/hcl/memory/pro-z790-p-wifi-ddr4.md similarity index 100% rename from docs/unified/resources/hcl/memory/pro-z790-p-wifi-ddr4.md rename to docs/resources/hcl/memory/pro-z790-p-wifi-ddr4.md diff --git a/docs/unified/resources/hcl/memory/pro-z790-p-wifi.md b/docs/resources/hcl/memory/pro-z790-p-wifi.md similarity index 100% rename from docs/unified/resources/hcl/memory/pro-z790-p-wifi.md rename to docs/resources/hcl/memory/pro-z790-p-wifi.md diff --git a/docs/unified/msi/hcl.md b/docs/unified/msi/hcl.md index 3557e4a9f1..6872650f5c 100644 --- a/docs/unified/msi/hcl.md +++ b/docs/unified/msi/hcl.md @@ -35,14 +35,14 @@ hardware. === "PRO Z690-A (WIFI) (DDR4)" {% - include-markdown "unified/resources/hcl/cpu/pro-z690-a-wifi-ddr4.md" + include-markdown "../../resources/hcl/cpu/pro-z690-a-wifi-ddr4.md" start="" end="" %} === "PRO Z790-P (WIFI) (DDR4)" {% - include-markdown "unified/resources/hcl/cpu/pro-z790-p-wifi-ddr4.md" + include-markdown "../../resources/hcl/cpu/pro-z790-p-wifi-ddr4.md" start="" end="" %} @@ -91,7 +91,7 @@ hardware. === "PRO Z690-A (WIFI) DDR4" {% - include-markdown "unified/resources/hcl/memory/pro-z690-a-wifi-ddr4.md" + include-markdown "../../resources/hcl/memory/pro-z690-a-wifi-ddr4.md" start="" end="" %} @@ -99,7 +99,7 @@ hardware. === "PRO Z690-A (WIFI)" {% - include-markdown "unified/resources/hcl/memory/pro-z690-a-wifi.md" + include-markdown "../../resources/hcl/memory/pro-z690-a-wifi.md" start="" end="" %} @@ -107,14 +107,14 @@ hardware. === "PRO Z790-P (WIFI) DDR4" {% - include-markdown "unified/resources/hcl/memory/pro-z790-p-wifi-ddr4.md" + include-markdown "../../resources/hcl/memory/pro-z790-p-wifi-ddr4.md" start="" end="" %} === "PRO Z790-P (WIFI)" {% - include-markdown "unified/resources/hcl/memory/pro-z790-p-wifi.md" + include-markdown "../../resources/hcl/memory/pro-z790-p-wifi.md" start="" end="" %} @@ -159,7 +159,7 @@ hardware. Information about GPU might be read from GPU package or documentation. {% - include-markdown "unified/resources/hcl/gpu/manual.md" + include-markdown "../../resources/hcl/gpu/manual.md" start="" end="" %} @@ -179,7 +179,7 @@ hardware. mean there were many VGA controllers detected in given report. {% - include-markdown "unified/resources/hcl/gpu/z690-a-automatic.md" + include-markdown "../../resources/hcl/gpu/z690-a-automatic.md" start="" end="" %} @@ -189,8 +189,8 @@ Maintainer documentation](../../dev-proc/hcl-maintainer.md). [1]: https://forum.qubes-os.org/t/msi-pro-z690-a-wifi-ddr4-with-alder-lake-12900k/11490/6 [2]: https://groups.google.com/g/qubes-users/c/lGOjuApLD_o/m/TBZN0PsXEgAJ -[3]: https://github.com/Dasharo/docs/pull/329 -[4]: https://github.com/Dasharo/docs/pull/693 +[3]: https://github.com/Dasharo/../../pull/329 +[4]: https://github.com/Dasharo/../../pull/693 ## Contributing From 7be4c377e06d4008c735c0595357e837347b2400 Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Fri, 18 Apr 2025 16:56:01 +0200 Subject: [PATCH 048/133] requirements.txt: lock mkdocs-include-markdown-plugin to 7.1.5 Signed-off-by: Eduard Kaverinskyi --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 54d3160494..e9a0f01f0b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -45,4 +45,4 @@ virtualenv==20.26.3 watchdog==4.0.2 markdown-grid-tables==0.4.0 mkdocs-macros-plugin==1.3.7 -mkdocs-include-markdown-plugin +mkdocs-include-markdown-plugin==7.1.5 From 37b1cd750bce6802ad9914726d191efffad441bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Fri, 18 Apr 2025 17:39:15 +0200 Subject: [PATCH 049/133] docs/unified/protectli/os-installation.md: update ESXi guide MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/protectli/os-installation.md | 31 ++++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/docs/unified/protectli/os-installation.md b/docs/unified/protectli/os-installation.md index 80c4648a18..879947d319 100644 --- a/docs/unified/protectli/os-installation.md +++ b/docs/unified/protectli/os-installation.md @@ -101,17 +101,36 @@ Installer images can be downloaded from the official ## ESXI -### Installation documentation +### Installation documentation (8.0U3e) -Official documentation can be found -[here](https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/7-0/esxi-installation-and-setup-7-0/installing-and-setting-up-esxi/installing-esxi/installing-esxi-interactively/install-esxi-interactivelly.html) +Follow the steps described +[here](https://www.servethehome.com/broadcom-vmware-esxi-8-0u3e-now-has-a-free-version/) +and install the free 8.0U3e version. + +It is **important to know** that the ESXi installer won't offer an option to +partition a drive, or install alongside an existing OS. To avoid wiping away +other OSes, it is best to plug in an additional drive. !!! note "Installation using only serial port" - Current versions of ESXI (8.0.3) do not support installing using + Current versions of ESXI (8.0U3e) do not support installing using only serial console. ### Installation images -Guide on how to download the installer image can be found on Brodacom's -[website](https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/6-7/esxi-installation-and-setup-6-7/installing-and-setting-up-esxi-install/before-you-install-esxi-install/download-the-esxi-installer-install.html). +The official installer image can be found on Brodacom's +[website](https://support.broadcom.com/group/ecx/free-downloads). + +### Setting up SSH + +To enable easy headless access, enable SSH server setup on startup, following +[this guide.](https://phoenixnap.com/kb/esxi-enable-ssh). The instructions are +the same, save for minor cosmetic UI differences in the screenshots. To sum it +up: + +* Log in to the Web UI hosted on your platform's IP +* Click on the gear icon to the left, dubbed as `Manage` +* Click on services +* Search for SSH +* Right click on the status and set the policy to `Start and stop with the + host` From 64358e9b0ab543ad66de52b7b5086e2ebbbf13c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Mon, 14 Apr 2025 17:08:40 +0200 Subject: [PATCH 050/133] unified/novacustom/firmware-update.md: cover Capsule Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Explain how a user should go about using `fwupd` to update firmware via a UEFI capsule. Cover which versions can make use of this method. Signed-off-by: Michał Kopeć --- docs/unified/novacustom/firmware-update.md | 51 ++++++++++++++++++---- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/docs/unified/novacustom/firmware-update.md b/docs/unified/novacustom/firmware-update.md index 48bbd4d8b7..2f0cc1265e 100644 --- a/docs/unified/novacustom/firmware-update.md +++ b/docs/unified/novacustom/firmware-update.md @@ -17,12 +17,6 @@ firmware version is currently installed on your device. ## Prerequisites - Depending on the firmware version, there may be manual steps required to ensure - that the firmware can be updated. `11th Gen` devices starting from version v1.5.0 - and `12th Gen` devices starting from version v1.7.0 have support for [Firmware - Update Mode](#firmware-update-mode). For older versions, please continue with - the [Updating older versions](#updating-older-versions) section. - Your firmware version can be checked by entering the [Dasharo Setup Menu](../../dasharo-menu-docs/overview.md#dasharo-menu-guides.md) using the ++f2++ key while booting. @@ -31,10 +25,51 @@ firmware version is currently installed on your device. > binaries themselves by following the steps under the [Manual > update](#manual-update) section. + ### Capsule Update via fwupd + + fwupd and Capsule Update are available starting with the following versions: + + | Generation | Version | + | ---------- | ------- | + | 11th | 1.6.0 | + | 12th | 1.8.0 | + | 14th | 1.0.0 | + + !!! note + + Capsule updates are only available when Intel ME is HAP-Disabled and the + AC adapter is connected to the laptop + + See [this Knowledge Base article](../../../dasharo-menu-docs/dasharo-system-features/#intel-management-engine-options) + for information about disabling the ME, or [Issue #1302](https://github.com/Dasharo/dasharo-issues/issues/1302) + for more context. + + To update your firmware, run the following commands: + + ```bash + $ sudo fwupdtool refresh + $ sudo fwupdtool update + ``` + + or use any other fwupd front-end of your choice, like GNOME Firmware Update. + Then, reboot your machine to apply the update. + + !!! warning + Powering off instead of rebooting as instructed by fwupd will result in + aborting the update. + ### Firmware Update Mode - If the currently installed Dasharo version supports Firmware Update Mode, follow - the steps outlined in the [generic Firmware Update documentation](../../guides/firmware-update.md#firmware-update-mode). + Firmware Update Mode is available starting with the following versions: + + | Generation | Version | + | ---------- | ------- | + | 11th | 1.5.0 | + | 12th | 1.7.0 | + | 14th | Any | + + To update using Firmware Update Mode, follow the + [generic Firmware Update documentation](../../guides/firmware-update.md#firmware-update-mode). Check out our [YouTube video](https://www.youtube.com/watch?v=muWjhrQ7bQk) for a demonstration of Firmware Update Mode. From f23bf0aeb22850fee45b1cd7060889e94774ff53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Wed, 16 Apr 2025 13:04:44 +0200 Subject: [PATCH 051/133] docs/dev-proc/fwupd.md: add doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit How to turn a capsule into an LVFS update, test it and submit to the LVFS. Signed-off-by: Michał Kopeć --- docs/dev-proc/fwupd.md | 60 ++++++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 61 insertions(+) create mode 100644 docs/dev-proc/fwupd.md diff --git a/docs/dev-proc/fwupd.md b/docs/dev-proc/fwupd.md new file mode 100644 index 0000000000..9df8f73a7f --- /dev/null +++ b/docs/dev-proc/fwupd.md @@ -0,0 +1,60 @@ +# fwupd and LVFS + +## Introduction + +This document describes the process for generating fwupd cabinet files, +uploading them to LVFS, and serving them to end-users. + +## Prerequisites + +fwupd integration depends on the capsule update protocol being implemented for +the platform. Please make sure capsule update is enabled and functional on the +platform before proceeding with fwupd integration. + +## Building a cabinet + +fwupd uses cabinet archives (.cab files) for storing firmware and its metadata. +A cabinet contains, at minimum: + +- The firmware binary (in our case, this will be the capsule update file) +- A small XML file with metadata (including the update protocol and GUID of the + device) + +For coreboot, a helper script to automate cabinet generation is provided in the +coreboot repo's root directory. + +First, start by building the capsule file: + +```bash +./capsule.sh make -t keys/TestRoot.pub.pem \ + -o keys/TestSub.pub.pem \ + -s keys/TestCert.pem -b +Overwrite already existing 'novacustom-mtl-h-v1.0.0-rc2.cap'? [y/N] y +Created the capsule at 'novacustom-mtl-h-v1.0.0-rc2.cap' +``` + +Now prepare the cabinet: + +```bash +./capsule_cabinet.sh novacustom-mtl-h-v1.0.0-rc2.cap +File novacustom-mtl-h-v1.0.0-rc2.cap.cab created +``` + +## Local testing + +Use fwupdmgr to locally test the cabinet: + +```bash +sudo fwupdmgr install novacustom-mtl-h-v1.0.0-rc2.cap.cab --allow-reinstall +[sudo] password for ubuntu: +Waiting… [***************************************] +Successfully installed firmware +An update requires a reboot to complete. Restart now? [y|N]: +``` + +Press `y` to restart and check if the update proceeds without errors. + +## Uploading to LVFS + +Follow [upstream fwupd documentation](https://lvfs.readthedocs.io/en/latest/upload.html) +for a detailed guide for uploading cabinets to LVFS. diff --git a/mkdocs.yml b/mkdocs.yml index f2ee6418bd..2452080575 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -421,6 +421,7 @@ nav: - 'Documentation guidelines': dev-proc/documentation-guidelines.md - 'HCL Maintainer documentation': dev-proc/hcl-maintainer.md - 'Taking firmware screenshots': dev-proc/screenshots.md + - 'fwupd and LVFS': dev-proc/fwupd.md # - 'Dasharo SKUs': # - 'Overview': variants/skus-overview.md # - 'Firewall': variants/firewall.md From 69e4ed0f45551e602b9a85255972e7a8f4f2e4a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Thu, 24 Apr 2025 16:54:52 +0200 Subject: [PATCH 052/133] docs/guides/capsule-update.md: update for NovaCustom MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update list of firmware versions (including for MSI). * Add GbE region to the list of preserved regions. * Don't mention Firmware Update Mode warning because it's removed from future releases. * Mention fwupd. Signed-off-by: Michał Kopeć Signed-off-by: Sergii Dmytruk --- docs/guides/capsule-update.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/docs/guides/capsule-update.md b/docs/guides/capsule-update.md index cbc0670cc5..e456fbaa2a 100644 --- a/docs/guides/capsule-update.md +++ b/docs/guides/capsule-update.md @@ -18,13 +18,13 @@ The following table describes which devices support Update Capsules and since which firmware release, if applicable. If a particular device isn't mentioned, it means that it doesn't support this update method. -| Manufacturer | Device | Starting with FW version | -| --- | --- | --- | -| MSI | Z690-A PRO | TBD | -| MSI | Z790-P PRO | TBD | - -`TBD` (to be delivered) is used as a placeholder for upcoming releases which -should have this feature enabled. +| Manufacturer | Device | Starting with FW version | +| ------------ | --------------- | ------------------------ | +| MSI | Z690-A PRO | v1.1.4 | +| MSI | Z790-P PRO | v0.9.2 | +| NovaCustom | 11th Gen series | v1.6.0 | +| NovaCustom | 12th Gen series | v1.8.0 | +| NovaCustom | 14th Gen series | v1.0.0 | ## Prerequisites @@ -49,6 +49,7 @@ should have this feature enabled. | ROMHOLE | only on MSI | | SMBIOS | unique data like serial number or UUID | | boot logo | [set by the user](logo-customization.md) | +| GbE | unique Gigabit Ethernet configuration (MAC address) | Preservation is done as a best effort. However some firmware changes are expected (e.g., current custom @@ -58,6 +59,11 @@ Preservation is done as a best effort. However some ## How to use UEFI Update Capsules +!!! question + This page describes the manual steps for capsule update. fwupd automates + all of the steps described here, so you should only need to follow this + guide if fwupd is unsupported for your device. + !!! note Out of technical necessity, Intel Management Engine (Intel ME) must be @@ -107,10 +113,6 @@ Preservation is done as a best effort. However some if in doubt about current location) via `CapsuleApp.efi firmware.cap` (substitute `firmware.cap` with an actual file name): ![Initiating a capsule update](../images/uefi-shell-capsule-app-posting.png) - A sign of success is an immediate reboot followed by a dialog of [Firmware - Update Mode](../kb/firmware-update-mode.md): - ![Firmware Update Mode warning](../images/fum-warning.png) - Read the text and press the key it asks you to press if you want to proceed. 8. An ongoing firmware update looks like this: ![Ongoing capsule update](../images/uefi-capsule-update.png) From 6bfdc98550571473b965d02d602eaded3aff3715 Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Fri, 25 Apr 2025 13:30:01 +0200 Subject: [PATCH 053/133] .github/workflows/seo.yml: add ignore for oprhan pages in resources/hcl/ Signed-off-by: Eduard Kaverinskyi --- .github/workflows/seo.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/seo.yml b/.github/workflows/seo.yml index e2d9d1e031..9a49b97c1c 100644 --- a/.github/workflows/seo.yml +++ b/.github/workflows/seo.yml @@ -46,6 +46,7 @@ jobs: uses: 3mdeb/seo-spy-action@main with: domain: 'http://0.0.0.0:8000' + args: '-o --ignore-path resources/hcl/' seo_spy_canonical_links: runs-on: ubuntu-latest name: Check canonical links From 5c87e29cafe312f94bb046c13b8ab08243261722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Thu, 24 Apr 2025 12:51:28 +0200 Subject: [PATCH 054/133] kb/flashregions.md: Add document MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/kb/flashregions.md | 81 +++++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 82 insertions(+) create mode 100644 docs/kb/flashregions.md diff --git a/docs/kb/flashregions.md b/docs/kb/flashregions.md new file mode 100644 index 0000000000..cdb4fc5c7c --- /dev/null +++ b/docs/kb/flashregions.md @@ -0,0 +1,81 @@ +# Intel Flash regions + +## Introduction + +In modern Intel platforms, the SPI flash is home to multiple different +firmwares, and is shared between several masters. The SPI flash is divided +into regions, each containing different firmware or configuration for a +different purpose. + +This document describes the intricacies of SPI flash regions and explains when +and which regions to flash. This documentation is specific to Intel-based +platforms and may not apply to all platforms. + +## Regions + +### Intel Flash Descriptor + +The IFD region is always located in the first sectors of the SPI flash and +contains the layout of the flash. It also describes the access permissions for +each master (which may be the host processor, Intel ME, and Intel Gigabit +Ethernet). It can be considered the "partition table" equivalent for SPI Flash. + +On Dasharo platforms, this region is typically set to writable by the host +processor, to allow certain features which require modifying the flash +descriptor. Other, proprietary firmware implementations often lock this region, +in which case external flashing is required. + +To enable parsing of regions described by the IFD in flashrom, append `--ifd` +to your flashrom command. This argument is required if you want to flash +specific regions described by the IFD, like BIOS, ME, GBE or the IFD itself. + +To include the IFD region in a flashrom read or write operation, append `-i fd` +to your flashrom command + +### Intel Gigabit Ethernet + +The Gigabit Ethernet (GbE) region is present on platforms which feature the +Intel i219 series of network interfaces. This region describes the configuration +of the network adapter, including the MAC address. + +This region should **not be touched unless necessary**, for example, if you're +trying to change the MAC address of the platform. + +To include the GbE region in a flashrom read or write operation, append `-i gbe` +to your flashrom command. + +### Intel Management Engine + +The Management Engine (ME) region contains the ME's firmware and configuration. +This region is updated as part of regular BIOS updates. + +On Dasharo platforms, this region is typically left writable by the host to +allow runtime firmware updates. On proprietary firmware implementations, this +region may be read and / or write protected, in which case external flashing is +required. + +To include the ME region in a flashrom read or write operation, append `-i me` +to your flashrom command. + +### BIOS + +The BIOS region is where the host firmware resides. This region is updated as +part of regular BIOS updates. + +On Dasharo firmware, the region is typically unlocked for reading and flashing, +but some parts of it may be write-protected using PRx registers. + +If you have the following in your flashrom output: + +```text +PR0: Warning: 0x001c0000-0x01ffffff is read-only. +``` + +then part of the BIOS region is protected and is not writable. On Dasharo +firmware, this lock can usually be disabled by disabling `BIOS Boot Medium Lock` +in the UEFI setup menu. On proprietary firmware implementations, look for a +similarly named option, but your mileage may vary. Otherwise, external flashing +is required. + +To include the BIOS region in a flashrom read or write operation, append +`-i bios` to your flashrom command. diff --git a/mkdocs.yml b/mkdocs.yml index 4484743e98..d9ad899d57 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -475,6 +475,7 @@ nav: - 'Capsule Update Configs': kb/capsule-updates-configs.md - 'PCR Measurements': kb/pcr-measurements.md - 'NovaCustom dev setup': kb/laptop-dev-env.md + - 'Flash Regions': kb/flashregions.md # - 'Trolling Topics List': # - 'Introduction': osf-trolling-list/osf_issues_taxonomy.md - 'FAQ': From 7b9453eaab98c25fc101f6db732c7de314d323e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Sun, 27 Apr 2025 01:11:04 +0200 Subject: [PATCH 055/133] docs/variants/dell_optiplex/initial-deployment.md: Fix including ACM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- docs/variants/dell_optiplex/initial-deployment.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/variants/dell_optiplex/initial-deployment.md b/docs/variants/dell_optiplex/initial-deployment.md index c280df0ba5..963dc3266a 100644 --- a/docs/variants/dell_optiplex/initial-deployment.md +++ b/docs/variants/dell_optiplex/initial-deployment.md @@ -174,8 +174,8 @@ cbfstool coreboot.rom add -f sch5545_ecfw.bin -n sch5545_ecfw.bin -t raw If you are using TXT, run ```bash -cbfstool coreboot.rom add -f IVB_BIOSAC_PRODUCTION.bin -n txt_bios_acm.bin -t raw -cbfstool coreboot.rom add -f SNB_IVB_SINIT_20190708_PW.bin -n txt_sinit_acm.bin -t raw +cbfstool coreboot.rom add -f IVB_BIOSAC_PRODUCTION.bin -n txt_bios_acm.bin -t raw -a 0x20000 +cbfstool coreboot.rom add -f SNB_IVB_SINIT_20190708_PW.bin -n txt_sinit_acm.bin -t raw -c lzma ``` ### Flashing From 51a443750ac129d60ea72bce3da4f95594b282a8 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Mon, 28 Apr 2025 12:58:41 +0200 Subject: [PATCH 056/133] variants/versions.md: add Protectli V1000 series Signed-off-by: Maciej Pijanowski --- docs/variants/versions.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/variants/versions.md b/docs/variants/versions.md index 001148b654..ee344a53c4 100644 --- a/docs/variants/versions.md +++ b/docs/variants/versions.md @@ -15,6 +15,7 @@ you can build firmware for your platform. | NovaCustom NS5x/NS7x | [dasharo](https://github.com/dasharo/coreboot/tree/dasharo) | [dasharo](https://github.com/dasharo/coreboot/tree/dasharo) | 2024.02 | [433b7a33ee](https://github.com/dasharo/edk2/tree/433b7a33eeb5ead75546f595e494a2a56e2c6d71) | | NovaCustom NV4x | [dasharo](https://github.com/dasharo/coreboot/tree/dasharo) | [dasharo](https://github.com/dasharo/coreboot/tree/dasharo) | 2024.02 | [433b7a33ee](https://github.com/dasharo/edk2/tree/433b7a33eeb5ead75546f595e494a2a56e2c6d71) | | Protectli FW6 | [#444](https://github.com/Dasharo/coreboot/pull/444) | [dasharo-4.21](https://github.com/dasharo/coreboot/tree/dasharo-4.21) | 2020.02 | [1174634037](https://github.com/dasharo/edk2/tree/1174634037dc986a2221176657407ea3447cf6a6) | +| Protectli V1000 | [dasharo-4.21](https://github.com/dasharo/coreboot/tree/dasharo-4.21) | [dasharo-4.21](https://github.com/dasharo/coreboot/tree/dasharo-4.21) | 2020.02 | [f06673308f](https://github.com/dasharo/edk2/tree/f06673308fde0bd11c32a127825ff52355cdbbe8) | | Protectli VP2410 | [dasharo-4.21](https://github.com/dasharo/coreboot/tree/dasharo-4.21) | [dasharo-4.21](https://github.com/dasharo/coreboot/tree/dasharo-4.21) | 2020.02 | [d130aececb](https://github.com/dasharo/edk2/tree/d130aececbdd5f50fa93d0e2b2fa52cee036788a) | | Protectli VP2420 | [dasharo-4.21](https://github.com/dasharo/coreboot/tree/dasharo-4.21) | [dasharo-4.21](https://github.com/dasharo/coreboot/tree/dasharo-4.21) | 2020.02 | [d130aececb](https://github.com/dasharo/edk2/tree/d130aececbdd5f50fa93d0e2b2fa52cee036788a) | | Protectli VP46XX | [dasharo-4.21](https://github.com/dasharo/coreboot/tree/dasharo-4.21) | [dasharo-4.21](https://github.com/dasharo/coreboot/tree/dasharo-4.21) | 2020.02 | [d130aececb](https://github.com/dasharo/edk2/tree/d130aececbdd5f50fa93d0e2b2fa52cee036788a) | From 0cbde2d9ad10c4b0be3d046326de6e26c13cdc05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Wed, 23 Apr 2025 14:04:40 +0200 Subject: [PATCH 057/133] guides/lab-assembly/novacustom.md: add MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- .../lab-assembly/images/edp_connector.jpg | Bin 0 -> 91324 bytes docs/guides/lab-assembly/novacustom.md | 71 ++++++++++++++++++ mkdocs.yml | 1 + 3 files changed, 72 insertions(+) create mode 100644 docs/guides/lab-assembly/images/edp_connector.jpg create mode 100644 docs/guides/lab-assembly/novacustom.md diff --git a/docs/guides/lab-assembly/images/edp_connector.jpg b/docs/guides/lab-assembly/images/edp_connector.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d386292a5f091efdd9646e8a69f63cca05aa9719 GIT binary patch literal 91324 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

3WL;iBmJT9b6vF&G+xTl-`xGb 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 literal 0 HcmV?d00001 diff --git a/docs/guides/lab-assembly/novacustom.md b/docs/guides/lab-assembly/novacustom.md new file mode 100644 index 0000000000..ddb814795d --- /dev/null +++ b/docs/guides/lab-assembly/novacustom.md @@ -0,0 +1,71 @@ +# Laboratory stand dedicated to NovaCustom platforms assembly guide + +## Introduction + +This document describes platform-specific details for assembling NovaCustom +platforms in the rack. Use this document as reference while going through +[Generic Testing Stand Setup](../../unified-test-documentation/generic-testing-stand-setup.md) + +## Prerequisites + +The below table contains platform-specific information about all elements which +are needed to create testing stands for NovaCustom machines. + +* [RTE v1.1.0](https://shop.3mdeb.com/shop/open-source-hardware/open-source-hardware-3mdeb/rte/) +* RTE power supply 5V 2A Micro-USB +* Sonoff S26R2 +* PiKVM +* FTDI FT232 USB-UART adapter +* 3x standard female-female DuPont 2.54mm wire + +## Theory of operation + +The following sections describe how to use all of the enabled features: + +* serial connection to the platform, +* controlling power supply, +* enabling basic power actions with the platform (power off/power on/reset), + +### Preparation + +Prepare the platform for remote control: + +#### Power on AC + +Due to the lack of an exposed power button signal, we're depending on the Power +on AC feature to remotely power the device on and off. Follow the steps below +to prepare the platform: + +* Go to the UEFI Setup Menu -> Dasharo System Features -> Power Management + Options +* Switch the option `Power state after power/AC loss` to `Powered On` +* Save and reset the platform +* Disconnect the internal battery + +#### Internal display + +The internal display may be automatically used by the operating system or +firmware, preventing the use of PiKVM. To work around this, ensure the internal +display is disconnected. + +The internal display eDP connector is typically located near the CPU and the +heatsink, and requires some force to pull out: + +![](images/edp_connector.jpg) + +#### Serial connection + +The platform does not have an exposed native serial interface. Instead, an FTDI +FT232 USB to UART adapter is used. + +Follow the steps described in [this article on the OSFV repo](https://github.com/Dasharo/open-source-firmware-validation/blob/develop/docs/novacustom.md) +for a detailed serial setup guide and theory of operation. + +#### Power supply control + +Power supply control is performed by Sonoff smart plug connected between AC +mains power and the laptop AC / DC power supply. + +#### External flashing + +External flashing is currently not available on these platforms. diff --git a/mkdocs.yml b/mkdocs.yml index d9ad899d57..09c904b8c8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -422,6 +422,7 @@ nav: - 'MSI PRO Z690-A and Z790-P': guides/lab-assembly/msi-zx90.md - 'Protectli': guides/lab-assembly/protectli.md - 'Odroid H4': guides/lab-assembly/odroid-assembly-guide.md + - 'NovaCustom laptops': guides/lab-assembly/novacustom.md - 'Development Process': - 'Source code structure': dev-proc/source-code-structure.md From f2e69fe5a3f982e92a316c9e0b516a55a6b756d4 Mon Sep 17 00:00:00 2001 From: Tim 'mithro' Ansell Date: Mon, 5 May 2025 16:04:46 -0700 Subject: [PATCH 058/133] Small language fixes --- docs/transparent-validation/rte/v1.1.0/specification.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/transparent-validation/rte/v1.1.0/specification.md b/docs/transparent-validation/rte/v1.1.0/specification.md index c0310956d0..946351dccb 100644 --- a/docs/transparent-validation/rte/v1.1.0/specification.md +++ b/docs/transparent-validation/rte/v1.1.0/specification.md @@ -341,9 +341,9 @@ Reset button (`SW1`) located near relay is used for resetting the RTE itself. 1. Set proper SPI Vcc Voltage: - Adequate Vcc voltege is necessary for successful flash procedure. If it will - be to low chip will not recognize any signals, if too high chip will be - damaged. + Adequate Vcc voltage is necessary for a successful flash procedure. If it is + too low the chip will not recognize any signals, if too high the chip will + be damaged. ```bash echo 0 > /sys/class/gpio/gpio405/value From 77fdb50bf0feeb423dd001e9a7ef2b930bb8ba89 Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Tue, 6 May 2025 15:34:49 +0200 Subject: [PATCH 059/133] docs/dev-proc/hcl-maintainer.md: update for v1.0.0 of dts-hw-conf-gen Signed-off-by: Eduard Kaverinskyi --- docs/dev-proc/hcl-maintainer.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/docs/dev-proc/hcl-maintainer.md b/docs/dev-proc/hcl-maintainer.md index 6edefb0693..f6bfa5e20d 100644 --- a/docs/dev-proc/hcl-maintainer.md +++ b/docs/dev-proc/hcl-maintainer.md @@ -7,18 +7,31 @@ Compatibility List for CPUs, memory, mainboards and GPU. ### Dasharo HCL report parsing -For reports uploaded to 3mdeb cloud please use [dedicated -script](https://github.com/Dasharo/dts-hw-conf-gen) readme. +Use [dts-hw-conf-gen](https://github.com/Dasharo/dts-hw-conf-gen) tool for +automatic HCL report parsing. + +Reports can be sourced from: +- 3mdeb Cloud +- Minio ## Extending list -Please always sort table before publishing. +The list can be updated via manual or automatic means. + +The HCL tables are located in the [Dasharo docs +repository](https://github.com/Dasharo/docs/tree/master/docs/resources/hcl), and +which can be updated via creating a pull request. + +Follow [README.md](https://github.com/Dasharo/dts-hw-conf-gen) for more details. + +### Automatic table extension -In vim: +Automatic table extension is currently supported for `memory` reports only. The +script would insert new, unique lines and automatically sort the table. -- ++shift+v++ - to enter visual mode and mark whole range of entries. -- type `:` and `sort u` to run vim sort function on marked range and leave only - unique lines. +This feature is available from +[v1.0.0](https://github.com/Dasharo/dts-hw-conf-gen/releases/tag/v1.0.0) of +dts-hw-conf-gen. ### Github report From 19fbdaa72c5e06fe56518bbf310eeadbcb8c3e28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Kr=C3=B3l?= Date: Tue, 6 May 2025 19:01:18 +0200 Subject: [PATCH 060/133] Update docs/dev-proc/hcl-maintainer.md --- docs/dev-proc/hcl-maintainer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dev-proc/hcl-maintainer.md b/docs/dev-proc/hcl-maintainer.md index f6bfa5e20d..9d2c43d2fb 100644 --- a/docs/dev-proc/hcl-maintainer.md +++ b/docs/dev-proc/hcl-maintainer.md @@ -12,7 +12,7 @@ automatic HCL report parsing. Reports can be sourced from: - 3mdeb Cloud -- Minio +- DPP download page ## Extending list From 582322d05d15e0e95d1f2fc6435107bd15768c6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 7 Nov 2024 12:24:49 +0100 Subject: [PATCH 061/133] docs/variants/protectli_vp2430: add MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/protectli/building-manual.md | 24 ++++ docs/unified/protectli/firmware-update.md | 24 ++++ docs/unified/protectli/initial-deployment.md | 21 ++++ docs/unified/protectli/overview.md | 49 +++++++- docs/unified/protectli/recovery.md | 70 +++++++++++ docs/unified/protectli/test-matrix.md | 109 ++++++++++++++++++ .../protectli_vp2430/hardware-matrix.md | 27 +++++ .../protectli_vp2430/openness-score.md | 6 + docs/variants/protectli_vp2430/releases.md | 19 +++ mkdocs.yml | 34 ++++-- 10 files changed, 370 insertions(+), 13 deletions(-) create mode 100644 docs/variants/protectli_vp2430/hardware-matrix.md create mode 100644 docs/variants/protectli_vp2430/openness-score.md create mode 100644 docs/variants/protectli_vp2430/releases.md diff --git a/docs/unified/protectli/building-manual.md b/docs/unified/protectli/building-manual.md index c5a650e425..890f0c83df 100644 --- a/docs/unified/protectli/building-manual.md +++ b/docs/unified/protectli/building-manual.md @@ -269,3 +269,27 @@ then follow the steps below: The resulting coreboot image will be placed in the coreboot directory as `protectli_vp2420_.rom`. + +=== "VP2430" + + 1. Checkout the desired version, e.g. `v0.9.0`: + + ```bash + cd coreboot + git checkout protectli_vp2430_v0.9.0 + ``` + + 2. Checkout submodules: + + ```bash + git submodule update --init --checkout + ``` + + 3. Build the firmware: + + ```bash + ./build.sh vp2430 + ``` + + The resulting coreboot image will be placed in the coreboot directory as + `protectli_vp2430_.rom`. diff --git a/docs/unified/protectli/firmware-update.md b/docs/unified/protectli/firmware-update.md index c316c0e54e..3e1473a1ac 100644 --- a/docs/unified/protectli/firmware-update.md +++ b/docs/unified/protectli/firmware-update.md @@ -141,3 +141,27 @@ update. ``` This command also preserves Dasharo UEFI settings and the boot order. + +=== "VP2430" + + ## Updating minor versions v1.x.y + + Both `WP_RO` and `RW_SECTION_A` partitions of the flash needs to be updated. + Flash it using the following command: + + ```bash + flashrom -p internal -w [path] --fmap -i RW_SECTION_A -i WP_RO + ``` + + This command also preserves current Dasharo UEFI settings and the boot order. + + ## Updating patch version v1.0.x + + Only the `RW_SECTION_A` partition of the flash needs to be updated. Flash it + using the following command: + + ```bash + flashrom -p internal -w [path] --fmap -i RW_SECTION_A + ``` + + This command also preserves Dasharo UEFI settings and the boot order. diff --git a/docs/unified/protectli/initial-deployment.md b/docs/unified/protectli/initial-deployment.md index 38f78e88b3..b4522e83b4 100644 --- a/docs/unified/protectli/initial-deployment.md +++ b/docs/unified/protectli/initial-deployment.md @@ -120,3 +120,24 @@ flashrom -p internal -r dump.rom ``` This command also preserves Dasharo UEFI settings and the boot order. + +=== "VP2430" + + To flash Dasharo on the platform, execute the following command - replace + `[path]` with the path to the Dasharo image you want to flash, e.g. + `protectli_vp2430_v0.9.0.rom`. + + If stock firmware is currently installed: + + ```bash + flashrom -p internal -w [path] --ifd -i bios + ``` + + If Dasharo is currently installed, only the `RW_SECTION_A` partition of the + flash needs to be updated. Flash it using the following command: + + ```bash + flashrom -p internal -w protectli_vp2430_v0.9.0.rom --fmap -i RW_SECTION_A + ``` + + This command also preserves Dasharo UEFI settings and the boot order. diff --git a/docs/unified/protectli/overview.md b/docs/unified/protectli/overview.md index a223b575bd..16f843ae60 100644 --- a/docs/unified/protectli/overview.md +++ b/docs/unified/protectli/overview.md @@ -137,7 +137,7 @@ drives). The built-in 8 GB eMMC module can be used for booting a light-weight OS for example, or for use as optional storage. - VP2410 specification: + VP2420 specification: * Intel Celeron® J6412 Quad Core at 2 GHz (Burst up to 2.6 GHz) * 4 Intel® 2.5 Gigabit Ethernet NIC ports @@ -169,6 +169,53 @@ describes the platform's hardware configuration used during the Dasharo firmware validation procedure. +=== "VP2430" + The VP2430 is a small form network appliance built for use as a firewall + / router, virtualization platform, a daily-driven personal computer, + and more. A major difference setting it apart from its predecessors is the + CPU. While the 2410 and 2420 models both utilize a J-series Intel Celeron, + the VP2430 comes equipped with a more recent Alder Lake N-series CPU. This + means a significant improvement in performance, at a comparable power + consumption level. It also features 4 x 2.5G i226 ethernet ports. + + ![](/images/VP2430.png) + + The VP2430 can accommodate up to 16 GB DDR5 RAM and and a M.2 NVMe SSD + storage drive. The built-in 32 GB eMMC module can be used for booting a + light-weight OS for example, or for use as optional storage. + + VP2430 specification: + + * Intel® Processor N100 Quad Core, 6M Cache, up to 3.4 GHz + * 4 Intel® 2.5 Gigabit Ethernet NIC ports + * M.2 NVMe SSD Slot + * 32 GB eMMC module on board + * Fanless and Silent + * Included 12v Power Supply, VESA mount kit, Serial Console Cable, + SATA data and power cables for internal SSD, Quick Start Guide + + * [Protectli knowledge base](https://kb.protectli.com/) + * [Buy VP2430 in Protectli shop](https://eu.protectli.com/product/vp2430/) + + ## Documentation sections + + * [Releases](../../variants/protectli_vp2430/releases.md) - groups + information about all releases. + * [Building manual](./building-manual.md) - + describes how to build Dasharo for Protectli 2430. + * [Initial deployment]( + ./initial-deployment.md) - + describes initial Dasharo deployment methods (i. e. flashing new + firmware) for Protectli VP2430. + * [Recovery](./recovery.md) - gathers + information on how to recover the platform from potential failure. + * [Hardware configuration matrix]( + ../../variants/protectli_vp2430/hardware-matrix.md) - + describes the platform's hardware configuration used during the Dasharo + firmware validation procedure. + * [Test matrix](./test-matrix.md) - describes + validation scope used during Dasharo firmware validation procedure. + === "VP6630/VP6650/VP6670" The Vault is a small form network appliance built for use as a firewall / router, virtualization platform, a daily-driven personal computer, and more. diff --git a/docs/unified/protectli/recovery.md b/docs/unified/protectli/recovery.md index 5eeb9f5feb..3a8ddccb3a 100644 --- a/docs/unified/protectli/recovery.md +++ b/docs/unified/protectli/recovery.md @@ -256,3 +256,73 @@ and Dasharo open-source firmware. ```bash flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=16000 -c "MX25L12835F/MX25L12845E/MX25L12865E" -w [path_to_binary] ``` + +=== "VP2430" + + ## Prerequisites + + * [Prepared RTE](../../transparent-validation/rte/v1.1.0/quick-start-guide.md) + * 6x female-female wire cables + + ## Connections + + To prepare the stand for flashing follow the steps described below: + + 1. Open the platform cover. + 1. Connect the J1 and J2 flash headers to the [SPI + header](../../transparent-validation/rte/v1.1.0/specification.md) on RTE. + + | SPI header | VP2430 J2 | + |:----------:|:------------:| + | Vcc | pin 1 (Vcc) | + | SCLK | pin 3 (CLK) | + | MOSI | pin 4 (MOSI) | + + | SPI header | VP2430 J1 | + |:----------:|:------------:| + | GND | pin 4 (GND) | + | CS | pin 1 (CS) | + | MISO | pin 2 (MISO) | + + ## Firmware flashing + + To flash firmware follow the steps described below: + + 1. Login to RTE via `ssh` or `minicom`. + 1. Turn on the platform by connecting the power supply. + 1. Wait at least 5 seconds. + 1. Turn off the platform by using the power button. + 1. Wait at least 3 seconds. + 1. Set the proper state of the SPI by using the following commands on RTE: + + ```bash + # set SPI Vcc to 3.3V + echo 1 > /sys/class/gpio/gpio405/value + # SPI Vcc on + echo 1 > /sys/class/gpio/gpio406/value + # SPI lines ON + echo 1 > /sys/class/gpio/gpio404/value + ``` + + 1. Wait at least 2 seconds. + 1. Disconnect the power supply from the platform. + 1. Wait at least 2 seconds. + 1. Flash the platform by using the following command: + + ```bash + flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=16000 -w [path_to_binary] + ``` + + > Flashing with flashrom takes about 1 minute. + + 1. Change back the state of the SPI by using the following commands: + + ```bash + echo 0 > /sys/class/gpio/gpio404/value + echo 0 > /sys/class/gpio/gpio406/value + ``` + + 1. Turn on the platform by connecting the power supply. + + The first boot of the platform after proceeding with the above procedure can + take much longer than standard. diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index cee23cb720..cea095e9b1 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -547,3 +547,112 @@ subjected from before the release of the new binary. [BOV]: ../../unified-test-documentation/dasharo-performance/413-opnsense-vga-booting-performance-test.md [BPS]: ../../unified-test-documentation/dasharo-performance/414-pfsense-serial-booting-performance-test.md [BPV]: ../../unified-test-documentation/dasharo-performance/415-pfsense-vga-booting-performance-test.md + +=== "VP2430" + + ## Module: Dasharo compatibility + + | No. | Supported test suite | Test suite ID | Supported test cases | + |:----:|:--------------------------------------|:-------------:|:-------------------------------------| + | 1. | [Memory HCL][HCL] | HCL | All | + | 2. | [UEFI compatible interface][EFI] | EFI | All | + | 3. | [Display ports][DSP] | DSP | DSP002.001, DSP002.002, DSP002.003, DSP003.001, DSP003.002, DSP003.003 | + | 4. | [Network boot utilities][NBT] | NBT | All | + | 5. | [NVMe support][NVM] | NVM | All | + | 6. | [Custom logo][CLG] | CLG | All | + | 7. | [Custom boot menu key][CBK] | CBK | All | + | 8. | [USB HID and MSC Support][USB] | USB | USB001.XXX and USB002.XXX | + | 9. | [FreeBSD support][BSD] | BSD | All | + | 10. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT003.001, LBT003.002, LBT004.001, LBT004.002| + | 11. | [USB-C support][UTC] | UTC | UTC004.001, UTC004.002 | + | 12. | [M.2 WiFi/Bluetooth][WLE] | WLE | ALL | + | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | + | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | + | 17. | [Windows booting][WBT] | WBT | WBT001.001 | + | 18. | [Audio subsystem][AUD] | AUD | AUD001.001, AUD001.002, AUD002.001, AUD002.002, AUD003.001, AUD003.002, AUD004.001, AUD004.002, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | + | 19. | [UEFI Shell][USH] | USH | All | + | 20. | [USB detection][UDT] | UDT | All | + | 21. | [USB booting][UBT] | UBT | All | + | 22. | [pfSense support][PFS] | PFS | All | + | 23. | [OPNsense support][OPN] | OPN | All | + | 24. | [Proxmox support][PVE] | PVE | All | + | 25. | [Ubuntu Server support][USS] | USS | All | + + [HCL]: ../../unified-test-documentation/dasharo-compatibility/301-memory-hcl.md + [EFI]: ../../unified-test-documentation/dasharo-compatibility/30M-uefi-compatible-interface.md + [DSP]: ../../unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd.md + [NBT]: ../../unified-test-documentation/dasharo-compatibility/315b-netboot-utilities.md + [NVM]: ../../unified-test-documentation/dasharo-compatibility/312-nvme-support.md + [CLG]: ../../unified-test-documentation/dasharo-compatibility/304-custom-logo.md + [CBK]: ../../unified-test-documentation/dasharo-compatibility/303-custom-boot-menu-key.md + [USB]: ../../unified-test-documentation/dasharo-compatibility/306-usb-hid-and-msc-support.md + [BSD]: ../../unified-test-documentation/dasharo-compatibility/307-freebsd-support.md + [LBT]: ../../unified-test-documentation/dasharo-compatibility/308-debian-stable-and-ubuntu-lts-support.md + [UTC]: ../../unified-test-documentation/dasharo-compatibility/31H-usb-type-c.md + [WLE]: ../../unified-test-documentation/dasharo-compatibility/318-m2-wifi-bluetooth.md + [MWL]: ../../unified-test-documentation/dasharo-compatibility/31K-minipcie-verification.md + [DMI]: ../../unified-test-documentation/dasharo-compatibility/31L-smbios.md + [CNB]: ../../unified-test-documentation/dasharo-compatibility/30A-custom-network-boot-entries.md + [WBT]: ../../unified-test-documentation/dasharo-compatibility/31A-windows-booting.md + [AUD]: ../../unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md + [USH]: ../../unified-test-documentation/dasharo-compatibility/30P-uefi-shell.md + [UDT]: ../../unified-test-documentation/dasharo-compatibility/31O-usb-detect.md + [UBT]: ../../unified-test-documentation/dasharo-compatibility/31N-usb-boot.md + [PFS]: ../../unified-test-documentation/dasharo-compatibility/341-pfSense-support.md + [OPN]: ../../unified-test-documentation/dasharo-compatibility/342-OPNsense-support.md + [PVE]: ../../unified-test-documentation/dasharo-compatibility/348-proxmox-support.md + [USS]: ../../unified-test-documentation/dasharo-compatibility/349-ubuntu-server-support.md + + ## Module: Dasharo security + + | No. | Supported test suite | Test suite ID | Supported test cases | + |:-----|:--------------------------------------|:-------------:|:-------------------------------------| + | 1. | [TPM Support][TPM] | TPM | Without TPM001.001,TPM002.001 and TPM003.001 | + | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | + | 3. | [Measured Boot support][MBO] | MBO | All | + | 4. | [Secure Boot support][SBO] | SBO | All | + | 5. | [ME disable/neuter support][MNE] | MNE | MNE004.001 | + | 6. | [BIOS lock support][BLS] | BLS | All | + | 7. | [USB stack enable/disable][USS] | USS | All | + | 8. | [SMM BIOS write protection][SMM] | SMM | All | + + [TPM]: ../../unified-test-documentation/dasharo-security/200-tpm-support.md + [VBO]: ../../unified-test-documentation/dasharo-security/201-verified-boot.md + [MBO]: ../../unified-test-documentation/dasharo-security/203-measured-boot.md + [SBO]: ../../unified-test-documentation/dasharo-security/206-secure-boot.md + [MNE]: ../../unified-test-documentation/dasharo-security/20F-me-neuter.md + [BLS]: ../../unified-test-documentation/dasharo-security/20J-bios-lock-support.md + [USS]: ../../unified-test-documentation/dasharo-security/20S-usb-stack.md + [SMM]: ../../unified-test-documentation/dasharo-security/20O-SMM-bios-write-protection.md + + ## Module: Dasharo performance + + | No. | Supported test suite | Test suite ID | Supported test cases | + |:-----|:--------------------------------------|:-------------:|:-------------------------------------| + | 1. | [coreboot bring up time measurement][CBMEM] | CBMEM | All | + | 2. | [CPU temperature measure][CPT] | CPT | All | + | 3. | [CPU frequency measure][CPF] | CPF | Without CPU003.XXX and CPU005.XXX | + | 4. | [Platform stability][STB] | STB | All | + | 5. | [Ubuntu booting performance test][BUB] | BUB | All | + | 6. | [Debian booting performance test][BDE] | BDE | All | + | 7. | [FreeBSD booting performance test][BFB] | BFB | All | + | 8. | [Proxmox booting performance test][BPM] | BPM | All | + | 9. | [Ubuntu Server booting performance test][BUS] | BUS | All | + | 10. | [OPNsense (serial output) booting performance test][BOS] | BOS | All | + | 11. | [OPNsense (VGA output) booting performance test][BOV] | BOV | All | + | 12. | [pfSense (serial output) booting performance test][BPS] | BPS | All | + | 13. | [pfSense (VGA output) booting performance test][BPV] | BPV | All | + + [CBMEM]: ../../unified-test-documentation/dasharo-performance/400-coreboot-boot-measure.md + [CPT]: ../../unified-test-documentation/dasharo-performance/401-cpu-temperature.md + [CPF]: ../../unified-test-documentation/dasharo-performance/402-cpu-frequency.md + [STB]: ../../unified-test-documentation/dasharo-performance/404-platform-stability.md + [BUB]: ../../unified-test-documentation/dasharo-performance/407-ubuntu-booting-performance-test.md + [BDE]: ../../unified-test-documentation/dasharo-performance/408-debian-booting-performance-test.md + [BFB]: ../../unified-test-documentation/dasharo-performance/409-freebsd-booting-performance-test.md + [BPM]: ../../unified-test-documentation/dasharo-performance/410-proxmox-booting-performance-test.md + [BUS]: ../../unified-test-documentation/dasharo-performance/411-ubuntu-server-booting-performance-test.md + [BOS]: ../../unified-test-documentation/dasharo-performance/412-opnsense-serial-booting-performance-test.md + [BOV]: ../../unified-test-documentation/dasharo-performance/413-opnsense-vga-booting-performance-test.md + [BPS]: ../../unified-test-documentation/dasharo-performance/414-pfsense-serial-booting-performance-test.md + [BPV]: ../../unified-test-documentation/dasharo-performance/415-pfsense-vga-booting-performance-test.md diff --git a/docs/variants/protectli_vp2430/hardware-matrix.md b/docs/variants/protectli_vp2430/hardware-matrix.md new file mode 100644 index 0000000000..9703db8c65 --- /dev/null +++ b/docs/variants/protectli_vp2430/hardware-matrix.md @@ -0,0 +1,27 @@ +# Hardware configuration matrix + +## Introduction + +This document describes the hardware configuration used for validation of the +coreboot port on the Protectli VP2430 firewall. + +## Protectli VP2430 + +| Component | Description | +|------------------------|----------------------------------------------------------| +| **CPU** | Intel(R) N100 @ 3.40GHz | +| **RAM** | Corsair CMSX32GX5M2A4800C40 | +| **Flash memory** | Macronix KH25L12835F +| **SSD** | 1. SSD Goodram PX700 M.2 NVMe 1TB | +| **MMC drive** | SAMSUNG 32GB (on-board) | +| **USB pendrives** | 1. SanDisk USB 3.2Gen1 16 GB | +| | 2. SanDisk USB 3.2Gen1 16 GB | +| | 3. USB Type-C Hub Pro UCN3286 | +| **USB headers** | USB Expander | +| **Attached devices** | 1. Logitech, Inc. Keyboard K120 | +| | 2. Dell Mouse MS116p | +| | 3. USB Type-C Hub Pro UCN3286 | +| **Wireless card** | Intel Wi-Fi 6 AX200 | +| **Display** | HDMI 1920x1080p, DP 1920x1080p | +| **Ethernet** | 4x intel i226 (on-board) | +| **Power supply** | Channel Well Technology 12V, 5.0A 60W | diff --git a/docs/variants/protectli_vp2430/openness-score.md b/docs/variants/protectli_vp2430/openness-score.md new file mode 100644 index 0000000000..2f40ef83eb --- /dev/null +++ b/docs/variants/protectli_vp2430/openness-score.md @@ -0,0 +1,6 @@ +# Dasharo Openness Score + +This page contains the [Dasharo Openness +Score](../../glossary.md#dasharo-openness-score) for Protectli VP2430 Dasharo +releases. The content of the page is generated with [Dasharo Openness Score +utility](https://github.com/Dasharo/Openness-Score). diff --git a/docs/variants/protectli_vp2430/releases.md b/docs/variants/protectli_vp2430/releases.md new file mode 100644 index 0000000000..c13f50005b --- /dev/null +++ b/docs/variants/protectli_vp2430/releases.md @@ -0,0 +1,19 @@ +# Protectli VP2430 Dasharo Release Notes + +Following Release Notes describe status of open-source firmware development +for Protectli VP2430. + +For details about our release process please read +[Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). + +

+[Subscribe to Protectli Dasharo Release Newsletter] +[newsletter]{.md-button .md-button--primary .center} +
+ +Test results for this platform can be found +[here](https://docs.google.com/spreadsheets/d/1wSE6xA3K3nXewwLn5lV39_2wZL1kg5AkGb4mvmG3bwE/edit#gid=270990532). + +## v0.9.0 - 2024-11-xx + +> Coming soon! diff --git a/mkdocs.yml b/mkdocs.yml index 09c904b8c8..2c8ed57731 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -106,19 +106,21 @@ plugins: 'unified/novacustom/fn-lock-hotkey.md': 'unified/novacustom/features.md' 'unified/novacustom/rgb-keyboard.md': 'unified/novacustom/features.md' - 'variants/protectli_fw6/building_manual.md': 'unified/protectli/building-manual.md#fw6' - 'variants/protectli_vp1x1x/building_manual.md': 'unified/protectli/building-manual.md#v1000-series' - 'variants/protectli_vp46xx/building_manual.md': 'unified/protectli/building-manual.md#vp4630vp4650vp4670' - 'variants/protectli_vp66xx/building_manual.md': 'unified/protectli/building-manual.md#vp6630vp6650vp6670' - 'variants/protectli_vp2410/building_manual.md': 'unified/protectli/building-manual.md#vp2410' - 'variants/protectli_vp2420/building_manual.md': 'unified/protectli/building-manual.md#vp2420' + 'variants/protectli_fw6/building_manual.md': 'unified/protectli/building_manual.md#fw6' + 'variants/protectli_vp1x1x/building_manual.md': 'unified/protectli/building_manual.md#v1000-series' + 'variants/protectli_vp46xx/building_manual.md': 'unified/protectli/building_manual.md#vp4630vp4650vp4670' + 'variants/protectli_vp66xx/building_manual.md': 'unified/protectli/building_manual.md#vp6630vp6650vp6670' + 'variants/protectli_vp2410/building_manual.md': 'unified/protectli/building_manual.md#vp2410' + 'variants/protectli_vp2420/building_manual.md': 'unified/protectli/building_manual.md#vp2420' + 'variants/protectli_vp2430/building_manual.md': 'unified/protectli/building_manual.md#vp2430' - 'variants/protectli_fw6/firmware_update.md': 'unified/protectli/firmware-update.md#fw6' - 'variants/protectli_vp1x1x/firmware_update.md': 'unified/protectli/firmware-update.md#v1000-series' - 'variants/protectli_vp46xx/firmware_update.md': 'unified/protectli/firmware-update.md#vp4630vp4650vp4670' - 'variants/protectli_vp66xx/firmware_update.md': 'unified/protectli/firmware-update.md#vp6630vp6650vp6670' - 'variants/protectli_vp2410/firmware_update.md': 'unified/protectli/firmware-update.md#vp2410' - 'variants/protectli_vp2420/firmware_update.md': 'unified/protectli/firmware-update.md#vp2420' + 'variants/protectli_fw6/firmware_update.md': 'unified/protectli/firmware_update.md#fw6' + 'variants/protectli_vp1x1x/firmware_update.md': 'unified/protectli/firmware_update.md#v1000-series' + 'variants/protectli_vp46xx/firmware_update.md': 'unified/protectli/firmware_update.md#vp4630vp4650vp4670' + 'variants/protectli_vp66xx/firmware_update.md': 'unified/protectli/firmware_update.md#vp6630vp6650vp6670' + 'variants/protectli_vp2410/firmware_update.md': 'unified/protectli/firmware_update.md#vp2410' + 'variants/protectli_vp2420/firmware_update.md': 'unified/protectli/firmware_update.md#vp2420' + 'variants/protectli_vp2430/firmware_update.md': 'unified/protectli/firmware_update.md#vp2430' 'variants/protectli_fw6/initial-deployment.md': 'unified/protectli/initial-deployment.md#fw6' 'variants/protectli_vp1x1x/initial-deployment.md': 'unified/protectli/initial-deployment.md#v1000-series' @@ -126,6 +128,7 @@ plugins: 'variants/protectli_vp66xx/initial-deployment.md': 'unified/protectli/initial-deployment.md#vp6630vp6650vp6670' 'variants/protectli_vp2410/initial-deployment.md': 'unified/protectli/initial-deployment.md#vp2410' 'variants/protectli_vp2420/initial-deployment.md': 'unified/protectli/initial-deployment.md#vp2420' + 'variants/protectli_vp2430/initial-deployment.md': 'unified/protectli/initial-deployment.md#vp2430' 'variants/protectli_fw6/overview.md': 'unified/protectli/overview.md#fw6' 'variants/protectli_vp1x1x/overview.md': 'unified/protectli/overview.md#v1000-series' @@ -133,6 +136,7 @@ plugins: 'variants/protectli_vp66xx/overview.md': 'unified/protectli/overview.md#vp6630vp6650vp6670' 'variants/protectli_vp2410/overview.md': 'unified/protectli/overview.md#vp2410' 'variants/protectli_vp2420/overview.md': 'unified/protectli/overview.md#vp2420' + 'variants/protectli_vp2430/overview.md': 'unified/protectli/overview.md#vp2430' 'variants/protectli_vp46xx/post-install.md': 'unified/protectli/post-install.md#vp4630vp4650vp4670vp6630vp6650vp6670' 'variants/protectli_vp66xx/post-install.md': 'unified/protectli/post-install.md#vp4630vp4650vp4670vp6630vp6650vp6670' @@ -143,6 +147,7 @@ plugins: 'variants/protectli_vp66xx/recovery.md': 'unified/protectli/recovery.md#vp6630vp6650vp6670' 'variants/protectli_vp2410/recovery.md': 'unified/protectli/recovery.md#vp2410' 'variants/protectli_vp2420/recovery.md': 'unified/protectli/recovery.md#vp2420' + 'variants/protectli_vp2430/recovery.md': 'unified/protectli/recovery.md#vp2430' 'variants/protectli_fw6/test-matrix.md': 'unified/protectli/test-matrix.md#fw6' 'variants/protectli_vp1x1x/test-matrix.md': 'unified/protectli/test-matrix.md#v1000-series' @@ -150,6 +155,7 @@ plugins: 'variants/protectli_vp66xx/test-matrix.md': 'unified/protectli/test-matrix.md#vp6630vp6650vp6670' '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/protectli_vp2430/test-matrix.md': 'unified/protectli/test-matrix.md#vp2430' 'osf-trivia-list/dasharo-entry-subscription.md': 'osf-trivia-list/dasharo-pro-package.md' 'variants/hardware-compatibility-list.md': 'variants/overview.md' @@ -334,6 +340,10 @@ nav: - 'Releases': variants/protectli_vp2420/releases.md - 'Hardware Configuration Matrix': variants/protectli_vp2420/hardware-matrix.md - 'Openness score': variants/protectli_vp2420/openness-score.md + - 'Protectli VP2430': + - 'Releases': variants/protectli_vp2430/releases.md + - 'Hardware Configuration Matrix': variants/protectli_vp2430/hardware-matrix.md + - 'Openness score': variants/protectli_vp2430/openness-score.md - 'Protectli VP46XX': - 'Releases': variants/protectli_vp46xx/releases.md - 'Hardware Configuration Matrix': variants/protectli_vp46xx/hardware-matrix.md From 364c7b4c0768b6c07e28fa90178a1f8e259cb9e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Mon, 9 Dec 2024 19:13:27 +0100 Subject: [PATCH 062/133] docs/variants/protectli_vp2430: review corrections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/images/VP2430.png | Bin 0 -> 111616 bytes docs/unified/protectli/overview.md | 4 +-- docs/unified/protectli/recovery.md | 4 ++- .../protectli_vp2430/hardware-matrix.md | 2 +- docs/variants/protectli_vp2430/releases.md | 7 ++-- mkdocs.yml | 30 +++++++----------- 6 files changed, 20 insertions(+), 27 deletions(-) create mode 100644 docs/images/VP2430.png diff --git a/docs/images/VP2430.png b/docs/images/VP2430.png new file mode 100644 index 0000000000000000000000000000000000000000..c80c39078d8623c1b37e7e4c544b0db7f5ffe2b6 GIT binary patch literal 111616 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 Flashing with flashrom takes about 1 minute. diff --git a/docs/variants/protectli_vp2430/hardware-matrix.md b/docs/variants/protectli_vp2430/hardware-matrix.md index 9703db8c65..8e7d38e58f 100644 --- a/docs/variants/protectli_vp2430/hardware-matrix.md +++ b/docs/variants/protectli_vp2430/hardware-matrix.md @@ -9,7 +9,7 @@ coreboot port on the Protectli VP2430 firewall. | Component | Description | |------------------------|----------------------------------------------------------| -| **CPU** | Intel(R) N100 @ 3.40GHz | +| **CPU** | Intel(R) N150 @ 3.40GHz | | **RAM** | Corsair CMSX32GX5M2A4800C40 | | **Flash memory** | Macronix KH25L12835F | **SSD** | 1. SSD Goodram PX700 M.2 NVMe 1TB | diff --git a/docs/variants/protectli_vp2430/releases.md b/docs/variants/protectli_vp2430/releases.md index c13f50005b..e000bbbb03 100644 --- a/docs/variants/protectli_vp2430/releases.md +++ b/docs/variants/protectli_vp2430/releases.md @@ -11,9 +11,6 @@ For details about our release process please read [newsletter]{.md-button .md-button--primary .center} -Test results for this platform can be found -[here](https://docs.google.com/spreadsheets/d/1wSE6xA3K3nXewwLn5lV39_2wZL1kg5AkGb4mvmG3bwE/edit#gid=270990532). - -## v0.9.0 - 2024-11-xx - > Coming soon! + +[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL diff --git a/mkdocs.yml b/mkdocs.yml index 2c8ed57731..792146fff0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -106,21 +106,19 @@ plugins: 'unified/novacustom/fn-lock-hotkey.md': 'unified/novacustom/features.md' 'unified/novacustom/rgb-keyboard.md': 'unified/novacustom/features.md' - 'variants/protectli_fw6/building_manual.md': 'unified/protectli/building_manual.md#fw6' - 'variants/protectli_vp1x1x/building_manual.md': 'unified/protectli/building_manual.md#v1000-series' - 'variants/protectli_vp46xx/building_manual.md': 'unified/protectli/building_manual.md#vp4630vp4650vp4670' - 'variants/protectli_vp66xx/building_manual.md': 'unified/protectli/building_manual.md#vp6630vp6650vp6670' - 'variants/protectli_vp2410/building_manual.md': 'unified/protectli/building_manual.md#vp2410' - 'variants/protectli_vp2420/building_manual.md': 'unified/protectli/building_manual.md#vp2420' - 'variants/protectli_vp2430/building_manual.md': 'unified/protectli/building_manual.md#vp2430' + 'variants/protectli_fw6/building_manual.md': 'unified/protectli/building-manual.md#fw6' + 'variants/protectli_vp1x1x/building_manual.md': 'unified/protectli/building-manual.md#v1000-series' + 'variants/protectli_vp46xx/building_manual.md': 'unified/protectli/building-manual.md#vp4630vp4650vp4670' + 'variants/protectli_vp66xx/building_manual.md': 'unified/protectli/building-manual.md#vp6630vp6650vp6670' + 'variants/protectli_vp2410/building_manual.md': 'unified/protectli/building-manual.md#vp2410' + 'variants/protectli_vp2420/building_manual.md': 'unified/protectli/building-manual.md#vp2420' - 'variants/protectli_fw6/firmware_update.md': 'unified/protectli/firmware_update.md#fw6' - 'variants/protectli_vp1x1x/firmware_update.md': 'unified/protectli/firmware_update.md#v1000-series' - 'variants/protectli_vp46xx/firmware_update.md': 'unified/protectli/firmware_update.md#vp4630vp4650vp4670' - 'variants/protectli_vp66xx/firmware_update.md': 'unified/protectli/firmware_update.md#vp6630vp6650vp6670' - 'variants/protectli_vp2410/firmware_update.md': 'unified/protectli/firmware_update.md#vp2410' - 'variants/protectli_vp2420/firmware_update.md': 'unified/protectli/firmware_update.md#vp2420' - 'variants/protectli_vp2430/firmware_update.md': 'unified/protectli/firmware_update.md#vp2430' + 'variants/protectli_fw6/firmware_update.md': 'unified/protectli/firmware-update.md#fw6' + 'variants/protectli_vp1x1x/firmware_update.md': 'unified/protectli/firmware-update.md#v1000-series' + 'variants/protectli_vp46xx/firmware_update.md': 'unified/protectli/firmware-update.md#vp4630vp4650vp4670' + 'variants/protectli_vp66xx/firmware_update.md': 'unified/protectli/firmware-update.md#vp6630vp6650vp6670' + 'variants/protectli_vp2410/firmware_update.md': 'unified/protectli/firmware-update.md#vp2410' + 'variants/protectli_vp2420/firmware_update.md': 'unified/protectli/firmware-update.md#vp2420' 'variants/protectli_fw6/initial-deployment.md': 'unified/protectli/initial-deployment.md#fw6' 'variants/protectli_vp1x1x/initial-deployment.md': 'unified/protectli/initial-deployment.md#v1000-series' @@ -128,7 +126,6 @@ plugins: 'variants/protectli_vp66xx/initial-deployment.md': 'unified/protectli/initial-deployment.md#vp6630vp6650vp6670' 'variants/protectli_vp2410/initial-deployment.md': 'unified/protectli/initial-deployment.md#vp2410' 'variants/protectli_vp2420/initial-deployment.md': 'unified/protectli/initial-deployment.md#vp2420' - 'variants/protectli_vp2430/initial-deployment.md': 'unified/protectli/initial-deployment.md#vp2430' 'variants/protectli_fw6/overview.md': 'unified/protectli/overview.md#fw6' 'variants/protectli_vp1x1x/overview.md': 'unified/protectli/overview.md#v1000-series' @@ -136,7 +133,6 @@ plugins: 'variants/protectli_vp66xx/overview.md': 'unified/protectli/overview.md#vp6630vp6650vp6670' 'variants/protectli_vp2410/overview.md': 'unified/protectli/overview.md#vp2410' 'variants/protectli_vp2420/overview.md': 'unified/protectli/overview.md#vp2420' - 'variants/protectli_vp2430/overview.md': 'unified/protectli/overview.md#vp2430' 'variants/protectli_vp46xx/post-install.md': 'unified/protectli/post-install.md#vp4630vp4650vp4670vp6630vp6650vp6670' 'variants/protectli_vp66xx/post-install.md': 'unified/protectli/post-install.md#vp4630vp4650vp4670vp6630vp6650vp6670' @@ -147,7 +143,6 @@ plugins: 'variants/protectli_vp66xx/recovery.md': 'unified/protectli/recovery.md#vp6630vp6650vp6670' 'variants/protectli_vp2410/recovery.md': 'unified/protectli/recovery.md#vp2410' 'variants/protectli_vp2420/recovery.md': 'unified/protectli/recovery.md#vp2420' - 'variants/protectli_vp2430/recovery.md': 'unified/protectli/recovery.md#vp2430' 'variants/protectli_fw6/test-matrix.md': 'unified/protectli/test-matrix.md#fw6' 'variants/protectli_vp1x1x/test-matrix.md': 'unified/protectli/test-matrix.md#v1000-series' @@ -155,7 +150,6 @@ plugins: 'variants/protectli_vp66xx/test-matrix.md': 'unified/protectli/test-matrix.md#vp6630vp6650vp6670' '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/protectli_vp2430/test-matrix.md': 'unified/protectli/test-matrix.md#vp2430' 'osf-trivia-list/dasharo-entry-subscription.md': 'osf-trivia-list/dasharo-pro-package.md' 'variants/hardware-compatibility-list.md': 'variants/overview.md' From 4149cc00b8fea10698df95a9a6f911d1925d8faa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 19 Dec 2024 17:10:44 +0100 Subject: [PATCH 063/133] docs/: comment out 2430; to be reverted after release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/protectli/building-manual.md | 3 +++ docs/unified/protectli/firmware-update.md | 4 ++++ docs/unified/protectli/initial-deployment.md | 4 ++++ docs/unified/protectli/overview.md | 4 ++++ docs/unified/protectli/recovery.md | 4 ++++ docs/unified/protectli/test-matrix.md | 4 ++++ mkdocs.yml | 9 +++++---- 7 files changed, 28 insertions(+), 4 deletions(-) diff --git a/docs/unified/protectli/building-manual.md b/docs/unified/protectli/building-manual.md index 890f0c83df..d43311aa5d 100644 --- a/docs/unified/protectli/building-manual.md +++ b/docs/unified/protectli/building-manual.md @@ -270,6 +270,8 @@ then follow the steps below: The resulting coreboot image will be placed in the coreboot directory as `protectli_vp2420_.rom`. + diff --git a/docs/unified/protectli/firmware-update.md b/docs/unified/protectli/firmware-update.md index 3e1473a1ac..7fc3c297ca 100644 --- a/docs/unified/protectli/firmware-update.md +++ b/docs/unified/protectli/firmware-update.md @@ -142,6 +142,8 @@ update. This command also preserves Dasharo UEFI settings and the boot order. + diff --git a/docs/unified/protectli/initial-deployment.md b/docs/unified/protectli/initial-deployment.md index b4522e83b4..1ac3fb9580 100644 --- a/docs/unified/protectli/initial-deployment.md +++ b/docs/unified/protectli/initial-deployment.md @@ -121,6 +121,8 @@ flashrom -p internal -r dump.rom This command also preserves Dasharo UEFI settings and the boot order. + diff --git a/docs/unified/protectli/overview.md b/docs/unified/protectli/overview.md index 57b491682c..cff3261f88 100644 --- a/docs/unified/protectli/overview.md +++ b/docs/unified/protectli/overview.md @@ -169,6 +169,8 @@ describes the platform's hardware configuration used during the Dasharo firmware validation procedure. + + === "VP6630/VP6650/VP6670" The Vault is a small form network appliance built for use as a firewall / router, virtualization platform, a daily-driven personal computer, and more. diff --git a/docs/unified/protectli/recovery.md b/docs/unified/protectli/recovery.md index d6985487c9..a0089186c2 100644 --- a/docs/unified/protectli/recovery.md +++ b/docs/unified/protectli/recovery.md @@ -257,6 +257,8 @@ and Dasharo open-source firmware. flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=16000 -c "MX25L12835F/MX25L12845E/MX25L12865E" -w [path_to_binary] ``` + diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index cea095e9b1..8e62a45cc6 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -548,6 +548,8 @@ subjected from before the release of the new binary. [BPS]: ../../unified-test-documentation/dasharo-performance/414-pfsense-serial-booting-performance-test.md [BPV]: ../../unified-test-documentation/dasharo-performance/415-pfsense-vga-booting-performance-test.md + diff --git a/mkdocs.yml b/mkdocs.yml index 792146fff0..958553d038 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -334,10 +334,11 @@ nav: - 'Releases': variants/protectli_vp2420/releases.md - 'Hardware Configuration Matrix': variants/protectli_vp2420/hardware-matrix.md - 'Openness score': variants/protectli_vp2420/openness-score.md - - 'Protectli VP2430': - - 'Releases': variants/protectli_vp2430/releases.md - - 'Hardware Configuration Matrix': variants/protectli_vp2430/hardware-matrix.md - - 'Openness score': variants/protectli_vp2430/openness-score.md + # Coming soon... + #- 'Protectli VP2430': + #- 'Releases': variants/protectli_vp2430/releases.md + #- 'Hardware Configuration Matrix': variants/protectli_vp2430/hardware-matrix.md + #- 'Openness score': variants/protectli_vp2430/openness-score.md - 'Protectli VP46XX': - 'Releases': variants/protectli_vp46xx/releases.md - 'Hardware Configuration Matrix': variants/protectli_vp46xx/hardware-matrix.md From 5da0e559e678f47aefb5f567eb189457d6195c2e Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Thu, 13 Mar 2025 16:01:09 +0100 Subject: [PATCH 064/133] variants/protectli_vp2430/hardware-matrix.md update: add components used for v0.9.0 rc4 testing Signed-off-by: Jakub Redmerski --- docs/variants/protectli_vp2430/hardware-matrix.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/variants/protectli_vp2430/hardware-matrix.md b/docs/variants/protectli_vp2430/hardware-matrix.md index 8e7d38e58f..b00e75999e 100644 --- a/docs/variants/protectli_vp2430/hardware-matrix.md +++ b/docs/variants/protectli_vp2430/hardware-matrix.md @@ -10,9 +10,9 @@ coreboot port on the Protectli VP2430 firewall. | Component | Description | |------------------------|----------------------------------------------------------| | **CPU** | Intel(R) N150 @ 3.40GHz | -| **RAM** | Corsair CMSX32GX5M2A4800C40 | -| **Flash memory** | Macronix KH25L12835F -| **SSD** | 1. SSD Goodram PX700 M.2 NVMe 1TB | +| **RAM** | Kingston KTC-0123456789.A00 | +| **Flash memory** | Macronix KH25L12835F | +| **SSD** | 1.KINGSTON SNV3S500G | | **MMC drive** | SAMSUNG 32GB (on-board) | | **USB pendrives** | 1. SanDisk USB 3.2Gen1 16 GB | | | 2. SanDisk USB 3.2Gen1 16 GB | @@ -21,7 +21,7 @@ coreboot port on the Protectli VP2430 firewall. | **Attached devices** | 1. Logitech, Inc. Keyboard K120 | | | 2. Dell Mouse MS116p | | | 3. USB Type-C Hub Pro UCN3286 | -| **Wireless card** | Intel Wi-Fi 6 AX200 | +| **Wireless card** | Qualcomm Atheros QCA61x4A Wireless Network Adapter | | **Display** | HDMI 1920x1080p, DP 1920x1080p | | **Ethernet** | 4x intel i226 (on-board) | | **Power supply** | Channel Well Technology 12V, 5.0A 60W | From 8d441475bdbf38a4b22f5cba383ab8dc9cc15d2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 18 Mar 2025 12:41:04 +0100 Subject: [PATCH 065/133] docs/variants/protectli_vp2430: un-comment out MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/protectli/building-manual.md | 3 --- docs/unified/protectli/firmware-update.md | 4 ---- docs/unified/protectli/initial-deployment.md | 4 ---- docs/unified/protectli/overview.md | 4 ---- docs/unified/protectli/recovery.md | 4 ---- docs/unified/protectli/test-matrix.md | 4 ---- mkdocs.yml | 9 ++++----- 7 files changed, 4 insertions(+), 28 deletions(-) diff --git a/docs/unified/protectli/building-manual.md b/docs/unified/protectli/building-manual.md index d43311aa5d..890f0c83df 100644 --- a/docs/unified/protectli/building-manual.md +++ b/docs/unified/protectli/building-manual.md @@ -270,8 +270,6 @@ then follow the steps below: The resulting coreboot image will be placed in the coreboot directory as `protectli_vp2420_.rom`. - diff --git a/docs/unified/protectli/firmware-update.md b/docs/unified/protectli/firmware-update.md index 7fc3c297ca..3e1473a1ac 100644 --- a/docs/unified/protectli/firmware-update.md +++ b/docs/unified/protectli/firmware-update.md @@ -142,8 +142,6 @@ update. This command also preserves Dasharo UEFI settings and the boot order. - diff --git a/docs/unified/protectli/initial-deployment.md b/docs/unified/protectli/initial-deployment.md index 1ac3fb9580..b4522e83b4 100644 --- a/docs/unified/protectli/initial-deployment.md +++ b/docs/unified/protectli/initial-deployment.md @@ -121,8 +121,6 @@ flashrom -p internal -r dump.rom This command also preserves Dasharo UEFI settings and the boot order. - diff --git a/docs/unified/protectli/overview.md b/docs/unified/protectli/overview.md index cff3261f88..57b491682c 100644 --- a/docs/unified/protectli/overview.md +++ b/docs/unified/protectli/overview.md @@ -169,8 +169,6 @@ describes the platform's hardware configuration used during the Dasharo firmware validation procedure. - - === "VP6630/VP6650/VP6670" The Vault is a small form network appliance built for use as a firewall / router, virtualization platform, a daily-driven personal computer, and more. diff --git a/docs/unified/protectli/recovery.md b/docs/unified/protectli/recovery.md index a0089186c2..d6985487c9 100644 --- a/docs/unified/protectli/recovery.md +++ b/docs/unified/protectli/recovery.md @@ -257,8 +257,6 @@ and Dasharo open-source firmware. flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=16000 -c "MX25L12835F/MX25L12845E/MX25L12865E" -w [path_to_binary] ``` - diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index 8e62a45cc6..cea095e9b1 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -548,8 +548,6 @@ subjected from before the release of the new binary. [BPS]: ../../unified-test-documentation/dasharo-performance/414-pfsense-serial-booting-performance-test.md [BPV]: ../../unified-test-documentation/dasharo-performance/415-pfsense-vga-booting-performance-test.md - diff --git a/mkdocs.yml b/mkdocs.yml index 958553d038..792146fff0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -334,11 +334,10 @@ nav: - 'Releases': variants/protectli_vp2420/releases.md - 'Hardware Configuration Matrix': variants/protectli_vp2420/hardware-matrix.md - 'Openness score': variants/protectli_vp2420/openness-score.md - # Coming soon... - #- 'Protectli VP2430': - #- 'Releases': variants/protectli_vp2430/releases.md - #- 'Hardware Configuration Matrix': variants/protectli_vp2430/hardware-matrix.md - #- 'Openness score': variants/protectli_vp2430/openness-score.md + - 'Protectli VP2430': + - 'Releases': variants/protectli_vp2430/releases.md + - 'Hardware Configuration Matrix': variants/protectli_vp2430/hardware-matrix.md + - 'Openness score': variants/protectli_vp2430/openness-score.md - 'Protectli VP46XX': - 'Releases': variants/protectli_vp46xx/releases.md - 'Hardware Configuration Matrix': variants/protectli_vp46xx/hardware-matrix.md From 14ae81a13c90b7d75d625dca6e67fced649fb887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Wed, 7 May 2025 11:49:50 +0200 Subject: [PATCH 066/133] docs/unified/protectli/test-matrix.md: add test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/unified/protectli/test-matrix.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index cea095e9b1..0f04112399 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -570,13 +570,19 @@ subjected from before the release of the new binary. | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | | 18. | [Audio subsystem][AUD] | AUD | AUD001.001, AUD001.002, AUD002.001, AUD002.002, AUD003.001, AUD003.002, AUD004.001, AUD004.002, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | - | 19. | [UEFI Shell][USH] | USH | All | | 20. | [USB detection][UDT] | UDT | All | | 21. | [USB booting][UBT] | UBT | All | | 22. | [pfSense support][PFS] | PFS | All | | 23. | [OPNsense support][OPN] | OPN | All | | 24. | [Proxmox support][PVE] | PVE | All | | 25. | [Ubuntu Server support][USS] | USS | All | + | 26. | [Auto boot time-out][BMM] | BMM | All | + | 27. | [CPU status][CPU] | CPU | CPU001.001, CPU002.001, CPU003.001, CPU004.001| + | 28. | [ESP scanning][ESP] | ESP | All | + | 29. | [Reset to defaults][RTD] | RTD | RTD001.001, RTD002.001, RTD003.001, RTD004.001, RTD006.001 | + | 30. | [Ethernet interface][NET] | NET | All | + | 31. | [Dasharo Configuration Utility][NET] | DCU | DCU001.001, DCU002.001, DCU003.001 | + | 33. | [Sleep mode][SUSP] | SUSP | SUSP001.001, SUSP002.001, SUSP003.001, SUSP005.001| [HCL]: ../../unified-test-documentation/dasharo-compatibility/301-memory-hcl.md [EFI]: ../../unified-test-documentation/dasharo-compatibility/30M-uefi-compatible-interface.md @@ -602,6 +608,14 @@ subjected from before the release of the new binary. [OPN]: ../../unified-test-documentation/dasharo-compatibility/342-OPNsense-support.md [PVE]: ../../unified-test-documentation/dasharo-compatibility/348-proxmox-support.md [USS]: ../../unified-test-documentation/dasharo-compatibility/349-ubuntu-server-support.md + [CPU]: ../../unified-test-documentation/dasharo-compatibility/31T-cpu-status.md + [BMM]: ../../dasharo-menu-docs/boot-maintenance-mgr.md#boot-maintenance-manager + [ESP]: ../../unified-test-documentation/dasharo-compatibility/361-esp-scanning.md + [RTD]: ../../dasharo-menu-docs/overview.md#f9-reset-to-defaults + [NET]: ../../unified-test-documentation/dasharo-stability/01-net-controller-after-coldboot-warmboot-reboot-suspend.md + [DCU]: ../../unified-test-documentation/dasharo-compatibility/362-dcu.md + [SUSP]: ../../unified-test-documentation/dasharo-compatibility/31M-platform-suspend-and-resume.md + [LCM]: ../../unified-test-documentation/dasharo-compatibility/328-logo-customization-functionality.md ## Module: Dasharo security @@ -615,6 +629,8 @@ subjected from before the release of the new binary. | 6. | [BIOS lock support][BLS] | BLS | All | | 7. | [USB stack enable/disable][USS] | USS | All | | 8. | [SMM BIOS write protection][SMM] | SMM | All | + | 9. | [UEFI Setup password][PSW] | PSW | All | + | 10. | [TPM2 Commands][TPMCMD] | TPMCMD | All | [TPM]: ../../unified-test-documentation/dasharo-security/200-tpm-support.md [VBO]: ../../unified-test-documentation/dasharo-security/201-verified-boot.md @@ -624,6 +640,8 @@ subjected from before the release of the new binary. [BLS]: ../../unified-test-documentation/dasharo-security/20J-bios-lock-support.md [USS]: ../../unified-test-documentation/dasharo-security/20S-usb-stack.md [SMM]: ../../unified-test-documentation/dasharo-security/20O-SMM-bios-write-protection.md + [PSW]: ../../unified-test-documentation/dasharo-security/20R-uefi-setup-password.md + [TPMCMD]: ../../unified-test-documentation/dasharo-security/200-tpm2-commands.md ## Module: Dasharo performance From cab1ac04631526a4d9c95d705129fa7fbd66b199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 16 Apr 2025 18:40:40 +0200 Subject: [PATCH 067/133] Update AUD case IDS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/31F-audio-subsystem.md | 16 ++++++++-------- docs/unified/protectli/test-matrix.md | 6 +++--- docs/variants/dell_optiplex/test-matrix.md | 2 +- docs/variants/msi_z690/test-matrix.md | 2 +- docs/variants/msi_z790/test-matrix.md | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md b/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md index 70e494e375..029ecee4fd 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md @@ -14,7 +14,7 @@ [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). 1. For the audio tests you need to connect monitor with speakers via HDMI. -## AUD001.001 Audio subsystem detection (Ubuntu) +## AUD001.201 Audio subsystem detection (Ubuntu) **Test description** @@ -54,7 +54,7 @@ ALC293 Tigerlake HDMI ``` -## AUD001.002 Audio subsystem detection (Windows) +## AUD001.301 Audio subsystem detection (Windows) **Test description** @@ -103,7 +103,7 @@ Index Default Type Name 2 True Recording Microphone (Realtek(R) Audio) ``` -## AUD002.001 Audio playback (Ubuntu) +## AUD002.201 Audio playback (Ubuntu) **Test description** @@ -139,7 +139,7 @@ recordings. Sound should be played from the integrated speakers. -## AUD002.002 Audio playback (Windows) +## AUD002.301 Audio playback (Windows) **Test description** @@ -169,7 +169,7 @@ recordings. Sound should be played from the integrated speakers. -## AUD003.001 Audio capture (Ubuntu) +## AUD003.201 Audio capture (Ubuntu) **Test description** @@ -209,7 +209,7 @@ This test aims to verify that the audio subsystem is able to capture audio. The recorded audio clip is recorded correctly and played back. -## AUD003.002 Audio capture (Windows) +## AUD003.301 Audio capture (Windows) **Test description** @@ -247,7 +247,7 @@ This test aims to verify that the audio subsystem is able to capture audio. 1. The result of the test after clicking the `Stop Test` bar should be more than 0% of the total volume. -## AUD004.001 External headset recognition (Ubuntu) +## AUD004.201 External headset recognition (Ubuntu) **Test description** @@ -302,7 +302,7 @@ after plugging the 3.5 mm jack into the slot. : values=off ``` -## AUD004.002 External headset recognition (Windows) +## AUD004.301 External headset recognition (Windows) **Test description** diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index 0f04112399..1535ef282e 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -152,7 +152,7 @@ subjected from before the release of the new binary. | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | | 16. | [M.2 automatic SATA/NVMe switching support][MSS] | MSS | MSS001.001 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | - | 18. | [Audio subsystem][AUD] | AUD | AUD001.001, AUD001.002, AUD002.001, AUD002.002, AUD003.001, AUD003.002, AUD004.001, AUD004.002, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | + | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | | 19. | [UEFI Shell][USH] | USH | All | | 20. | [USB detection][UDT] | UDT | All | | 21. | [USB booting][UBT] | UBT | All | @@ -267,7 +267,7 @@ subjected from before the release of the new binary. | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | - | 18. | [Audio subsystem][AUD] | AUD | AUD001.001, AUD001.002, AUD002.001, AUD002.002, AUD003.001, AUD003.002, AUD004.001, AUD004.002, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | + | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | | 19. | [UEFI Shell][USH] | USH | All | | 20. | [USB detection][UDT] | UDT | All | | 21. | [USB booting][UBT] | UBT | All | @@ -381,7 +381,7 @@ subjected from before the release of the new binary. | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | | 16. | [M.2 automatic SATA/NVMe switching support][MSS] | MSS | MSS001.001 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | - | 18. | [Audio subsystem][AUD] | AUD | AUD001.001, AUD001.002, AUD002.001, AUD002.002, AUD003.001, AUD003.002, AUD004.001, AUD004.002, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | + | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | | 19. | [UEFI Shell][USH] | USH | All | | 20. | [USB detection][UDT] | UDT | All | | 21. | [USB booting][UBT] | UBT | All | diff --git a/docs/variants/dell_optiplex/test-matrix.md b/docs/variants/dell_optiplex/test-matrix.md index 1593b853a3..196ea00eaf 100644 --- a/docs/variants/dell_optiplex/test-matrix.md +++ b/docs/variants/dell_optiplex/test-matrix.md @@ -16,7 +16,7 @@ subjected from before the release of the new binary. | 3. | [USB HID and MSC Support][USB] | USB | All | | 4. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001| | 5. | [Custom boot logo][CLG] | CLG | All | -| 6. | [Audio subsystem][AUD] | AUD | AUD001.001, AUD004.001, AUD005.001, AUD006.001 | +| 6. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD004.201, AUD005.001, AUD006.001 | | 7. | [NVMe support][NVM]¹ | NVM | NVM001.001, NVM001.002 | | 8. | [Network boot][PXE] | PXE | Without PXE007.001 | | 9. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT003.001, LBT003.002, LBT004.001, LBT004.002| diff --git a/docs/variants/msi_z690/test-matrix.md b/docs/variants/msi_z690/test-matrix.md index f46a2d3b12..c47d846cb2 100644 --- a/docs/variants/msi_z690/test-matrix.md +++ b/docs/variants/msi_z690/test-matrix.md @@ -26,7 +26,7 @@ tested platforms: `MSI PRO Z690-A WiFi DDR4` and `MSI PRO Z690-A DDR5`. | 6. | [SMBIOS][DMI] | DMI | All | | 7. | [Custom boot logo][CLG] | CLG | All | | 8. | [M.2 WiFi/Bluetooth][WLE] | WLE | All | -| 9. | [Audio subsystem][AUD] | AUD | AUD001.001, AUD001.002, AUD004.001, AUD004.002 AUD005.001, AUD005.002 AUD006.001, AUD006.002 | +| 9. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD004.201, AUD004.301 AUD005.001, AUD005.002 AUD006.001, AUD006.002 | | 10. | [NVMe support][NVM] | NVM | All | | 11. | [Network boot][PXE] | PXE | Without PXE007.001 | | 12. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT004.001, LBT004.002 | diff --git a/docs/variants/msi_z790/test-matrix.md b/docs/variants/msi_z790/test-matrix.md index 1d5dd58ae3..8e88a30d23 100644 --- a/docs/variants/msi_z790/test-matrix.md +++ b/docs/variants/msi_z790/test-matrix.md @@ -26,7 +26,7 @@ Note that the test scope is used during Dasharo Certification Procedure for for | 6. | [SMBIOS][DMI] | DMI | All | | 7. | [Custom boot logo][CLG] | CLG | All | | 8. | [M.2 WiFi/Bluetooth][WLE] | WLE | All | -| 9. | [Audio subsystem][AUD] | AUD | AUD001.001, AUD001.002, AUD004.001, AUD004.002 AUD005.001, AUD005.002 AUD006.001, AUD006.002 | +| 9. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD004.201, AUD004.301 AUD005.001, AUD005.002 AUD006.001, AUD006.002 | | 10. | [NVMe support][NVM] | NVM | All | | 11. | [Network boot][PXE] | PXE | Without PXE007.001 | | 12. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT004.001, LBT004.002 | From a7abfd84fa25dc8bddb966a8a6779b0c324c863e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 23 Apr 2025 09:28:00 +0200 Subject: [PATCH 068/133] docs: Update AUD tests in test matrices MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/31F-audio-subsystem.md | 4 ++-- docs/unified/protectli/test-matrix.md | 6 +++--- docs/variants/dell_optiplex/test-matrix.md | 2 +- docs/variants/hardkernel_odroid_h4/test-matrix.md | 4 ++-- docs/variants/msi_z690/test-matrix.md | 2 +- docs/variants/msi_z790/test-matrix.md | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md b/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md index 029ecee4fd..477d8ae31a 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md @@ -603,7 +603,7 @@ connecting the external display using the HDMI cable. The connected display should appear in the `Output devices` section. -## AUD008.001 HDMI audio playback (Ubuntu) +## AUD008.201 HDMI audio playback (Ubuntu) **Test description** @@ -642,7 +642,7 @@ recordings by using the external display connected to the HDMI slot. Sound should be played from the external display. -## AUD008.002 HDMI audio playback (Windows) +## AUD008.301 HDMI audio playback (Windows) **Test description** diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index 1535ef282e..1faf9444f0 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -152,7 +152,7 @@ subjected from before the release of the new binary. | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | | 16. | [M.2 automatic SATA/NVMe switching support][MSS] | MSS | MSS001.001 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | - | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | + | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.201, AUD005.301, AUD006.201, AUD006.301 | | 19. | [UEFI Shell][USH] | USH | All | | 20. | [USB detection][UDT] | UDT | All | | 21. | [USB booting][UBT] | UBT | All | @@ -267,7 +267,7 @@ subjected from before the release of the new binary. | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | - | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | + | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.201, AUD005.301, AUD006.201, AUD006.301 | | 19. | [UEFI Shell][USH] | USH | All | | 20. | [USB detection][UDT] | UDT | All | | 21. | [USB booting][UBT] | UBT | All | @@ -381,7 +381,7 @@ subjected from before the release of the new binary. | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | | 16. | [M.2 automatic SATA/NVMe switching support][MSS] | MSS | MSS001.001 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | - | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.001, AUD005.002, AUD006.001, AUD006.002 | + | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.201, AUD005.301, AUD006.201, AUD006.301 | | 19. | [UEFI Shell][USH] | USH | All | | 20. | [USB detection][UDT] | UDT | All | | 21. | [USB booting][UBT] | UBT | All | diff --git a/docs/variants/dell_optiplex/test-matrix.md b/docs/variants/dell_optiplex/test-matrix.md index 196ea00eaf..e26d5c46b6 100644 --- a/docs/variants/dell_optiplex/test-matrix.md +++ b/docs/variants/dell_optiplex/test-matrix.md @@ -16,7 +16,7 @@ subjected from before the release of the new binary. | 3. | [USB HID and MSC Support][USB] | USB | All | | 4. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001| | 5. | [Custom boot logo][CLG] | CLG | All | -| 6. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD004.201, AUD005.001, AUD006.001 | +| 6. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD004.201, AUD005.201, AUD006.201 | | 7. | [NVMe support][NVM]¹ | NVM | NVM001.001, NVM001.002 | | 8. | [Network boot][PXE] | PXE | Without PXE007.001 | | 9. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT003.001, LBT003.002, LBT004.001, LBT004.002| diff --git a/docs/variants/hardkernel_odroid_h4/test-matrix.md b/docs/variants/hardkernel_odroid_h4/test-matrix.md index 329ea0db7a..75e49ae2b3 100644 --- a/docs/variants/hardkernel_odroid_h4/test-matrix.md +++ b/docs/variants/hardkernel_odroid_h4/test-matrix.md @@ -19,8 +19,8 @@ Hardkernel devices. | 7. | [UEFI Shell][USH] | USH | All | | 8. | [NVMe support][NVM] | NVM | NVM001.001, NVM001.002 | | 9. | [Network boot][PXE] | PXE | All | -| 10. | [Display ports][DSP] | DSP | DSP002.201, DSP003.001 | -| 11. | [Audio subsystem][AUD] | AUD | AUD007.001, AUD008.001 | +| 10. | [Display ports][DSP] | DSP | DSP002.201, DSP003.201 | +| 11. | [Audio subsystem][AUD] | AUD | AUD007.201, AUD008.201 | | 12. | [Sleep mode][SUSP] | SUSP | SUSP001.001, SUSP002.001, SUSP003.001, SUSP005.001| | 13. | [SMBIOS verification][DMI] | DMI | All | | 14. | [eMMC support][MMC] | MMC | All | diff --git a/docs/variants/msi_z690/test-matrix.md b/docs/variants/msi_z690/test-matrix.md index c47d846cb2..f973456aaa 100644 --- a/docs/variants/msi_z690/test-matrix.md +++ b/docs/variants/msi_z690/test-matrix.md @@ -26,7 +26,7 @@ tested platforms: `MSI PRO Z690-A WiFi DDR4` and `MSI PRO Z690-A DDR5`. | 6. | [SMBIOS][DMI] | DMI | All | | 7. | [Custom boot logo][CLG] | CLG | All | | 8. | [M.2 WiFi/Bluetooth][WLE] | WLE | All | -| 9. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD004.201, AUD004.301 AUD005.001, AUD005.002 AUD006.001, AUD006.002 | +| 9. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD004.201, AUD004.301 AUD005.201, AUD005.301 AUD006.201, AUD006.301 | | 10. | [NVMe support][NVM] | NVM | All | | 11. | [Network boot][PXE] | PXE | Without PXE007.001 | | 12. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT004.001, LBT004.002 | diff --git a/docs/variants/msi_z790/test-matrix.md b/docs/variants/msi_z790/test-matrix.md index 8e88a30d23..1c0cff64a7 100644 --- a/docs/variants/msi_z790/test-matrix.md +++ b/docs/variants/msi_z790/test-matrix.md @@ -26,7 +26,7 @@ Note that the test scope is used during Dasharo Certification Procedure for for | 6. | [SMBIOS][DMI] | DMI | All | | 7. | [Custom boot logo][CLG] | CLG | All | | 8. | [M.2 WiFi/Bluetooth][WLE] | WLE | All | -| 9. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD004.201, AUD004.301 AUD005.001, AUD005.002 AUD006.001, AUD006.002 | +| 9. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD004.201, AUD004.301 AUD005.201, AUD005.301 AUD006.201, AUD006.301 | | 10. | [NVMe support][NVM] | NVM | All | | 11. | [Network boot][PXE] | PXE | Without PXE007.001 | | 12. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT004.001, LBT004.002 | From 56802456272f631c81ba8eac9443684b30d9aef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 16 Apr 2025 18:48:38 +0200 Subject: [PATCH 069/133] Update CAM test case ID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/317-usb-camera.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/317-usb-camera.md b/docs/unified-test-documentation/dasharo-compatibility/317-usb-camera.md index caf951d26e..217487c426 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/317-usb-camera.md +++ b/docs/unified-test-documentation/dasharo-compatibility/317-usb-camera.md @@ -1,6 +1,6 @@ # Dasharo Compatibility: USB Camera -## CAM001.001 USB Camera (Ubuntu) +## CAM001.201 USB Camera (Ubuntu) **Test description** @@ -52,7 +52,7 @@ ffprobe /dev/video2 Stream #0:0: Video: rawvideo (Y800 / 0x30303859), gray, 640x360, 55296 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc ``` -## CAM001.002 USB Camera (Windows) +## CAM001.301 USB Camera (Windows) **Test description** From b3c69d7700139be390ab68250b7836dde07ae36a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 16 Apr 2025 18:52:54 +0200 Subject: [PATCH 070/133] Update CNB and CPU test case IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/31T-cpu-status.md | 16 ++++++++-------- docs/variants/dell_optiplex/test-matrix.md | 2 +- .../variants/hardkernel_odroid_h4/test-matrix.md | 2 +- docs/variants/msi_z690/test-matrix.md | 2 +- docs/variants/msi_z790/test-matrix.md | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/31T-cpu-status.md b/docs/unified-test-documentation/dasharo-compatibility/31T-cpu-status.md index 3a9285b5b6..14d5625782 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31T-cpu-status.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31T-cpu-status.md @@ -13,7 +13,7 @@ 1. Proceed with the [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -## CPU001.001 CPU works (Ubuntu) +## CPU001.201 CPU works (Ubuntu) **Test description** @@ -38,7 +38,7 @@ Check whether the mounted on the DUT CPU works. The `OPERATING_SYSTEM` screen should be displayed. -## CPU001.002 CPU works (Windows) +## CPU001.301 CPU works (Windows) **Test description** @@ -63,7 +63,7 @@ Check whether the mounted on the DUT CPU works. The `OPERATING_SYSTEM` screen should be displayed. -## CPU002.001 CPU cache enabled (Ubuntu) +## CPU002.201 CPU cache enabled (Ubuntu) **Test description** @@ -114,7 +114,7 @@ LEVEL4_CACHE_ASSOC 0 LEVEL4_CACHE_LINESIZE 0 ``` -## CPU002.002 CPU cache enabled (Windows) +## CPU002.301 CPU cache enabled (Windows) **Test description** @@ -165,7 +165,7 @@ CacheType : 5 InstalledSize : 8192 ``` -## CPU003.001 Multiple CPU support (Ubuntu) +## CPU003.201 Multiple CPU support (Ubuntu) **Test description** @@ -210,7 +210,7 @@ Socket(s): 2 NUMA node(s): 2 ``` -## CPU003.002 Multiple CPU support (Windows) +## CPU003.301 Multiple CPU support (Windows) **Test description** @@ -248,7 +248,7 @@ NumberOfCores 4 ``` -## CPU004.001 Multiple-core support (Ubuntu) +## CPU004.201 Multiple-core support (Ubuntu) **Test description** @@ -293,7 +293,7 @@ Socket(s): 2 NUMA node(s): 2 ``` -## CPU004.002 Multiple-core support (Windows) +## CPU004.301 Multiple-core support (Windows) **Test description** diff --git a/docs/variants/dell_optiplex/test-matrix.md b/docs/variants/dell_optiplex/test-matrix.md index e26d5c46b6..fc3e522f92 100644 --- a/docs/variants/dell_optiplex/test-matrix.md +++ b/docs/variants/dell_optiplex/test-matrix.md @@ -24,7 +24,7 @@ subjected from before the release of the new binary. | 10. | [Custom boot menu key][CBK] | CBK | All | | 15. | [Dasharo Tools Suite][DTS] | DTS | DTS001.001, DTS002.001, DTS003.001, DTS004.001, DTS005.001, DTS006.001 | | 11. | [PCI Express ports support][PEX] | PEX | PEX001.001 | -| 16. | [CPU status][CPU] | CPU | CPU001.001, CPU001.002 | +| 16. | [CPU status][CPU] | CPU | CNB001.201, CNB001.301 | | 17. | [Platform suspend and resume][SUSP] | SUSP | All | | 12. | [EC and Super I/O initialization][ECR] | SIO | SIO001.001, SIO002.001, SIO002.002, SIO003.001, SIO004.001, SIO004.002| | 13. | [Fan control][FAN] | FAN | FAN001.002² | diff --git a/docs/variants/hardkernel_odroid_h4/test-matrix.md b/docs/variants/hardkernel_odroid_h4/test-matrix.md index 75e49ae2b3..98ec8df3d2 100644 --- a/docs/variants/hardkernel_odroid_h4/test-matrix.md +++ b/docs/variants/hardkernel_odroid_h4/test-matrix.md @@ -38,7 +38,7 @@ Hardkernel devices. | 26. | [USB booting][UBT] | UBT | All | | 27. | Setup Menu information | SET | All | | 28. | [Ubuntu booting performance test][BUB]| BUB | All | -| 29. | [CPU status][CPU] | CPU | CPU001.001, CPU002.001, CPU003.001, CPU004.001| +| 29. | [CPU status][CPU] | CPU | CNB001.201, CPU002.001, CPU003.001, CPU004.001| | 30. | [Auto boot time-out][BMM] | BMM | All | [CBO]: ../../unified-test-documentation/dasharo-compatibility/325-custom-boot-order.md diff --git a/docs/variants/msi_z690/test-matrix.md b/docs/variants/msi_z690/test-matrix.md index f973456aaa..635e663cb4 100644 --- a/docs/variants/msi_z690/test-matrix.md +++ b/docs/variants/msi_z690/test-matrix.md @@ -33,7 +33,7 @@ tested platforms: `MSI PRO Z690-A WiFi DDR4` and `MSI PRO Z690-A DDR5`. | 13. | [Windows booting][WBT] | WBT | WBT001.001 | | 14. | [Custom Boot Keys][CBK] | CBK | All | | 15. | [Dasharo Tools Suite][DTS] | DTS | DTS001.001, DTS002.001, DTS003.001, DTS004.001, DTS005.001, DTS006.001 | -| 16. | [CPU status][CPU] | CPU | CPU001.001, CPU001.002 | +| 16. | [CPU status][CPU] | CPU | CNB001.201, CNB001.301 | | 17. | [Platform suspend and resume][SUSP] | SUSP | All | | 18. | [Device power control operations][DPC] | DPC | All | diff --git a/docs/variants/msi_z790/test-matrix.md b/docs/variants/msi_z790/test-matrix.md index 1c0cff64a7..9d4555bd9d 100644 --- a/docs/variants/msi_z790/test-matrix.md +++ b/docs/variants/msi_z790/test-matrix.md @@ -33,7 +33,7 @@ Note that the test scope is used during Dasharo Certification Procedure for for | 13. | [Windows booting][WBT] | WBT | WBT001.001 | | 14. | [Custom Boot Keys][CBK] | CBK | All | | 15. | [Dasharo Tools Suite][DTS] | DTS | DTS001.001, DTS002.001, DTS003.001, DTS004.001, DTS005.001, DTS006.001 | -| 16. | [CPU status][CPU] | CPU | CPU001.001, CPU001.002 | +| 16. | [CPU status][CPU] | CPU | CNB001.201, CNB001.301 | | 17. | [Platform suspend and resume][SUSP] | SUSP | SUSP001.001, SUSP002.001, SUSP003.001, SUSP005.001| [HCL]: ../../unified-test-documentation/dasharo-compatibility/301-memory-hcl.md From 0e278eda2045eb19ebab4d5dc9fecefb91d65a8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 16 Apr 2025 18:59:56 +0200 Subject: [PATCH 071/133] Update DSP tests IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../31E-display-ports-and-lcd.md | 12 ++++++------ docs/unified/protectli/test-matrix.md | 8 ++++---- docs/variants/asus_kgpe_d16/test-matrix.md | 2 +- docs/variants/dell_optiplex/test-matrix.md | 4 ++-- docs/variants/hardkernel_odroid_h4/test-matrix.md | 4 ++-- docs/variants/msi_z690/test-matrix.md | 4 ++-- docs/variants/msi_z790/test-matrix.md | 4 ++-- docs/variants/novacustom_nv4x_tgl/test-matrix.md | 4 ++-- docs/variants/tuxedo_ibs15/test-matrix.md | 2 +- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd.md b/docs/unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd.md index a1dcebf945..57c8900872 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd.md @@ -39,7 +39,7 @@ during firmware execution phase. 1. Logo appears on the screen during firmware execution phase. -## DSP001.002 Internal LCD in OS (Ubuntu) +## DSP001.201 Internal LCD in OS (Ubuntu) **Test description** @@ -67,7 +67,7 @@ This test aims to verify initialization of the laptop's embedded LCD in the OS. 1. Either the login screen or the `OPERATING_SYSTEM` installer appears on the internal LCD. -## DSP001.003 Internal LCD in OS (Windows) +## DSP001.301 Internal LCD in OS (Windows) **Test description** @@ -180,7 +180,7 @@ during firmware execution phase. 1. Logo appears on the screen during firmware execution phase. -## DSP003.001 External DP display in OS (Ubuntu) +## DSP003.201 External DP display in OS (Ubuntu) **Test description** @@ -211,7 +211,7 @@ in the OS. 1. The image should be displayed on the external Display Port connected display in `Mirror` and `Join Displays` modes. -## DSP003.002 External DP display in OS (Windows) +## DSP003.301 External DP display in OS (Windows) **Test description** @@ -268,7 +268,7 @@ display during firmware execution phase. 1. Logo appears on the screen during firmware execution phase. -## DSP004.001 External VGA display in OS (Ubuntu) +## DSP004.201 External VGA display in OS (Ubuntu) **Test description** @@ -298,7 +298,7 @@ This test aims to verify initialization of the external VGA in the OS. 1. The image should be displayed on the external VGA connected display in `Mirror` and `Join Displays` modes. -## DSP004.002 External VGA display in OS (Windows) +## DSP004.301 External VGA display in OS (Windows) **Test description** diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index 1faf9444f0..5b6daa14f9 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -137,7 +137,7 @@ subjected from before the release of the new binary. |:----:|:--------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | - | 3. | [Display ports][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.001, DSP003.002, DSP003.003 | + | 3. | [Display ports][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.201, DSP003.301, DSP003.003 | | 4. | [Network boot utilities][NBT] | NBT | All | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | @@ -254,7 +254,7 @@ subjected from before the release of the new binary. |:----:|:--------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | - | 3. | [Display ports][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.001, DSP003.002, DSP003.003 | + | 3. | [Display ports][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.201, DSP003.301, DSP003.003 | | 4. | [Network boot utilities][NBT] | NBT | All | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | @@ -366,7 +366,7 @@ subjected from before the release of the new binary. |:----:|:--------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | - | 3. | [Display ports][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.001, DSP003.002, DSP003.003 | + | 3. | [Display ports][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.201, DSP003.301, DSP003.003 | | 4. | [Network boot utilities][NBT] | NBT | All | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | @@ -448,7 +448,7 @@ subjected from before the release of the new binary. |:----:|:--------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | - | 3. | [Display ports][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.001, DSP003.002, DSP003.003 | + | 3. | [Display ports][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.201, DSP003.301, DSP003.003 | | 4. | [Network boot utilities][NBT] | NBT | All | | 6. | [Custom logo][CLG] | CLG | All | | 7. | [Custom boot menu key][CBK] | CBK | All | diff --git a/docs/variants/asus_kgpe_d16/test-matrix.md b/docs/variants/asus_kgpe_d16/test-matrix.md index f7ffd29628..572676f993 100644 --- a/docs/variants/asus_kgpe_d16/test-matrix.md +++ b/docs/variants/asus_kgpe_d16/test-matrix.md @@ -19,7 +19,7 @@ subjected from before the release of the new binary. | 8. | [USB booting][UBT] | UBT | All | | 9. | [Platform suspend and resume][SUSP] | SUSP | SUSP001.001 | | 10. | [Flash write protection][HWP] | HWP | All | -| 11. | [Display ports and LCD support][DSP] | DSP | DSP004.001, DSP004.002 | +| 11. | [Display ports and LCD support][DSP] | DSP | DSP004.201, DSP004.301 | [CBP]: ../../unified-test-documentation/dasharo-compatibility/100-coreboot-base-port.md [DMI]: ../../unified-test-documentation/dasharo-compatibility/31L-smbios.md diff --git a/docs/variants/dell_optiplex/test-matrix.md b/docs/variants/dell_optiplex/test-matrix.md index fc3e522f92..dab4df3d0a 100644 --- a/docs/variants/dell_optiplex/test-matrix.md +++ b/docs/variants/dell_optiplex/test-matrix.md @@ -12,7 +12,7 @@ subjected from before the release of the new binary. | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | | 3. | [UEFI Shell][USH] | USH | All | -| 2. | [Display ports and LCD support][DSP] | DSP | DSP003.001, DSP003.003, DSP004.001, DSP004.003 | +| 2. | [Display ports and LCD support][DSP] | DSP | DSP003.201, DSP003.003, DSP004.201, DSP004.003 | | 3. | [USB HID and MSC Support][USB] | USB | All | | 4. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001| | 5. | [Custom boot logo][CLG] | CLG | All | @@ -24,7 +24,7 @@ subjected from before the release of the new binary. | 10. | [Custom boot menu key][CBK] | CBK | All | | 15. | [Dasharo Tools Suite][DTS] | DTS | DTS001.001, DTS002.001, DTS003.001, DTS004.001, DTS005.001, DTS006.001 | | 11. | [PCI Express ports support][PEX] | PEX | PEX001.001 | -| 16. | [CPU status][CPU] | CPU | CNB001.201, CNB001.301 | +| 16. | [CPU status][CPU] | CPU | CPU001.201, CPU001.301 | | 17. | [Platform suspend and resume][SUSP] | SUSP | All | | 12. | [EC and Super I/O initialization][ECR] | SIO | SIO001.001, SIO002.001, SIO002.002, SIO003.001, SIO004.001, SIO004.002| | 13. | [Fan control][FAN] | FAN | FAN001.002² | diff --git a/docs/variants/hardkernel_odroid_h4/test-matrix.md b/docs/variants/hardkernel_odroid_h4/test-matrix.md index 98ec8df3d2..9467219d40 100644 --- a/docs/variants/hardkernel_odroid_h4/test-matrix.md +++ b/docs/variants/hardkernel_odroid_h4/test-matrix.md @@ -31,14 +31,14 @@ Hardkernel devices. | 19. | [Dasharo Tools Suite][DTS] | DTS | DTS001.001, DTS002.001, DTS003.001, DTS004.001, DTS005.001, DTS006.001 | | 20. | [Reset to defaults][RTD] | RTD | RTD001.001, RTD002.001, RTD003.001, RTD004.001, RTD006.001 | | 21. | [Ethernet interface][NET] | NET | All | -| 22. | [Dasharo Configuration Utility][NET] | DCU | DCU001.001, DCU002.001, DCU003.001 | +| 22. | [Dasharo Configuration Utility][NET] | DCU | DCU001.201, DCU002.201, DCU003.201 | | 23. | [ESP scanning][ESP] | ESP | All | | 24. | [Network Boot Utilities][NBT] | NBT | All | | 25. | [USB detection][UDT] | UDT | All | | 26. | [USB booting][UBT] | UBT | All | | 27. | Setup Menu information | SET | All | | 28. | [Ubuntu booting performance test][BUB]| BUB | All | -| 29. | [CPU status][CPU] | CPU | CNB001.201, CPU002.001, CPU003.001, CPU004.001| +| 29. | [CPU status][CPU] | CPU | CPU001.201, CPU002.201, CPU003.201, CPU004.201| | 30. | [Auto boot time-out][BMM] | BMM | All | [CBO]: ../../unified-test-documentation/dasharo-compatibility/325-custom-boot-order.md diff --git a/docs/variants/msi_z690/test-matrix.md b/docs/variants/msi_z690/test-matrix.md index 635e663cb4..b9bb5141f8 100644 --- a/docs/variants/msi_z690/test-matrix.md +++ b/docs/variants/msi_z690/test-matrix.md @@ -21,7 +21,7 @@ tested platforms: `MSI PRO Z690-A WiFi DDR4` and `MSI PRO Z690-A DDR5`. | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | | 3. | [UEFI Shell][USH] | USH | All | -| 4. | [Display ports and LCD support][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.001, DSP003.002, DSP003.003 | +| 4. | [Display ports and LCD support][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.201, DSP003.301, DSP003.003 | | 5. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.002, USB001.003, USB002.001, USB002.002 USB002.003 | | 6. | [SMBIOS][DMI] | DMI | All | | 7. | [Custom boot logo][CLG] | CLG | All | @@ -33,7 +33,7 @@ tested platforms: `MSI PRO Z690-A WiFi DDR4` and `MSI PRO Z690-A DDR5`. | 13. | [Windows booting][WBT] | WBT | WBT001.001 | | 14. | [Custom Boot Keys][CBK] | CBK | All | | 15. | [Dasharo Tools Suite][DTS] | DTS | DTS001.001, DTS002.001, DTS003.001, DTS004.001, DTS005.001, DTS006.001 | -| 16. | [CPU status][CPU] | CPU | CNB001.201, CNB001.301 | +| 16. | [CPU status][CPU] | CPU | CPU001.201, CPU001.301 | | 17. | [Platform suspend and resume][SUSP] | SUSP | All | | 18. | [Device power control operations][DPC] | DPC | All | diff --git a/docs/variants/msi_z790/test-matrix.md b/docs/variants/msi_z790/test-matrix.md index 9d4555bd9d..3004d1c27a 100644 --- a/docs/variants/msi_z790/test-matrix.md +++ b/docs/variants/msi_z790/test-matrix.md @@ -21,7 +21,7 @@ Note that the test scope is used during Dasharo Certification Procedure for for | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | | 3. | [UEFI Shell][USH] | USH | All | -| 4. | [Display ports and LCD support][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.001, DSP003.002, DSP003.003 | +| 4. | [Display ports and LCD support][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.201, DSP003.301, DSP003.003 | | 5. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.002, USB001.003, USB002.001, USB002.002 USB002.003 | | 6. | [SMBIOS][DMI] | DMI | All | | 7. | [Custom boot logo][CLG] | CLG | All | @@ -33,7 +33,7 @@ Note that the test scope is used during Dasharo Certification Procedure for for | 13. | [Windows booting][WBT] | WBT | WBT001.001 | | 14. | [Custom Boot Keys][CBK] | CBK | All | | 15. | [Dasharo Tools Suite][DTS] | DTS | DTS001.001, DTS002.001, DTS003.001, DTS004.001, DTS005.001, DTS006.001 | -| 16. | [CPU status][CPU] | CPU | CNB001.201, CNB001.301 | +| 16. | [CPU status][CPU] | CPU | CPU001.201, CPU001.301 | | 17. | [Platform suspend and resume][SUSP] | SUSP | SUSP001.001, SUSP002.001, SUSP003.001, SUSP005.001| [HCL]: ../../unified-test-documentation/dasharo-compatibility/301-memory-hcl.md diff --git a/docs/variants/novacustom_nv4x_tgl/test-matrix.md b/docs/variants/novacustom_nv4x_tgl/test-matrix.md index f6b63abe8b..5ebee5de34 100644 --- a/docs/variants/novacustom_nv4x_tgl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_tgl/test-matrix.md @@ -13,7 +13,7 @@ subjected from before the release of the new binary. |:----:|:-------------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | -| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.002, DSP001.003, DSP002.201, DSP002.301 | +| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.201, DSP001.301, DSP002.201, DSP002.301 | | 4. | [Embedded Controller and Super I/O initialization][ECR]| ECR | Without ECR021.001, ECR021.002, ECR022.001, ECR022.002, ECR023.001, ECR023.002, ECR024.001, ECR024.002 | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | @@ -150,7 +150,7 @@ subjected from before the release of the new binary. |:----:|:-------------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | -| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.002, DSP001.003, DSP002.201, DSP002.301 | +| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.201, DSP001.301, DSP002.201, DSP002.301 | | 4. | [Embedded Controller and Super I/O initialization][ECR]| ECR | Without ECR021.001, ECR021.002, ECR022.001, ECR022.002, ECR023.001, ECR023.002, ECR024.001, ECR024.002 | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | diff --git a/docs/variants/tuxedo_ibs15/test-matrix.md b/docs/variants/tuxedo_ibs15/test-matrix.md index 8b1ea21e55..44f26e7740 100644 --- a/docs/variants/tuxedo_ibs15/test-matrix.md +++ b/docs/variants/tuxedo_ibs15/test-matrix.md @@ -11,7 +11,7 @@ subjected from before the release of the new binary. |:-----|:--------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | -| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.002, DSP001.003, DSP002.201, DSP002.301, DSP002.003 | +| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.201, DSP001.301, DSP002.201, DSP002.301, DSP002.003 | | 4. | [Embedded Controller and Super I/O initialization][ECR] | ECR | Without ECR021.xxx - ECR024.xxx | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | From ba308739197082ba95323914f2abe8224c727047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 23 Apr 2025 08:47:19 +0200 Subject: [PATCH 072/133] unified-test-documentation: Update CNB, EFI, USH, DSP and AUD test IDS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../30A-custom-network-boot-entries.md | 26 +-- .../30M-uefi-compatible-interface.md | 71 +------ .../dasharo-compatibility/30P-uefi-shell.md | 46 +--- .../31E-display-ports-and-lcd.md | 166 +-------------- .../31F-audio-subsystem.md | 201 +----------------- 5 files changed, 20 insertions(+), 490 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/30A-custom-network-boot-entries.md b/docs/unified-test-documentation/dasharo-compatibility/30A-custom-network-boot-entries.md index 958a13d7b4..63375ee0be 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/30A-custom-network-boot-entries.md +++ b/docs/unified-test-documentation/dasharo-compatibility/30A-custom-network-boot-entries.md @@ -1,27 +1,3 @@ # Dasharo Compatibility: Custom Network Boot entries -## CNB001.002 Only one iPXE in boot menu - -**Test description** - -This test aims to verify that thenetwork boot option with iPXE appears only -once in the boot option list. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). - -**Test steps** - -1. Power on the DUT. -1. Hold the `BOOT_MENU_KEY` to enter the UEFI Boot Menu. -1. Check the iPXE is listed only once on the boot option list. - -**Expected result** - -1. There is only one iPXE entry on the boot option list. +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/unified-test-documentation/dasharo-compatibility/30M-uefi-compatible-interface.md b/docs/unified-test-documentation/dasharo-compatibility/30M-uefi-compatible-interface.md index 849a9fe33d..f040e05cf5 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/30M-uefi-compatible-interface.md +++ b/docs/unified-test-documentation/dasharo-compatibility/30M-uefi-compatible-interface.md @@ -1,72 +1,3 @@ # Dasharo Compatibility: UEFI compatible interface -## EFI001.001 Boot into UEFI OS (Ubuntu) - -**Test description** - -This test verifies the presence of UEFI compatible interface by booting -UEFI-aware Operating System. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). - -**Test steps** - -1. Power on the DUT. -1. Enter the boot menu using the `BIOS_SETUP_KEY`. -1. Select the `Boot Menu` and press `Enter`. -1. Select the USB stick and press `Enter`. -1. Select the `Ubuntu (safe graphics)` in the GRUB menu. -1. Wait for the `OPERATING_SYSTEM` to finalize booting, by either of the: - - `OPERATING_SYSTEM` installer initialization, - - login form initialization. -1. Power OFF the DUT. - -**Expected result** - -1. Either the login screen or the `OPERATING_SYSTEM` installer appears on the - internal LCD. - -## EFI001.002 Boot into UEFI OS (Windows) - -**Test description** - -This test aims to verify the presence of UEFI compatible interface by booting -UEFI-aware Operating System. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). - -**Test steps** - -1. Power on the DUT. -1. Enter the boot menu using the `BIOS_SETUP_KEY`. -1. Select the `Boot Menu` and press `Enter`. -1. Select the USB stick and press `Enter`. -1. Wait for the `OPERATING_SYSTEM` to boot finalize booting, by either of the: - - `OPERATING_SYSTEM` installer initialization, - - login form initialization. -1. Power OFF the DUT. - -**Expected result** - -1. Either the login screen or the `OPERATING_SYSTEM` installer appears on the - internal LCD. +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/unified-test-documentation/dasharo-compatibility/30P-uefi-shell.md b/docs/unified-test-documentation/dasharo-compatibility/30P-uefi-shell.md index 3db1a4ba66..8d0786812e 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/30P-uefi-shell.md +++ b/docs/unified-test-documentation/dasharo-compatibility/30P-uefi-shell.md @@ -1,47 +1,3 @@ # Dasharo Compatibility: UEFI Shell -## USH001.001 UEFI Shell - -**Test description** - -This test aims to verify that the DUT has the ability to boot into an integrated -UEFI Shell application. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -**Test setup** - -1. Proceed with the - [Generic test setup: Firmware](../generic-test-setup.md#firmware). - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the `BOOT_MENU_KEY` to enter the UEFI Boot - Menu. -1. Select the `UEFI Shell` option using the arrow keys and press `Enter`. - -**Expected result** - -The DUT boots into an UEFI Shell successfully, as indicated by the example -console output shown on the screen: - -```text -UEFI Interactive Shell v2.2 -EDK II -UEFI v2.70 (EDK II, 0x00010000) -Mapping table - FS0: Alias(s):HD1b:;BLK2: - PciRoot(0x0)/Pci(0x6,0x0)/Pci(0x0,0x0)/NVMe(0x1,9C-BB-50-01-BB-38-25-5 --4BB4-4FDD-9534-B097CD497222,0x800,0x100000) - FS1: Alias(s):HD1c:;BLK3: - PciRoot(0x0)/Pci(0x6,0x0)/Pci(0x0,0x0)/NVMe(0x1,9C-BB-50-01-BB-38-25-1 --C6AB-4400-AE03-0BF2960DD525,0x100800,0x1D0C5000) - BLK1: Alias(s): - PciRoot(0x0)/Pci(0x6,0x0)/Pci(0x0,0x0)/NVMe(0x1,9C-BB-50-01-BB-38-25-) - BLK0: Alias(s): - PciRoot(0x0)/Pci(0x14,0x0)/USB(0x0,0x2) - Press ESC in 1 seconds to skip startup.nsh or any other key to continue. -``` +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd.md b/docs/unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd.md index 57c8900872..c63f18c4c4 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd.md @@ -41,119 +41,19 @@ during firmware execution phase. ## DSP001.201 Internal LCD in OS (Ubuntu) -**Test description** - -This test aims to verify initialization of the laptop's embedded LCD in the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Observe the internal LCD after the `OPERATING_SYSTEM` has booted. - -**Expected result** - -1. Either the login screen or the `OPERATING_SYSTEM` installer appears on the - internal LCD. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## DSP001.301 Internal LCD in OS (Windows) -**Test description** - -This test aims to verify initialization of the laptop's embedded LCD in the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log in by using the proper login and password. -1. Observe the internal LCD after the `OPERATING_SYSTEM` has booted. - -**Expected result** - -1. Either the login screen or the `OPERATING_SYSTEM` installer appears on the - internal LCD. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## DSP002.201 External HDMI display in OS (Ubuntu) -**Test description** - -This test aims to verify initialization of the external HDMI display in the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Connect an HDMI cable to the DUT and a display. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log in by using the proper login and password. -1. If using more than one display, switch the display mode between `Mirror` and - `Join Displays`. - -**Expected result** - -1. The image should be displayed on the external HDMI display in `Mirror` and - `Join Displays` modes. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## DSP002.301 External HDMI display in OS (Windows) -**Test description** - -This test aims to verify initialization of the external HDMI display in the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Connect a HDMI cable to the DUT and a display. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log in by using the proper login and password. -1. If using more than one display, switch the display mode between `Duplicate` - and `Extend`. - -**Expected result** - -1. The image should be displayed on the external HDMI display in `Duplicate` - and `Extend` modes. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## DSP002.003 External HDMI display in firmware @@ -182,65 +82,11 @@ during firmware execution phase. ## DSP003.201 External DP display in OS (Ubuntu) -**Test description** - -This test aims to verify initialization of the external Display Port connected -in the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Connect a Display Port cable to the DUT and a display. - -**Test steps** - -1. Power on the DUT. -2. Boot into the system. -3. Log in by using the proper login and password. -4. If using more than one display, switch the display mode between `Mirror` and - `Join Displays`. - -**Expected result** - -1. The image should be displayed on the external Display Port connected display - in `Mirror` and `Join Displays` modes. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## DSP003.301 External DP display in OS (Windows) -**Test description** - -This test aims to verify initialization of the external Display Port connected -display in the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Connect a Display Port cable to the DUT and a display. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log in by using the proper login and password. -1. If using more than one display, switch the display mode between `Duplicate` - and `Extend`. - -**Expected result** - -1. The image should be displayed on the external Display Port connected display - in `Duplicate` and `Extend` modes. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## DSP003.003 External DP display in firmware diff --git a/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md b/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md index 477d8ae31a..b82561e96d 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31F-audio-subsystem.md @@ -56,52 +56,7 @@ Tigerlake HDMI ## AUD001.301 Audio subsystem detection (Windows) -**Test description** - -This test aims to verify that the audio subsystem is initialized correctly -and can be detected from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install package `AudioDeviceCmdlets`: - - ```powershell - Install-PackageProvider -Name NuGet -Force - ``` - - ```powershell - Install-Module -Name AudioDeviceCmdlets -Force - ``` - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Run PowerShell as administrator and execute the following command: - - ```powershell - Get-AudioDevice -list | ft Index, Default, Type, Name - ``` - -**Expected result** - -`Microphone (Realtek(R) Audio)` and `Speakers (Realtek(R) Audio)` should be -listed in the output: - -```powershell -Index Default Type Name ------ ------- ---- ---- - 1 True Playback Speakers (Realtek(R) Audio) - 2 True Recording Microphone (Realtek(R) Audio) -``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## AUD002.201 Audio playback (Ubuntu) @@ -249,104 +204,13 @@ This test aims to verify that the audio subsystem is able to capture audio. ## AUD004.201 External headset recognition (Ubuntu) -**Test description** - -This test aims to verify that the external headset is properly recognized -after plugging the 3.5 mm jack into the slot. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the `alsa-utils` package: - `sudo apt install alsa-utils`. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug a headset jack into a micro jack slot located on the right side of - the laptop. -1. When the `Select Audio Device` menu appears, select what type of external - device has been connected to the laptop (headset). -1. Open a terminal window and execute the following command: - - ```bash - amixer -c 0 contents | grep -A 2 'Front Headphone Jack' - ``` - -1. Disconnect the headset from the laptop. -1. Execute the following command again: - - ```bash - amixer -c 0 contents | grep -A 2 'Front Headphone Jack' - ``` - -**Expected result** - -1. The output of the first command should not be empty and contains the line: - - ```text - : values=on - ``` - -1. The output of the second command should not be empty and contains the line: - - ```text - : values=off - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## AUD004.301 External headset recognition (Windows) -**Test description** - -This test aims to verify that the external headset is properly recognized -after plugging the 3.5 mm jack into the slot. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug a headset jack into a micro jack slot located on the right side of - the laptop. -1. After the `Which device did you plug` in menu appears, select what type of - external device has been connected to the laptop (headset). -1. Find the `Speakers` icon in the bottom right part of the screen and click it - using the right mouse button then using the left mouse button click - `Sound Settings`. -1. Locate the `More sound settings` bar and click on it. -1. Click on the `Speakers` bar using the right mouse button then using the left - mouse button click `Properties`. -1. Locate in `General` the section field named `Jack Information`. -1. Close the windows `Speakers Properties` and `Sound`. -1. Disconnect a headset from the laptop. -1. Repeat steps 7-9. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Expected result** - -1. `Jack Information` field in the first case should show the position - `Front Panel 3.5 mm Jack`. -1. After disconnecting a headset from the laptop and checking again field - `Jack Information` should not contain the phrase `Front Panel 3.5 mm Jack`. - -## AUD005.001 External headset audio playback (Ubuntu) +## AUD005.201 External headset audio playback (Ubuntu) **Test description** @@ -384,7 +248,7 @@ recordings by using the external headset speakers. Sound should be played from external speakers. -## AUD005.002 External headset audio playback (Windows) +## AUD005.301 External headset audio playback (Windows) **Test description** @@ -416,7 +280,7 @@ recordings by using the external headset speakers. Sound should be played from external speakers. -## AUD006.001 External headset audio capture (Ubuntu) +## AUD006.201 External headset audio capture (Ubuntu) **Test description** @@ -476,7 +340,7 @@ an external headset. 1. During playback of the second recording, all noise that was made for DUT should be quiet or not heard. -## AUD006.002 External headset audio capture (Windows) +## AUD006.301 External headset audio capture (Windows) **Test description** @@ -521,56 +385,13 @@ an external headset. 1. The result of the test after clicking the `Stop Test` bar should be more than 0% of the total volume. -## AUD007.001 HDMI Audio recognition (Ubuntu) - -**Test description** - -This test aims to verify that the output audio is properly assigned after -connecting the external display using the HDMI cable. +## AUD007.201 HDMI Audio recognition (Ubuntu) -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the `alsa-utils` package: - `sudo apt install alsa-utils`. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Connect the external display to the HDMI slot. -1. Open a terminal window and execute the following command: - - ```bash - pactl list cards | grep "hdmi-output" | grep -v "not available" - ``` - -1. Disconnect the headset from the laptop. -1. Execute the following command again: - - ```bash - pactl list cards | grep "hdmi-output" | grep -v "not available" - ``` - -**Expected result** - -1. The output of the first command should not be empty and contains the line: - - ```text - : hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency - offset: 0 usec, availability group: Legacy 4, available) - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. The output of the second command should be empty +## AUD007.301 HDMI Audio recognition (Windows) -## AUD007.002 HDMI Audio recognition (Windows) +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop **Test description** From d79288792ca1d526626b61516ddd87993dc1380f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 23 Apr 2025 08:58:37 +0200 Subject: [PATCH 073/133] =?UTF-8?q?docs:=20Update=20CNB,=20EFI=20tests=20I?= =?UTF-8?q?Ds=20in=20test=20matrices=20Signed-off-by:=20Filip=20Go=C5=82a?= =?UTF-8?q?=C5=9B=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/unified/protectli/test-matrix.md | 12 ++++++------ docs/variants/hardkernel_odroid_h4/test-matrix.md | 4 ++-- docs/variants/novacustom_ns5x_adl/test-matrix.md | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index 5b6daa14f9..f3445d5845 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -22,7 +22,7 @@ subjected from before the release of the new binary. | 9. | [Custom boot menu key][CBK] | CBK | All | | 10. | [FreeBSD support][BSD] | BSD | All | | 11. | [miniPCIe LTE/WiFi/Bluetooth][MWL] | MWL | MWL004.001 | - | 12. | [Custom network boot entries][CNB] | CNB | CNB001.002 | + | 12. | [Custom network boot entries][CNB] | CNB | CNB001.201 | [HCL]: ../../unified-test-documentation/dasharo-compatibility/301-memory-hcl.md [DSP]: ../../unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd.md @@ -63,7 +63,7 @@ subjected from before the release of the new binary. | 10. | [M.2 WiFi/Bluetooth][WLE] | WLE | All | | 11. | [eMMC support][MMC] | MMC | All | | 12. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | - | 13. | [Custom network boot entries][CNB] | CNB | CNB001.002 | + | 13. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 14. | [Audio subsystem][AUD] | AUD | AUD007.xxx, AUD008.xxx | | 15. | [UEFI Shell][USH] | USH | All | | 16. | [USB detection][UDT] | UDT | All | @@ -149,7 +149,7 @@ subjected from before the release of the new binary. | 12. | [M.2 WiFi/Bluetooth][WLE] | WLE | ALL | | 13. | [eMMC support][MMC] | MMC | MMC001.001 | | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | - | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | + | 15. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 16. | [M.2 automatic SATA/NVMe switching support][MSS] | MSS | MSS001.001 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.201, AUD005.301, AUD006.201, AUD006.301 | @@ -265,7 +265,7 @@ subjected from before the release of the new binary. | 11. | [USB-C support][UTC] | UTC | UTC004.001, UTC004.002 | | 12. | [M.2 WiFi/Bluetooth][WLE] | WLE | ALL | | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | - | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | + | 15. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.201, AUD005.301, AUD006.201, AUD006.301 | | 19. | [UEFI Shell][USH] | USH | All | @@ -378,7 +378,7 @@ subjected from before the release of the new binary. | 12. | [M.2 WiFi/Bluetooth][WLE] | WLE | ALL | | 13. | [eMMC support][MMC] | MMC | MMC001.001 | | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | - | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | + | 15. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 16. | [M.2 automatic SATA/NVMe switching support][MSS] | MSS | MSS001.001 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.201, AUD005.301, AUD006.201, AUD006.301 | @@ -459,7 +459,7 @@ subjected from before the release of the new binary. | 12. | [M.2 WiFi/Bluetooth][WLE] | WLE | ALL | | 13. | [eMMC support][MMC] | MMC | MMC001.001 | | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | - | 15. | [Custom network boot entries][CNB] | CNB | CNB001.002 | + | 15. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | | 18. | [UEFI Shell][USH] | USH | All | | 19. | [USB detection][UDT] | UDT | All | diff --git a/docs/variants/hardkernel_odroid_h4/test-matrix.md b/docs/variants/hardkernel_odroid_h4/test-matrix.md index 9467219d40..ac485966c2 100644 --- a/docs/variants/hardkernel_odroid_h4/test-matrix.md +++ b/docs/variants/hardkernel_odroid_h4/test-matrix.md @@ -14,8 +14,8 @@ Hardkernel devices. | 2. | [Custom Boot Keys][CBK] | CBK | All | | 3. | [Custom logo][CLG] | CLG | All | | 4. | [USB HID and MSC Support][USB] | USB | USB001.0001, USB001.002, USB002.001, USB002.002| -| 5. | [Custom network boot entries][CNB] | CNB | CNB001.002 | -| 6. | [UEFI compatible interface][EFI] | EFI | EFI001.001 | +| 5. | [Custom network boot entries][CNB] | CNB | CNB001.201 | +| 6. | [UEFI compatible interface][EFI] | EFI | EFI001.201 | | 7. | [UEFI Shell][USH] | USH | All | | 8. | [NVMe support][NVM] | NVM | NVM001.001, NVM001.002 | | 9. | [Network boot][PXE] | PXE | All | diff --git a/docs/variants/novacustom_ns5x_adl/test-matrix.md b/docs/variants/novacustom_ns5x_adl/test-matrix.md index e5ee28a7ca..894c7d5593 100644 --- a/docs/variants/novacustom_ns5x_adl/test-matrix.md +++ b/docs/variants/novacustom_ns5x_adl/test-matrix.md @@ -11,7 +11,7 @@ subjected before the release of the new binary. |:----:|:-------------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | -| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.002, DSP001.003, DSP002.201, DSP002.301 | +| 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.201, DSP001.301, DSP002.201, DSP002.301 | | 4. | [Embedded Controller and Super I/O initialization][ECR]| ECR | All | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | From a457de0213b81db481684b5ca7abee18073ab1e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 23 Apr 2025 09:48:21 +0200 Subject: [PATCH 074/133] 31G-ec-and-superio: Update test case IDs to new convention MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../31G-ec-and-superio.md | 611 +++--------------- 1 file changed, 90 insertions(+), 521 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/31G-ec-and-superio.md b/docs/unified-test-documentation/dasharo-compatibility/31G-ec-and-superio.md index a571153ac2..e53c32ccf4 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31G-ec-and-superio.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31G-ec-and-superio.md @@ -13,64 +13,15 @@ 1. Proceed with the [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -## ECR001.001 Battery monitoring - charge level in OS (Ubuntu) +## ECR001.201 Battery monitoring - charge level in OS (Ubuntu) -**Test description** - -This test verifies whether the battery charge level is reported in the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Locate the power menu in the upper right corner of the screen. -1. Open the power menu and locate the battery status indicator. - -**Expected result** - -1. The battery status indicator should show the current charge level (percentage - left). - -## ECR001.002 Battery monitoring - charge level in OS (Windows) - -**Test description** - -This test verifies whether the battery charge level is reported in the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Locate the power menu in the lower right corner of the screen. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Expected result** +## ECR001.301 Battery monitoring - charge level in OS (Windows) -1. The battery status indicator should show the current charge level (percentage - left). +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -## ECR001.003 Battery start charge threshold +## ECR002.003 Battery start charge threshold **Test description** @@ -132,145 +83,21 @@ The aim of this test is to check that functionality. The battery should stop charging at stop threshold. -## ECR002.001 Battery monitoring - charging state in OS (Ubuntu) - -**Test description** - -This test verifies that the power supply state is detected correctly in the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Locate the power menu in the upper right corner of the screen. -1. Open the power menu and locate the battery status indicator. -1. Note the current state. -1. Unplug the power supply and wait for the battery charge state to change to - `Discharging`. -1. Plug in the power supply and wait for the battery charge state to change to - `Charging`. - -**Expected result** - -1. The battery charge indicator should correctly show whether the power supply - is plugged in or not. -1. The battery charge indicator should detect the AC adapter state change - within seconds of the adapter being plugged in/out. - -## ECR002.002 Battery monitoring - charging state in OS (Windows) - -**Test description** - -This test verifies that the power supply state is detected correctly in the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Locate the power menu in the lower right corner of the screen. -1. Open the power menu and locate the battery status indicator. -1. Note the current state. -1. Unplug the power supply and wait for the battery charge state to change to - `on battery`. -1. Plug in the power supply and wait for the battery charge state to change to - `plugged in`. - -**Expected result** - -1. The battery charge indicator should correctly show whether the power supply - is plugged in or not. -1. The battery charge indicator should detect the AC adapter state change - within seconds of the adapter being plugged in / out. - -## ECR003.001 Touchpad in OS - (Ubuntu) - -**Test description** - -This test verifies that the touchpad is initialized correctly and is detected -by the operating system. +## ECR002.201 Battery monitoring - charging state in OS (Ubuntu) -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install `libinput-tools` on the DUT. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Verify that the cursor can be moved with the touchpad and that clicking works - (test both clicking and tapping). -1. Run `sudo libinput debug-events` in the terminal: - 1. Verify that scrolling with 2 fingers generates a `POINTER_AXIS` event, - 1. Verify that pinching with 2 fingers generates a `GESTURE_PINCH_UPDATE` event. -1. Press `Ctrl + C` to terminate the `libinput` program. - -**Expected result** - -1. Moving the cursor, clicking, zooming and scrolling are detected correctly by - the operating system. - -## ECR003.002 Touchpad in OS - (Windows) - -**Test description** - -This test verifies that the touchpad is initialized correctly and is detected -by the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test setup** +## ECR002.301 Battery monitoring - charging state in OS (Windows) -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test steps** +## ECR003.201 Touchpad in OS - (Ubuntu) -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Verify that the cursor can be moved with the touchpad and that clicking - works (test both clicking and tapping). -1. Open `C:\Windows` in `Windows Explorer` - 1. Verify that scrolling with 2 fingers moves the content of the window, - 1. Verify that pinching with 2 fingers zooms in and zooms out the content. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Expected result** +## ECR003.301 Touchpad in OS - (Windows) -1. Moving the cursor, clicking, zooming and scrolling are detected correctly by - the operating system. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## ECR004.001 Keyboard (standard keypad) in firmware @@ -297,7 +124,7 @@ and all basic keys work according to their labels. 1. All menus can be entered using the internal keyboard. -## ECR004.002 Keyboard (standard keypad) in OS (Ubuntu) +## ECR004.201 Keyboard (standard keypad) in OS (Ubuntu) **Test description** @@ -329,7 +156,7 @@ system and all basic keys work according to their labels. their labels. 1. Key combinations are detected correctly. -## ECR004.003 Keyboard (standard keypad) in OS (Windows) +## ECR004.301 Keyboard (standard keypad) in OS (Windows) **Test description** @@ -365,7 +192,7 @@ system and all basic keys work according to their labels. or actions when pressed. 1. Key combinations are detected correctly. -## ECR005.001 Keyboard (function key: play/pause) in OS (Ubuntu) +## ECR005.201 Keyboard (function key: play/pause) in OS (Ubuntu) **Test description** @@ -394,7 +221,7 @@ This test verifies that the play/pause hotkey works correctly. 1. Pressing the play/pause hotkey generates a `KEY_PLAYPAUSE` event. -## ECR005.002 Keyboard (function key: play/pause) in OS (Windows) +## ECR005.301 Keyboard (function key: play/pause) in OS (Windows) **Test description** @@ -423,7 +250,7 @@ This test verifies that the play/pause hotkey works correctly. 1. Pressing the play/pause hotkey is properly detected by the OS -## ECR006.001 Keyboard (function key: cooling mode) in OS (Ubuntu) +## ECR006.201 Keyboard (function key: cooling mode) in OS (Ubuntu) **Test description** @@ -454,7 +281,7 @@ This test verifies that the cooling mode hotkey works correctly. 1. Pressing the hotkey again should deactivate the cooling mode (fans should return to normal). -## ECR006.002 Keyboard (function key: cooling mode) in OS (Windows) +## ECR006.301 Keyboard (function key: cooling mode) in OS (Windows) **Test description** @@ -485,7 +312,7 @@ This test verifies that the cooling mode hotkey works correctly. 1. Pressing the hotkey again should deactivate the cooling mode (fans should return to normal). -## ECR007.001 Keyboard (function key: touchpad on/off) in OS (Ubuntu) +## ECR007.201 Keyboard (function key: touchpad on/off) in OS (Ubuntu) **Test description** @@ -529,7 +356,7 @@ sudo udevadm trigger completely inoperable). 1. Pressing the hotkey again should reactivate the touchpad. -## ECR007.002 Keyboard (function key: touchpad on/off) in OS (Windows) +## ECR007.301 Keyboard (function key: touchpad on/off) in OS (Windows) **Test description** @@ -559,7 +386,7 @@ This test verifies that the touchpad on/off hotkey works correctly. completely inoperable). 1. Pressing the hotkey again should reactivate the touchpad. -## ECR008.001 Keyboard (function key: display on/off) in OS (Ubuntu) +## ECR008.201 Keyboard (function key: display on/off) in OS (Ubuntu) **Test description** @@ -588,7 +415,7 @@ This test verifies that the display on/off hotkey works correctly. 1. Pressing the hotkey once should turn the internal LCD panel off. 1. Pressing any key on the keyboard should power the internal LCD panel back on. -## ECR008.002 Keyboard (function key: display on/off) in OS (Windows) +## ECR008.301 Keyboard (function key: display on/off) in OS (Windows) **Test description** @@ -618,7 +445,7 @@ This test verifies that the display on/off hotkey works correctly. 1. Pressing any key on the keyboard should power the internal LCD panel back on. -## ECR009.001 Keyboard (function key: mute) in OS (Ubuntu) +## ECR009.201 Keyboard (function key: mute) in OS (Ubuntu) **Test description** @@ -647,7 +474,7 @@ This test verifies that the volume mute hotkey works correctly. 1. Each keypress should cause a mute/unmute notification to appear in the middle of the screen. -## ECR009.002 Keyboard (function key: mute) in OS (Windows) +## ECR009.301 Keyboard (function key: mute) in OS (Windows) **Test description** @@ -677,7 +504,7 @@ This test verifies that the mute hotkey works correctly. 1. Pressing the hotkey once should mute the device 1. Pressing the hotkey again should re-enable the sound -## ECR010.001 Keyboard (function key: keyboard backlight) in OS (Ubuntu) +## ECR010.201 Keyboard (function key: keyboard backlight) in OS (Ubuntu) **Test description** @@ -707,7 +534,7 @@ This test verifies that the keyboard backlight hotkey works correctly. set the keyboard to the next mode, with the last mode wrapping back around to the first. -## ECR010.002 Keyboard (function key: keyboard backlight) in OS (Windows) +## ECR010.301 Keyboard (function key: keyboard backlight) in OS (Windows) **Test description** @@ -737,7 +564,7 @@ This test verifies that the keyboard backlight hotkey works correctly. set the keyboard to the next mode, with the last mode wrapping back around to the first. -## ECR011.001 Keyboard (function key: volume down) in OS (Ubuntu) +## ECR011.201 Keyboard (function key: volume down) in OS (Ubuntu) **Test description** @@ -767,7 +594,7 @@ This test verifies that the volume down hotkey works correctly. 1. Each key press should cause a volume down notification to appear in the middle of the screen. -## ECR011.002 Keyboard (function key: volume down) in OS (Windows) +## ECR011.301 Keyboard (function key: volume down) in OS (Windows) **Test description** @@ -797,7 +624,7 @@ This test verifies that the volume down hotkey works correctly. 1. Each key press should cause a volume down notification to appear in the upper left part of the screen. -## ECR012.001 Keyboard (function key: volume up) in OS (Ubuntu) +## ECR012.201 Keyboard (function key: volume up) in OS (Ubuntu) **Test description** @@ -827,7 +654,7 @@ This test verifies that the volume up hotkey works correctly. 1. Each key press should cause a volume up notification to appear in the middle of the screen. -## ECR012.002 Keyboard (function key: volume up) in OS (Windows) +## ECR012.301 Keyboard (function key: volume up) in OS (Windows) **Test description** @@ -857,7 +684,7 @@ This test verifies that the volume up hotkey works correctly. 1. Each key press should cause a volume up notification to appear in the upper left part of the screen. -## ECR013.001 Keyboard (function key: display switch) in OS (Ubuntu) +## ECR013.201 Keyboard (function key: display switch) in OS (Ubuntu) **Test description** @@ -893,7 +720,7 @@ This test verifies that the display switch hotkey works correctly. event3 KEYBOARD_KEY +0.015s KEY_LEFTMETA (125) released ``` -## ECR013.002 Keyboard (function key: display switch) in OS (Windows) +## ECR013.301 Keyboard (function key: display switch) in OS (Windows) **Test description** @@ -921,32 +748,11 @@ This test verifies that the display switch hotkey works correctly. 1. Pressing the hotkey should cause the display settings bar to appear on the right part of the screen. -## ECR014.001 Keyboard (function key: brightness down) in OS (Ubuntu) +## ECR014.201 Keyboard (function key: brightness down) in OS (Ubuntu) -**Test description** - -This test verifies that the brightness down hotkey works correctly. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test steps** - -1. Press the brightness down hotkey once and note the effects. - -**Expected result** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Pressing the hotkey should decrease the brightness of the internal LCD - display. -1. Each key press should cause a brightness down notification to appear in the - middle of the screen. - -## ECR014.002 Keyboard (function key: brightness down) in OS (Windows) +## ECR014.301 Keyboard (function key: brightness down) in OS (Windows) **Test description** @@ -976,37 +782,11 @@ This test verifies that the brightness down hotkey works correctly. 1. Each key press should cause a brightness down notification to appear in the top left of the screen. -## ECR015.001 Keyboard (function key: brightness up) in OS (Ubuntu) - -**Test description** - -This test verifies that the brightness up hotkey works correctly. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. +## ECR015.201 Keyboard (function key: brightness up) in OS (Ubuntu) -**Test steps** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Press the brightness up hotkey once and note the effects. - -**Expected result** - -1. Pressing the hotkey should increase the brightness of the internal LCD - display. -1. Each key press should cause a brightness up notification to appear in the - middle of the screen. - -## ECR015.002 Keyboard (function key: brightness up) in OS (Windows) +## ECR015.301 Keyboard (function key: brightness up) in OS (Windows) **Test description** @@ -1036,39 +816,11 @@ This test verifies that the brightness down hotkey works correctly. 1. Each key press should cause a brightness up notification to appear in the top left of the screen. -## ECR016.001 Keyboard (function key: camera on/off) in OS (Ubuntu) - -**Test description** +## ECR016.201 Keyboard (function key: camera on/off) in OS (Ubuntu) -This test verifies that the camera on/off hotkey works correctly. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open the terminal and run the command: `watch -n1 lsusb`. -1. Press the camera on/off hotkey twice and note the effect after each - keypress. - -**Expected result** - -1. Pressing the hotkey once should make the - `Chicony Electronics Co., Ltd Chicony USB2.0 Camera` device disappear - from the output of `lsusb`. -1. Pressing the hotkey again should make the USB device reappear. - -## ECR016.002 Keyboard (function key: camera on/off) in OS (Windows) +## ECR016.301 Keyboard (function key: camera on/off) in OS (Windows) **Test description** @@ -1099,38 +851,11 @@ This test verifies that the camera on/off hotkey works correctly. 1. Pressing the hotkey again should make the camera image appear again after a few seconds. -## ECR017.001 Keyboard (function key: flight mode) in OS (Ubuntu) - -**Test description** - -This test verifies that the flight mode hotkey works correctly. - -**Test configuration data** +## ECR017.201 Keyboard (function key: flight mode) in OS (Ubuntu) -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Locate and open the power menu in the upper right corner of the screen. -1. Enter Settings and navigate to the Wi-Fi panel. -1. Note the current state of the Airplane Mode switch. -1. Press the flight mode hotkey twice and note the result of each keypress. - -**Expected result** - -1. Pressing the hotkey once should enable airplane mode. -1. Pressing the hotkey again should disable airplane mode. - -## ECR017.002 Keyboard (function key: flight mode) in OS (Windows) +## ECR017.301 Keyboard (function key: flight mode) in OS (Windows) **Test description** @@ -1162,7 +887,7 @@ This test verifies that the flight mode hotkey works correctly. `airplane mode off` notification to appear in the top right part of the screen. -## ECR018.001 Keyboard (function key: sleep) in OS (Ubuntu) +## ECR018.201 Keyboard (function key: sleep) in OS (Ubuntu) **Test description** @@ -1190,7 +915,7 @@ This test verifies that the sleep hotkey works correctly. 1. The laptop should go to sleep within seconds of the hotkey being pressed. 1. The power LED should be blinking green, indicating the laptop is sleeping. -## ECR018.002 Keyboard (function key: sleep) in OS (Windows) +## ECR018.301 Keyboard (function key: sleep) in OS (Windows) **Test description** @@ -1222,69 +947,11 @@ This test verifies that the sleep hotkey works correctly. 1. The laptop should go to sleep within seconds of the hotkey being pressed. 1. The power LED should be blinking green, indicating the laptop is sleeping. -## ECR019.001 Buttons (button: power) in OS (Ubuntu) - -**Test description** - -This test verifies that the power button is detected correctly by the operating -system. In Ubuntu 22.04 OS the default function assigned to this key is suspend -mode. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open the terminal and run the following command to check the power button - action: - - ```bash - gsettings get org.gnome.settings-daemon.plugins.power power-button-action - ``` - -1. If the status is other than `suspend` run the following command to change - the power button action: - - ```bash - gsettings set org.gnome.settings-daemon.plugins.power power-button-action "suspend" - ``` - -1. Check the power button action again by running the following command: - - ```bash - gsettings get org.gnome.settings-daemon.plugins.power power-button-action - ``` - -1. Press the power button once and note the result. -1. Press `Enter` and note the result. -1. Run the following command to check last finished operation: +## ECR019.201 Buttons (button: power) in OS (Ubuntu) - ```bash - journalctl | grep systemd-logind | tail -1 - ``` - -**Expected result** - -1. Pressing the button once should make laptop enter sleep mode. -1. The power LED should be blinking green, indicating the laptop is sleeping. -1. After completing the 5th step device should wake up. -1. The output of the last command should contain the line: - - ```bash - Operation 'sleep' finished - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -## ECR019.002 Buttons (button: power) in OS (Windows) +## ECR019.301 Buttons (button: power) in OS (Windows) **Test description** @@ -1318,7 +985,7 @@ mode. 1. Pressing the button once should make laptop enter sleep mode. 1. The power LED should be blinking green, indicating the laptop is sleeping. -## ECR020.001 Buttons (button: lid switch) in OS (Ubuntu) +## ECR020.201 Buttons (button: lid switch) in OS (Ubuntu) **Test description** @@ -1359,7 +1026,7 @@ system. 1. The output of the second command should report that the lid is closed. 1. The output of the third command should report that the lid is open. -## ECR020.002 Buttons (button: lid switch) in OS (Windows) +## ECR020.301 Buttons (button: lid switch) in OS (Windows) **Test description** @@ -1392,7 +1059,7 @@ system. 1. Pressing the button once should make laptop enter sleep mode. 1. The power LED should be blinking green, indicating the laptop is sleeping. -## ECR021.001 Keyboard (function key: RGB keyboard toggle) in OS (Ubuntu) +## ECR021.201 Keyboard (function key: RGB keyboard toggle) in OS (Ubuntu) **Test description** @@ -1421,7 +1088,7 @@ the operating system. 1. Pressing the button once should disable the keyboard backlight. 1. Pressing the button again should re-enable the keyboard backlight. -## ECR021.002 Keyboard (function key: RGB keyboard toggle) in OS (Windows) +## ECR021.301 Keyboard (function key: RGB keyboard toggle) in OS (Windows) **Test description** @@ -1450,7 +1117,7 @@ the operating system. 1. Pressing the button once should disable the keyboard backlight. 1. Pressing the button again should re-enable the keyboard backlight. -## ECR022.001 RGB keyboard next color FN key in OS (Ubuntu) +## ECR022.201 RGB keyboard next color FN key in OS (Ubuntu) **Test description** @@ -1480,7 +1147,7 @@ by the operating system. 1. Pressing the button once should switch the keyboard color. 1. All color modes according to product documentation should be accessible. -## ECR022.002 RGB keyboard next color FN key in OS (Windows) +## ECR022.301 RGB keyboard next color FN key in OS (Windows) **Test description** @@ -1510,7 +1177,7 @@ by the operating system. 1. Pressing the button once should switch the keyboard color. 1. All color modes according to product documentation should be accessible. -## ECR023.001 RGB keyboard brightness down FN key in OS (Ubuntu) +## ECR023.201 RGB keyboard brightness down FN key in OS (Ubuntu) **Test description** @@ -1538,7 +1205,7 @@ properly by the operating system. 1. Pressing the button once should lower the keyboard backlight -## ECR023.002 RGB keyboard brightness down FN key in OS (Windows) +## ECR023.301 RGB keyboard brightness down FN key in OS (Windows) **Test description** @@ -1566,7 +1233,7 @@ properly by the operating system. 1. Pressing the button once should lower the keyboard backlight. -## ECR024.001 RGB keyboard brightness up FN key in OS (Ubuntu) +## ECR024.201 RGB keyboard brightness up FN key in OS (Ubuntu) **Test description** @@ -1594,7 +1261,7 @@ properly by the operating system. 1. Pressing the button once should increase the keyboard backlight. -## ECR024.002 RGB keyboard brightness up FN key in OS (Windows) +## ECR024.301 RGB keyboard brightness up FN key in OS (Windows) **Test description** @@ -1622,7 +1289,7 @@ properly by the operating system. 1. Pressing the button once should increase the keyboard backlight. -## ECR025.001 Permanent keyboard illumination after cold-boot (Firmware) +## ECR025.201 Permanent keyboard illumination after cold-boot (Firmware) **Test description** @@ -1651,7 +1318,7 @@ illuminates in firmware. 1. After cold-boot keyboard brightness and colors settings remain the same. -## ECR025.002 Permanent keyboard illumination after cold-boot (Ubuntu) +## ECR025.201 Permanent keyboard illumination after cold-boot (Ubuntu) **Test description** @@ -1684,7 +1351,7 @@ illuminates in Ubuntu. 1. After cold-boot keyboard brightness and colors settings remain the same. -## ECR025.003 Permanent keyboard illumination after cold-boot (Windows) +## ECR025.301 Permanent keyboard illumination after cold-boot (Windows) **Test description** @@ -1717,7 +1384,7 @@ illuminates in Windows. 1. After cold-boot keyboard brightness and colors settings remain the same. -## ECR026.001 Permanent keyboard illumination after warm-boot (Firmware) +## ECR026.201 Permanent keyboard illumination after warm-boot (Firmware) **Test description** @@ -1745,7 +1412,7 @@ illuminates in firmware. 1. After warm-boot keyboard brightness and colors settings remain the same. -## ECR026.002 Permanent keyboard illumination after warm-boot (Ubuntu) +## ECR026.201 Permanent keyboard illumination after warm-boot (Ubuntu) **Test description** @@ -1777,7 +1444,7 @@ illuminates in Ubuntu. 1. After warm-boot keyboard brightness and colors settings remain the same. -## ECR026.003 Permanent keyboard illumination after warm-boot (Windows) +## ECR026.301 Permanent keyboard illumination after warm-boot (Windows) **Test description** @@ -1809,7 +1476,7 @@ illuminates in Windows. 1. After warm-boot keyboard brightness and colors settings remain the same. -## ECR027.001 Permanent keyboard illumination after reboot (Firmware) +## ECR027.201 Permanent keyboard illumination after reboot (Firmware) **Test description** @@ -1836,7 +1503,7 @@ illuminates in firmware. 1. After reboot keyboard brightness and colors settings remain the same. -## ECR027.002 Permanent keyboard illumination after reboot (Ubuntu) +## ECR027.201 Permanent keyboard illumination after reboot (Ubuntu) **Test description** @@ -1869,7 +1536,7 @@ illuminates in Ubuntu 1. After reboot keyboard brightness and colors settings remain the same. -## ECR027.003 Permanent keyboard illumination after reboot (Windows) +## ECR027.301 Permanent keyboard illumination after reboot (Windows) **Test description** @@ -1902,7 +1569,7 @@ illuminates in Windows 11. 1. After reboot keyboard brightness and colors settings remain the same. -## ECR028.001 Permanent keyboard illumination after suspension (Firmware) +## ECR028.201 Permanent keyboard illumination after suspension (Firmware) **Test description** @@ -1930,7 +1597,7 @@ illuminates in firmware. 1. After suspend keyboard brightness and colors settings remain the same. -## ECR028.002 Permanent keyboard illumination after suspension (Ubuntu) +## ECR028.201 Permanent keyboard illumination after suspension (Ubuntu) **Test description** @@ -1961,7 +1628,7 @@ illuminates in Ubuntu 1. After suspend keyboard brightness and colors settings remain the same. -## ECR028.003 Permanent keyboard illumination after suspension (Windows) +## ECR028.301 Permanent keyboard illumination after suspension (Windows) **Test description** @@ -1992,7 +1659,7 @@ illuminates in Windows. 1. After suspend keyboard brightness and colors settings remain the same. -## ECR029.001 FnLock Hotkey (Ubuntu) +## ECR029.201 FnLock Hotkey (Ubuntu) **Test description** @@ -2022,7 +1689,7 @@ Ubuntu. 1. The function keys `F1` - `F12` behave as if `Fn` key is pressed. -## ECR029.002 FnLock Hotkey (Windows) +## ECR029.301 FnLock Hotkey (Windows) **Test description** @@ -2052,113 +1719,15 @@ Windows. 1. The function keys `F1` - `F12` behave as if `Fn` key is pressed. -## ECR030.001 Charging until 98% battery level (Ubuntu) - -**Test description** - -This test aims to verify if charging the battery stops when the battery level -reaches 98% mark. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute following command to check current battery - charge level percentage: - - ```bash - cat /sys/class/power_supply/BAT0/capacity - ``` - -1. Note the results. -1. If the battery level sits below 95% mark, plug the charger into the DUT. -1. If the battery level sits above 95% mark, wait until the DUT's battery - discharges to below 95% level and then plug the charger into the DUT. -1. Wait until the DUT's battery charge level reaches 98%. -1. Open a terminal window and execute following command to confirm that the - battery charging stops at 98% mark: - - ```bash - cat /sys/class/power_supply/BAT0/status - ``` +## ECR030.201 Charging until 98% battery level (Ubuntu) -1. Note the results. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Expected result** - -1. The output of the `cat /sys/class/power_supply/BAT0/capacity` command should - contain information about the current battery charge level. -1. The output of the `cat /sys/class/power_supply/BAT0/status` command should - contain information about the current battery charging status. - Example output: - - ```bash - not charging - ``` +## ECR031.201 Not charging between 95% and 98% levels (Ubuntu) -## ECR030.001 Not charging between 95% and 98% levels (Ubuntu) - -**Test description** - -This test aims to verify if charging the battery does not start after plugging -in the charger into the DUT when the battery level sits between 95% and 98%. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute following command to check current battery - charge level percentage: - - ```bash - cat /sys/class/power_supply/BAT0/capacity - ``` - -1. Note the results. -1. If the battery level sits between 95% and 98%, plug the charger into the DUT. -1. If the battery level sits below 95%, plug the charger into the DUT, wait - until the battery reaches the level between 95% and 98% and then unplug the - charger and plug it back in into the DUT. -1. Open a terminal window and execute following command to confirm that the - battery does not start charging: - - ```bash - cat /sys/class/power_supply/BAT0/status - ``` - -1. The output of the `cat /sys/class/power_supply/BAT0/capacity` command should - contain information about the current battery charge level. -1. The output of the `cat /sys/class/power_supply/BAT0/status` command should - contain information about the current battery charging status. - Example output: - - ```bash - not charging - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -## ECR031.001 EC firmware sync in coreboot +## ECR032.001 EC firmware sync in coreboot **Test description** @@ -2196,7 +1765,7 @@ This test verifies the automatic EC firmware update / sync feature in coreboot. 1. There should not be a pop-up indicating that the EC update failed for any reason. -## ECR032.001 EC firmware sync in coreboot blocked when AC not connected +## ECR033.001 EC firmware sync in coreboot blocked when AC not connected **Test description** @@ -2230,7 +1799,7 @@ coreboot does not attempt to update the EC while an AC adapter is not connected. not proceed correctly, and asking them to reboot with an AC adapter connected. -## ECR033.001 EC power button watchdog +## ECR034.001 EC power button watchdog **Test description** @@ -2264,7 +1833,7 @@ can reset the EC. Last reset caused by PWRSW WDT Timeout! ``` -## ECR034.001 Soft Switch Microphone Key (Ubuntu) +## ECR035.201 Soft Switch Microphone Key (Ubuntu) **Test description** @@ -2295,7 +1864,7 @@ This test verifies that Fn+4 key combination for microphone soft switch works aforementioned bar which state is currently active as noise made will make the bar go back and forth if ON and completely still if OFF -## ECR034.002 Soft Switch Microphone Key (Windows) +## ECR034.301 Soft Switch Microphone Key (Windows) **Test description** @@ -2326,7 +1895,7 @@ This test verifies that Fn+4 key combination for microphone soft switch works aforementioned bar which state is currently active as the noise made will make the bar go back and forth if ON and completely still if OFF -## SIO001.001 PS/2 mouse in OS - (Ubuntu) +## SIO001.201 PS/2 mouse in OS - (Ubuntu) **Test description** @@ -2357,7 +1926,7 @@ by the operating system. 1. Moving the cursor and clicking working correctly in the operating system. -## SIO001.002 PS/2 mouse in OS - (Windows) +## SIO001.301 PS/2 mouse in OS - (Windows) **Test description** @@ -2416,7 +1985,7 @@ and all basic keys work according to their labels. 1. All menus can be entered using the PS/2 keyboard. -## SIO002.002 PS/2 keyboard in OS (Ubuntu) +## SIO002.201 PS/2 keyboard in OS (Ubuntu) **Test description** @@ -2450,7 +2019,7 @@ system and all basic keys work according to their labels. their labels. 2. Key combinations are detected correctly. -## SIO002.003 PS/2 keyboard in OS (Windows) +## SIO002.301 PS/2 keyboard in OS (Windows) **Test description** @@ -2488,7 +2057,7 @@ system and all basic keys work according to their labels. or actions when pressed. 2. Key combinations are detected correctly. -## SIO003.001 PS/2 keyboard wake in OS (Ubuntu) +## SIO003.201 PS/2 keyboard wake in OS (Ubuntu) **Test description** @@ -2520,7 +2089,7 @@ system and all basic keys work according to their labels. 1. Platform is resuming to the OS from sleep after pressing the key. -## SIO003.002 PS/2 keyboard wake in OS (Windows) +## SIO003.301 PS/2 keyboard wake in OS (Windows) **Test description** @@ -2580,7 +2149,7 @@ and the menu can be traversed with serial console. 1. All menus can be entered using the serial console. -## SIO004.002 Serial port in OS (Ubuntu) +## SIO004.201 Serial port in OS (Ubuntu) **Test description** From 443b20cca510dfc6dca86d67681d26a4fca16fcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 23 Apr 2025 09:53:39 +0200 Subject: [PATCH 075/133] docs: Update ECR test IDs in test matrices MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/variants/novacustom_nv4x_tgl/test-matrix.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/variants/novacustom_nv4x_tgl/test-matrix.md b/docs/variants/novacustom_nv4x_tgl/test-matrix.md index 5ebee5de34..ee57361489 100644 --- a/docs/variants/novacustom_nv4x_tgl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_tgl/test-matrix.md @@ -14,7 +14,7 @@ subjected from before the release of the new binary. | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | | 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.201, DSP001.301, DSP002.201, DSP002.301 | -| 4. | [Embedded Controller and Super I/O initialization][ECR]| ECR | Without ECR021.001, ECR021.002, ECR022.001, ECR022.002, ECR023.001, ECR023.002, ECR024.001, ECR024.002 | +| 4. | [Embedded Controller and Super I/O initialization][ECR]| ECR | Without ECR021.201, ECR021.301, ECR022.201, ECR022.301, ECR023.201, ECR023.301, ECR024.201, ECR024.301 | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | | 7. | [Custom boot keys][CBK] | CBK | All | @@ -151,7 +151,7 @@ subjected from before the release of the new binary. | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [UEFI compatible interface][EFI] | EFI | All | | 3. | [Display ports and LCD support][DSP] | DSP | DSP001.001, DSP001.201, DSP001.301, DSP002.201, DSP002.301 | -| 4. | [Embedded Controller and Super I/O initialization][ECR]| ECR | Without ECR021.001, ECR021.002, ECR022.001, ECR022.002, ECR023.001, ECR023.002, ECR024.001, ECR024.002 | +| 4. | [Embedded Controller and Super I/O initialization][ECR]| ECR | Without ECR021.201, ECR021.301, ECR022.201, ECR022.301, ECR023.201, ECR023.301, ECR024.201, ECR024.301 | | 5. | [NVMe support][NVM] | NVM | All | | 6. | [Custom logo][CLG] | CLG | All | | 7. | [Custom boot keys][CBK] | CBK | All | From de0f6798461e4196d1029e66e53e2ec5d1edd9f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 23 Apr 2025 09:56:05 +0200 Subject: [PATCH 076/133] 362-dcu.md: Update DCU test case IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/362-dcu.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/362-dcu.md b/docs/unified-test-documentation/dasharo-compatibility/362-dcu.md index c65547c731..7d2e36e8d4 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/362-dcu.md +++ b/docs/unified-test-documentation/dasharo-compatibility/362-dcu.md @@ -1,6 +1,6 @@ # Dasharo Compatibility: Dasharo Configuration Utility -## DCU001.001 Change the UUID +## DCU001.201 Change the UUID **Test description** @@ -32,7 +32,7 @@ coreboot.rom` The UUID of the platform should be `96bcfa1a-42b4-6717-a44c-d8bbc18cbea4`, just as we had set it. -## DCU002.001 Change the serial number +## DCU002.201 Change the serial number **Test description** @@ -61,7 +61,7 @@ image can be changed using our utility. The serial number of the platform should be `D01234567`, just as we had set it. -## DCU003.001 Change the bootsplash logo +## DCU003.201 Change the bootsplash logo **Test description** From 944990c5fb198f94f78c654c364b7f4dcaa84fd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 07:31:10 +0200 Subject: [PATCH 077/133] 31H-usb-type-c.md: Remove automatic test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit And add a link to osfv to look for them there instead Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/31H-usb-type-c.md | 2982 ++--------------- 1 file changed, 337 insertions(+), 2645 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/31H-usb-type-c.md b/docs/unified-test-documentation/dasharo-compatibility/31H-usb-type-c.md index fa439becf2..b511563825 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31H-usb-type-c.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31H-usb-type-c.md @@ -2,6 +2,9 @@ ## Test cases common documentation +The test suite is mostly fully automated. Only manual test cases are documented. +Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop + **Test setup** 1. Proceed with the @@ -161,12 +164,12 @@ Disable (HAP) or Disable (Soft). 1. The smartphone should indicate that it's charging. -## UTC003.001 USB Type-C PD power input (Ubuntu) +## UTC007.001 USB Type-C docking station Triple display (Ubuntu) **Test description** -This test verifies that the device can sink power from a USB-PD power supply -connected to the Thunderbolt 4 port. +This test aims to verify that the three display simultaneously connected to the +docking station is correctly recognized by the `OPERATING_SYSTEM`. **Test configuration data** @@ -177,31 +180,32 @@ connected to the Thunderbolt 4 port. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. +1. Connect three displays using HDMI/DisplayPort cables, depending on the + specifications of the docking station. +1. The `USB-C docking station` connected to the USB-C port. + + > If the docking station is not directly connected to the DUT, but with a + > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with + > 5A current capability. **Test steps** 1. Power on the DUT. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Disconnect any charger from the DUT. -1. Connect the charger plug to the docking station. -1. Open a terminal window and run the following command: - - ```bash - cat /sys/class/power_supply/BAT0/status - ``` +1. Switch the display mode between `Mirror` and `Join Displays`. **Expected result** -Output of the command should show one of this: `Charging` or `Full`. That means -laptop is charged properly. +The image should be displayed on the three external displays in `Mirror` and +`Join Displays` modes. -## UTC003.002 USB Type-C PD power input (Windows) +## UTC007.002 USB Type-C docking station Triple display (Windows) **Test description** -This test verifies that the device can sink power from a USB-PD power supply -connected to the Thunderbolt 4 port. +This test aims to verify that the three display simultaneously connected to the +docking station is correctly recognized by the `OPERATING_SYSTEM`. **Test configuration data** @@ -212,36 +216,33 @@ connected to the Thunderbolt 4 port. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. +1. Connect three displays using HDMI/DisplayPort cables, depending on the + specifications of the docking station. +1. The `USB-C docking station` connected to the USB-C port. + + > If the docking station is not directly connected to the DUT, but with a + > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with + > 5A current capability. **Test steps** 1. Power on the DUT. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Disconnect any charger from the DUT. -1. Connect the charger plug to the docking station. -1. Open PowerShell and and run the following command: - - ```powershell - Get-WmiObject win32_battery - ``` +1. If using more than one display, switch the display mode between `Duplicate` + and `Extend`. **Expected result** -If `BatteryStatus` is equal 2, that means laptop is charged properly. - -Example part of output: - -```powershell -BatteryStatus : 2 -``` +The image should be displayed on the three external displays in `Duplicate` and +`Extend` modes. -## UTC003.003 USB Type-C PD power input with ME disabled(Ubuntu) +## TMD007.001 USB Type-C docking station Triple display with ME disabled(Ubuntu) **Test description** -This test verifies that the device can sink power from a USB-PD power supply -connected to the Thunderbolt 4 port. +This test aims to verify that the three display simultaneously connected to the +docking station is correctly recognized by the `OPERATING_SYSTEM`. **Test configuration data** @@ -252,6 +253,13 @@ connected to the Thunderbolt 4 port. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. +1. Connect three displays using HDMI/DisplayPort cables, depending on the + specifications of the docking station. +1. The `USB-C docking station` connected to the USB-C port. + + > If the docking station is not directly connected to the DUT, but with a + > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with + > 5A current capability. **Test steps** @@ -268,25 +276,19 @@ Disable (HAP) or Disable (Soft). 1. Select the Reset option to apply the settings and reboot. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Disconnect any charger from the DUT. -1. Connect the charger plug to the docking station. -1. Open a terminal window and run the following command: - - ```bash - cat /sys/class/power_supply/BAT0/status - ``` +1. Switch the display mode between `Mirror` and `Join Displays`. **Expected result** -Output of the command should show one of this: `Charging` or `Full`. That means -laptop is charged properly. +The image should be displayed on the three external displays in `Mirror` and +`Join Displays` modes. -## UTC003.004 USB Type-C PD power input with ME disabled(Windows) +## UTC007.006 USB Type-C docking station Triple display with ME disabled(Windows) **Test description** -This test verifies that the device can sink power from a USB-PD power supply -connected to the Thunderbolt 4 port. +This test aims to verify that the three display simultaneously connected to the +docking station is correctly recognized by the `OPERATING_SYSTEM`. **Test configuration data** @@ -297,6 +299,13 @@ connected to the Thunderbolt 4 port. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. +1. Connect three displays using HDMI/DisplayPort cables, depending on the + specifications of the docking station. +1. The `USB-C docking station` connected to the USB-C port. + + > If the docking station is not directly connected to the DUT, but with a + > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with + > 5A current capability. **Test steps** @@ -313,107 +322,59 @@ Disable (HAP) or Disable (Soft). 1. Select the Reset option to apply the settings and reboot. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Disconnect any charger from the DUT. -1. Connect the charger plug to the docking station. -1. Open PowerShell and and run the following command: - - ```powershell - Get-WmiObject win32_battery - ``` - -**Expected result** - -If `BatteryStatus` is equal 2, that means laptop is charged properly. - -Example part of output: - -```powershell -BatteryStatus : 2 -``` - -## UTC004.001 USB Type-C Display output (Ubuntu) - -**Test description** - -This test verifies that DUT output video to a display connected via -the Thunderbolt 4 USB Type-C port. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Connect a display to the Thunderbolt 4 USB Type-C port using - a USB Type-C hub -1. Open the Settings application and select the Displays panel in the left menu. -1. Verify that the attached external monitor can be selected. -1. Select and enable the monitor. +1. If using more than one display, switch the display mode between `Duplicate` + and `Extend`. **Expected result** -1. The monitor connected to the laptop via the Thunderbolt 4 port should power - on and display video from the laptop. +The image should be displayed on the three external displays in `Duplicate` and +`Extend` modes. -## UTC004.002 USB Type-C Display output (Windows) +## UTC011.001 USB Type-C docking station USB devices recognition (firmware) **Test description** -This test verifies that DUT output video to a display connected via -the Thunderbolt 4 USB Type-C port. +This test aims to verify that the external USB devices connected to the docking +station are recognized correctly by the `FIRMWARE`. **Test configuration data** 1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows **Test setup** 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. +1. The `USB-C docking station` connected to the USB-C port. +1. The `USB storage` connected to the `USB-C docking station`. **Test steps** 1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Connect a display to the Thunderbolt 4 USB Type-C port using - a USB Type-C hub. -1. Right click on the desktop to open the desktop context menu. -1. Select `Display Settings` to open the display settings window. -1. Verify that the attached external monitor can be selected. -1. Select and enable the monitor. +1. Hold the `BIOS_MENU_KEY` to enter the BIOS Menu. +1. Check if the `USB storage` is available on the list. **Expected result** -1. The monitor connected to the laptop via the Thunderbolt 4 port should power - on and display video from the laptop. +The `USB storage` is available which confirms successful recognition. -## UTC004.005 USB Type-C Display output with ME disabled(Ubuntu) +## UTC011.004 USB Type-C docking station USB devices recognition ME disabled (firmware) **Test description** -This test verifies that DUT output video to a display connected via -the Thunderbolt 4 USB Type-C port. +This test aims to verify that the external USB devices connected to the docking +station are recognized correctly by the `FIRMWARE`. **Test configuration data** 1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu **Test setup** 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. +1. The `USB-C docking station` connected to the USB-C port. +1. The `USB storage` connected to the `USB-C docking station`. **Test steps** @@ -428,69 +389,48 @@ Disable (HAP) or Disable (Soft). 1. If necessary - press Y to confirm saving the changes. 1. Go back to the main menu using the ESC key. 1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Connect a display to the Thunderbolt 4 USB Type-C port using - a USB Type-C hub -1. Open the Settings application and select the Displays panel in the left menu. -1. Verify that the attached external monitor can be selected. -1. Select and enable the monitor. +1. Hold the `BIOS_MENU_KEY` to enter the BIOS Menu. +1. Check if the `USB storage` is available on the list. **Expected result** -1. The monitor connected to the laptop via the Thunderbolt 4 port should power - on and display video from the laptop. +The `USB storage` is available which confirms successful recognition. -## UTC004.006 USB Type-C Display output with ME disabled(Windows) +## UTC012.001 USB Type-C docking station USB keyboard (firmware) **Test description** -This test verifies that DUT output video to a display connected via -the Thunderbolt 4 USB Type-C port. +This test aims to verify that the external USB keyboard connected to the docking +station is detected correctly by the `FIRMWARE` and all basic keys work +according to their labels. **Test configuration data** 1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows **Test setup** 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. +1. The `USB-C docking station` connected to the USB-C port. +1. The `external USB keyboard` connected to the docking station. **Test steps** -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Connect a display to the Thunderbolt 4 USB Type-C port using - a USB Type-C hub. -1. Right click on the desktop to open the desktop context menu. -1. Select `Display Settings` to open the display settings window. -1. Verify that the attached external monitor can be selected. -1. Select and enable the monitor. +1. Power on the DUT +1. Hold the `BIOS_MENU_KEY` to enter the Bios Menu. +1. Use the arrow keys, Esc key and the Enter key to navigate the menus. **Expected result** -1. The monitor connected to the laptop via the Thunderbolt 4 port should power - on and display video from the laptop. +All menus can be entered using the external USB keyboard. -## UTC005.001 USB Type-C docking station HDMI display (Ubuntu) +## UTC013.001 USB Type-C docking station upload 1GB file on USB storage (Ubuntu) **Test description** -This test aims to verify that the display connected with the HDMI cable to the -docking station is correctly recognized by the `OPERATING_SYSTEM`. +This test aims to verify that the 1GB file can be transferred from the +`OPERATING_SYSTEM` to the `USB storage` connected to the docking station. **Test configuration data** @@ -501,32 +441,54 @@ docking station is correctly recognized by the `OPERATING_SYSTEM`. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect an HDMI cable to the docking station and a display. 1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. +1. The `USB storage` connected to the `USB-C docking station`. **Test steps** 1. Power on the DUT. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. If using more than one display, switch the display mode between `Mirror` and - `Join Displays`. +1. Open a terminal window and run the following command to generate 1GB file: + + ```bash + openssl rand -out test_file.txt -base64 $(( 2**30 * 3/4 )) + ``` + +1. Read the path to the `USB storage` by running the following command: + + ```bash + lsblk + ``` + +1. Copy the generated file to the `USB storage` by running the following + command: + + ```bash + cp test_file.txt {path_to_usb_storage} + ``` + +1. Verify that the files are the same by running the following command: + + ```bash + sha256sum test_file.txt {path_to_usb_storage}/test_file.txt + ``` **Expected result** -The image should be displayed on the external HDMI-connected display in `Mirror` -and `Join Displays` modes. +The output from the last command should contain 2 identical checksums: + +```bash +f46597c0c63a1eefb200d40edf654e52f10c3d5d21565886ad603fabaf8d39fb test_file.txt +f46597c0c63a1eefb200d40edf654e52f10c3d5d21565886ad603fabaf8d39fb {path_to_usb_storage}/test_file.txt +``` -## UTC005.002 USB Type-C docking station HDMI display (Windows) +## UTC013.002 USB Type-C docking station upload 1GB file on USB storage(Windows) **Test description** -This test aims to verify that the display connected with the HDMI cable to the -docking station is correctly recognized by the `OPERATING_SYSTEM`. +This test aims to verify that the 1GB file can be transferred from the +`OPERATING_SYSTEM` to the `USB storage` connected to the docking station. **Test configuration data** @@ -537,32 +499,64 @@ docking station is correctly recognized by the `OPERATING_SYSTEM`. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect an HDMI cable to the docking station and a display. 1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. +1. The `USB storage` connected to the `USB-C docking station`. **Test steps** 1. Power on the DUT. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. If using more than one display, switch the display mode between `Duplicate` - and `Extend`. +1. Open powershell as administrator and run the following command to generate + 1GB file: + + ```powershell + fsutil file createnew test_file.txt 1073741824 + ``` + +1. Read the drive letter assigned to the `USB storage` by running the following + command: + + ```powershell + (Get-Volume | where drivetype -eq removable).driveletter + ``` + +1. Copy the generated file to the `USB storage` by running the following + command: + + ```powershell + Copy-Item -Path C:\Windows\system32\test_file.txt {drive_letter}: + ``` + +1. Verify that the files are the same by running the following commands: + + ```powershell + Get-FileHash test_file.txt + Get-FileHash {drive_letter}:\test_file.txt + ``` **Expected result** -The image should be displayed on the external HDMI-connected display in -`Duplicate` and `Extend` modes. +The output from the last commands should have equal hash: + +```powershell +Algorithm Hash Path +--------- ---- ---- +SHA256 F46597C0C63A1EEFB200D40EDF654E52F10C3D5D21565886AD603FABAF8D39FB C\Windows\system3... +``` + +```powershell +Algorithm Hash Path +--------- ---- ---- +SHA256 F46597C0C63A1EEFB200D40EDF654E52F10C3D5D21565886AD603FABAF8D39FB E:\test_file.txt +``` -## UTC005.005 USB Type-C docking station HDMI display with ME disabled(Ubuntu) +## UTC013.003 USB Type-C docking station upload 1GB file on USB storage with ME disabled(Ubuntu) **Test description** -This test aims to verify that the display connected with the HDMI cable to the -docking station is correctly recognized by the `OPERATING_SYSTEM`. +This test aims to verify that the 1GB file can be transferred from the +`OPERATING_SYSTEM` to the `USB storage` connected to the docking station. **Test configuration data** @@ -573,12 +567,8 @@ docking station is correctly recognized by the `OPERATING_SYSTEM`. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect an HDMI cable to the docking station and a display. 1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. +1. The `USB storage` connected to the `USB-C docking station`. **Test steps** @@ -595,2277 +585,46 @@ Disable (HAP) or Disable (Soft). 1. Select the Reset option to apply the settings and reboot. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. If using more than one display, switch the display mode between `Mirror` and - `Join Displays`. +1. Open a terminal window and run the following command to generate 1GB file: -**Expected result** + ```bash + openssl rand -out test_file.txt -base64 $(( 2**30 * 3/4 )) + ``` -The image should be displayed on the external HDMI-connected display in `Mirror` -and `Join Displays` modes. +1. Read the path to the `USB storage` by running the following command: -## UTC005.006 USB Type-C docking station HDMI display with ME disabled(Windows) + ```bash + lsblk + ``` -**Test description** - -This test aims to verify that the display connected with the HDMI cable to the -docking station is correctly recognized by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect an HDMI cable to the docking station and a display. -1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. If using more than one display, switch the display mode between `Duplicate` - and `Extend`. - -**Expected result** - -The image should be displayed on the external HDMI-connected display in -`Duplicate` and `Extend` modes. - -## UTC006.001 USB Type-C docking station DP display (Ubuntu) - -**Test description** - -This test aims to verify that the display connected with the HDMI cable to the -docking station is correctly recognized by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect a Display Port cable to the docking station and a display. -1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. If using more than one display, switch the display mode between `Mirror` and - `Join Displays`. - -**Expected result** - -The image should be displayed on the external DisplayPort-connected display in -`Mirror` and `Join Displays` modes. - -## UTC006.002 USB Type-C docking station DP display (Windows) - -**Test description** - -This test aims to verify that the display connected with the DisplayPort cable -to the docking station is correctly recognized by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect a DisplayPort cable to the docking station and a display. -1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. If using more than one display, switch the display mode between `Duplicate` - and `Extend`. - -**Expected result** - -The image should be displayed on the external DisplayPort-connected display in -`Duplicate` and `Extend` modes. - -## UTC006.005 USB Type-C docking station DP display with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the display connected with the HDMI cable to the -docking station is correctly recognized by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect a Display Port cable to the docking station and a display. -1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. If using more than one display, switch the display mode between `Mirror` and - `Join Displays`. - -**Expected result** - -The image should be displayed on the external DisplayPort-connected display in -`Mirror` and `Join Displays` modes. - -## UTC006.006 USB Type-C docking station DP display with ME disabled(Windows) - -**Test description** - -This test aims to verify that the display connected with the DisplayPort cable -to the docking station is correctly recognized by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect a DisplayPort cable to the docking station and a display. -1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. If using more than one display, switch the display mode between `Duplicate` - and `Extend`. - -**Expected result** - -The image should be displayed on the external DisplayPort-connected display in -`Duplicate` and `Extend` modes. - -## UTC007.001 USB Type-C docking station Triple display (Ubuntu) - -**Test description** - -This test aims to verify that the three display simultaneously connected to the -docking station is correctly recognized by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect three displays using HDMI/DisplayPort cables, depending on the - specifications of the docking station. -1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Switch the display mode between `Mirror` and `Join Displays`. - -**Expected result** - -The image should be displayed on the three external displays in `Mirror` and -`Join Displays` modes. - -## UTC007.002 USB Type-C docking station Triple display (Windows) - -**Test description** - -This test aims to verify that the three display simultaneously connected to the -docking station is correctly recognized by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect three displays using HDMI/DisplayPort cables, depending on the - specifications of the docking station. -1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. If using more than one display, switch the display mode between `Duplicate` - and `Extend`. - -**Expected result** - -The image should be displayed on the three external displays in `Duplicate` and -`Extend` modes. - -## TMD007.001 USB Type-C docking station Triple display with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the three display simultaneously connected to the -docking station is correctly recognized by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect three displays using HDMI/DisplayPort cables, depending on the - specifications of the docking station. -1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Switch the display mode between `Mirror` and `Join Displays`. - -**Expected result** - -The image should be displayed on the three external displays in `Mirror` and -`Join Displays` modes. - -## UTC007.006 USB Type-C docking station Triple display with ME disabled(Windows) - -**Test description** - -This test aims to verify that the three display simultaneously connected to the -docking station is correctly recognized by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect three displays using HDMI/DisplayPort cables, depending on the - specifications of the docking station. -1. The `USB-C docking station` connected to the USB-C port. - - > If the docking station is not directly connected to the DUT, but with a - > USB-C to USB-C cable, make sure it is full-featured cable (>=5Gbps) with - > 5A current capability. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. If using more than one display, switch the display mode between `Duplicate` - and `Extend`. - -**Expected result** - -The image should be displayed on the three external displays in `Duplicate` and -`Extend` modes. - -## UTC008.001 USB Type-C docking station detection after coldboot (Ubuntu) - -**Test description** - -This test aims to verify that the DUT properly detects the docking station after -coldboot (realized by power supply cutting off then restoring back). -This test case may be re-done several times to specify the platform and -connection stability. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Cut the power off while DUT is turned on. -1. Restore power and power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. - -**Expected result** - -After `lsusb` command the docking station entries should be displayed, but -output can be different depending on the model of the docking station. - -Example entries signifing the docking station: - -```bash -Bus 002 Device 010: Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter -Bus 002 Device 009: Prolific Technology, Inc. USB SD Card Reader -Bus 002 Device 008: VIA Labs, Inc. USB3.0 Hub -``` - -## UTC008.002 USB Type-C docking station detection after coldboot with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the DUT properly detects the docking station after -coldboot (realized by power supply cutting off then restoring back). -This test case may be re-done several times to specify the platform and -connection stability. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Cut the power off while DUT is turned on. -1. Restore power and power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. - -**Expected result** - -After `lsusb` command the docking station entries should be displayed, but -output can be different depending on the model of the docking station. - -Example entries signifing the docking station: - -```bash -Bus 002 Device 010: Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter -Bus 002 Device 009: Prolific Technology, Inc. USB SD Card Reader -Bus 002 Device 008: VIA Labs, Inc. USB3.0 Hub -``` - -## UTC009.001 USB Type-C docking station detection after warmboot (Ubuntu) - -**Test description** - -This test aims to verify that the DUT properly detects the docking station -after warmboot (realized by device turning off then turning on). This test case -may be re-done several times to specify the platform and connection stability. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. - -**Expected result** - -After `lsusb` command the docking station entries should be displayed, but -output can be different depending on the model of the docking station. - -Example entries signifing the docking station: - -```bash -Bus 002 Device 010: Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter -Bus 002 Device 009: Prolific Technology, Inc. USB SD Card Reader -Bus 002 Device 008: VIA Labs, Inc. USB3.0 Hub -``` - -## UTC009.002 USB Type-C docking station detection after warmboot with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the DUT properly detects the docking station -after warmboot (realized by device turning off then turning on). This test case -may be re-done several times to specify the platform and connection stability. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. - -**Expected result** - -After `lsusb` command the docking station entries should be displayed, but -output can be different depending on the model of the docking station. - -Example entries signifing the docking station: - -```bash -Bus 002 Device 010: Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter -Bus 002 Device 009: Prolific Technology, Inc. USB SD Card Reader -Bus 002 Device 008: VIA Labs, Inc. USB3.0 Hub -``` - -## UTC010.001 USB Type-C docking station detection after reboot (Ubuntu) - -**Test description** - -This test aims to verify that the DUT properly detects the docking station -after system reboot (performed by relevant command). This test case may be -re-done several times to specify the platform and connection stability. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - sudo reboot - ``` - -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. - -**Expected result** - -After `lsusb` command the docking station entries should be displayed, but -output can be different depending on the model of the docking station. - -Example entries signifing the docking station: - -```bash -Bus 002 Device 010: Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter -Bus 002 Device 009: Prolific Technology, Inc. USB SD Card Reader -Bus 002 Device 008: VIA Labs, Inc. USB3.0 Hub -``` - -## UTC010.002 USB Type-C docking station detection after reboot ME disabled (Ubuntu) - -**Test description** - -This test aims to verify that the DUT properly detects the docking station -after system reboot (performed by relevant command). This test case may be -re-done several times to specify the platform and connection stability. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option D -isable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - sudo reboot - ``` - -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. - -**Expected result** - -After `lsusb` command the docking station entries should be displayed, but -output can be different depending on the model of the docking station. - -Example entries signifing the docking station: - -```bash -Bus 002 Device 010: Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter -Bus 002 Device 009: Prolific Technology, Inc. USB SD Card Reader -Bus 002 Device 008: VIA Labs, Inc. USB3.0 Hub -``` - -## UTC011.001 USB Type-C docking station USB devices recognition (firmware) - -**Test description** - -This test aims to verify that the external USB devices connected to the docking -station are recognized correctly by the `FIRMWARE`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `USB storage` connected to the `USB-C docking station`. - -**Test steps** - -1. Power on the DUT. -1. Hold the `BIOS_MENU_KEY` to enter the BIOS Menu. -1. Check if the `USB storage` is available on the list. - -**Expected result** - -The `USB storage` is available which confirms successful recognition. - -## UTC011.002 USB Type-C docking station USB devices recognition (Ubuntu) - -**Test description** - -This test aims to verify that the external USB devices connected to the docking -station are recognized correctly by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `USB storage` connected to the `USB-C docking station`. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - watch -n1 lsusb - ``` - -1. Connect(or Disconnect) external USB devices to the USB ports on the docking - station and note the result. - -**Expected result** - -1. After each device is connected to the USB port, a new USB device entry - in `lsusb` command output should appear. -1. After each device is disconnected from the USB port, a USB device entry - in `lsusb` command output should disappear. - -## UTC011.003 USB Type-C docking station USB devices recognition (Windows) - -**Test description** - -This test aims to verify that the external USB devices connected to the docking -station are recognized correctly by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `USB storage` connected to the `USB-C docking station`. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell and and run the following command: - - ```powershell - Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } - ``` - -1. Note the results. - -**Expected result** - -After executing the command, a list containing all USB devices should be -displayed. The list should contain the `USB storage`, which is plug in. - - Example output: - - ```bash - Status Class FriendlyName - ------ ----- ------------ - OK DiskDrive Mass Storage Device USB Device - OK USB Generic USB Hub - OK HIDClass USB Input Device - OK Bluetooth Intel(R) Wireless Bluetooth(R) - OK DiskDrive USB SanDisk 3.2Gen1 USB Device - OK USB USB Root Hub (USB 3.0) - OK Net TP-LINK Gigabit Ethernet USB Adapter - OK USB Generic USB Hub - OK USB USB Mass Storage Device - ``` - -## UTC011.004 USB Type-C docking station USB devices recognition ME disabled (firmware) - -**Test description** - -This test aims to verify that the external USB devices connected to the docking -station are recognized correctly by the `FIRMWARE`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `USB storage` connected to the `USB-C docking station`. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Hold the `BIOS_MENU_KEY` to enter the BIOS Menu. -1. Check if the `USB storage` is available on the list. - -**Expected result** - -The `USB storage` is available which confirms successful recognition. - -## UTC011.005 USB Type-C docking station USB devices recognition with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the external USB devices connected to the docking -station are recognized correctly by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `USB storage` connected to the `USB-C docking station`. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - watch -n1 lsusb - ``` - -1. Connect(or Disconnect) external USB devices to the USB ports on the docking - station and note the result. - -**Expected result** - -1. After each device is connected to the USB port, a new USB device entry - in `lsusb` command output should appear. -1. After each device is disconnected from the USB port, a USB device entry - in `lsusb` command output should disappear. - -## UTC011.006 USB Type-C docking station USB devices recognition with ME disabled(Windows) - -**Test description** - -This test aims to verify that the external USB devices connected to the docking -station are recognized correctly by the `OPERATING_SYSTEM`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `USB storage` connected to the `USB-C docking station`. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell and and run the following command: - - ```powershell - Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } - ``` - -1. Note the results. - -**Expected result** - -After executing the command, a list containing all USB devices should be -displayed. The list should contain the `USB storage`, which is plug in. - - Example output: - - ```bash - Status Class FriendlyName - ------ ----- ------------ - OK DiskDrive Mass Storage Device USB Device - OK USB Generic USB Hub - OK HIDClass USB Input Device - OK Bluetooth Intel(R) Wireless Bluetooth(R) - OK DiskDrive USB SanDisk 3.2Gen1 USB Device - OK USB USB Root Hub (USB 3.0) - OK Net TP-LINK Gigabit Ethernet USB Adapter - OK USB Generic USB Hub - OK USB USB Mass Storage Device - ``` - -## UTC012.001 USB Type-C docking station USB keyboard (firmware) - -**Test description** - -This test aims to verify that the external USB keyboard connected to the docking -station is detected correctly by the `FIRMWARE` and all basic keys work -according to their labels. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `external USB keyboard` connected to the docking station. - -**Test steps** - -1. Power on the DUT -1. Hold the `BIOS_MENU_KEY` to enter the Bios Menu. -1. Use the arrow keys, Esc key and the Enter key to navigate the menus. - -**Expected result** - -All menus can be entered using the external USB keyboard. - -## UTC012.002 USB Type-C docking station USB keyboard (Ubuntu) - -**Test description** - -This test aims to verify that the external USB keyboard connected to the docking -station is detected correctly by the `OPERATING_SYSTEM` and all basic keys work -according to their labels. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the `libinput-tools` package: `sudo apt install libinput-tools`. -1. The `USB-C docking station` connected to the USB-C port. -1. The `external USB keyboard` connected to the docking station. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Run the following command in the terminal: - - ```bash - libinput debug-events --show-keycodes - ``` - -1. Test the alphanumeric keys and note the generated keycodes. -1. Test non-alphanumeric keys and verify that they generate the correct - keycodes. -1. Test key combinations with the `Shift`, `Ctrl` and `Alt` modifier keys - (this tests 2-key rollover). - -**Expected result** - -1. The external USB keyboard is detected in OS. -1. All standard keyboard keys generate the correct keycodes and events as per - their labels. -1. Key combinations are detected correctly. - -## UTC012.003 USB Type-C docking station USB keyboard (Windows) - -**Test description** - -This test aims to verify that the external USB keyboard is detected correctly -by the `OPERATING_SYSTEM` and all basic keys work according to their labels. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The external USB keyboard connected to the docking station. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell and and run the following command: - - ```powershell - Get-CimInstance win32_KEYBOARD - ``` - -1. Note the results. -1. Open `notepad`. -1. Test the alphanumeric keys and note the generated characters. -1. Test non-alphanumeric keys and verify that they generate the signs. -1. Test key combinations with the `Shift`, and `Alt` modifier keys. -1. Open `On-Screen Keyboard` and press `Ctrl` key on the hardware keyboard. - Check if `On-Screen Keyboard` correctly highlights it. -1. Open `Start menu` and press `Esc`. Check if `Start menu` is properly closed. - -**Expected result** - -1. After running the PowerShell command information about connected keyboards - should be displayed. - - One of keyboard should have identical part of output: - - ```powershell - Description : USB Input Device - ``` - -1. All standard keyboard keys generate correct characters - or actions when pressed. -1. Key combinations are detected correctly. - -## UTC012.004 USB Type-C docking station USB keyboard with ME disabled(firmware) - -**Test description** - -This test aims to verify that the external USB keyboard connected to the docking -station is detected correctly by the `FIRMWARE` and all basic keys work -according to their labels. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `external USB keyboard` connected to the docking station. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. While the DUT is booting, hold the `BIOS_MENU_KEY` to enter the Bios Menu. -1. Use the arrow keys, Esc key and the Enter key to navigate the menus. - -**Expected result** - -All menus can be entered using the external USB keyboard. - -## UTC012.005 USB Type-C docking station USB keyboard with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the external USB keyboard connected to the docking -station is detected correctly by the `OPERATING_SYSTEM` and all basic keys work -according to their labels. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the `libinput-tools` package: `sudo apt install libinput-tools`. -1. The `USB-C docking station` connected to the USB-C port. -1. The `external USB keyboard` connected to the docking station. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Run the following command in the terminal: - - ```bash - libinput debug-events --show-keycodes - ``` - -1. Test the alphanumeric keys and note the generated keycodes. -1. Test non-alphanumeric keys and verify that they generate the correct - keycodes. -1. Test key combinations with the `Shift`, `Ctrl` and `Alt` modifier keys - (this tests 2-key rollover). - -**Expected result** - -1. The external USB keyboard is detected in OS. -1. All standard keyboard keys generate the correct keycodes and events as per - their labels. -1. Key combinations are detected correctly. - -## UTC012.006 USB Type-C docking station USB keyboard with ME disabled(Windows) - -**Test description** - -This test aims to verify that the external USB keyboard is detected correctly -by the `OPERATING_SYSTEM` and all basic keys work according to their labels. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The external USB keyboard connected to the docking station. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell and and run the following command: - - ```powershell - Get-CimInstance win32_KEYBOARD - ``` - -1. Note the results. -1. Open `notepad`. -1. Test the alphanumeric keys and note the generated characters. -1. Test non-alphanumeric keys and verify that they generate the signs. -1. Test key combinations with the `Shift`, and `Alt` modifier keys. -1. Open `On-Screen Keyboard` and press `Ctrl` key on the hardware keyboard. - Check if `On-Screen Keyboard` correctly highlights it. -1. Open `Start menu` and press `Esc`. Check if `Start menu` is properly closed. - -**Expected result** - -1. After running the PowerShell command information about connected keyboards - should be displayed. - - One of keyboard should have identical part of output: - - ```powershell - Description : USB Input Device - ``` - -1. All standard keyboard keys generate correct characters - or actions when pressed. -1. Key combinations are detected correctly. - -## UTC013.001 USB Type-C docking station upload 1GB file on USB storage (Ubuntu) - -**Test description** - -This test aims to verify that the 1GB file can be transferred from the -`OPERATING_SYSTEM` to the `USB storage` connected to the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `USB storage` connected to the `USB-C docking station`. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command to generate 1GB file: - - ```bash - openssl rand -out test_file.txt -base64 $(( 2**30 * 3/4 )) - ``` - -1. Read the path to the `USB storage` by running the following command: - - ```bash - lsblk - ``` - -1. Copy the generated file to the `USB storage` by running the following - command: - - ```bash - cp test_file.txt {path_to_usb_storage} - ``` - -1. Verify that the files are the same by running the following command: - - ```bash - sha256sum test_file.txt {path_to_usb_storage}/test_file.txt - ``` - -**Expected result** - -The output from the last command should contain 2 identical checksums: - -```bash -f46597c0c63a1eefb200d40edf654e52f10c3d5d21565886ad603fabaf8d39fb test_file.txt -f46597c0c63a1eefb200d40edf654e52f10c3d5d21565886ad603fabaf8d39fb {path_to_usb_storage}/test_file.txt -``` - -## UTC013.002 USB Type-C docking station upload 1GB file on USB storage(Windows) - -**Test description** - -This test aims to verify that the 1GB file can be transferred from the -`OPERATING_SYSTEM` to the `USB storage` connected to the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `USB storage` connected to the `USB-C docking station`. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open powershell as administrator and run the following command to generate - 1GB file: - - ```powershell - fsutil file createnew test_file.txt 1073741824 - ``` - -1. Read the drive letter assigned to the `USB storage` by running the following - command: - - ```powershell - (Get-Volume | where drivetype -eq removable).driveletter - ``` - -1. Copy the generated file to the `USB storage` by running the following - command: - - ```powershell - Copy-Item -Path C:\Windows\system32\test_file.txt {drive_letter}: - ``` - -1. Verify that the files are the same by running the following commands: - - ```powershell - Get-FileHash test_file.txt - Get-FileHash {drive_letter}:\test_file.txt - ``` - -**Expected result** - -The output from the last commands should have equal hash: - -```powershell -Algorithm Hash Path ---------- ---- ---- -SHA256 F46597C0C63A1EEFB200D40EDF654E52F10C3D5D21565886AD603FABAF8D39FB C\Windows\system3... -``` - -```powershell -Algorithm Hash Path ---------- ---- ---- -SHA256 F46597C0C63A1EEFB200D40EDF654E52F10C3D5D21565886AD603FABAF8D39FB E:\test_file.txt -``` - -## UTC013.003 USB Type-C docking station upload 1GB file on USB storage with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the 1GB file can be transferred from the -`OPERATING_SYSTEM` to the `USB storage` connected to the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `USB storage` connected to the `USB-C docking station`. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command to generate 1GB file: - - ```bash - openssl rand -out test_file.txt -base64 $(( 2**30 * 3/4 )) - ``` - -1. Read the path to the `USB storage` by running the following command: - - ```bash - lsblk - ``` - -1. Copy the generated file to the `USB storage` by running the following - command: - - ```bash - cp test_file.txt {path_to_usb_storage} - ``` - -1. Verify that the files are the same by running the following command: - - ```bash - sha256sum test_file.txt {path_to_usb_storage}/test_file.txt - ``` - -**Expected result** - -The output from the last command should contain 2 identical checksums: - -```bash -f46597c0c63a1eefb200d40edf654e52f10c3d5d21565886ad603fabaf8d39fb test_file.txt -f46597c0c63a1eefb200d40edf654e52f10c3d5d21565886ad603fabaf8d39fb {path_to_usb_storage}/test_file.txt -``` - -## UTC013.004 USB Type-C docking station upload 1GB file on USB storage with ME disabled(Windows) - -**Test description** - -This test aims to verify that the 1GB file can be transferred from the -`OPERATING_SYSTEM` to the `USB storage` connected to the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. -1. The `USB storage` connected to the `USB-C docking station`. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open powershell as administrator and run the following command to generate - 1GB file: - - ```powershell - fsutil file createnew test_file.txt 1073741824 - ``` - -1. Read the drive letter assigned to the `USB storage` by running the following - command: - - ```powershell - (Get-Volume | where drivetype -eq removable).driveletter - ``` - -1. Copy the generated file to the `USB storage` by running the following - command: - - ```powershell - Copy-Item -Path C:\Windows\system32\test_file.txt {drive_letter}: - ``` - -1. Verify that the files are the same by running the following commands: - - ```powershell - Get-FileHash test_file.txt - Get-FileHash {drive_letter}:\test_file.txt - ``` - -**Expected result** - -The output from the last commands should have equal hash: - -```powershell -Algorithm Hash Path ---------- ---- ---- -SHA256 F46597C0C63A1EEFB200D40EDF654E52F10C3D5D21565886AD603FABAF8D39FB C\Windows\system3... -``` - -```powershell -Algorithm Hash Path ---------- ---- ---- -SHA256 F46597C0C63A1EEFB200D40EDF654E52F10C3D5D21565886AD603FABAF8D39FB E:\test_file.txt -``` - -## UTC014.001 USB Type-C docking station Ethernet connection (Ubuntu) - -**Test description** - -This test aims to verify that the connection to internet via docking station's -Ethernet port can be obtained on Ubuntu. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a Ethernet cable with internet connection to docking station. -1. Wait for internet connection to initialize. -1. Ping `3mdeb.com` using command in terminal: - - ```bash - ping 3mdeb.com - ``` - -**Expected result** - -1. Command should return ping info: - - ```bash - PING 3mdeb.com (178.32.205.96) 56(84) bytes of data. - 64 bytes from cluster026.hosting.ovh.net (178.32.205.96): icmp_seq=1 ttl=50 time=44.3 ms - 64 bytes from cluster026.hosting.ovh.net (178.32.205.96): icmp_seq=2 ttl=50 time=47.7 ms - 64 bytes from cluster026.hosting.ovh.net (178.32.205.96): icmp_seq=3 ttl=50 time=41.1 ms - ... - ``` - -1. Log should not contain phrase information that host is unreachable. - - Failed ping for Ubuntu 22.04: - - ```bash - ping: connect: Network is unreachable - ``` - -## UTC014.002 USB Type-C docking station Ethernet connection (Windows) - -**Test description** - -This test aims to verify that the connection to internet via docking station's -Ethernet port can be obtained on Windows. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a Ethernet cable with internet connection to docking station. -1. Wait for internet connection to initialize. -1. Ping `3mdeb.com` using command in PowerShell: - - ```PowerShell - ping 3mdeb.com - ``` - -**Expected result** - -1. Command should return ping info: - - ```PowerShell - Pinging 3mdeb.com [178.32.205.96] with 32 bytes of data: - Reply from 178.32.205.96: bytes=32 time=50ms TTL=50 - Reply from 178.32.205.96: bytes=32 time=47ms TTL=50 - Reply from 178.32.205.96: bytes=32 time=46ms TTL=50 - ``` - -1. Log should not contain phrase information that host is unreachable. - - Failed ping for Windows 11: - - ```powershell - Ping request could not find host 3mdeb.com. Please check the name and try again. - ``` - -## UTC014.003 USB Type-C docking station Ethernet connection with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the connection to internet via docking station's -Ethernet port can be obtained on Ubuntu. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a Ethernet cable with internet connection to docking station. -1. Wait for internet connection to initialize. -1. Ping `3mdeb.com` using command in terminal: - - ```bash - ping 3mdeb.com - ``` - -**Expected result** - -1. Command should return ping info: - - ```bash - PING 3mdeb.com (178.32.205.96) 56(84) bytes of data. - 64 bytes from cluster026.hosting.ovh.net (178.32.205.96): icmp_seq=1 ttl=50 time=44.3 ms - 64 bytes from cluster026.hosting.ovh.net (178.32.205.96): icmp_seq=2 ttl=50 time=47.7 ms - 64 bytes from cluster026.hosting.ovh.net (178.32.205.96): icmp_seq=3 ttl=50 time=41.1 ms - ... - ``` - -1. Log should not contain phrase information that host is unreachable. - - Failed ping for Ubuntu 22.04: - - ```bash - ping: connect: Network is unreachable - ``` - -## UTC014.004 USB Type-C docking station Ethernet connection with ME disabled(Windows) - -**Test description** - -This test aims to verify that the connection to internet via docking station's -Ethernet port can be obtained on Windows. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a Ethernet cable with internet connection to docking station. -1. Wait for internet connection to initialize. -1. Ping `3mdeb.com` using command in PowerShell: - - ```PowerShell - ping 3mdeb.com - ``` - -**Expected result** - -1. Command should return ping info: - - ```PowerShell - Pinging 3mdeb.com [178.32.205.96] with 32 bytes of data: - Reply from 178.32.205.96: bytes=32 time=50ms TTL=50 - Reply from 178.32.205.96: bytes=32 time=47ms TTL=50 - Reply from 178.32.205.96: bytes=32 time=46ms TTL=50 - ``` - -1. Log should not contain phrase information that host is unreachable. - - Failed ping for Windows 11: - - ```powershell - Ping request could not find host 3mdeb.com. Please check the name and try again. - ``` - -## UTC015.001 USB Type-C docking station audio recognition (Ubuntu) - -**Test description** - -This test aims to verify that the external headset is properly recognized after -plugging in the 3.5 mm jack into the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station. -1. When the `Select Audio Device` menu appears, select what type of external - device has been connected to the laptop (headset). -1. Open a terminal window and run the following command: - - ```bash - watch -n1 lsusb - ``` - -1. Connect(or Disconnect) external headset to the 3.5 mm jack on the docking - station and note the result. - -**Expected result** - -1. After connecting the external headset to the 3.5 mm jack, a new entry in - `lsusb` command output should appear. -1. After disconnecting the external headset from the 3.5 mm jack, a headset - entry in `lsusb` command output should disappear. - -## UTC015.002 USB Type-C docking station audio recognition (Windows) - -**Test description** - -This test aims to verify that the external headset is properly recognized -after plugging in the 3.5 mm jack into the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station -1. After the `Which device did you plug in` menu appearing, select what type - of external device has been connected to the laptop (headset). -1. Find the `Speakers` icon in the bottom right part of the screen and click - it using the right mouse button then using the left mouse button - click `Sound Settings`. -1. Locate the `All sound devices` bar and click on it. -1. Connect(or Disconnect) external headset to the 3.5 mm jack on the docking - station and note the result. - -**Expected result** - -1. After connecting the external headset to the 3.5 mm jack, new entries - regarding the connected headphones should appear in the `Output devices` and - `Input devices` sections. -1. After disconnecting the external headset from the 3.5 mm jack, the entries - for connected headset should disappear from the `Output devices` and - `Input devices` sections. - -## UTC015.003 USB Type-C docking station audio recognition with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the external headset is properly recognized after -plugging in the 3.5 mm jack into the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station. -1. When the `Select Audio Device` menu appears, select what type of external - device has been connected to the laptop (headset). -1. Open a terminal window and run the following command: - - ```bash - watch -n1 lsusb - ``` - -1. Connect(or Disconnect) external headset to the 3.5 mm jack on the docking - station and note the result. - -**Expected result** - -1. After connecting the external headset to the 3.5 mm jack, a new entry in - `lsusb` command output should appear. -1. After disconnecting the external headset from the 3.5 mm jack, a headset - entry in `lsusb` command output should disappear. - -## UTC015.004 USB Type-C docking station audio recognition with ME disabled(Windows) - -**Test description** - -This test aims to verify that the external headset is properly recognized -after plugging in the 3.5 mm jack into the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station -1. After the `Which device did you plug in` menu appearing, select what type - of external device has been connected to the laptop (headset). -1. Find the `Speakers` icon in the bottom right part of the screen and click - it using the right mouse button then using the left mouse button - click `Sound Settings`. -1. Locate the `All sound devices` bar and click on it. -1. Connect(or Disconnect) external headset to the 3.5 mm jack on the docking - station and note the result. - -**Expected result** - -1. After connecting the external headset to the 3.5 mm jack, new entries - regarding the connected headphones should appear in the `Output devices` and - `Input devices` sections. -1. After disconnecting the external headset from the 3.5 mm jack, the entries - for connected headset should disappear from the `Output devices` and - `Input devices` sections. - -## UTC016.001 USB Type-C docking station audio playback (Ubuntu) - -**Test description** - -This test aims to verify that the audio subsystem is able to playback audio -recordings by using the external headset speakers connected to the docking -station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station. -1. When the `Select Audio Device` menu appears, select what type of external - device has been connected to the laptop (headset). -1. Open a terminal window and execute the following command: - - ```bash - pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo 0 - pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo 65535 - speaker-test - ``` - -**Expected result** - -Sound should be played from the external speakers. - -## UTC016.002 USB Type-C docking station audio playback (Windows) - -**Test description** - -This test aims to verify that the audio subsystem is able to playback audio -recordings by using the external headset speakers connected to the docking -station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station. -1. Find the `Speakers` icon in the bottom right part of the screen and click - it using the left mouse button to open volume menu. -1. After the `Which device did you plug in` menu appearing, select what type - of external device has been connected to the laptop (headset). -1. In the volume menu, click the rightmost part of it and note the result. - -**Expected result** - -Sound should be played from the external speakers. - -## UTC016.003 USB Type-C docking station audio playback with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the audio subsystem is able to playback audio -recordings by using the external headset speakers connected to the docking -station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station. -1. When the `Select Audio Device` menu appears, select what type of external - device has been connected to the laptop (headset). -1. Open a terminal window and execute the following command: - - ```bash - pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo 0 - pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo 65535 - speaker-test - ``` - -**Expected result** - -Sound should be played from the external speakers. - -## UTC016.004 USB Type-C docking station audio playback with ME disabled(Windows) - -**Test description** - -This test aims to verify that the audio subsystem is able to playback audio -recordings by using the external headset speakers connected to the docking -station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station. -1. Find the `Speakers` icon in the bottom right part of the screen and click - it using the left mouse button to open volume menu. -1. After the `Which device did you plug in` menu appearing, select what type - of external device has been connected to the laptop (headset). -1. In the volume menu, click the rightmost part of it and note the result. - -**Expected result** - -Sound should be played from the external speakers. - -## UTC017.001 USB Type-C docking station audio capture (Ubuntu) - -**Test description** - -This test aims to verify that the audio subsystem is able to capture audio -from external headset connected to the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station. -1. When the `Select Audio Device` menu appears, select what type of external - device has been connected to the laptop (headset). -1. Open a terminal window and execute the following command: +1. Copy the generated file to the `USB storage` by running the following + command: ```bash - arecord -f S16_LE -d 10 -r 16000 /tmp/test-mic.wav + cp test_file.txt {path_to_usb_storage} ``` -1. Make some noise for the headset. For example, say something. -1. Execute the following command: +1. Verify that the files are the same by running the following command: ```bash - aplay /tmp/test-mic.wav + sha256sum test_file.txt {path_to_usb_storage}/test_file.txt ``` **Expected result** -The recorded audio clip is recorded correctly and played back. - -## UTC017.002 USB Type-C docking station audio capture (Windows) - -**Test description** - -This test aims to verify that the audio subsystem is able to capture audio -from external headset connected to the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station. -1. After the `Which device did you plug in` menu appearing, select what type - of external device has been connected to the laptop (headset). -1. Find the `Speakers` icon in the bottom right part of the screen and click - it using the right mouse button then using the left mouse button - click `Sound Settings`. -1. Locate the `All sound devices` bar and click on it. -1. Select the `Microphone` position in the `Input devices` section. -1. Click on the `Start Test` bar in the `Input settings` section. -1. Create some noise for the DUT to capture and note the result. - For example, say something. -1. Click on the `Stop Test` bar. - -**Expected result** - -1. The `Input volume` bar located in the `Input settings` section should raise when - some noise is being created. -1. The result of the test after clicking the `Stop Test` bar should be more than - 0% of the total volume. - -## UTC017.003 USB Type-C docking station audio capture with ME disabled(Ubuntu) - -**Test description** - -This test aims to verify that the audio subsystem is able to capture audio -from external headset connected to the docking station. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. The `USB-C docking station` connected to the USB-C port. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the BIOS_SETUP_KEY to enter the UEFI Setup Menu. -1. Enter the Dasharo System Features menu using the arrow keys and Enter. -1. Enter the Intel Management Engine Options submenu. -1. Verify that the Intel ME mode option is in state Disable (HAP) or -Disable (Soft) - if not, using the arrow keys and Enter, choose option -Disable (HAP) or Disable (Soft). -1. Press F10 to save the changes. -1. If necessary - press Y to confirm saving the changes. -1. Go back to the main menu using the ESC key. -1. Select the Reset option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station. -1. When the `Select Audio Device` menu appears, select what type of external - device has been connected to the laptop (headset). -1. Open a terminal window and execute the following command: - - ```bash - arecord -f S16_LE -d 10 -r 16000 /tmp/test-mic.wav - ``` - -1. Make some noise for the headset. For example, say something. -1. Execute the following command: - - ```bash - aplay /tmp/test-mic.wav - ``` - -**Expected result** +The output from the last command should contain 2 identical checksums: -The recorded audio clip is recorded correctly and played back. +```bash +f46597c0c63a1eefb200d40edf654e52f10c3d5d21565886ad603fabaf8d39fb test_file.txt +f46597c0c63a1eefb200d40edf654e52f10c3d5d21565886ad603fabaf8d39fb {path_to_usb_storage}/test_file.txt +``` -## UTC017.004 USB Type-C docking station audio capture with ME disabled(Windows) +## UTC013.004 USB Type-C docking station upload 1GB file on USB storage with ME disabled(Windows) **Test description** -This test aims to verify that the audio subsystem is able to capture audio -from external headset connected to the docking station. +This test aims to verify that the 1GB file can be transferred from the +`OPERATING_SYSTEM` to the `USB storage` connected to the docking station. **Test configuration data** @@ -2877,6 +636,7 @@ from external headset connected to the docking station. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. 1. The `USB-C docking station` connected to the USB-C port. +1. The `USB storage` connected to the `USB-C docking station`. **Test steps** @@ -2893,32 +653,57 @@ Disable (HAP) or Disable (Soft). 1. Select the Reset option to apply the settings and reboot. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Plug in a headset jack into the docking station. -1. After the `Which device did you plug in` menu appearing, select what type - of external device has been connected to the laptop (headset). -1. Find the `Speakers` icon in the bottom right part of the screen and click - it using the right mouse button then using the left mouse button - click `Sound Settings`. -1. Locate the `All sound devices` bar and click on it. -1. Select the `Microphone` position in the `Input devices` section. -1. Click on the `Start Test` bar in the `Input settings` section. -1. Create some noise for the DUT to capture and note the result. - For example, say something. -1. Click on the `Stop Test` bar. +1. Open powershell as administrator and run the following command to generate + 1GB file: + + ```powershell + fsutil file createnew test_file.txt 1073741824 + ``` + +1. Read the drive letter assigned to the `USB storage` by running the following + command: + + ```powershell + (Get-Volume | where drivetype -eq removable).driveletter + ``` + +1. Copy the generated file to the `USB storage` by running the following + command: + + ```powershell + Copy-Item -Path C:\Windows\system32\test_file.txt {drive_letter}: + ``` + +1. Verify that the files are the same by running the following commands: + + ```powershell + Get-FileHash test_file.txt + Get-FileHash {drive_letter}:\test_file.txt + ``` **Expected result** -1. The `Input volume` bar located in the `Input settings` section should raise when - some noise is being created. -1. The result of the test after clicking the `Stop Test` bar should be more than - 0% of the total volume. +The output from the last commands should have equal hash: + +```powershell +Algorithm Hash Path +--------- ---- ---- +SHA256 F46597C0C63A1EEFB200D40EDF654E52F10C3D5D21565886AD603FABAF8D39FB C\Windows\system3... +``` + +```powershell +Algorithm Hash Path +--------- ---- ---- +SHA256 F46597C0C63A1EEFB200D40EDF654E52F10C3D5D21565886AD603FABAF8D39FB E:\test_file.txt +``` -## UTC018.001 USB Type-C docking station SD Card reader detection (Ubuntu) +## UTC016.001 USB Type-C docking station audio playback (Ubuntu) **Test description** -This test aims to verify that the SD Card reader built into the docking station -is enumerated correctly and might be detected by the operating system. +This test aims to verify that the audio subsystem is able to playback audio +recordings by using the external headset speakers connected to the docking +station. **Test configuration data** @@ -2930,38 +715,34 @@ is enumerated correctly and might be detected by the operating system. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. 1. The `USB-C docking station` connected to the USB-C port. -1. The `SD card` put into the slot on the `USB-C docking station`. **Test steps** 1. Power on the DUT. 1. Boot into the system. 1. Log into the system by using the proper login and password. +1. Plug in a headset jack into the docking station. +1. When the `Select Audio Device` menu appears, select what type of external + device has been connected to the laptop (headset). 1. Open a terminal window and execute the following command: -```bash -lsusb | grep "Card Reader" -``` - -1. Note the result. + ```bash + pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo 0 + pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo 65535 + speaker-test + ``` **Expected result** -The output from the command should contain information about the connected USB -SD Card Reader. - -Example output: - -```bash -Bus 002 Device 007: ID 067b:2733 Prolific Technology, Inc. USB SD Card Reader -``` +Sound should be played from the external speakers. -## UTC018.002 USB Type-C docking station SD Card reader detection (Windows) +## UTC016.002 USB Type-C docking station audio playback (Windows) **Test description** -This test aims to verify that the SD Card reader built into the docking station -is enumerated correctly and can be detected by the operating system. +This test aims to verify that the audio subsystem is able to playback audio +recordings by using the external headset speakers connected to the docking +station. **Test configuration data** @@ -2973,38 +754,30 @@ is enumerated correctly and can be detected by the operating system. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. 1. The `USB-C docking station` connected to the USB-C port. -1. The `SD card` put into the slot on the `USB-C docking station`. **Test steps** 1. Power on the DUT. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Open PowerShell and execute the following command: - - ```PowerShell - Get-PnpDevice -Status "OK" -Class "DiskDrive" - ``` - -1. Note the result. +1. Plug in a headset jack into the docking station. +1. Find the `Speakers` icon in the bottom right part of the screen and click + it using the left mouse button to open volume menu. +1. After the `Which device did you plug in` menu appearing, select what type + of external device has been connected to the laptop (headset). +1. In the volume menu, click the rightmost part of it and note the result. **Expected result** -The output from the command should contain information about the connected USB -SD Card Reader. - -Example output: - -```powershell - OK DiskDrive SD Card Reader USB Device -``` +Sound should be played from the external speakers. -## UTC018.003 USB Type-C docking station SD Card reader detection ME disabled (Ubuntu) +## UTC016.003 USB Type-C docking station audio playback with ME disabled(Ubuntu) **Test description** -This test aims to verify that the SD Card reader built into the docking station -is enumerated correctly and might be detected by the operating system. +This test aims to verify that the audio subsystem is able to playback audio +recordings by using the external headset speakers connected to the docking +station. **Test configuration data** @@ -3016,7 +789,6 @@ is enumerated correctly and might be detected by the operating system. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. 1. The `USB-C docking station` connected to the USB-C port. -1. The `SD card` put into the slot on the `USB-C docking station`. **Test steps** @@ -3033,31 +805,28 @@ Disable (HAP) or Disable (Soft). 1. Select the Reset option to apply the settings and reboot. 1. Boot into the system. 1. Log into the system by using the proper login and password. +1. Plug in a headset jack into the docking station. +1. When the `Select Audio Device` menu appears, select what type of external + device has been connected to the laptop (headset). 1. Open a terminal window and execute the following command: -```bash -lsusb | grep "Card Reader" -``` - -1. Note the result. + ```bash + pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo 0 + pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo 65535 + speaker-test + ``` **Expected result** -The output from the command should contain information about the connected USB -SD Card Reader. - -Example output: - -```bash -Bus 002 Device 007: ID 067b:2733 Prolific Technology, Inc. USB SD Card Reader -``` +Sound should be played from the external speakers. -## UTC018.004 USB Type-C docking station SD Card reader detection ME disabled (Windows) +## UTC016.004 USB Type-C docking station audio playback with ME disabled(Windows) **Test description** -This test aims to verify that the SD Card reader built into the docking station -is enumerated correctly and can be detected by the operating system. +This test aims to verify that the audio subsystem is able to playback audio +recordings by using the external headset speakers connected to the docking +station. **Test configuration data** @@ -3069,7 +838,6 @@ is enumerated correctly and can be detected by the operating system. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. 1. The `USB-C docking station` connected to the USB-C port. -1. The `SD card` put into the slot on the `USB-C docking station`. **Test steps** @@ -3086,31 +854,23 @@ Disable (HAP) or Disable (Soft). 1. Select the Reset option to apply the settings and reboot. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Open PowerShell and execute the following command: - - ```PowerShell - Get-PnpDevice -Status "OK" -Class "DiskDrive" - ``` - -1. Note the result. +1. Plug in a headset jack into the docking station. +1. Find the `Speakers` icon in the bottom right part of the screen and click + it using the left mouse button to open volume menu. +1. After the `Which device did you plug in` menu appearing, select what type + of external device has been connected to the laptop (headset). +1. In the volume menu, click the rightmost part of it and note the result. **Expected result** -The output from the command should contain information about the connected USB -SD Card Reader. - -Example output: - -```powershell - OK DiskDrive SD Card Reader USB Device -``` +Sound should be played from the external speakers. -## UTC019.001 USB Type-C docking station SD Card read/write (Ubuntu) +## UTC017.001 USB Type-C docking station audio capture (Ubuntu) **Test description** -This test aims to verify that the SD Card reader is initialized correctly and -can be used from the operating system. +This test aims to verify that the audio subsystem is able to capture audio +from external headset connected to the docking station. **Test configuration data** @@ -3122,60 +882,38 @@ can be used from the operating system. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. 1. The `USB-C docking station` connected to the USB-C port. -1. The `SD card` put into the slot on the `USB-C docking station`. **Test steps** 1. Power on the DUT. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following commands to identify the SD - card mounting point: +1. Plug in a headset jack into the docking station. +1. When the `Select Audio Device` menu appears, select what type of external + device has been connected to the laptop (headset). +1. Open a terminal window and execute the following command: ```bash - lsblk | grep "sd" + arecord -f S16_LE -d 10 -r 16000 /tmp/test-mic.wav ``` -1. Execute the following commands for generating, copying and comparing - generated file: +1. Make some noise for the headset. For example, say something. +1. Execute the following command: ```bash - dd if=/dev/urandom of=/tmp/in.bin bs=4K count=100 - dd if=/tmp/in.bin of=/dev/sda bs=4K count=100 - dd if=/dev/sda of=/tmp/out.bin bs=4K count=100 - sha256sum /tmp/in.bin /tmp/out.bin + aplay /tmp/test-mic.wav ``` -1. Note the result. - **Expected result** -1. The output from the command to identify the SD card mounting point should - return information about the SD card mounting location. - - Example output: - - ```bash - sda 8:0 1 29,5G 0 disk - └─sda1 8:1 1 29,5G 0 part /media/user/DCB0-C7E8 - sdb 8:16 1 0B 0 disk - ``` - -1. The output from the last command should contain 2 identical checksums. - - Example output - - ```bash - 2083776668ed0c8095a9ac42188153c02f360e116c14b36d2ef5c98665d75dcb /tmp/in.bin - 2083776668ed0c8095a9ac42188153c02f360e116c14b36d2ef5c98665d75dcb /tmp/out.bin - ``` +The recorded audio clip is recorded correctly and played back. -## UTC019.002 USB Type-C docking station SD Card read/write (Windows) +## UTC017.002 USB Type-C docking station audio capture (Windows) **Test description** -This test aims to verify that the SD Card reader is initialized correctly and -can be used from the operating system. +This test aims to verify that the audio subsystem is able to capture audio +from external headset connected to the docking station. **Test configuration data** @@ -3187,33 +925,38 @@ can be used from the operating system. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. 1. The `USB-C docking station` connected to the USB-C port. -1. The `SD card` put into the slot on the `USB-C docking station`. **Test steps** 1. Power on the DUT. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Determine the localization of the mounted SD card. -1. Open PowerShell and execute the following commands: - - ```powershell - New-Item -Path "${drive_location}:\" -Name "testfile.txt" -ItemType "file" -Value "This is a test string." - Get-Content -Path "${drive_location}:\testfile.txt" - ``` - -1. Note the result. +1. Plug in a headset jack into the docking station. +1. After the `Which device did you plug in` menu appearing, select what type + of external device has been connected to the laptop (headset). +1. Find the `Speakers` icon in the bottom right part of the screen and click + it using the right mouse button then using the left mouse button + click `Sound Settings`. +1. Locate the `All sound devices` bar and click on it. +1. Select the `Microphone` position in the `Input devices` section. +1. Click on the `Start Test` bar in the `Input settings` section. +1. Create some noise for the DUT to capture and note the result. + For example, say something. +1. Click on the `Stop Test` bar. **Expected result** -The last command should return the following message: `This is a test string.` +1. The `Input volume` bar located in the `Input settings` section should raise when + some noise is being created. +1. The result of the test after clicking the `Stop Test` bar should be more than + 0% of the total volume. -## UTC019.003 USB Type-C docking station SD Card read/write with ME disabled (Ubuntu) +## UTC017.003 USB Type-C docking station audio capture with ME disabled(Ubuntu) **Test description** -This test aims to verify that the SD Card reader is initialized correctly and -can be used from the operating system. +This test aims to verify that the audio subsystem is able to capture audio +from external headset connected to the docking station. **Test configuration data** @@ -3225,7 +968,6 @@ can be used from the operating system. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. 1. The `USB-C docking station` connected to the USB-C port. -1. The `SD card` put into the slot on the `USB-C docking station`. **Test steps** @@ -3242,53 +984,32 @@ Disable (HAP) or Disable (Soft). 1. Select the Reset option to apply the settings and reboot. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following commands to identify the SD - card mounting point: +1. Plug in a headset jack into the docking station. +1. When the `Select Audio Device` menu appears, select what type of external + device has been connected to the laptop (headset). +1. Open a terminal window and execute the following command: ```bash - lsblk | grep "sd" + arecord -f S16_LE -d 10 -r 16000 /tmp/test-mic.wav ``` -1. Execute the following commands for generating, copying and comparing - generated file: +1. Make some noise for the headset. For example, say something. +1. Execute the following command: ```bash - dd if=/dev/urandom of=/tmp/in.bin bs=4K count=100 - dd if=/tmp/in.bin of=/dev/sda bs=4K count=100 - dd if=/dev/sda of=/tmp/out.bin bs=4K count=100 - sha256sum /tmp/in.bin /tmp/out.bin + aplay /tmp/test-mic.wav ``` -1. Note the result. - **Expected result** -1. The output from the command to identify the SD card mounting point should - return information about the SD card mounting location. - - Example output: - - ```bash - sda 8:0 1 29,5G 0 disk - └─sda1 8:1 1 29,5G 0 part /media/user/DCB0-C7E8 - sdb 8:16 1 0B 0 disk - ``` - -1. The output from the last command should contain 2 identical checksums. - - Example output - - ```bash - 2083776668ed0c8095a9ac42188153c02f360e116c14b36d2ef5c98665d75dcb /tmp/in.bin - 2083776668ed0c8095a9ac42188153c02f360e116c14b36d2ef5c98665d75dcb /tmp/out.bin - ``` +The recorded audio clip is recorded correctly and played back. -## UTC019.004 USB Type-C docking station SD Card read/write with ME disabled (Windows) +## UTC017.004 USB Type-C docking station audio capture with ME disabled(Windows) **Test description** -This test aims to verify that the SD Card reader is initialized correctly and -can be used from the operating system. +This test aims to verify that the audio subsystem is able to capture audio +from external headset connected to the docking station. **Test configuration data** @@ -3300,7 +1021,6 @@ can be used from the operating system. 1. Proceed with the [Test cases common documentation](#test-cases-common-documentation) section. 1. The `USB-C docking station` connected to the USB-C port. -1. The `SD card` put into the slot on the `USB-C docking station`. **Test steps** @@ -3317,53 +1037,25 @@ Disable (HAP) or Disable (Soft). 1. Select the Reset option to apply the settings and reboot. 1. Boot into the system. 1. Log into the system by using the proper login and password. -1. Determine the localization of the mounted SD card. -1. Open PowerShell and execute the following commands: - - ```powershell - New-Item -Path "${drive_location}:\" -Name "testfile.txt" -ItemType "file" -Value "This is a test string." - Get-Content -Path "${drive_location}:\testfile.txt" - ``` - -1. Note the result. - -**Expected result** - -The last command should return the following message: `This is a test string.` - -## UTC020.001 USB Type-C PD current limiting (Ubuntu) - -**Test description** - -This test aims to verify that the power draw from a USB-C PD power supply does -not exceed the limits of the power supply's specifications. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test steps** -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Attach a 65W USB-C power supply, with the power meter between the power - supply and the laptop's Thunderbolt 4 port. -1. Open a terminal window and run the following command, while observing the - power meter's display: - - ```bash - stress-ng -c 20 -t 5 - ``` - -1. Repeat the step above 5 times, noting the maximum power draw shown on the - power meter each time. +1. Plug in a headset jack into the docking station. +1. After the `Which device did you plug in` menu appearing, select what type + of external device has been connected to the laptop (headset). +1. Find the `Speakers` icon in the bottom right part of the screen and click + it using the right mouse button then using the left mouse button + click `Sound Settings`. +1. Locate the `All sound devices` bar and click on it. +1. Select the `Microphone` position in the `Input devices` section. +1. Click on the `Start Test` bar in the `Input settings` section. +1. Create some noise for the DUT to capture and note the result. + For example, say something. +1. Click on the `Stop Test` bar. **Expected result** -The power draw does not exceed more than 105% of the power supply's nominal -power. The power meter's display stays lit all the time, indicating that the -power supply's over-current protection was not triggered. +1. The `Input volume` bar located in the `Input settings` section should raise when + some noise is being created. +1. The result of the test after clicking the `Stop Test` bar should be more than + 0% of the total volume. ## UTC020.002 USB Type-C PD current limiting (Windows) From e5f07ee80712f80d8e6f35466430c9538e341003 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 07:43:50 +0200 Subject: [PATCH 078/133] 31K-minipcie-verification: MWL: Remove automated test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../31K-minipcie-verification.md | 286 +----------------- docs/unified/protectli/test-matrix.md | 4 +- 2 files changed, 15 insertions(+), 275 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/31K-minipcie-verification.md b/docs/unified-test-documentation/dasharo-compatibility/31K-minipcie-verification.md index 21757f8ce6..4c8e2adbad 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31K-minipcie-verification.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31K-minipcie-verification.md @@ -13,255 +13,27 @@ 1. Proceed with the [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -## MWL001.001 Wireless card detection (Ubuntu) +## MWL001.201 Wireless card detection (Ubuntu) -**Test description** - -This test aims to verify that the Wi-Fi/Bluetooth card is enumerated correctly -and can be detected from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following command: - -```bash -lspci | grep "Network controller" -``` - -**Expected result** - -The output of the command should contain information about mounted on the board -network controller. - -Example output: - -```bash -2f:00.0 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 1a) -``` - -## MWL001.002 Wireless card detection (Windows) - -**Test description** - -This test aims to verify that the Wi-Fi/Bluetooth card is enumerated correctly -and can be detected from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell and execute following command: - -```powershell -Get-PnpDevice -PresentOnly | Select-String -Pattern "Wi-Fi" -``` - -1. Note the result. - -**Expected result** - -The output of the command should contain information about mounted on the board -network controller. - -Example output: - -```bash -Intel(R) Wi-Fi 6AX200 160MHz -``` - -## MWL002.001 Wi-Fi scanning (Ubuntu) - -**Test description** - -This test aims to verify that the Wi-Fi functionality of card is initialized -correctly and can be used from within the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Make sure to have any Wi-Fi signal available. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following commands as root: - -```bash -nmcli radio wifi on -nmcli device wifi rescan -# Wait ~5 seconds -nmcli device wifi list -``` - -**Expected result** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -The output of the last command should return a list of available Wi-Fi networks, -for example: +## MWL001.301 Wireless card detection (Windows) -```bash -IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY - XX:XX:XX:XX:XX:XX DIRECT-ny Infra 6 65 Mbit/s 75 ▂▄▆_ WPA2 -* XX:XX:XX:XX:XX:XX 3mdeb_abr_5GHz Infra 48 405 Mbit/s 72 ▂▄▆_ WPA2 - XX:XX:XX:XX:XX:XX 3mdeb_abr Infra 11 54 Mbit/s 69 ▂▄▆_ WPA2 - XX:XX:XX:XX:XX:XX FunBox2-F9BF_2.4GHz Infra 1 130 Mbit/s 50 ▂▄__ WPA1 WPA2 - XX:XX:XX:XX:XX:XX H_Office Infra 2 270 Mbit/s 35 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-xpPhaser 3330 Infra 1 65 Mbit/s 34 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX Orange_Swiatlowod_A79A Infra 108 540 Mbit/s 32 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-KRM288x Series Infra 11 54 Mbit/s 22 ▂___ WPA2 - XX:XX:XX:XX:XX:XX Orange_Swiatlowod_A79A Infra 11 130 Mbit/s 20 ▂___ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-ejPhaser 3330 Infra 1 65 Mbit/s 17 ▂___ WPA2 - XX:XX:XX:XX:XX:XX NED-WIFI Infra 11 270 Mbit/s 17 ▂___ WPA2 -``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -## MWL002.002 Wi-Fi scanning (Windows) +## MWL002.201 Wi-Fi scanning (Ubuntu) -**Test description** - -This test aims to verify that the Wi-Fi functionality of card is initialized -correctly and can be used from within the operating system. - -**Test configuration data** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows +## MWL002.301 Wi-Fi scanning (Windows) -**Test setup** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Make sure to have any Wi-Fi signal available +## MWL003.201 Bluetooth scanning (Ubuntu) -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell and execute following command: - -```powershell -netsh wlan show network -``` - -1. Note the result. - -**Expected result** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Output should contain `3mdeb_abr` and/or `3mdeb_abr_5GHz`. -1. Example output: - -```powershell -SSID 1 : 3mdeb_abr - Network type : Infrastructure - Authentication : WPA2-Personal - Encryption : CCMP - -SSID 2 : Sonoff1 192.168.4.208 Hotspot - Network type : Infrastructure - Authentication : WPA2-Personal - Encryption : CCMP - -SSID 3 : Orange_Swiatlowod_F1A0 - Network type : Infrastructure - Authentication : WPA2-Personal - Encryption : CCMP - -SSID 4 : Sonoff1 Fallback Hotspot - Network type : Infrastructure - Authentication : WPA2-Personal - Encryption : CCMP - -SSID 5 : DIRECT-KRM288x Series - Network type : Infrastructure - Authentication : WPA2-Personal - Encryption : CCMP -``` - -## MWL003.001 Bluetooth scanning (Ubuntu) - -**Test description** - -This test aims to verify that the Bluetooth functionality of card is initialized -correctly and can be used from within the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Enable Bluetooth and make it discoverable in any device nearby DUT. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following commands: - -```bash -bluetoothctl -power on -scan on -# Wait ~5 seconds -devices -``` - -**Expected result** - -The output of the last command should return a list of detectable Bluetooth -devices, for example: - -```bash -Device XX:XX:XX:XX:XX:XX Device 1 -Device XX:XX:XX:XX:XX:XX Wojtek N -Device XX:XX:XX:XX:XX:XX Mi Smart Band 4 -Device XX:XX:XX:XX:XX:XX Galaxy Watch4 Classic (PHLM) -Device XX:XX:XX:XX:XX:XX Galaxy Watch4 Classic (PHLM) -Device XX:XX:XX:XX:XX:XX Device 2 -Device XX:XX:XX:XX:XX:XX [Signage] Samsung QMR Series -Device XX:XX:XX:XX:XX:XX [Signage] Samsung QMR Series -Device XX:XX:XX:XX:XX:XX Device 3 -Device XX:XX:XX:XX:XX:XX Device 4 -Device XX:XX:XX:XX:XX:XX Device 5 -Device XX:XX:XX:XX:XX:XX Device 6 -``` - -## MWL003.002 Bluetooth scanning (Windows) +## MWL003.301 Bluetooth scanning (Windows) **Test description** @@ -296,38 +68,6 @@ correctly and can be used from within the operating system. Available Bluetooth devices should appear in the `Add a device` window. -## MWL004.001 LTE card detection (Ubuntu) - -**Test description** - -This test aims to verify that the LTE card is detected correctly in the -operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -2. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -2. Plug the LTE card into miniPCIe slot. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute `lsusb` - -**Expected result** - -The output of the command should return a list of USB devices including LTE -module, for example: - -```bash -Bus 001 Device 004: ID 05c6:9215 Qualcomm, Inc. Quectel EC20 LTE modem -``` +## MWL004.201 LTE card detection (Ubuntu) - +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index f3445d5845..cd2979f89b 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -21,7 +21,7 @@ subjected from before the release of the new binary. | 8. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT003.001, LBT003.002, LBT004.001, LBT004.002| | 9. | [Custom boot menu key][CBK] | CBK | All | | 10. | [FreeBSD support][BSD] | BSD | All | - | 11. | [miniPCIe LTE/WiFi/Bluetooth][MWL] | MWL | MWL004.001 | + | 11. | [miniPCIe LTE/WiFi/Bluetooth][MWL] | MWL | MWL004.201 | | 12. | [Custom network boot entries][CNB] | CNB | CNB001.201 | [HCL]: ../../unified-test-documentation/dasharo-compatibility/301-memory-hcl.md @@ -59,7 +59,7 @@ subjected from before the release of the new binary. | 6. | [Custom Boot Keys][CBK] | CBK | All | | 7. | [USB HID and MSC Support][USB] | USB | USB001.xxx and USB002.xxx | | 8. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT003.001, LBT003.002, LBT004.001, LBT004.002| - | 9. | [miniPCIe LTE/WiFi/Bluetooth][MWL] | MWL | MWL004.001 | + | 9. | [miniPCIe LTE/WiFi/Bluetooth][MWL] | MWL | MWL004.201 | | 10. | [M.2 WiFi/Bluetooth][WLE] | WLE | All | | 11. | [eMMC support][MMC] | MMC | All | | 12. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | From 9cb09f693a228aea2c5408bb75f5c668a457d4e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 07:55:17 +0200 Subject: [PATCH 079/133] 31L-smbios: Remove automated test case, refer to OSFV MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/31L-smbios.md | 295 +----------------- docs/unified/protectli/test-matrix.md | 14 +- docs/variants/asus_kgpe_d16/test-matrix.md | 2 +- docs/variants/dell_optiplex/test-matrix.md | 2 +- .../novacustom_ns5x_adl/test-matrix.md | 2 +- .../novacustom_ns5x_tgl/test-matrix.md | 2 +- .../novacustom_nv4x_adl/test-matrix.md | 2 +- .../novacustom_nv4x_tgl/test-matrix.md | 4 +- docs/variants/qemu_q35/test-matrix.md | 2 +- docs/variants/tuxedo_ibs15/test-matrix.md | 2 +- 10 files changed, 17 insertions(+), 310 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/31L-smbios.md b/docs/unified-test-documentation/dasharo-compatibility/31L-smbios.md index a49fc56613..ae81b5a25c 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31L-smbios.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31L-smbios.md @@ -1,296 +1,3 @@ # Dasharo compatibility: SMBIOS -## Test cases common documentation - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -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-get install dmidecode`. - -## DMI001.001 Verify the serial number - -**Test description** - -This test aims to verify that the serial number field is filled in correctly -according to the -[Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu 22.04 - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Open a terminal window and execute the following command: - - ```bash - dmidecode -t system - ``` - -1. In the `BIOS Information` section, check the `Serial number` field against the - [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Expected result** - -1. The fields should be filled in according to the Dasharo SMBIOS guidelines. - -## DMI002.001 Verify the firmware version - -**Test description** - -This test aims to verify that the firmware version field is filled in correctly -according to the -[Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu 22.04 - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Open a terminal window and execute the following command: - - ```bash - dmidecode -t bios - ``` - -1. In the `BIOS Information` section, check the `Version` field against the - [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Expected result** - -1. The fields should be filled in according to the Dasharo SMBIOS guidelines. - -## DMI003.001 Verify the firmware product name - -**Test description** - -This test aims to verify that the firmware product name fields are filled in -correctly according to the -[Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu 22.04 - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Open a terminal window and execute the following command: - - ```bash - dmidecode -t system - ``` - -1. In the `System Information` section, check the `Product Name` field against - the [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). -1. Execute the following command in the terminal: - - ```bash - dmidecode -t baseboard - ``` - -1. In the `Base Board Information` section, check the `Product Name` field - against the [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Expected result** - -1. The fields should be filled in according to the Dasharo SMBIOS guidelines. - -## DMI004.001 Verify the firmware release date - -**Test description** - -This test aims to verify that the firmware release date field are filled in -correctly according to the -[Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu 22.04 - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Open a terminal window and execute the following command: - - ```bash - dmidecode -t bios - ``` - -1. In the `System Information` section, check the `Release Date` field - against the - [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Expected result** - -1. The field should be filled in according to the Dasharo SMBIOS guidelines. - -## DMI005.001 Verify the firmware manufacturer - -**Test description** - -This test aims to verify that the firmware manufacturer fields are filled in -correctly according to the -[Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu 22.04 - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Open a terminal window and execute the following command: - - ```bash - dmidecode -t system - ``` - -1. In the `System Information` section, check the `Manufacturer` field against - the [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). -1. Execute the following command in the terminal: - - ```bash - dmidecode -t baseboard - ``` - -1. In the `Base Board Information` section, check the `Manufacturer` field - against the - [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Expected result** - -1. The fields should be filled in according to the Dasharo SMBIOS guidelines. - -## DMI006.001 Verify the firmware vendor - -**Test description** - -This test aims to verify that the firmware vendor field is filled in correctly -according to the -[Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu 22.04 - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Open a terminal window and execute the following command: - - ```bash - dmidecode -t bios - ``` - -1. In the `BIOS Information` section, check the `Vendor` field against the - [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Expected result** - -1. The field should be filled in according to the Dasharo SMBIOS guidelines. - -## DMI007.001 Verify the firmware family - -**Test description** - -This test aims to verify that the firmware family field is filled in correctly -according to the -[Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu 22.04 - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Open a terminal window and execute the following command: - - ```bash - dmidecode -t system - ``` - -1. In the `System Information` section, check the `Family` field against the - [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Expected result** - -1. The field should be filled in according to the Dasharo SMBIOS guidelines. - -## DMI008.001 Verify the firmware type - -**Test description** - -This test aims to verify that the firmware type field is filled in correctly -according to the [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu 22.04 - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Open a terminal window and execute the following command: - - ```bash - dmidecode -t chassis - ``` - -1. In the `Chassis Information` section, check the `Type` field against the - [Dasharo SMBIOS guidelines](https://docs.dasharo.com/dev-proc/smbios-rules/). - -**Expected result** - -1. The field should be filled in according to the Dasharo SMBIOS guidelines. +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index cd2979f89b..1e67904621 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -14,8 +14,8 @@ subjected from before the release of the new binary. | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [Display ports and LCD support][DSP] | DSP | DSP002.201, DSP002.003 | | 3. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.002, USB002.001, USB002.002 | - | 4. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | - | 5. | [Custom boot logo][CLG] | CLG | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | + | 4. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | + | 5. | [Custom boot logo][CLG] | CLG | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | | 6. | [M.2 WiFi/Bluetooth][WLE] | WLE | WLE001.001, WLE002.001, WLE003.001 | | 7. | [Network boot][PXE] | PXE | PXE007.001 | | 8. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT003.001, LBT003.002, LBT004.001, LBT004.002| @@ -62,7 +62,7 @@ subjected from before the release of the new binary. | 9. | [miniPCIe LTE/WiFi/Bluetooth][MWL] | MWL | MWL004.201 | | 10. | [M.2 WiFi/Bluetooth][WLE] | WLE | All | | 11. | [eMMC support][MMC] | MMC | All | - | 12. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | + | 12. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | | 13. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 14. | [Audio subsystem][AUD] | AUD | AUD007.xxx, AUD008.xxx | | 15. | [UEFI Shell][USH] | USH | All | @@ -148,7 +148,7 @@ subjected from before the release of the new binary. | 11. | [USB-C support][UTC] | UTC | UTC004.001, UTC004.002 | | 12. | [M.2 WiFi/Bluetooth][WLE] | WLE | ALL | | 13. | [eMMC support][MMC] | MMC | MMC001.001 | - | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | + | 14. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | | 15. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 16. | [M.2 automatic SATA/NVMe switching support][MSS] | MSS | MSS001.001 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | @@ -264,7 +264,7 @@ subjected from before the release of the new binary. | 10. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT003.001, LBT003.002, LBT004.001, LBT004.002| | 11. | [USB-C support][UTC] | UTC | UTC004.001, UTC004.002 | | 12. | [M.2 WiFi/Bluetooth][WLE] | WLE | ALL | - | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | + | 14. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | | 15. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | | 18. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD001.301, AUD002.201, AUD002.301, AUD003.201, AUD003.301, AUD004.201, AUD004.301, AUD005.201, AUD005.301, AUD006.201, AUD006.301 | @@ -377,7 +377,7 @@ subjected from before the release of the new binary. | 11. | [USB-C support][UTC] | UTC | UTC004.001, UTC004.001 | | 12. | [M.2 WiFi/Bluetooth][WLE] | WLE | ALL | | 13. | [eMMC support][MMC] | MMC | MMC001.001 | - | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | + | 14. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | | 15. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 16. | [M.2 automatic SATA/NVMe switching support][MSS] | MSS | MSS001.001 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | @@ -458,7 +458,7 @@ subjected from before the release of the new binary. | 11. | [USB-C support][UTC] | UTC | UTC004.001, UTC004.002 | | 12. | [M.2 WiFi/Bluetooth][WLE] | WLE | ALL | | 13. | [eMMC support][MMC] | MMC | MMC001.001 | - | 14. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001 | + | 14. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | | 15. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 17. | [Windows booting][WBT] | WBT | WBT001.001 | | 18. | [UEFI Shell][USH] | USH | All | diff --git a/docs/variants/asus_kgpe_d16/test-matrix.md b/docs/variants/asus_kgpe_d16/test-matrix.md index 572676f993..279d741581 100644 --- a/docs/variants/asus_kgpe_d16/test-matrix.md +++ b/docs/variants/asus_kgpe_d16/test-matrix.md @@ -10,7 +10,7 @@ subjected from before the release of the new binary. | No. | Supported test suite | Test suite ID | Supported test cases | |:-----|:--------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [coreboot base port][CBP] | CBP | All | -| 2. | [SMBIOS][DMI] | DMI | DMI001.001, DMI002.001, DMI003.001, DMI004.001| +| 2. | [SMBIOS][DMI] | DMI | DMI001.201, DMI002.201, DMI003.201, DMI004.201| | 3. | [coreboot fan control][FAN] | FAN | All | | 4. | [Custom boot menu key][CBK] | CBK | All | | 5. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT001.001, LBT001.002, LBT002.001, LBT002.002| diff --git a/docs/variants/dell_optiplex/test-matrix.md b/docs/variants/dell_optiplex/test-matrix.md index dab4df3d0a..b050930531 100644 --- a/docs/variants/dell_optiplex/test-matrix.md +++ b/docs/variants/dell_optiplex/test-matrix.md @@ -14,7 +14,7 @@ subjected from before the release of the new binary. | 3. | [UEFI Shell][USH] | USH | All | | 2. | [Display ports and LCD support][DSP] | DSP | DSP003.201, DSP003.003, DSP004.201, DSP004.003 | | 3. | [USB HID and MSC Support][USB] | USB | All | -| 4. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI004.001, DMI005.001, DMI006.001| +| 4. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001| | 5. | [Custom boot logo][CLG] | CLG | All | | 6. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD004.201, AUD005.201, AUD006.201 | | 7. | [NVMe support][NVM]¹ | NVM | NVM001.001, NVM001.002 | diff --git a/docs/variants/novacustom_ns5x_adl/test-matrix.md b/docs/variants/novacustom_ns5x_adl/test-matrix.md index 894c7d5593..3304141c7f 100644 --- a/docs/variants/novacustom_ns5x_adl/test-matrix.md +++ b/docs/variants/novacustom_ns5x_adl/test-matrix.md @@ -27,7 +27,7 @@ subjected before the release of the new binary. | 16. | [SD card support][SDC] | SDC | All | | 17. | [USB Camera verification][CAM] | CAM | All | | 18. | [Fan speed measure][FAN] | FAN | FAN001.001 | -| 19. | [SMBIOS][DMI] | DMI | Without DMI001.001 | +| 19. | [SMBIOS][DMI] | DMI | Without DMI001.201 | | 20. | [Firmware update using fwupd][FFW] | FFW | All | | 21. | [Dasharo Tools Suite][DTS] | DTS | DTS006.001, DTS007.001 | | 22. | [CPU status][CPU] | CPU | All | diff --git a/docs/variants/novacustom_ns5x_tgl/test-matrix.md b/docs/variants/novacustom_ns5x_tgl/test-matrix.md index cf2cc9fa26..10312fe54d 100644 --- a/docs/variants/novacustom_ns5x_tgl/test-matrix.md +++ b/docs/variants/novacustom_ns5x_tgl/test-matrix.md @@ -27,7 +27,7 @@ subjected before the release of the new binary. | 16. | [SD card support][SDC] | SDC | All | | 17. | [USB Camera verification][CAM] | CAM | All | | 18. | [Fan speed measure][FAN] | FAN | FAN001.001 | -| 19. | [SMBIOS][DMI] | DMI | Without DMI001.001 | +| 19. | [SMBIOS][DMI] | DMI | Without DMI001.201 | | 20. | [Firmware update using fwupd][FFW] | FFW | All | | 21. | [Dasharo Tools Suite][DTS] | DTS | DTS006.001, DTS007.001 | | 22. | [CPU status][CPU] | CPU | All | diff --git a/docs/variants/novacustom_nv4x_adl/test-matrix.md b/docs/variants/novacustom_nv4x_adl/test-matrix.md index 5fe0886008..701f20dc22 100644 --- a/docs/variants/novacustom_nv4x_adl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_adl/test-matrix.md @@ -27,7 +27,7 @@ subjected from before the release of the new binary. | 16. | [SD card support][SDC] | SDC | All | | 17. | [USB Camera verification][CAM] | CAM | All | | 18. | [Fan speed measure][FAN] | FAN | FAN001.001 | -| 19. | [SMBIOS][DMI] | DMI | Without DMI001.001 | +| 19. | [SMBIOS][DMI] | DMI | Without DMI001.201 | | 20. | [Firmware update using fwupd][FFW] | FFW | All | | 21. | [Dasharo Tools Suite][DTS] | DTS | DTS006.001, DTS007.001 | | 22. | [CPU status][CPU] | CPU | All | diff --git a/docs/variants/novacustom_nv4x_tgl/test-matrix.md b/docs/variants/novacustom_nv4x_tgl/test-matrix.md index ee57361489..aea8c22f27 100644 --- a/docs/variants/novacustom_nv4x_tgl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_tgl/test-matrix.md @@ -29,7 +29,7 @@ subjected from before the release of the new binary. | 16. | [SD card support][SDC] | SDC | All | | 17. | [USB Camera verification][CAM] | CAM | All | | 18. | [Fan speed measure][FAN] | FAN | FAN001.001 | -| 19. | [SMBIOS][DMI] | DMI | Without DMI001.001 | +| 19. | [SMBIOS][DMI] | DMI | Without DMI001.201 | | 20. | [Firmware update using fwupd][FFW] | FFW | All | | 21. | [Dasharo Tools Suite][DTS] | DTS | DTS006.001, DTS007.001 | | 22. | [CPU status][CPU] | CPU | All | @@ -166,7 +166,7 @@ subjected from before the release of the new binary. | 16. | [SD card support][SDC] | SDC | All | | 17. | [USB Camera verification][CAM] | CAM | All | | 18. | [Fan speed measure][FAN] | FAN | FAN001.001 | -| 19. | [SMBIOS][DMI] | DMI | Without DMI001.001 | +| 19. | [SMBIOS][DMI] | DMI | Without DMI001.201 | | 20. | [Firmware update using fwupd][FFW] | FFW | All | | 21. | [Dasharo Tools Suite][DTS] | DTS | DTS006.001, DTS007.001 | | 22. | [CPU status][CPU] | CPU | All | diff --git a/docs/variants/qemu_q35/test-matrix.md b/docs/variants/qemu_q35/test-matrix.md index 99d006352e..762fd0e3b6 100644 --- a/docs/variants/qemu_q35/test-matrix.md +++ b/docs/variants/qemu_q35/test-matrix.md @@ -15,7 +15,7 @@ Procedure for tested platform: `QEMU Q35 Machine` | 1. | [Custom Boot Keys][CBK] | CBK | All | | 2. | [UEFI Shell][USH] | USH | All | | 3. | [Network boot][PXE] | PXE | Without PXE004.001 | -| 4. | [SMBIOS][DMI] | DMI | Without DMI001.001 and DMI007.001 | +| 4. | [SMBIOS][DMI] | DMI | Without DMI001.201 and DMI007.001 | [CBK]: ../../unified-test-documentation/dasharo-compatibility/303-custom-boot-menu-key.md [USH]: ../../unified-test-documentation/dasharo-compatibility/30P-uefi-shell.md diff --git a/docs/variants/tuxedo_ibs15/test-matrix.md b/docs/variants/tuxedo_ibs15/test-matrix.md index 44f26e7740..addac46097 100644 --- a/docs/variants/tuxedo_ibs15/test-matrix.md +++ b/docs/variants/tuxedo_ibs15/test-matrix.md @@ -27,7 +27,7 @@ subjected from before the release of the new binary. | 16. | [SD card support][SDC] | SDC | All | | 17. | [USB Camera verification][CAM] | CAM | All | | 19. | [Fan speed measure][FAN] | FAN | FAN001.001 | -| 20. | [SMBIOS][DMI] | DMI | DMI002.001, DMI003.001, DMI005.001, DMI006.001, DMI007.001, DMI008.001 | +| 20. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI005.001, DMI006.001, DMI007.001, DMI008.001 | [HCL]: ../../unified-test-documentation/dasharo-compatibility/301-memory-hcl.md [EFI]: ../../unified-test-documentation/dasharo-compatibility/30M-uefi-compatible-interface.md From 8b3d272bfd3238c6c10bfcfae05469018f153c96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 08:32:36 +0200 Subject: [PATCH 080/133] 31M-platform-suspend-and-resume: SUSP: remove autos and update IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../31M-platform-suspend-and-resume.md | 85 ++----------------- docs/variants/asus_kgpe_d16/test-matrix.md | 2 +- .../hardkernel_odroid_h4/test-matrix.md | 2 +- docs/variants/msi_z790/test-matrix.md | 2 +- .../novacustom_ns5x_tgl/test-matrix.md | 4 +- .../novacustom_nv4x_tgl/test-matrix.md | 4 +- 6 files changed, 16 insertions(+), 83 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/31M-platform-suspend-and-resume.md b/docs/unified-test-documentation/dasharo-compatibility/31M-platform-suspend-and-resume.md index f2a4d9801e..f6361ef93c 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31M-platform-suspend-and-resume.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31M-platform-suspend-and-resume.md @@ -11,7 +11,7 @@ 1. Proceed with the [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -## SUSP001.001 Platform suspend and resume (Ubuntu, wakeup flag) +## SUSP001.201 Platform suspend and resume (Ubuntu, wakeup flag) **Test description** @@ -114,7 +114,7 @@ is tested in this case. /usr/lib/pm-utils/sleep.d/000kernel-change resume suspend: success. ``` -## SUSP001.003 Platform suspend and resume (QubesOS, wakeup flag) +## SUSP001.203 Platform suspend and resume (QubesOS, wakeup flag) **Test description** @@ -174,7 +174,7 @@ this case. Feb 10 16:39:10 dom0 systemd-sleep[14729]: System resumed. ``` -## SUSP002.001 Platform suspend and resume (Ubuntu, press key) +## SUSP002.201 Platform suspend and resume (Ubuntu, press key) **Test description** @@ -271,7 +271,7 @@ on the keyboard is tested in this case. /usr/lib/pm-utils/sleep.d/000kernel-change resume suspend: success. ``` -## SUSP002.003 Platform suspend and resume (QubesOS, press key) +## SUSP002.203 Platform suspend and resume (QubesOS, press key) **Test description** @@ -325,7 +325,7 @@ keyboard is tested in this case. Feb 10 16:39:10 dom0 systemd-sleep[14729]: System resumed. ``` -## SUSP003.001 Platform suspend and resume (Ubuntu, push power button) +## SUSP003.201 Platform suspend and resume (Ubuntu, push power button) **Test description** @@ -422,7 +422,7 @@ power button is tested in this case. /usr/lib/pm-utils/sleep.d/000kernel-change resume suspend: success. ``` -## SUSP003.003 Platform suspend and resume (QubesOS, push power button) +## SUSP003.203 Platform suspend and resume (QubesOS, push power button) **Test description** @@ -476,7 +476,7 @@ tested in this case. Feb 10 16:39:10 dom0 systemd-sleep[14729]: System resumed. ``` -## SUSP004.001 Platform suspend and resume (Ubuntu, Wake-on-LAN) +## SUSP004.201 Platform suspend and resume (Ubuntu, Wake-on-LAN) **Test description** @@ -590,73 +590,6 @@ mechanism is tested in this case. /usr/lib/pm-utils/sleep.d/000kernel-change resume suspend: success. ``` -## SUSP005.001 Cyclic platform suspend and resume (Ubuntu) +## SUSP005.201 Cyclic platform suspend and resume (Ubuntu) -**Test description** - -This test aims to verify that the DUT platform suspend and resume procedure -performed cyclically works correctly. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the [Firmware test suite](https://wiki.ubuntu.com/FirmwareTestSuite) - package. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following command: - - ```bash - sudo fwts s3 --results-output=stderr - ``` - - > Note: suspend test duration is set defaultly to 30 seconds. After - that time the device should be woken up automatically. - -1. Log into the system again. -1. Note the results. -1. Repeat steps 4-6 to determine the stability of suspend and resume procedure. - -**Expected result** - -Each time, the suspend and resume procedure is performed, the output of the -command should contain information about test results (section -`Test Failure Summary`). - -The test case passes only if after every iteration of the suspend and resume -procedure the summary section shows that all minor tests included in `s3` test -have been passed. - -Example output for one iteration: - -```bash -Test Failure Summary -================================================================================ - -Critical failures: NONE - -High failures: NONE - -Medium failures: NONE - -Low failures: NONE - -Other failures: NONE - -Test |Pass |Fail |Abort|Warn |Skip |Info | ----------------+-----+-----+-----+-----+-----+-----+ -s3 | 9| | | | | | ----------------+-----+-----+-----+-----+-----+-----+ -Total: | 9| 0| 0| 0| 0| 0| ----------------+-----+-----+-----+-----+-----+-----+ -``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/variants/asus_kgpe_d16/test-matrix.md b/docs/variants/asus_kgpe_d16/test-matrix.md index 279d741581..7fb9a20b71 100644 --- a/docs/variants/asus_kgpe_d16/test-matrix.md +++ b/docs/variants/asus_kgpe_d16/test-matrix.md @@ -17,7 +17,7 @@ subjected from before the release of the new binary. | 6. | [Network boot][PXE] | PXE | PXE007.001 | | 7. | [USB detection][UDT] | UDT | All | | 8. | [USB booting][UBT] | UBT | All | -| 9. | [Platform suspend and resume][SUSP] | SUSP | SUSP001.001 | +| 9. | [Platform suspend and resume][SUSP] | SUSP | SUSP001.201 | | 10. | [Flash write protection][HWP] | HWP | All | | 11. | [Display ports and LCD support][DSP] | DSP | DSP004.201, DSP004.301 | diff --git a/docs/variants/hardkernel_odroid_h4/test-matrix.md b/docs/variants/hardkernel_odroid_h4/test-matrix.md index ac485966c2..e1295af451 100644 --- a/docs/variants/hardkernel_odroid_h4/test-matrix.md +++ b/docs/variants/hardkernel_odroid_h4/test-matrix.md @@ -21,7 +21,7 @@ Hardkernel devices. | 9. | [Network boot][PXE] | PXE | All | | 10. | [Display ports][DSP] | DSP | DSP002.201, DSP003.201 | | 11. | [Audio subsystem][AUD] | AUD | AUD007.201, AUD008.201 | -| 12. | [Sleep mode][SUSP] | SUSP | SUSP001.001, SUSP002.001, SUSP003.001, SUSP005.001| +| 12. | [Sleep mode][SUSP] | SUSP | SUSP001.201, SUSP002.201, SUSP003.201, SUSP005.201| | 13. | [SMBIOS verification][DMI] | DMI | All | | 14. | [eMMC support][MMC] | MMC | All | | 15. | [Sign of life][SOL] | SOL | All | diff --git a/docs/variants/msi_z790/test-matrix.md b/docs/variants/msi_z790/test-matrix.md index 3004d1c27a..0944a38c70 100644 --- a/docs/variants/msi_z790/test-matrix.md +++ b/docs/variants/msi_z790/test-matrix.md @@ -34,7 +34,7 @@ Note that the test scope is used during Dasharo Certification Procedure for for | 14. | [Custom Boot Keys][CBK] | CBK | All | | 15. | [Dasharo Tools Suite][DTS] | DTS | DTS001.001, DTS002.001, DTS003.001, DTS004.001, DTS005.001, DTS006.001 | | 16. | [CPU status][CPU] | CPU | CPU001.201, CPU001.301 | -| 17. | [Platform suspend and resume][SUSP] | SUSP | SUSP001.001, SUSP002.001, SUSP003.001, SUSP005.001| +| 17. | [Platform suspend and resume][SUSP] | SUSP | SUSP001.201, SUSP002.201, SUSP003.201, SUSP005.201| [HCL]: ../../unified-test-documentation/dasharo-compatibility/301-memory-hcl.md [EFI]: ../../unified-test-documentation/dasharo-compatibility/30M-uefi-compatible-interface.md diff --git a/docs/variants/novacustom_ns5x_tgl/test-matrix.md b/docs/variants/novacustom_ns5x_tgl/test-matrix.md index 10312fe54d..b072ffd85f 100644 --- a/docs/variants/novacustom_ns5x_tgl/test-matrix.md +++ b/docs/variants/novacustom_ns5x_tgl/test-matrix.md @@ -37,10 +37,10 @@ subjected before the release of the new binary. | 26. | [Custom Boot Order][CBO] | CBO | CBO001.002 | | 27. | [QubesOS support][QBS] | QBS | All | | 28. | [Fedora support][FED] | FED | All | -| 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004.001 and SUSP006.001 | +| 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004 and SUSP006 | | 30. | [Boot blocking][BBB] | BBB | All | | 31. | [Reset to defaults][RTD] | RTD | All | -| 32. | [Suspend mechanism switching (S0ix/S3)][SMS] | SMS | All | +| 32. | [Suspend mechanism switching (S0ix/S3)][SMS] | SMS | All | | 33. | [Platform hibernation and resume][HBN] | HBN | All | | 34. | [Sign of life][SOL] | SOL | All | | 35. | [Power after fail][PSF] | PSF | All | diff --git a/docs/variants/novacustom_nv4x_tgl/test-matrix.md b/docs/variants/novacustom_nv4x_tgl/test-matrix.md index aea8c22f27..be58c91969 100644 --- a/docs/variants/novacustom_nv4x_tgl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_tgl/test-matrix.md @@ -39,7 +39,7 @@ subjected from before the release of the new binary. | 26. | [Custom Boot Order][CBO] | CBO | CBO001.002 | | 27. | [QubesOS support][QBS] | QBS | All | | 28. | [Fedora support][FED] | FED | All | -| 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004.001 and SUSP006.001 | +| 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004 and SUSP006 | | 30. | [Boot blocking][BBB] | BBB | All | | 31. | [Reset to defaults][RTD] | RTD | All | | 32. | [Suspend mechanism switchcing (S0ix/S3)][SMS] | SMS | All | @@ -176,7 +176,7 @@ subjected from before the release of the new binary. | 26. | [Custom Boot Order][CBO] | CBO | CBO001.002 | | 27. | [QubesOS support][QBS] | QBS | All | | 28. | [Fedora support][FED] | FED | All | -| 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004.001 and SUSP006.001 | +| 29. | [Platform suspend and resume][SUSP] | SUSP | Without SUSP004 and SUSP006 | | 30. | [Boot blocking][BBB] | BBB | All | | 31. | [Reset to defaults][RTD] | RTD | All | | 32. | [Suspend mechanism switchcing (S0ix/S3)][SMS] | SMS | All | From f9e6690d658d8f471cdaf5ea416944cf66ad67ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 08:49:47 +0200 Subject: [PATCH 081/133] 31T-cpu-status: CPU: Remove fully automated test suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/31T-cpu-status.md | 347 +----------------- 1 file changed, 1 insertion(+), 346 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/31T-cpu-status.md b/docs/unified-test-documentation/dasharo-compatibility/31T-cpu-status.md index 14d5625782..64580a26c2 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/31T-cpu-status.md +++ b/docs/unified-test-documentation/dasharo-compatibility/31T-cpu-status.md @@ -1,348 +1,3 @@ # Dasharo Compatibility: CPU Status -## Test cases common documentation - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -1. Proceed with the - [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). - -## CPU001.201 CPU works (Ubuntu) - -**Test description** - -Check whether the mounted on the DUT CPU works. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Wait for the `OPERATING_SYSTEM` to boot and note the result. - -**Expected result** - -The `OPERATING_SYSTEM` screen should be displayed. - -## CPU001.301 CPU works (Windows) - -**Test description** - -Check whether the mounted on the DUT CPU works. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Wait for the `OPERATING_SYSTEM` to boot and note the result. - -**Expected result** - -The `OPERATING_SYSTEM` screen should be displayed. - -## CPU002.201 CPU cache enabled (Ubuntu) - -**Test description** - -Check whether all declared for the DUT cache levels are enabled. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Wait for the `OPERATING_SYSTEM` to boot. -1. Execute below command in terminal: - - ```bash - getconf -a | grep CACHE - ``` - -1. Note the result. - -**Expected result** - -The output of the command should contain information about all cache levels, -their size and association. Example output: - -```bash -LEVEL1_ICACHE_SIZE 32768 -LEVEL1_ICACHE_ASSOC 32 -LEVEL1_ICACHE_LINESIZE 128 -LEVEL1_DCACHE_SIZE 32768 -LEVEL1_DCACHE_ASSOC 32 -LEVEL1_DCACHE_LINESIZE 128 -LEVEL2_CACHE_SIZE 524288 -LEVEL2_CACHE_ASSOC 2048 -LEVEL2_CACHE_LINESIZE 32 -LEVEL3_CACHE_SIZE 10485760 -LEVEL3_CACHE_ASSOC 40960 -LEVEL3_CACHE_LINESIZE 32 -LEVEL4_CACHE_SIZE 0 -LEVEL4_CACHE_ASSOC 0 -LEVEL4_CACHE_LINESIZE 0 -``` - -## CPU002.301 CPU cache enabled (Windows) - -**Test description** - -Check whether all declared for the DUT cache levels are enabled. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Wait for the `OPERATING_SYSTEM` to boot. -1. Run PowerShell as an administrator and execute command: - - ```powershell - Get-Wmiobject -class win32_cachememory | fl Purpose, CacheType, InstalledSize - ``` - -1. Note the result. - -**Expected result** - -The output of the command should contain information about all cache levels, -their size and association. Example output: - -```powershell -Purpose : CACHE1 -CacheType : 4 -InstalledSize : 192 - -Purpose : CACHE1 -CacheType : 3 -InstalledSize : 128 - -Purpose : CACHE2 -CacheType : 5 -InstalledSize : 5120 - -Purpose : CACHE3 -CacheType : 5 -InstalledSize : 8192 -``` - -## CPU003.201 Multiple CPU support (Ubuntu) - -**Test description** - -Check whether the DUT has multiple CPU support. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Wait for the `OPERATING_SYSTEM` to boot. -1. Execute below command in terminal: - - ```bash - lscpu - ``` - -1. Note the result. - -**Expected result** - -The output of the command should contain basic information about the CPU, -including the number of the `CPU (s)`. If `CPU(s)` are more than 1, the DUT -has multiple CPU support. Example results: - -```bash -Architecture: ppc64le -Byte Order: Little Endian -CPU(s): 32 -On-line CPU(s) list: 0-31 -Thread(s) per core: 4 -Core(s) per socket: 4 -Socket(s): 2 -NUMA node(s): 2 -``` - -## CPU003.301 Multiple CPU support (Windows) - -**Test description** - -Check whether the DUT has multiple CPU support. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Wait for the `OPERATING_SYSTEM` to boot. -1. Run PowerShell as an administrator and execute command: - - ```powershell - WMIC CPU Get NumberOfCores - ``` - -1. Note the result. - -**Expected result** - -The output of the command should contain information about the CPUs. -Example results: - -```powershell -NumberOfCores -4 -``` - -## CPU004.201 Multiple-core support (Ubuntu) - -**Test description** - -Check whether the DUT has multi-core support. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Wait for the `OPERATING_SYSTEM` to boot. -1. Execute below command in terminal: - - ```bash - lscpu - ``` - -1. Note the result. - -**Expected result** - -The output of the command should contain basic information about the CPU, -including the number of the `Core(s) per socket`. If `Core(s) per socket` -are more than 1, the DUT has multi-core support. Example results: - -```bash -Architecture: ppc64le -Byte Order: Little Endian -CPU(s): 32 -On-line CPU(s) list: 0-31 -Thread(s) per core: 4 -Core(s) per socket: 4 -Socket(s): 2 -NUMA node(s): 2 -``` - -## CPU004.301 Multiple-core support (Windows) - -**Test description** - -Check whether the DUT has multi-core support. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Wait for the `OPERATING_SYSTEM` to boot. -1. Run PowerShell as an administrator and check total CPU cores by executing -command: - - ```powershell - WMIC CPU Get NumberOfCores - ``` - -1. Note the result. -1. Check total CPU socket number by executing command: - - ```powershell - (Get-CimInstance -ClassName Win32_ComputerSystem).NumberOfProcessors - ``` - -1. Note the result. - -**Expected result** - -1. If number of cores is higher than number of sockets then DUT has multi-core -support. Example outputs: - -- 1st command: - -```powershell -NumberOfCores -4 -``` - -- 2nd command: - -```powershell -1 -``` +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From 9dca2df89947a31a20542bcbcacd390934be0a32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 08:58:39 +0200 Subject: [PATCH 082/133] 306-usb-hid-and-msc-support: USB: Remove auto & Update IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../306-usb-hid-and-msc-support.md | 335 +----------------- docs/unified/protectli/test-matrix.md | 2 +- .../hardkernel_odroid_h4/test-matrix.md | 2 +- docs/variants/msi_z690/test-matrix.md | 2 +- docs/variants/msi_z790/test-matrix.md | 2 +- 5 files changed, 15 insertions(+), 328 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/306-usb-hid-and-msc-support.md b/docs/unified-test-documentation/dasharo-compatibility/306-usb-hid-and-msc-support.md index 20949ce18b..28bf678e45 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/306-usb-hid-and-msc-support.md +++ b/docs/unified-test-documentation/dasharo-compatibility/306-usb-hid-and-msc-support.md @@ -42,93 +42,15 @@ correctly by the firmware and all basic keys work according to their labels. 1. Flash drive entry is listed in the boot menu. -## USB001.002 USB devices detection in OS (Ubuntu) +## USB001.201 USB devices detection in OS (Ubuntu) -**Test description** - -This test aims to verify that the external USB devices are detected -correctly by the `OPERATING_SYSTEM` and all basic keys work according to their -labels. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - watch -n1 lsusb - ``` - -1. Connect external USB devices to DUT USB A port and note the result. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Expected result** +## USB001.301 USB devices detection in OS (Windows) -1. After each device is connected to the USB port, a new USB device entry - in `lsusb` command output should appear. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -## USB001.003 USB devices detection in OS (Windows) - -**Test description** - -This test aims to verify that the external USB devices are detected correctly -by the `OPERATING_SYSTEM` and all basic keys work according to their labels. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell and and run the following command: - - ```bash - Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } - ``` - -1. Note the results. - -**Expected result** - -1. After executing the command, a list containing all USB devices should -be displayed. All devices' status should be `OK`. - - Example output: - - ```bash - Status Class FriendlyName - ------ ----- ------------ - OK DiskDrive Mass Storage Device USB Device - OK USB Generic USB Hub - OK HIDClass USB Input Device - OK Bluetooth Intel(R) Wireless Bluetooth(R) - OK USB USB Root Hub (USB 3.0) - OK Net TP-LINK Gigabit Ethernet USB Adapter - OK USB Generic USB Hub - OK USB USB Mass Storage Device - ``` - -## USB002.001 USB keyboard detection (firmware) +## USB002.201 USB keyboard detection (firmware) **Test description** @@ -157,251 +79,16 @@ by the firmware and all basic keys work according to their labels. ## USB002.002 USB keyboard detection (Ubuntu) -**Test description** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -This test aims to verify that the external USB keyboard is detected correctly -by the `OPERATING_SYSTEM` and all basic keys work according to their labels. +## USB002.301 USB keyboard detection (Windows) -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install `libinput-tools` on the DUT. -1. Connect the external USB keyboard using the USB port. +## USB003.201 Upload 1GB file on USB storage (Ubuntu) -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Run the following command in the terminal: - - ```bash - libinput debug-events --show-keycodes - ``` - -1. Test the alphanumeric keys and note the generated keycodes. -1. Test non-alphanumeric keys and verify that they generate the correct - keycodes. -1. Test key combinations with the `Shift`, `Ctrl` and `Alt` modifier keys - (this tests 2-key rollover). - -**Expected result** - -1. The external USB keyboard is detected in OS. -1. All standard keyboard keys generate the correct keycodes and events as per - their labels. -1. Key combinations are detected correctly. - -## USB002.003 USB keyboard detection (Windows) - -**Test description** - -This test aims to verify that the external USB keyboard is detected correctly -by the `OPERATING_SYSTEM` and all basic keys work according to their labels. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Connect the external USB keyboard using the USB port. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell and run the following command: - - ```bash - Get-CimInstance win32_KEYBOARD - ``` - -1. Note the results. -1. Open `notepad`. -1. Test the alphanumeric keys and note the generated characters. -1. Test non-alphanumeric keys and verify that they generate the signs. -1. Test key combinations with the `Shift`, and `Alt` modifier keys. -1. Open `On-Screen Keyboard` and press `Ctrl` key on the hardware keyboard. - Check if `On-Screen Keyboard` correctly highlights it. -1. Open `Start menu` and press `Esc`. Check if `Start menu` is properly closed. - -**Expected result** - -1. After running the PowerShell command information about connected keyboard - should be displayed. - - Example output: - - ```bash - Caption : Enhanced (101- or 102-key) - Description : USB Input Device - InstallDate : - Name : Enhanced (101- or 102-key) - Status : OK - Availability : - ConfigManagerErrorCode : 0 - ConfigManagerUserConfig : False - CreationClassName : Win32_Keyboard - DeviceID : USB\VID_046D&PID_C31C&MI_00\6&26C21341&0&0000 - ErrorCleared : - ErrorDescription : - LastErrorCode : - PNPDeviceID : USB\VID_046D&PID_C31C&MI_00\6&26C21341&0&0000 - PowerManagementCapabilities : - PowerManagementSupported : False - StatusInfo : - SystemCreationClassName : Win32_ComputerSystem - SystemName : DESKTOP-CUR9H2J - IsLocked : - Layout : 00000409 - NumberOfFunctionKeys : 12 - Password : - PSComputerName : - ``` - -1. All standard keyboard keys generate correct characters - or actions when pressed. -1. Key combinations are detected correctly. - -## USB003.001 Upload 1GB file on USB storage (Ubuntu) - -**Test description** - -This test aims to verify that the 1GB file can be transferred from the -`OPERATING_SYSTEM` to the `USB storage`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu -1. `USB storage` - at least 1GB of free space - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command to generate 1GB file: - - ```bash - openssl rand -out test_file.txt -base64 $(( 2**30 * 3/4 )) - ``` - -1. Plug in the `USB storage` to the USB port. -1. Read the path to the `USB storage` by running the following command: - - ```bash - lsblk - ``` - -1. Copy the generated file to the `USB storage` by running the following - command: - - ```bash - cp test_file.txt {path_to_usb_storage} - ``` - -1. Verify that the files are the same by running the following command: - - ```bash - sha256sum test_file.txt {path_to_usb_storage}/test_file.txt - ``` - -**Expected result** - -The output from the last command should contain 2 identical checksums: - -```bash -f46597c0c63a1eefb200d40edf654e52f10c3d5d21565886ad603fabaf8d39fb test_file.txt -f46597c0c63a1eefb200d40edf654e52f10c3d5d21565886ad603fabaf8d39fb {path_to_usb_storage}/test_file.txt -``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## USB003.002 Upload 1GB file on USB storage (Windows) -**Test description** - -This test aims to verify that the 1GB file can be transferred from the -`OPERATING_SYSTEM` to the `USB storage`. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows -1. `USB storage` - at least 1GB of free space - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open powershell as administrator and run the following command to generate - 1GB file: - - ```powershell - fsutil file createnew test_file.txt 1073741824 - ``` - -1. Plug in the `USB storage` to the USB port. -1. Read the drive letter assigned to the `USB storage` by running the following - command: - - ```powershell - (Get-Volume | where drivetype -eq removable).driveletter - ``` - -1. Copy the generated file to the `USB storage` by running the following - command: - - ```powershell - Copy-Item -Path C:\Windows\system32\test_file.txt {drive_letter}: - ``` - -1. Verify that the files are the same by running the following commands: - - ```powershell - Get-FileHash test_file.txt - Get-FileHash {drive_letter}:\test_file.txt - ``` - -**Expected result** - -The output from the last commands should have equal hash: - -```powershell -Algorithm Hash Path ---------- ---- ---- -SHA256 F46597C0C63A1EEFB200D40EDF654E52F10C3D5D21565886AD603FABAF8D39FB C\Windows\system3... -``` - -```powershell -Algorithm Hash Path ---------- ---- ---- -SHA256 F46597C0C63A1EEFB200D40EDF654E52F10C3D5D21565886AD603FABAF8D39FB E:\test_file.txt -``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index 1e67904621..47413967a6 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -13,7 +13,7 @@ subjected from before the release of the new binary. |:-----|:--------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [Display ports and LCD support][DSP] | DSP | DSP002.201, DSP002.003 | - | 3. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.002, USB002.001, USB002.002 | + | 3. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.201, USB002.201, USB002.002 | | 4. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | | 5. | [Custom boot logo][CLG] | CLG | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | | 6. | [M.2 WiFi/Bluetooth][WLE] | WLE | WLE001.001, WLE002.001, WLE003.001 | diff --git a/docs/variants/hardkernel_odroid_h4/test-matrix.md b/docs/variants/hardkernel_odroid_h4/test-matrix.md index e1295af451..9804a35301 100644 --- a/docs/variants/hardkernel_odroid_h4/test-matrix.md +++ b/docs/variants/hardkernel_odroid_h4/test-matrix.md @@ -13,7 +13,7 @@ Hardkernel devices. | 1. | [Custom boot order][CBO] | CBO | CBO001.002 | | 2. | [Custom Boot Keys][CBK] | CBK | All | | 3. | [Custom logo][CLG] | CLG | All | -| 4. | [USB HID and MSC Support][USB] | USB | USB001.0001, USB001.002, USB002.001, USB002.002| +| 4. | [USB HID and MSC Support][USB] | USB | USB001.0001, USB001.201, USB002.201, USB002.002| | 5. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 6. | [UEFI compatible interface][EFI] | EFI | EFI001.201 | | 7. | [UEFI Shell][USH] | USH | All | diff --git a/docs/variants/msi_z690/test-matrix.md b/docs/variants/msi_z690/test-matrix.md index b9bb5141f8..3723d3dcab 100644 --- a/docs/variants/msi_z690/test-matrix.md +++ b/docs/variants/msi_z690/test-matrix.md @@ -22,7 +22,7 @@ tested platforms: `MSI PRO Z690-A WiFi DDR4` and `MSI PRO Z690-A DDR5`. | 2. | [UEFI compatible interface][EFI] | EFI | All | | 3. | [UEFI Shell][USH] | USH | All | | 4. | [Display ports and LCD support][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.201, DSP003.301, DSP003.003 | -| 5. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.002, USB001.003, USB002.001, USB002.002 USB002.003 | +| 5. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.201, USB001.301, USB002.201, USB002.002 USB002.301 | | 6. | [SMBIOS][DMI] | DMI | All | | 7. | [Custom boot logo][CLG] | CLG | All | | 8. | [M.2 WiFi/Bluetooth][WLE] | WLE | All | diff --git a/docs/variants/msi_z790/test-matrix.md b/docs/variants/msi_z790/test-matrix.md index 0944a38c70..17ff3f75fd 100644 --- a/docs/variants/msi_z790/test-matrix.md +++ b/docs/variants/msi_z790/test-matrix.md @@ -22,7 +22,7 @@ Note that the test scope is used during Dasharo Certification Procedure for for | 2. | [UEFI compatible interface][EFI] | EFI | All | | 3. | [UEFI Shell][USH] | USH | All | | 4. | [Display ports and LCD support][DSP] | DSP | DSP002.201, DSP002.301, DSP002.003, DSP003.201, DSP003.301, DSP003.003 | -| 5. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.002, USB001.003, USB002.001, USB002.002 USB002.003 | +| 5. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.201, USB001.301, USB002.201, USB002.002 USB002.301 | | 6. | [SMBIOS][DMI] | DMI | All | | 7. | [Custom boot logo][CLG] | CLG | All | | 8. | [M.2 WiFi/Bluetooth][WLE] | WLE | All | From bf8c57f9d20d9e8092f4e0ad7549ecb8b56075b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:00:36 +0200 Subject: [PATCH 083/133] 312-nvme-support: NVM: Remove auto & update IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/312-nvme-support.md | 84 +------------------ docs/variants/dell_optiplex/test-matrix.md | 2 +- .../hardkernel_odroid_h4/test-matrix.md | 2 +- 3 files changed, 6 insertions(+), 82 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/312-nvme-support.md b/docs/unified-test-documentation/dasharo-compatibility/312-nvme-support.md index 244fd21781..17076e20f1 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/312-nvme-support.md +++ b/docs/unified-test-documentation/dasharo-compatibility/312-nvme-support.md @@ -27,86 +27,10 @@ detect NVMe disk in the M.2 slot. 1. The NVMe disk should be listed on the bootable devices list. -## NVM001.002 NVMe support (Ubuntu) +## NVM001.201 NVMe support (Ubuntu) -**Test description** - -This test aims to verify booting the Operating System from NVMe disk in -the M.2 slot. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Insert a NVMe disk into the M.2 slot on the DUT. -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following command: - -```bash -sudo mount | grep 'on / ' -``` - -**Expected result** - -1. The `OPERATING_SYSTEM` has been booted from the NVMe disk correctly. -1. Output in Terminal indicates that system partition is installed on the NVMe - disk: - -```bash -/dev/nvme* on / tpe ext4 (rw,relatime,errors=remount-ro) -``` - -## NVM001.003 NVMe support in OS (Windows) - -**Test description** - -This test aims to verify booting the Operating System from NVMe disk in the -M.2 slot. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Insert a NVMe disk into the M.2 slot on the DUT. -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell as administrator. -1. Run below command and note the result: - - ```powershell - Get-PnpDevice -Status "OK" | where { $_.InstanceId -like "SCSI\DISK&VEN_NVME&*"} - ``` - -**Expected result** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. The `OPERATING_SYSTEM` booting from the NVMe disk -1. Command should output at least one NVMe drive. Similar as below: +## NVM001.301 NVMe support in OS (Windows) - ```powershell - Status Class FriendlyName - ------ ----- ------------ - OK DiskDrive Samsung SSD 980 PRO 500GB - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/variants/dell_optiplex/test-matrix.md b/docs/variants/dell_optiplex/test-matrix.md index b050930531..f8683acb14 100644 --- a/docs/variants/dell_optiplex/test-matrix.md +++ b/docs/variants/dell_optiplex/test-matrix.md @@ -17,7 +17,7 @@ subjected from before the release of the new binary. | 4. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001| | 5. | [Custom boot logo][CLG] | CLG | All | | 6. | [Audio subsystem][AUD] | AUD | AUD001.201, AUD004.201, AUD005.201, AUD006.201 | -| 7. | [NVMe support][NVM]¹ | NVM | NVM001.001, NVM001.002 | +| 7. | [NVMe support][NVM]¹ | NVM | NVM001.001, NVM001.201 | | 8. | [Network boot][PXE] | PXE | Without PXE007.001 | | 9. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT003.001, LBT003.002, LBT004.001, LBT004.002| | 13. | [Windows booting][WBT] | WBT | WBT001.001 | diff --git a/docs/variants/hardkernel_odroid_h4/test-matrix.md b/docs/variants/hardkernel_odroid_h4/test-matrix.md index 9804a35301..7b30422842 100644 --- a/docs/variants/hardkernel_odroid_h4/test-matrix.md +++ b/docs/variants/hardkernel_odroid_h4/test-matrix.md @@ -17,7 +17,7 @@ Hardkernel devices. | 5. | [Custom network boot entries][CNB] | CNB | CNB001.201 | | 6. | [UEFI compatible interface][EFI] | EFI | EFI001.201 | | 7. | [UEFI Shell][USH] | USH | All | -| 8. | [NVMe support][NVM] | NVM | NVM001.001, NVM001.002 | +| 8. | [NVMe support][NVM] | NVM | NVM001.001, NVM001.201 | | 9. | [Network boot][PXE] | PXE | All | | 10. | [Display ports][DSP] | DSP | DSP002.201, DSP003.201 | | 11. | [Audio subsystem][AUD] | AUD | AUD007.201, AUD008.201 | From decbe57bc64a25a3ee3b3a11abf61e390b74bfe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:01:55 +0200 Subject: [PATCH 084/133] 316-sdcard-reader: SDC: Remove auto suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../316-sdcard-reader.md | 167 +----------------- 1 file changed, 1 insertion(+), 166 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/316-sdcard-reader.md b/docs/unified-test-documentation/dasharo-compatibility/316-sdcard-reader.md index 3bebd29419..66b23b9044 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/316-sdcard-reader.md +++ b/docs/unified-test-documentation/dasharo-compatibility/316-sdcard-reader.md @@ -1,168 +1,3 @@ # Dasharo Compatibility: SD Card Reader -## Test cases common documentation - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -1. Proceed with the - [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -1. Insert an SD card into the SD Card reader. - -## SDC001.001 SD Card reader detection (Ubuntu) - -**Test description** - -This test aims to verify that the SD Card reader is enumerated correctly and -can be detected from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following command: - -```bash -lspci | grep RTS522A -``` - -**Expected result** - -The output from the command should contain the line: - -```bash -2d:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01) -``` - -## SDC001.002 SD Card reader detection (Windows) - -**Test description** - -This test aims to verify that the SD Card reader is enumerated correctly and -can be detected from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell as administrator. -1. Run below command and note result: - - ```PowerShell - Get-PnpDevice -Status "OK" -Class "MTD" - ``` - -**Expected result** - -The output of the command should contain basic information about mounted -SD card reader. - -Output example: - -```PowerShell -Status Class FriendlyName ------- ----- ------------ -OK MTD Realtek PCIE CardReader -``` - -## SDC002.001 SD Card read/write (Ubuntu) - -**Test description** - -This test aims to verify that the SD Card reader is initialized correctly and -can be used from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following commands as root: - -```bash -dd if=/dev/urandom of=/tmp/in.bin bs=4K count=100 -dd if=/tmp/in.bin of=/dev/mmcblk0 bs=4K count=100 -dd if=/dev/mmcblk0 of=/tmp/out.bin bs=4K count=100 -sha256sum /tmp/in.bin /tmp/out.bin -``` - -**Expected result** - -The output from the last command should contain 2 identical checksums: - -```bash -2083776668ed0c8095a9ac42188153c02f360e116c14b36d2ef5c98665d75dcb /tmp/in.bin -2083776668ed0c8095a9ac42188153c02f360e116c14b36d2ef5c98665d75dcb /tmp/out.bin -``` - -## SDC002.002 SD Card read/write (Windows) - -**Test description** - -This test aims to verify that the SD Card reader is initialized correctly and -can be used from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Determine the localization of the mounted SD card. -1. Open PowerShell as administrator. -1. Run below commands and note results: - - ```powershell - New-Item -Path "${drive_lacation}:\" -Name "testfile.txt" -ItemType "file" -Value "This is a test string." - Get-Content -Path "${drive_lacation}:\testfile.txt" - ``` - -**Expected result** - -Last command should return `This is a test string.` +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From 5781e19aa6044b6bbcac6fd5a3418949c0187b5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:02:56 +0200 Subject: [PATCH 085/133] 31-usb-camera: Remove automated suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/317-usb-camera.md | 102 +----------------- 1 file changed, 1 insertion(+), 101 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/317-usb-camera.md b/docs/unified-test-documentation/dasharo-compatibility/317-usb-camera.md index 217487c426..40ec53bec4 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/317-usb-camera.md +++ b/docs/unified-test-documentation/dasharo-compatibility/317-usb-camera.md @@ -1,103 +1,3 @@ # Dasharo Compatibility: USB Camera -## CAM001.201 USB Camera (Ubuntu) - -**Test description** - -This test aims to verify that the integrated USB camera is initialized -correctly and can be accessed from the operating system - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -1. Proceed with the - [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -1. Install ffprobe: `sudo apt install ffmpeg`. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following commands: - -```bash -ffprobe /dev/video0 -ffprobe /dev/video2 -``` - -**Expected result** - -1. The output from the first command should contain the lines: - - ```bash - Input #0, video4linux2,v4l2, from '/dev/video0': - Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc - ``` - -1. The output from the second command should contain the lines: - - ```bash - Input #0, video4linux2,v4l2, from '/dev/video2': - Stream #0:0: Video: rawvideo (Y800 / 0x30303859), gray, 640x360, 55296 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc - ``` - -## CAM001.301 USB Camera (Windows) - -**Test description** - -This test aims to verify that the integrated USB camera is initialized -correctly and can be accessed from the operating system - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -1. Proceed with the - [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Run PowerShell as administrator. -1. Execute below command and note the result: - - ```powershell - Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } - ``` - -**Expected result** - -1. Output should contain `Chicony USB2.0 Camera`. Example output: - - ```powershell - Status Class FriendlyName - ------ ----- ------------ - OK Camera Chicony USB2.0 Camera - OK Bluetooth Intel(R) Wireless Bluetooth(R) - OK Camera IR Camera - OK USB USB Root Hub (USB 3.0) - OK USB USB Root Hub (USB 3.0) - OK USB USB Composite Device - ``` +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From 56da19b49bd425e8756616ef567db0cb2f315276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:04:20 +0200 Subject: [PATCH 086/133] 318-m2-wifi-bluetooth: WLE: Remove automated suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../318-m2-wifi-bluetooth.md | 298 +----------------- docs/unified/protectli/test-matrix.md | 2 +- 2 files changed, 2 insertions(+), 298 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/318-m2-wifi-bluetooth.md b/docs/unified-test-documentation/dasharo-compatibility/318-m2-wifi-bluetooth.md index 5dd9450144..843143ead4 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/318-m2-wifi-bluetooth.md +++ b/docs/unified-test-documentation/dasharo-compatibility/318-m2-wifi-bluetooth.md @@ -1,299 +1,3 @@ # Dasharo Compatibility: M.2 WiFi/Bluetooth -## Test cases common documentation - -**Important notice** - -If both are technically supported, as is the case for NovaCustom NV4x, the -test should be carried out separately for both the default Intel network card -and the Atheros one. - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -1. Proceed with the - [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). - -## WLE001.001 Wireless card detection (Ubuntu) - -**Test description** - -This test aims to verify that the Wi-Fi/Bluetooth card is enumerated correctly -and can be detected from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following command: - -```bash -lspci | grep "Network Controller" -``` - -**Expected result** - -The output of the command should contain information about mounted on the board -network controller. - -Example output: - -```bash -2f:00.0 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 1a) -``` - -## WLE001.002 Wireless card detection (Windows) - -**Test description** - -This test aims to verify that the Wi-Fi/Bluetooth card is enumerated correctly -and can be detected from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell and execute following command: - - ```PowerShell - Get-PnpDevice -PresentOnly | Select-String -Pattern "Wi-Fi" - ``` - -1. Note the result. - -**Expected result** - -The output of the command should contain information about mounted on the board -network controller. - -Example output: - -```bash -Intel(R) Wi-Fi 6AX200 160MHz -``` - -## WLE002.001 Wi-Fi scanning (Ubuntu) - -**Test description** - -This test aims to verify that the Wi-Fi functionality of card is initialized -correctly and can be used from within the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Make sure to have any Wi-Fi signal available. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following commands as root: - -```bash -nmcli radio wifi on -nmcli device wifi rescan -# Wait ~5 seconds -nmcli device wifi list -``` - -**Expected result** - -The output of the last command should return a list of available Wi-Fi networks, -for example: - -```bash -IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY - XX:XX:XX:XX:XX:XX DIRECT-ny Infra 6 65 Mbit/s 75 ▂▄▆_ WPA2 -* XX:XX:XX:XX:XX:XX 3mdeb_abr_5GHz Infra 48 405 Mbit/s 72 ▂▄▆_ WPA2 - XX:XX:XX:XX:XX:XX 3mdeb_abr Infra 11 54 Mbit/s 69 ▂▄▆_ WPA2 - XX:XX:XX:XX:XX:XX FunBox2-F9BF_2.4GHz Infra 1 130 Mbit/s 50 ▂▄__ WPA1 WPA2 - XX:XX:XX:XX:XX:XX H_Office Infra 2 270 Mbit/s 35 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-xpPhaser 3330 Infra 1 65 Mbit/s 34 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX Orange_Swiatlowod_A79A Infra 108 540 Mbit/s 32 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-KRM288x Series Infra 11 54 Mbit/s 22 ▂___ WPA2 - XX:XX:XX:XX:XX:XX Orange_Swiatlowod_A79A Infra 11 130 Mbit/s 20 ▂___ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-ejPhaser 3330 Infra 1 65 Mbit/s 17 ▂___ WPA2 - XX:XX:XX:XX:XX:XX NED-WIFI Infra 11 270 Mbit/s 17 ▂___ WPA2 -``` - -## WLE002.002 Wi-Fi scanning (Windows) - -**Test description** - -This test aims to verify that the Wi-Fi functionality of card is initialized -correctly and can be used from within the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Make sure to have any Wi-Fi signal available - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open PowerShell and execute following command: - - ```PowerShell - netsh wlan show network - ``` - -1. Note the result. - -**Expected result** - -The output of the command should return a list of available Wi-Fi networks. - -Output example: - -```PowerShell -SSID 1 : Orange_Swiatlowod_A79A - Network type : Infrastructure - Authentication : WPA2-Personal - Encryption : CCMP - -SSID 2 : DIRECT-Y9Phaser 3330 - Network type : Infrastructure - Authentication : WPA2-Personal - Encryption : CCMP - -SSID 3 : 3mdeb_abr_5GHz - Network type : Infrastructure - Authentication : WPA2-Personal - Encryption : CCMP - -SSID 4 : 3mdeb_abr - Network type : Infrastructure - Authentication : WPA2-Personal - Encryption : CCMP -``` - -## WLE003.001 Bluetooth scanning (Ubuntu) - -**Test description** - -This test aims to verify that the Bluetooth functionality of card is initialized -correctly and can be used from within the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Enable Bluetooth and make it discoverable in any device nearby DUT. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following commands: - -```bash -bluetoothctl -power on -scan on -# Wait ~5 seconds -devices -``` - -**Expected result** - -The output of the last command should return a list of detectable Bluetooth -devices, for example: - -```bash -Device XX:XX:XX:XX:XX:XX Device 1 -Device XX:XX:XX:XX:XX:XX Wojtek N -Device XX:XX:XX:XX:XX:XX Mi Smart Band 4 -Device XX:XX:XX:XX:XX:XX Galaxy Watch4 Classic (PHLM) -Device XX:XX:XX:XX:XX:XX Galaxy Watch4 Classic (PHLM) -Device XX:XX:XX:XX:XX:XX Device 2 -Device XX:XX:XX:XX:XX:XX [Signage] Samsung QMR Series -Device XX:XX:XX:XX:XX:XX [Signage] Samsung QMR Series -Device XX:XX:XX:XX:XX:XX Device 3 -Device XX:XX:XX:XX:XX:XX Device 4 -Device XX:XX:XX:XX:XX:XX Device 5 -Device XX:XX:XX:XX:XX:XX Device 6 -``` - -## WLE003.002 Bluetooth scanning (Windows) - -**Test description** - -This test aims to verify that the Bluetooth functionality of card is initialized -correctly and can be used from within the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Enable Bluetooth and make it discoverable in any device nearby DUT - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Enter `Notification Center` in the bottom right part of the screen. -1. Using right mouse button, click on the Bluetooth icon. -1. In shown drop-down menu click `Go to settings`. -1. Click the `+` icon described as `Add Bluetooth or other device`. -1. In the `Add a device` menu, click `Bluetooth`. -1. Wait a few moments until DUT scans for nearby Bluetooth devices and note - the result. - -**Expected result** - -Available Bluetooth devices should appear in the `Add a device` window. +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index 47413967a6..cf6a0646aa 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -16,7 +16,7 @@ subjected from before the release of the new binary. | 3. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.201, USB002.201, USB002.002 | | 4. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | | 5. | [Custom boot logo][CLG] | CLG | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | - | 6. | [M.2 WiFi/Bluetooth][WLE] | WLE | WLE001.001, WLE002.001, WLE003.001 | + | 6. | [M.2 WiFi/Bluetooth][WLE] | WLE | WLE001.201, WLE002.201, WLE003.201 | | 7. | [Network boot][PXE] | PXE | PXE007.001 | | 8. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT003.001, LBT003.002, LBT004.001, LBT004.002| | 9. | [Custom boot menu key][CBK] | CBK | All | From 230dc6187fc557e146521161f7ebeefd9f05eb8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:05:53 +0200 Subject: [PATCH 087/133] 319-nvidia-graphics: Remove automated cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../319-nvidia-graphics.md | 141 +----------------- 1 file changed, 7 insertions(+), 134 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/319-nvidia-graphics.md b/docs/unified-test-documentation/dasharo-compatibility/319-nvidia-graphics.md index 5f93252a26..6da792cd3f 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/319-nvidia-graphics.md +++ b/docs/unified-test-documentation/dasharo-compatibility/319-nvidia-graphics.md @@ -14,146 +14,19 @@ 1. Proceed with the [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -## NVI001.001 NVIDIA Graphics detect (Ubuntu) +## NVI001.201 NVIDIA Graphics detect (Ubuntu) -**Test description** - -This test aims to verify that the NVIDIA graphics card is correctly -initialized and can be detected by the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Open a terminal window and execute the following command: - - ```bash - lspci | grep -i nvidia - ``` - -**Expected result** - -1. The command should return the name of the graphics - card, e.g: +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop - ```bash - 2d:00.0 3D controller: NVIDIA Corporation TU117M (rev a1) - ``` +## NVI001.301 NVIDIA Graphics detect (Windows) - or +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop - ```bash - 01:00.1 VGA compatible controller: NVIDIA Corporation AD106M [GeForce RTX 4070 Max-Q / Mobile] (rev a1) - ``` - -## NVI001.002 NVIDIA Graphics detect (Windows) - -**Test description** - -This test aims to verify that the NVIDIA graphics card is correctly -initialized and can be detected by the operating system - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the driver for the graphics card (GTX 1650) from - [the official page](https://www.nvidia.com/). - -**Test steps** - -1. Run PowerShell as administrator and execute following command: - -```powershell -Get-WmiObject -Class Win32_VideoController | Select Description, Name, Status -``` - -**Expected result** - -1. The output should contain the information about installed NVIDIA Graphics - card. - - Example output: - - ```powershell - Description Name Status - ----------- ---- ------ - Intel(R) Iris(R) Xe Graphics Intel(R) Iris(R) Xe Graphics OK - NVIDIA GeForce GTX 1650 NVIDIA GeForce GTX 1650 OK - ``` - -## NVI002.001 NVIDIA Graphics power management (Ubuntu) - -**Test description** - -This test aims to verify that the NVIDIA graphics power management is functional -and the card powers on only while it's used. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the package `mesa-utils` with the following command: - - ```bash - sudo apt install mesa-utils - ``` - -**Test steps** - -1. Open a terminal window. -1. Run the following command to see whether the card is off: - - ```bash - cat /sys/class/drm/card1/device/power/runtime_status - ``` - -1. Launch a test application on the discrete graphics card using the following - command: - - ```bash - __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears - ``` - -1. Run the following command to see whether the card has turned on: - - ```bash - cat /sys/class/drm/card1/device/power/runtime_status - ``` - -1. Close the test application and wait ~20 seconds to let the graphics card - shut itself down. -1. Run the following command to see whether the card has turned off again: - - ```bash - cat /sys/class/drm/card1/device/power/runtime_status - ``` - -**Expected result** +## NVI002.201 NVIDIA Graphics power management (Ubuntu) -1. The output from the first command should be the word `suspended`. -1. The output from the second command should be the word `active`. -1. The output from the third command should be the word `suspended`. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -## NVI002.002 NVIDIA Graphics power management (Windows) +## NVI002.301 NVIDIA Graphics power management (Windows) **Test description** From 09c1ce07c057c2d6844a02eeda3b930fb4af2081 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:14:40 +0200 Subject: [PATCH 088/133] S30-fan-speed: Remove automated suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-compatibility/S30-fan-speed.md | 105 +----------------- 1 file changed, 1 insertion(+), 104 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-compatibility/S30-fan-speed.md b/docs/unified-test-documentation/dasharo-compatibility/S30-fan-speed.md index b4d3fd10b6..3060f2f120 100644 --- a/docs/unified-test-documentation/dasharo-compatibility/S30-fan-speed.md +++ b/docs/unified-test-documentation/dasharo-compatibility/S30-fan-speed.md @@ -1,106 +1,3 @@ # Dasharo Compatibility: Fan speed measure -## Test cases common documentation - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -1. Proceed with the - [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). - -## FAN001.001 CPU fan speed measure - -**Test description** - -This test aims to verify that the CPU fan works correctly. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install `lm-sensors` on the DUT. -1. If the command in the 4th step fails, make sure the `system76_acpi` driver is - available on your system. An appropriate kernel version could be installed - with the command `sudo apt install linux-oem-22.04a`, which version - definitely supports this driver. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. In the terminal window run the following command to get the RPM value of the - CPU fan: - - ```bash - sensors | grep "CPU fan" - ``` - -1. Note the results. - -**Expected result** - -The CPU fan RPM value is displayed and isn't zero. - -Example output: - -```bash -CPU fan: 4347 RPM -``` - -## FAN002.001 GPU fan speed measure - -**Test description** - -The fan has been configured to follow a custom curve. This test aims to verify -that the fan curve is configured correctly and the fan spins up and down -according to the defined values. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install `nvidia-smi` and `mesa-utils` on the DUT. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open the terminal window and execute the following command: - - ```bash - watch -n1 nvidia-smi - ``` - -1. Verify using that the temperature is below 40°C. -1. If the temperature is above 40, enable the fan turbo mode (Fn + 1) until it - cools down. -1. Flip the laptop over and check if the GPU fan (located under the Escape - key) is spinning. -1. In another terminal window, run the following command: - - ```bash - _NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __GL_SYNC_TO_VBLANK=0 glxgears - ``` - -1. Verify that the temperature increases above 40. -1. Flip the laptop over and check if the GPU fan is spinning. - -**Expected result** - -1. The fan should not be spinning while the temperature is below 40 degrees. -1. The fan should be spinning while the temperature is above 40 degrees. +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From b04f4836c80494b4bb5044a7576c3b376d5b50c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:29:50 +0200 Subject: [PATCH 089/133] 400-coreboot-boot-measure: Remove automated cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../400-coreboot-boot-measure.md | 70 ++----------------- 1 file changed, 5 insertions(+), 65 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-performance/400-coreboot-boot-measure.md b/docs/unified-test-documentation/dasharo-performance/400-coreboot-boot-measure.md index d6557de117..d056efdb59 100644 --- a/docs/unified-test-documentation/dasharo-performance/400-coreboot-boot-measure.md +++ b/docs/unified-test-documentation/dasharo-performance/400-coreboot-boot-measure.md @@ -14,7 +14,7 @@ [cloud](https://cloud.3mdeb.com/index.php/s/zTqkJQdNtJDo5Nd) to the DUT. 1. Disable Secure Boot. -## CBMEM001.001 coreboot booting time measure after coldboot (Ubuntu) +## CBMEM001.201 coreboot booting time measure after coldboot (Ubuntu) **Test description** @@ -48,70 +48,10 @@ sudo ./cbmem -T The output of the command should contain the information about duration of all boot stages. -## CBMEM002.001 coreboot booting time measure after warmboot (Ubuntu) +## CBMEM002.201 coreboot booting time measure after warmboot (Ubuntu) -**Test description** - -This test aims to verify whether the DUT boots after warmboot and how long this -process takes. This test case may be re-done several times to to average the -results and specify the platform stability. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Download `cbmem` from the - [cloud](https://cloud.3mdeb.com/index.php/s/zTqkJQdNtJDo5Nd) to the DUT. -1. Disable Secure Boot. - -**Test steps** - -1. Open a terminal window and execute the following command: - -```bash -sudo ./cbmem -T -``` - -**Expected result** - -The output of the command should contain the information about duration of -all boot stages. - -## CBMEM003.001 coreboot booting time measure after system reboot (Ubuntu) - -**Test description** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -This test aims to verify whether the DUT boots after system reboot and how long -this process takes. This test case may be re-done several times to to average -the results and specify the platform stability. +## CBMEM003.201 coreboot booting time measure after system reboot (Ubuntu) -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Download `cbmem` from the - [cloud](https://cloud.3mdeb.com/index.php/s/zTqkJQdNtJDo5Nd) to the DUT. -1. Disable Secure Boot. - -**Test steps** - -1. Open a terminal window and execute the following command: - -```bash -sudo ./cbmem -T -``` - -**Expected result** - -The output of the command should contain the information about duration of -all boot stages. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From ae21d4edfe7729c046893fc4b49b1356e6353a62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:31:06 +0200 Subject: [PATCH 090/133] 401-cpu-temperature: CPT: Remove automated suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../401-cpu-temperature.md | 118 +----------------- .../hardkernel_odroid_h4/test-matrix.md | 2 +- 2 files changed, 2 insertions(+), 118 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-performance/401-cpu-temperature.md b/docs/unified-test-documentation/dasharo-performance/401-cpu-temperature.md index e1119e3aad..fa36fc13f5 100644 --- a/docs/unified-test-documentation/dasharo-performance/401-cpu-temperature.md +++ b/docs/unified-test-documentation/dasharo-performance/401-cpu-temperature.md @@ -1,119 +1,3 @@ # Dasharo Performance: CPU temperature measure -## Common - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -1. Install `lm-sensors` package: `sudo apt install lm-sensors`. - -## CPT001.001 CPU temperature without load (Ubuntu) - -**Test description** - -This test aims to verify whether the temperature of CPU cores after system -booting is not higher than the maximum allowed temperature. - -**Test configuration data** - -1. `FIRMWARE` = coreboot -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - sensors - ``` - -1. Note the result. - -**Expected result** - -Example output: - -```bash - coretemp-isa-0000 - Adapter: ISA adapter - Package id 0: +34.0°C (high = +100.0°C, crit = +100.0°C) - Core 0: +34.0°C (high = +100.0°C, crit = +100.0°C) - Core 1: +34.0°C (high = +100.0°C, crit = +100.0°C) - Core 2: +32.0°C (high = +100.0°C, crit = +100.0°C) - Core 3: +33.0°C (high = +100.0°C, crit = +100.0°C) -``` - -Displayed temperature should be not higher than declared by the DUT -specifications. - -## CPT002.001 CPU temperature during stress test (Ubuntu) - -**Test description** - -This test aims to verify whether the temperature of the CPU cores is not higher -than the maximum allowed temperature during stress test. - -**Test configuration data** - -1. `FIRMWARE` = coreboot -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the `stress-ng` package: `sudo apt install stress-ng`. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command to turn on the stressor: - - ```bash - stress-ng --cpu 0 --tz -t 60m - ``` - - Stress test duration time might be changed by change the value of the - parameter `-t`. - -1. While test runs, open a terminal window and run the following command every - one minute until the test finishes, to check the current temperature. - - ```bash - sensors - ``` - -1. Note the results. - -**Expected result** - -Example output: - -```bash - coretemp-isa-0000 - Adapter: ISA adapter - Package id 0: +54.0°C (high = +100.0°C, crit = +100.0°C) - Core 0: +50.0°C (high = +100.0°C, crit = +100.0°C) - Core 1: +49.0°C (high = +100.0°C, crit = +100.0°C) - Core 2: +53.0°C (high = +100.0°C, crit = +100.0°C) - Core 3: +51.0°C (high = +100.0°C, crit = +100.0°C) -``` - -The displayed temperatures should be not higher than displayed high and -critical. Also the temperatures should be not higher than -those declared by the DUT's producer. +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/variants/hardkernel_odroid_h4/test-matrix.md b/docs/variants/hardkernel_odroid_h4/test-matrix.md index 7b30422842..154a7adf7f 100644 --- a/docs/variants/hardkernel_odroid_h4/test-matrix.md +++ b/docs/variants/hardkernel_odroid_h4/test-matrix.md @@ -117,7 +117,7 @@ Hardkernel devices. | No. | Supported test suite | Test suite ID | Supported test cases | |:---:|:--------------------------------------|:-------------:|:-------------------------------------| | 1. | [Serial Boot Measure][CBMEM] | CBMEM | All | -| 2. | [CPU][CPT] | CPT | CPT001.001,CPT002.001 | +| 2. | [CPU][CPT] | CPT | CPT001.201,CPT002.201 | | 3. | [CPU][CPF] | CPF | CPF001.001,CPF002.001,CPF004.001 | | 4. | [Platform stability][STB] | STB | STB001.001,STB001.002,STB002.001 | | 5. | [Ubuntu booting performance test][BUB] | BUB | All | From 90e4d9e45e2642671db8262f721cb5dcc8c157d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:34:30 +0200 Subject: [PATCH 091/133] 402-cpu-frequency: Remove autamated cases & update IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-performance/402-cpu-frequency.md | 660 +----------------- .../hardkernel_odroid_h4/test-matrix.md | 2 +- 2 files changed, 21 insertions(+), 641 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-performance/402-cpu-frequency.md b/docs/unified-test-documentation/dasharo-performance/402-cpu-frequency.md index 73277756e1..00ce7778cc 100644 --- a/docs/unified-test-documentation/dasharo-performance/402-cpu-frequency.md +++ b/docs/unified-test-documentation/dasharo-performance/402-cpu-frequency.md @@ -11,103 +11,13 @@ 1. Proceed with the [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -## CPF001.001 CPU not stuck on initial frequency (Ubuntu) +## CPF001.201 CPU not stuck on initial frequency (Ubuntu) -**Test description** - -This test aims to verify whether the mounted CPU does not stuck on the -initial frequency after booting into the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - cat /proc/cpuinfo | grep -i mhz - ``` - -1. Note the results. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Expected result** +## CPF001.301 CPU not stuck on initial frequency (Windows) -The output of the command should contain information about the current -frequency of each CPU core. If the current frequency for each core is the -same as initial frequency, the test should be considered as failed. - -Example output with unwanted results: - -```bash -cpu MHz : 2800.000 -cpu MHz : 2800.000 -cpu MHz : 2800.000 -cpu MHz : 2800.000 -cpu MHz : 2800.000 -cpu MHz : 2800.000 -cpu MHz : 2800.000 -cpu MHz : 2800.000 -``` - -## CPF001.002 CPU not stuck on initial frequency (Windows) - -**Test description** - -This test aims to verify whether the mounted CPU does not stuck on the -initial frequency after booting into the OS. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Windows` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a powershell as administrator and run the following command: - -```powershell -while(1){(Get-CimInstance CIM_Processor).MaxClockSpeed*((Get-Counter -Counter "\Processor Information(_Total)\% Processor Performance").CounterSamples.CookedValue)/100} -``` - -1. Note the results. - -**Expected result** - -The output of the command should contain information about the current -frequency of CPU. If the following frequency values are the same, the test -should be considered as failed. - -Example output with unwanted results: - -```bash -2800.00000000000 -2800.00000000000 -2800.00000000000 -2800.00000000000 -2800.00000000000 -2800.00000000000 -2800.00000000000 -2800.00000000000 -``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## CPF001.003 CPU not stuck on initial frequency (Heads+Debian) @@ -158,564 +68,34 @@ cpu MHz : 2800.000 cpu MHz : 2800.000 ``` -## CPF002.001 CPU runs on expected frequency (Ubuntu) - -**Test description** - -This test aims to verify whether the mounted CPU is running on -expected frequency. +## CPF002.201 CPU runs on expected frequency (Ubuntu) -**Test configuration data** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` +## CPF002.301 CPU runs on expected frequency (Windows) -**Test setup** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. +## CPF003.201 CPU runs on expected frequency (Ubuntu, battery) -**Test steps** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: +## CPF003.301 CPU runs on expected frequency (Windows, battery) - ```bash - lscpu | grep -i mhz - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Note the results. -1. Run the following command in the terminal: +## CPF004.201 CPU with load runs on expected frequency (Ubuntu) - ```bash - cat /proc/cpuinfo | grep -i mhz - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Repeat command every one minute, for 60 minutes. -1. Compare the results. +## CPF004.301 CPU with load runs on expected frequency (Windows) -**Expected result** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. The result of running the first command should contain the information about - current, minimum and maximum CPU frequency. +## CPF005.201 CPU with load runs on expected frequency (Ubuntu, battery) - Example output: +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop - ```bash - CPU MHz: 2800.0000 - CPU max MHz: 4700.0000 - CPU min MHz: 400.0000 - ``` +## CPF005.301 CPU with load runs on expected frequency (Windows, battery) -1. The result of running the second command should contain the information - about current frequency of each CPU core. - - Example output: - - ```bash - cpu MHz : 2800.000 - cpu MHz : 2800.000 - cpu MHz : 2800.000 - cpu MHz : 2800.000 - cpu MHz : 2800.000 - cpu MHz : 2800.000 - cpu MHz : 900.542 - cpu MHz : 461.831 - ``` - -1. None of CPU core frequencies should be higher than maximum frequency or - lower than minimum frequency. - -## CPF002.002 CPU runs on expected frequency (Windows) - -**Test description** - -This test aims to verify whether the mounted CPU is running on -expected frequency. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Windows` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a powershell as administrator and run the following command: - -```powershell -(Get-CimInstance CIM_Processor).MaxClockSpeed -``` - -1. Note the result. -1. Run the following command in the powershell: - -```powershell -while(1){(Get-CimInstance CIM_Processor).MaxClockSpeed*((Get-Counter -Counter "\Processor Information(_Total)\% Processor Performance").CounterSamples.CookedValue)/100} -``` - -1. Repeat command every one minute, for 60 minutes. -1. Note the results. - -**Expected result** - -1. The result of running the first command should contain the information about - maximum CPU frequency. - - Example output: - - ```powershell - 2419 - ``` - -1. None of displayed values ​​that follow the second command should be higher than - maximum frequency. - - Example output: - - ```bash - 1023.98759600614 - 1009.23827168367 - 940.831608527132 - 1201.62695181908 - 1140.59449053201 - 1021.87762893503 - 983.647614379085 - 1206.27777992278 - ``` - -## CPF003.001 CPU runs on expected frequency (Ubuntu, battery) - -**Test description** - -This test aims to verify whether the mounted CPU is running on expected -frequency when charger is disconnected. The DUT during test works on battery. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lscpu | grep -i mhz - ``` - -1. Note the results. -1. Run the following command in the terminal: - - ```bash - cat /proc/cpuinfo | grep -i mhz - ``` - -1. Repeat command every one minute, for 60 minutes. -1. Compare the results. - -**Expected result** - -1. The result of running the first command should contain the information about - current, minimum and maximum CPU frequency. - - Example output: - - ```bash - CPU MHz: 1800.000 - CPU max MHz: 3900.0000 - CPU min MHz: 1600.0000 - ``` - -1. The result of running the second command should contain the information - about current frequency of each CPU core. - - Example output: - - ```bash - cpu MHz : 1700.000 - cpu MHz : 3719.954 - cpu MHz : 1600.000 - cpu MHz : 1600.000 - cpu MHz : 3778.321 - cpu MHz : 1800.000 - cpu MHz : 1700.000 - cpu MHz : 3806.530 - ``` - -1. None of CPU core frequencies should be higher than maximum frequency or - lower than minimum frequency. - -## CPF003.002 CPU runs on expected frequency (Windows, battery) - -**Test description** - -This test aims to verify whether the mounted CPU is running on expected -frequency when charger is disconnected. The DUT during test works on battery. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Windows` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a powershell as administrator and run the following command: - -```powershell -(Get-CimInstance CIM_Processor).MaxClockSpeed -``` - -1. Note the result. -1. Run the following command in the powershell: - -```powershell -while(1){(Get-CimInstance CIM_Processor).MaxClockSpeed*((Get-Counter -Counter "\Processor Information(_Total)\% Processor Performance").CounterSamples.CookedValue)/100} -``` - -1. Repeat command couple times -1. Note the results. - -**Expected result** - -1. The result of running the first command should contain the information about - maximum CPU frequency. - - Example output: - - ```powershell - 2419 - ``` - -1. None of displayed values ​​that follow the second command should be higher than - maximum frequency. - - Example output: - - ```bash - 1023.98759600614 - 1009.23827168367 - 940.831608527132 - 1201.62695181908 - 1140.59449053201 - 1021.87762893503 - 983.647614379085 - 1206.27777992278 - ``` - -## CPF004.001 CPU with load runs on expected frequency (Ubuntu) - -**Test description** - -This test aims to verify whether the mounted CPU is running on expected -frequency during the stress test. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lscpu | grep -i mhz - ``` - -1. Note the results. -1. Open a terminal window and run the following command to turn on the stressor: - - ```bash - stress-ng --cpu 0 --tz -t 60m - ``` - - Stress test duration time might be changed by change the value of the - parameter `-t`. - -1. While test runs, open a terminal window and run the following command every - one minute until the test finishes, to check the current frequency. - - ```bash - cat /proc/cpuinfo | grep -i mhz - ``` - -1. Note the results. - -**Expected result** - -1. The result of running the first command should contain the information about - current, minimum and maximum CPU frequency. - - Example output: - - ```bash - CPU MHz: 1800.000 - CPU max MHz: 3900.0000 - CPU min MHz: 1600.0000 - ``` - -1. The result of running the third command should contain the information - about current frequency of each CPU core. - - Example output: - - ```bash - cpu MHz : 1900.000 - cpu MHz : 1600.000 - cpu MHz : 2849.923 - cpu MHz : 1700.000 - cpu MHz : 2200.000 - cpu MHz : 3386.400 - cpu MHz : 1600.000 - cpu MHz : 1600.000 - ``` - -1. None of CPU core frequencies should be higher than maximum frequency or - lower than minimum frequency. - -## CPF004.002 CPU with load runs on expected frequency (Windows) - -**Test description** - -This test aims to verify whether the mounted CPU is running on -expected frequency during the stress test. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Windows` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a powershell as administrator and run the following command: - -```powershell -(Get-CimInstance CIM_Processor).MaxClockSpeed -``` - -1. Note the result. -1. Run the stressor. -1. While test runs, open Powershell and run the following command every - one minute until the test finishes, to check the current frequency: - -```powershell -(Get-CimInstance CIM_Processor).MaxClockSpeed*((Get-Counter -Counter "\Processor Information(_Total)\% Processor Performance").CounterSamples.CookedValue)/100 -``` - -1. Repeat command couple times. -1. Note the results. - -**Expected result** - -1. The result of running the first command should contain the information about - maximum CPU frequency. - - Example output: - - ```powershell - 2419 - ``` - -1. None of displayed values ​​that follow the second command should be higher than - maximum frequency. - - Example output: - - ```bash - 1023.98759600614 - 1009.23827168367 - 940.831608527132 - 1201.62695181908 - 1140.59449053201 - 1021.87762893503 - 983.647614379085 - 1206.27777992278 - ``` - -## CPF005.001 CPU with load runs on expected frequency (Ubuntu, battery) - -**Test description** - -This test aims to verify whether the mounted CPU is running on expected -frequency during the stress test. The DUT during test works on battery. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lscpu | grep -i mhz - ``` - -1. Note the results. -1. Open a terminal window and run the following command to turn on the stressor: - - ```bash - stress-ng --cpu 0 --tz -t 60m - ``` - - Stress test duration time might be changed by change the value of the - parameter `-t`. - -1. While test runs, open a terminal window and run the following command every - one minute until the test finishes, to check the current frequency. - - ```bash - cat /proc/cpuinfo | grep -i mhz - ``` - -1. Note the results. - -**Expected result** - -1. The result of running the first command should contain the information about - current, minimum and maximum CPU frequency. - - Example output: - - ```bash - CPU MHz: 1800.000 - CPU max MHz: 3900.0000 - CPU min MHz: 1600.0000 - ``` - -1. The result of running the third command should contain the information - about current frequency of each CPU core. - - Example output: - - ```bash - cpu MHz : 1900.000 - cpu MHz : 1600.000 - cpu MHz : 2849.923 - cpu MHz : 1700.000 - cpu MHz : 2200.000 - cpu MHz : 3386.400 - cpu MHz : 1600.000 - cpu MHz : 1600.000 - ``` - -1. None of CPU core frequencies should be higher than maximum frequency or - lower than minimum frequency. - -## CPF005.002 CPU with load runs on expected frequency (Windows, battery) - -**Test description** - -This test aims to verify whether the mounted CPU is running on -expected frequency during the stress test. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Windows` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a powershell as administrator and run the following command: - -```powershell -(Get-CimInstance CIM_Processor).MaxClockSpeed -``` - -1. Note the result. -1. Run the stressor. -1. While test runs, open Powershell and run the following command every - one minute until the test finishes, to check the current frequency: - -```powershell -(Get-CimInstance CIM_Processor).MaxClockSpeed*((Get-Counter -Counter "\Processor Information(_Total)\% Processor Performance").CounterSamples.CookedValue)/100 -``` - -1. Repeat command couple times. -1. Note the results. - -**Expected result** - -1. The result of running the first command should contain the information about - maximum CPU frequency. - - Example output: - - ```powershell - 2419 - ``` - -1. None of displayed values that follow the second command should be higher than - maximum frequency. - - Example output: - - ```bash - 1023.98759600614 - 1009.23827168367 - 940.831608527132 - 1201.62695181908 - 1140.59449053201 - 1021.87762893503 - 983.647614379085 - 1206.27777992278 - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/variants/hardkernel_odroid_h4/test-matrix.md b/docs/variants/hardkernel_odroid_h4/test-matrix.md index 154a7adf7f..db2ee197d1 100644 --- a/docs/variants/hardkernel_odroid_h4/test-matrix.md +++ b/docs/variants/hardkernel_odroid_h4/test-matrix.md @@ -118,7 +118,7 @@ Hardkernel devices. |:---:|:--------------------------------------|:-------------:|:-------------------------------------| | 1. | [Serial Boot Measure][CBMEM] | CBMEM | All | | 2. | [CPU][CPT] | CPT | CPT001.201,CPT002.201 | -| 3. | [CPU][CPF] | CPF | CPF001.001,CPF002.001,CPF004.001 | +| 3. | [CPU][CPF] | CPF | CPF001.201,CPF002.201,CPF004.201 | | 4. | [Platform stability][STB] | STB | STB001.001,STB001.002,STB002.001 | | 5. | [Ubuntu booting performance test][BUB] | BUB | All | From fcb1a455e91d93767fc1f3e534269d3aa93b404b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:41:03 +0200 Subject: [PATCH 092/133] 404-platform-stability: Remove automated cases & update IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../404-platform-stability.md | 150 +----------------- docs/variants/protectli_vp66xx/releases.md | 4 +- 2 files changed, 6 insertions(+), 148 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-performance/404-platform-stability.md b/docs/unified-test-documentation/dasharo-performance/404-platform-stability.md index 9f28f3f035..9c59a34606 100644 --- a/docs/unified-test-documentation/dasharo-performance/404-platform-stability.md +++ b/docs/unified-test-documentation/dasharo-performance/404-platform-stability.md @@ -42,152 +42,10 @@ read the same menu is repeated. The platform should remain in the setup menu in every testing iteration. -## STB001.002 Verify if no reboot occurs in the OS (Ubuntu) +## STB001.201 Verify if no reboot occurs in the OS (Ubuntu) -**Test description** - -This test aims to verify that the DUT booted to the Operation System does not -reset. The test is performed in multiple iterations - after a defined time an -attempt to read the output of specific commands confirming the stability of -work is repeated. - -For testing purposes, additional stability criteria are adopted: - -* Whether the platform has not lost connection to the Internet. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - uptime -p - ``` - -1. Note the results. -1. Run the following command in the terminal to check if the platform has - a connection with the Internet: - - ```bash - ip link | grep -E 'enp' - ``` - -1. Note the results. -1. After the specified time has elapsed, repeat the operations described in - steps 4-7. - -**Expected result** - -1. Subsequent readings of the first command output should indicate that - the platform has not undergone a reboot. - - Example output of the command after 30 minutes of working: - - ```bash - up 30 minutes - ``` - -1. Subsequent readings of the second command output should indicate that the - platform has not lost the connection to the Internet. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop - Example output of the command: - - ```bash - 2: enp46s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 - ``` - - If the device is connected to the Internet, a `UP` status should appear - for at least one physical interface. - -## STB001.003 Verify if no reboot occurs in the OS (Windows) - -**Test description** - -This test aims to verify that the DUT booted to the Operation System does not -reset. The test is performed in multiple iterations - after a defined time an -attempt to read the output of specific commands confirming the stability of -work is repeated. - -For testing purposes, additional stability criteria are adopted: - -* Whether the platform has not lost connection to the Internet. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Run PowerShell as administrator and execute the following command: - - ```powershell - (get-date) - (gcim Win32_OperatingSystem).LastBootUpTime - ``` - -1. Note the results. -1. Run the following command in PowerShell to check if the platform has - a connection with the Internet: - - ```powershell - Get-NetAdapter -Name "Ethernet*" - ``` - -1. Note the results. -1. After the specified time has elapsed, repeat the operations described in - steps 4-7. - -**Expected result** +## STB001.301 Verify if no reboot occurs in the OS (Windows) -1. Subsequent readings of the first command output should indicate that - the platform has not undergone a reboot. - - Example output of the command after 17 minutes of working: - - ```powershell - Days : 0 - Hours : 0 - Minutes : 17 - Seconds : 8 - Milliseconds : 784 - Ticks : 10287845330 - TotalDays : 0.0119072283912037 - TotalHours : 0.285773481388889 - TotalMinutes : 17.1464088833333 - TotalSeconds : 1028.784533 - TotalMilliseconds : 1028784.533 - ``` - -1. Subsequent readings of the second command output should indicate that the - platform has not lost the connection to the Internet. - - Example output of the command: - - ```powershell - Name InterfaceDescription ifIndex Status MacAddress LinkSpeed - ---- -------------------- ------- ------ ---------- --------- - Ethernet Realtek PCIe GbE Family Controller 15 Up D4-93-90-0C-23-A1 100 Mbps - ``` - - If the device is connected to the Internet, a `UP` status should appear - for at least one physical interface. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/variants/protectli_vp66xx/releases.md b/docs/variants/protectli_vp66xx/releases.md index 2263b8235c..3a05079e25 100644 --- a/docs/variants/protectli_vp66xx/releases.md +++ b/docs/variants/protectli_vp66xx/releases.md @@ -35,7 +35,7 @@ and [VP6670](https://github.com/Dasharo/osfv-results/blob/main/boards/Protectli/ ### Known issues - [DisplayPort has trouble working with certain monitors](https://github.com/Dasharo/dasharo-issues/issues/1015) -- [STB002.001 encounters unlisted errors](https://github.com/Dasharo/dasharo-issues/issues/1013) +- [STB002.201 encounters unlisted errors](https://github.com/Dasharo/dasharo-issues/issues/1013) ### Binaries @@ -104,7 +104,7 @@ Test results for this release can be found ### Known issues - [DisplayPort has trouble working with certain monitors](https://github.com/Dasharo/dasharo-issues/issues/1015) -- [STB002.001 encounters unlisted errors](https://github.com/Dasharo/dasharo-issues/issues/1013) +- [STB002.201 encounters unlisted errors](https://github.com/Dasharo/dasharo-issues/issues/1013) ### Binaries From 9aa728a969ea3e4cc04d58cc9d3ebcfb8dd9935c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 09:58:09 +0200 Subject: [PATCH 093/133] 20F-me-neuter: Remove automated cases, inconsistent test matrices left MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit According to the deprecated Test & Feature Matrix Novacustom platforms don't support the PCIe test, the ID of which matches the ID in OSFV. Novacustom matrices were updated. MSI platforms don't support disable HAP according to the matrix, which matches the ID in OSFV, MSI matrices updated. Protectli platforms support only Check ME Version test, but the ID listed in the documentation test matrices doesn't match neither the documentation nor the OSFV. The matrices are updated according to the ID in the test & feature matrix Signed-off-by: Filip Gołaś Signed-off-by: Filip Gołaś --- .../dasharo-security/20F-me-neuter.md | 208 +----------------- docs/unified/protectli/test-matrix.md | 8 +- docs/variants/msi_z690/test-matrix.md | 2 +- docs/variants/msi_z790/test-matrix.md | 2 +- .../novacustom_ns5x_adl/test-matrix.md | 2 +- .../novacustom_ns5x_tgl/test-matrix.md | 2 +- .../novacustom_nv4x_adl/test-matrix.md | 2 +- .../novacustom_nv4x_tgl/test-matrix.md | 4 +- 8 files changed, 21 insertions(+), 209 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-security/20F-me-neuter.md b/docs/unified-test-documentation/dasharo-security/20F-me-neuter.md index f9b2409cca..3911e13f18 100644 --- a/docs/unified-test-documentation/dasharo-security/20F-me-neuter.md +++ b/docs/unified-test-documentation/dasharo-security/20F-me-neuter.md @@ -13,54 +13,7 @@ 1. Proceed with the [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -## MNE001.001 Check Intel ME version (Ubuntu) - -**Test description** - -This test aims to verify that the `Intel ME version` might be read on the -Operating System level. The read version should be the same as in the release -notes. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - cat /sys/class/mei/mei0/fw_ver - ``` - -1. Note the results. - -**Expected result** - -The output of the command should contain information about the Management -Engine Interface firmware version. - -Example output: - -```bash -0:16.0.15.1735 -0:16.0.15.1735 -0:16.0.15.1723 -``` - -Value from the first line, considering the numbers after the colon, should -correspond to the value from the release notes - -## MNE002.001 Intel ME mode option is available and has the correct default state +## MNE001.001 Intel ME mode option is available and has the correct default state **Test description** @@ -89,160 +42,15 @@ platform with the Dasharo firmware is correct. The `Intel ME mode` field should inform that the current state is `Enabled`. -## MNE003.001 Intel ME mode option Enabled works correctly (Ubuntu) - -**Test description** - -This test aims to verify that `Intel ME mode` option in state Enabled works -correctly. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu +## MNE002.201 Intel ME mode option Enabled works correctly (Ubuntu) -**Test setup** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. +## MNE004.001 Intel ME mode option Disable (HAP) works correctly (Ubuntu) -**Test steps** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Power on the DUT. -1. While the DUT is booting, hold the `BIOS_SETUP_KEY` to enter the UEFI Setup - Menu. -1. Enter the `Dasharo System Features` menu using the arrow keys and Enter. -1. Enter the `Intel Management Engine Options` submenu. -1. Verify that the `Intel ME mode` option is state `Enabled` - if not, using the - arrow keys and `Enter`, choose option `Enabled`. -1. Press `F10` to save the changes. -1. If necessary - press `Y` to confirm saving the changes. -1. Go back to the main menu using the `ESC` key. -1. Select the `Reset` option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep 00:16.0 - ``` - -1. Note the results. - -**Expected result** - -The output of the command should contain the information about Management Engine -Interface. - -Example output: - -```bash -Intel Corporation Comet Lake Management Engine Interface -``` - -## MNE004.001 Intel ME mode option Disable (Soft) works correctly (Ubuntu) - -**Test description** - -This test aims to verify that `Intel ME mode` option in state Disable (Soft) -works correctly. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the `BIOS_SETUP_KEY` to enter the UEFI Setup - Menu. -1. Enter the `Dasharo System Features` menu using the arrow keys and Enter. -1. Enter the `Intel Management Engine Options` submenu. -1. Verify that the `Intel ME mode` option is state `Disable (Soft)` - if not, - using the arrow keys and `Enter`, choose option `Disable (Soft)`. -1. Press `F10` to save the changes. -1. If necessary - press `Y` to confirm saving the changes. -1. Go back to the main menu using the `ESC` key. -1. Select the `Reset` option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep 00:16.0 - ``` - -1. Note the results. - -**Expected result** - -The output of the command shouldn't contain the information about Management -Engine Interface. - -Example of unwanted output: - -```bash -Intel Corporation Comet Lake Management Engine Interface -``` - -## MNE005.001 Intel ME mode option Disable (HAP) works correctly (Ubuntu) - -**Test description** - -This test aims to verify that `Intel ME mode` option in state Disable (HAP) -works correctly. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the `BIOS_SETUP_KEY` to enter the UEFI Setup - Menu. -1. Enter the `Dasharo System Features` menu using the arrow keys and Enter. -1. Enter the `Intel Management Engine Options` submenu. -1. Verify that the `Intel ME mode` option is state `Disable (HAP)` - if not, - using the arrow keys and `Enter`, choose option `Disable (HAP)`. -1. Press `F10` to save the changes. -1. If necessary - press `Y` to confirm saving the changes. -1. Go back to the main menu using the `ESC` key. -1. Select the `Reset` option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep 00:16.0 - ``` - -1. Note the results. - -**Expected result** - -The output of the command shouldn't contain the information about Management -Engine Interface. - -Example of unwanted output: - -```bash -Intel Corporation Comet Lake Management Engine Interface -``` - -## MNE006.001 PCI Express 5.0 port is functional when ME disabled (Ubuntu) +## MNE005.201 PCI Express 5.0 port is functional when ME disabled (Ubuntu) **Test description** @@ -373,3 +181,7 @@ the following string: ``` If there are no errors printed nearby concerning the HSPHY, test pass. + +## MNE006.201 Check Intel ME version (Ubuntu) + +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index cf6a0646aa..cb51748ab7 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -13,10 +13,10 @@ subjected from before the release of the new binary. |:-----|:--------------------------------------------------|:-------------:|:-------------------------------------| | 1. | [Memory HCL][HCL] | HCL | All | | 2. | [Display ports and LCD support][DSP] | DSP | DSP002.201, DSP002.003 | - | 3. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.201, USB002.201, USB002.002 | + | 3. | [USB HID and MSC Support][USB] | USB | USB001.001, USB001.002, USB002.001, USB002.002 | | 4. | [SMBIOS][DMI] | DMI | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | | 5. | [Custom boot logo][CLG] | CLG | DMI002.201, DMI003.201, DMI004.201, DMI005.001, DMI006.001 | - | 6. | [M.2 WiFi/Bluetooth][WLE] | WLE | WLE001.201, WLE002.201, WLE003.201 | + | 6. | [M.2 WiFi/Bluetooth][WLE] | WLE | WLE001.001, WLE002.001, WLE003.001 | | 7. | [Network boot][PXE] | PXE | PXE007.001 | | 8. | [Debian Stable and Ubuntu LTS support][LBT] | LBT | LBT003.001, LBT003.002, LBT004.001, LBT004.002| | 9. | [Custom boot menu key][CBK] | CBK | All | @@ -196,7 +196,7 @@ subjected from before the release of the new binary. | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | All | - | 5. | [ME disable/neuter support][MNE] | MNE | MNE004.001 | + | 5. | [ME disable/neuter support][MNE] | MNE | MNE006.201 | | 6. | [BIOS lock support][BLS] | BLS | All | | 7. | [USB stack enable/disable][USS] | USS | All | | 8. | [SMM BIOS write protection][SMM] | SMM | All | @@ -309,7 +309,7 @@ subjected from before the release of the new binary. | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | All | - | 5. | [ME disable/neuter support][MNE] | MNE | MNE004.001 | + | 5. | [ME disable/neuter support][MNE] | MNE | MNE006.201 | | 6. | [BIOS lock support][BLS] | BLS | All | | 7. | [USB stack enable/disable][USS] | USS | All | | 8. | [SMM BIOS write protection][SMM] | SMM | All | diff --git a/docs/variants/msi_z690/test-matrix.md b/docs/variants/msi_z690/test-matrix.md index 3723d3dcab..328feaf3b4 100644 --- a/docs/variants/msi_z690/test-matrix.md +++ b/docs/variants/msi_z690/test-matrix.md @@ -66,7 +66,7 @@ tested platforms: `MSI PRO Z690-A WiFi DDR4` and `MSI PRO Z690-A DDR5`. | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001, VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | All | -| 5. | [ME disable/neuter support][MNE] | MNE | without MNE005.001 | +| 5. | [ME disable/neuter support][MNE] | MNE | without MNE004.201 | | 6. | [BIOS lock support][BLS] | BLS | All | | 7. | [SMM BIOS write protection][SMM] | SMM | All | | 8. | [Early boot DMA protection][EDP] | EDP | All | diff --git a/docs/variants/msi_z790/test-matrix.md b/docs/variants/msi_z790/test-matrix.md index 17ff3f75fd..8f0a4a1d28 100644 --- a/docs/variants/msi_z790/test-matrix.md +++ b/docs/variants/msi_z790/test-matrix.md @@ -64,7 +64,7 @@ Note that the test scope is used during Dasharo Certification Procedure for for | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001, VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | All | -| 5. | [ME disable/neuter support][MNE] | MNE | without MNE005.001 | +| 5. | [ME disable/neuter support][MNE] | MNE | without MNE004.201 | | 6. | [BIOS lock support][BLS] | BLS | All | | 7. | [SMM BIOS write protection][SMM] | SMM | All | | 8. | [Early boot DMA protection][EDP] | EDP | All | diff --git a/docs/variants/novacustom_ns5x_adl/test-matrix.md b/docs/variants/novacustom_ns5x_adl/test-matrix.md index 3304141c7f..d0ea6a5a51 100644 --- a/docs/variants/novacustom_ns5x_adl/test-matrix.md +++ b/docs/variants/novacustom_ns5x_adl/test-matrix.md @@ -86,7 +86,7 @@ subjected before the release of the new binary. | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | Without SBO006.001, SBO007.001 and SBO008.001 | -| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE006.001 | +| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE005.201 | | 6. | [USB stack][USS] | USS | All | | 7. | [Network boot availability][PXE] | PXE | All | | 8. | [BIOS lock support][BLS] | BLS | All | diff --git a/docs/variants/novacustom_ns5x_tgl/test-matrix.md b/docs/variants/novacustom_ns5x_tgl/test-matrix.md index b072ffd85f..0099eb6a83 100644 --- a/docs/variants/novacustom_ns5x_tgl/test-matrix.md +++ b/docs/variants/novacustom_ns5x_tgl/test-matrix.md @@ -86,7 +86,7 @@ subjected before the release of the new binary. | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | Without SBO006.001, SBO007.001 and SBO008.001 | -| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE006.001 | +| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE005.201 | | 6. | [USB stack][USS] | USS | All | | 7. | [Network boot availability][PXE] | PXE | All | | 8. | [BIOS lock support][BLS] | BLS | All | diff --git a/docs/variants/novacustom_nv4x_adl/test-matrix.md b/docs/variants/novacustom_nv4x_adl/test-matrix.md index 701f20dc22..97016d437d 100644 --- a/docs/variants/novacustom_nv4x_adl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_adl/test-matrix.md @@ -86,7 +86,7 @@ subjected from before the release of the new binary. | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | Without SBO006.001, SBO007.001 and SBO008.001 | -| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE006.001 | +| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE005.201 | | 6. | [USB stack][USS] | USS | All | | 7. | [Network boot availability][PXE] | PXE | All | | 8. | [BIOS lock support][BLS] | BLS | All | diff --git a/docs/variants/novacustom_nv4x_tgl/test-matrix.md b/docs/variants/novacustom_nv4x_tgl/test-matrix.md index be58c91969..01fe9248c6 100644 --- a/docs/variants/novacustom_nv4x_tgl/test-matrix.md +++ b/docs/variants/novacustom_nv4x_tgl/test-matrix.md @@ -88,7 +88,7 @@ subjected from before the release of the new binary. | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | Without SBO006.001, SBO007.001 and SBO008.001 | -| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE006.001 | +| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE005.201 | | 6. | [USB stack][USS] | USS | All | | 7. | [Network boot availability][PXE] | PXE | All | | 8. | [BIOS lock support][BLS] | BLS | All | @@ -227,7 +227,7 @@ subjected from before the release of the new binary. | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | Without SBO006.001, SBO007.001 and SBO008.001 | -| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE006.001 | +| 5. | [ME disable/neuter support][MNE] | MNE | Without MNE005.201 | | 6. | [USB stack][USS] | USS | All | | 7. | [Network boot availability][PXE] | PXE | All | | 8. | [BIOS lock support][BLS] | BLS | All | From f0b8bd729b19b2b5fe89fee230bd5fa16e03a8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 10:21:28 +0200 Subject: [PATCH 094/133] 20J-bios-lock-support: Remove automated suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-security/20J-bios-lock-support.md | 128 +----------------- 1 file changed, 1 insertion(+), 127 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-security/20J-bios-lock-support.md b/docs/unified-test-documentation/dasharo-security/20J-bios-lock-support.md index 41a0c22dda..23f3e67c32 100644 --- a/docs/unified-test-documentation/dasharo-security/20J-bios-lock-support.md +++ b/docs/unified-test-documentation/dasharo-security/20J-bios-lock-support.md @@ -1,129 +1,3 @@ # Dasharo Security: BIOS lock support -## BLS001.001 BIOS lock support (Ubuntu) - -**Test description** - -BIOS lock is a method to prevent a specific region of the firmware from being -flashed. This test aims to verify that, after turning on the mechanism, -the BIOS region should be correctly recognized during attempt to overwrite it -by using flashrom tool. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -1. Proceed with the - [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -1. Disable Secure Boot. - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the `BIOS_SETUP_KEY` to enter the UEFI Setup - Menu. -1. Enter the `Dasharo System Features` menu using the arrow keys and Enter. -1. Enter the `Dasharo Security Options` submenu. -1. Verify that the `Lock the BIOS boot medium` option is chosen - if not, - press `Space` and then `F10` to save the changes. -1. If necessary - press `Y` to confirm saving the changes. -1. Go back to the main menu using the `ESC` key. -1. Select the `Reset` option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Execute the following command in the terminal to check platform flashing - conditions: - - ```bash - flashrom -p internal - ``` - -1. Note the result. - -**Expected result** - -The output of the flashing command should contain the information, that the -BIOS region is read-only. - -Example output: - -```bash -SPI Configuration is locked down. -PR0: Warning: 0x00c00000-0x00ffffff is read-only. -At least some flash regions are write protected. For write operations, -you should use a flash layout and include only writable regions. See -manpage for more details. -``` - -## BLS002.001 BIOS lock support deactivation (Ubuntu) - -**Test description** - -BIOS lock is a method to prevent a specific region of the firmware from being -flashed. This test aims to verify that, after turning off the mechanism, -the BIOS region overwriting operation is available again. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -1. Proceed with the - [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -1. Disable Secure Boot. -1. Obtain any other binary (e.g. vendor firmware or older Dasharo firmware). - -**Test steps** - -1. Power on the DUT. -1. While the DUT is booting, hold the `BIOS_SETUP_KEY` to enter the UEFI Setup - Menu. -1. Enter the `Dasharo System Features` menu using the arrow keys and Enter. -1. Enter the `Dasharo Security Options` submenu. -1. Verify that the `Lock the BIOS boot medium` option is not chosen - if so, - press `Space` and then `F10` to save the changes. -1. If necessary - press `Y` to confirm saving the changes. -1. Go back to the main menu using the `ESC` key. -1. Select the `Reset` option to apply the settings and reboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Execute the following command in the terminal to check platform flashing - conditions: - - ```bash - flashrom -p internal - ``` - -1. Note the result. - -**Expected result** - -The output of the flashing command should not contain the information, that -the BIOS region is read-only. - -Example output with unwanted results: - -```bash -SPI Configuration is locked down. -PR0: Warning: 0x00c00000-0x00ffffff is read-only. -At least some flash regions are write protected. For write operations, -you should use a flash layout and include only writable regions. See -manpage for more details. -``` +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From 12a65b20bdfc660386568607e2d39084f72e525a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 10:43:11 +0200 Subject: [PATCH 095/133] 200-tpm-support: TPM: Remove auto cases & Update IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The TPM005 case had to be expanded into four cases as it used the second ID segment incorrectly Signed-off-by: Filip Gołaś --- .../dasharo-security/200-tpm-support.md | 521 +----------------- docs/unified/protectli/test-matrix.md | 4 +- docs/variants/asus_kgpe_d16/test-matrix.md | 2 +- docs/variants/dell_optiplex/test-matrix.md | 2 +- .../hardkernel_odroid_h4/test-matrix.md | 2 +- 5 files changed, 25 insertions(+), 506 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-security/200-tpm-support.md b/docs/unified-test-documentation/dasharo-security/200-tpm-support.md index 72e644ceb6..12610b1eec 100644 --- a/docs/unified-test-documentation/dasharo-security/200-tpm-support.md +++ b/docs/unified-test-documentation/dasharo-security/200-tpm-support.md @@ -15,286 +15,15 @@ ## TPM001.001 TPM Support (TPM events) -**Test description** - -This test aims to verify that the TPM is initialized correctly and the TPM event -logs can be accessed from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test setup** +## TPM001.201 TPM Support (Ubuntu) -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Download `cbmem` from the - [cloud](https://cloud.3mdeb.com/index.php/s/zTqkJQdNtJDo5Nd) to the DUT. -1. Make sure the package is executable: - `sudo chmod +x /usr/local/bin/cbmem`. -1. Disable Secure Boot. +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Run the following command in the shell: - - ```bash - sudo cbmem -L - ``` - -**Expected result** - -The command should return information about the TPM log entries. - -Example output: - -```bash -TPM2 log: - Specification: 2.00 - Platform class: PC Client - No vendor information provided -TPM2 log entry 1: - PCR: 2 - Event type: Action - Digests: - SHA1: f78a530fb5a70afcffdc86a98529abd24a90bac9 - Event data: FMAP: FMAP -TPM2 log entry 2: - PCR: 2 - Event type: Action - Digests: - SHA1: 369155e6eab3b0a874140e591a4c0e992268b4b9 - Event data: FMAP: BOOTBLOCK -TPM2 log entry 3: - PCR: 2 - Event type: Action - Digests: - SHA1: 5e785c080264aa6e169f70c80ac40b556066292b - Event data: FMAP: COREBOOT CBFS: fallback/romstage -TPM2 log entry 4: - PCR: 2 - Event type: Action - Digests: - SHA1: ba2a5af955811fbac58a5198545539596eb38c3e - Event data: FMAP: COREBOOT CBFS: fallback/ramstage -TPM2 log entry 5: - PCR: 2 - Event type: Action - Digests: - SHA1: ba35d4ce29d7b633b5644e2a3206c6069cf7f24d - Event data: FMAP: COREBOOT CBFS: fallback/payload -TPM2 log entry 6: - PCR: 2 - Event type: Action - Digests: - SHA1: 47b49026133377e05193f8440c9a7cad239e883c - Event data: FMAP: COREBOOT CBFS: 1-cpu.dtb -TPM2 log entry 7: - PCR: 3 - Event type: Action - Digests: - SHA256: 6e7b06693452d997ac534e823b1ea79e5bb8ed19ba8a7af878abf10199c3d515 - SHA1: 6e7b06693452d997ac534e823b1ea79e5bb8ed19 - Event data: VERSION -TPM2 log entry 8: - PCR: 2 - Event type: Action - Digests: - SHA256: de73053377e1ae5ba5d2b637a4f5bfaeb410137722f11ef135e7a1be524e3092 - SHA1: de73053377e1ae5ba5d2b637a4f5bfaeb4101377 - Event data: IMA_CATALOG -TPM2 log entry 9: - PCR: 4 - Event type: Action - Digests: - SHA256: ba427f9349b1f9e589f98909e26086b0cfd5ced78a7fbcb140a70a506c38a8e5 - SHA1: ba427f9349b1f9e589f98909e26086b0cfd5ced7 - Event data: BOOTKERNEL -(...) -``` - -## TPM001.002 TPM Support (Ubuntu) - -**Test description** - -This test aims to verify that the TPM is initialized correctly and the PCRs can -be accessed from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the `tpm2-tools` package: `sudo apt install tpm2-tools`. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Check the version of installed tpm2-tools - execute the following command - in the terminal: - - ```bash - dpkg --list tpm2-tools - ``` - -1. If your device is equipped with TPM2.0 and the version of `tpm2-tools` - is 4.0 or higher - execute the following command in the terminal: - - ```bash - tpm2_pcrread - ``` - -1. If your device is equipped with TPM2.0 and the version of `tpm2-tools` - is lower than 4.0 - execute the following command in the terminal: - - ```bash - tpm2_pcrlist - ``` +## TPM001.301 TPM Support (Windows) -1. If your device is equipped with TPM1.2 - execute the following command in the - terminal: - - ```bash - cat /sys/class/tpm/tpm0/pcrs - ``` - -**Expected result** - -The command should return a list of PCRs and their contents. - -Output example for TPM2.0: - -```text -sha1 : - 0 : 3a3f780f11a4b49969fcaa80cd6e3957c33b2275 - 1 : 8a074fdf65a11e5dbf02d25e7f26b00c26c98b41 - 2 : c36c2509d636c9cfa075d6d0a03b7a37bec14ee9 - 3 : 3a3f780f11a4b49969fcaa80cd6e3957c33b2275 - 4 : 2d247bb671ec17ded623ca45967df5482517291b - 5 : 49d543eb1d1df3439d9fca695ee47b8cdf4b9e2f - 6 : 3a3f780f11a4b49969fcaa80cd6e3957c33b2275 - 7 : 3a3f780f11a4b49969fcaa80cd6e3957c33b2275 - 8 : 0000000000000000000000000000000000000000 - 9 : 0000000000000000000000000000000000000000 - 10 : 0000000000000000000000000000000000000000 - 11 : 0000000000000000000000000000000000000000 - 12 : 0000000000000000000000000000000000000000 - 13 : 0000000000000000000000000000000000000000 - 14 : 0000000000000000000000000000000000000000 - 15 : 0000000000000000000000000000000000000000 - 16 : 0000000000000000000000000000000000000000 - 17 : ffffffffffffffffffffffffffffffffffffffff - 18 : ffffffffffffffffffffffffffffffffffffffff - 19 : ffffffffffffffffffffffffffffffffffffffff - 20 : ffffffffffffffffffffffffffffffffffffffff - 21 : ffffffffffffffffffffffffffffffffffffffff - 22 : ffffffffffffffffffffffffffffffffffffffff - 23 : 0000000000000000000000000000000000000000 -sha256 : - 0 : d27cc12614b5f4ff85ed109495e320fb1e5495eb28d507e952d51091e7ae2a72 - 1 : b29a64bd6895966b777eb803f45e6bbffade81cc1b996a34f7cbd26f1d04028b - 2 : 3122422e43b9fbfc0cb70eb467b55e99ec61462370e6b15c515484f821e1d4d9 - 3 : 909e4261938378c0556a4c335c38718d1c313bd151fdf222df674aabb7aeee97 - 4 : 984763b42633ee11e5167e2f67c2e6879bd6efac683f1df1ef16d7ce96d4b49b - 5 : dab92c45eeb765e29784f8cc33f92d0a39afed173f2b07e0e328586c3c3b19ed - 6 : d27cc12614b5f4ff85ed109495e320fb1e5495eb28d507e952d51091e7ae2a72 - 7 : d27cc12614b5f4ff85ed109495e320fb1e5495eb28d507e952d51091e7ae2a72 - 8 : 0000000000000000000000000000000000000000000000000000000000000000 - 9 : 0000000000000000000000000000000000000000000000000000000000000000 - 10 : 0000000000000000000000000000000000000000000000000000000000000000 - 11 : 0000000000000000000000000000000000000000000000000000000000000000 - 12 : 0000000000000000000000000000000000000000000000000000000000000000 - 13 : 0000000000000000000000000000000000000000000000000000000000000000 - 14 : 0000000000000000000000000000000000000000000000000000000000000000 - 15 : 0000000000000000000000000000000000000000000000000000000000000000 - 16 : 0000000000000000000000000000000000000000000000000000000000000000 - 17 : ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 18 : ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 19 : ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 20 : ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 21 : ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 22 : ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 23 : 0000000000000000000000000000000000000000000000000000000000000000 -``` - -Output example for TPM1.2: - -```text -PCR-00: B3 F3 60 E1 D5 1F 82 D4 62 E6 B9 69 92 2F 65 F4 9F 1A 5F 8E -PCR-01: 21 9F 1F 4A C1 AD AD 4D F1 8B 9F AB 98 23 68 B1 73 A6 32 87 -PCR-02: 40 CF E3 DC A7 FF 67 FB AA BB 20 85 A4 39 43 D8 54 A7 AB 98 -PCR-03: E3 E7 E6 89 CA FB F5 75 38 95 D0 CD 83 96 F6 0C 38 04 DC D5 -PCR-04: 01 7A 3D E8 2F 4A 1B 77 FC 33 A9 03 FE F6 AD 27 EE 92 BE 04 -PCR-05: 93 6A 12 98 07 73 85 9D 91 27 61 82 E7 11 C5 1D 08 98 C4 28 -PCR-06: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 -PCR-07: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 -PCR-08: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -PCR-09: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -PCR-10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -PCR-11: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -PCR-12: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -PCR-13: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -PCR-14: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -PCR-15: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -PCR-16: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -PCR-17: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -PCR-18: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -PCR-19: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -PCR-20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -PCR-21: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -PCR-22: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -PCR-23: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -``` - -## TPM001.003 TPM Support (Windows) - -**Test description** - -This test aims to verify that the TPM is initialized correctly and the PCRs can -be accessed from the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a PowerShell as administrator and run the following command: - - ```PowerShell - get-tpm - ``` - -**Expected result** - -The command should return information about the TPM state: if the TPM is -present, ready and enabled: - -```powershell -TpmPresent : True -TpmReady : True -TpmEnabled : True - -``` +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## TPM001.004 TPM Support (BIOS) @@ -323,235 +52,25 @@ This test aims to verify that the TPM is initialized correctly. `Current TPM Device` should contain `TPM 2.0` or `TPM 1.2`. -## TPM002.001 Verify TPM version (Ubuntu) - -**Test description** - -This test aims to verify that the TPM version is correctly recognized by the -operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** +## TPM002.201 Verify TPM version (Ubuntu) -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test steps** +## TPM002.301 Verify TPM version (Windows) -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Check the version of used TPM - execute the following command in the - terminal: - - ```bash - cat /sys/class/tpm/tpm0/tpm_version_major - ``` - -**Expected result** - -The command should return the TPM major version. - -Example output: - -```bash -2 -``` - -## TPM002.002 Verify TPM version (Windows) - -**Test description** - -This test aims to verify that the TPM version is correctly recognized by the -operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a PowerShell as administrator and run the following command: - - ```PowerShell - wmic /namespace:\\root\cimv2\security\microsofttpm path win32_tpm get * /format:textvaluelist.xsl - ``` - -**Expected result** - -The command should return information about the TPM version. - -Example output: - -```text -SpecVersion=2.0 -``` +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## TPM003.001 Check TPM Physical Presence Interface (firmware) -**Test description** - -This test aims to verify that the TPM Physical Presence Interface is supported -by the firmware. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Download `cbmem` from the - [cloud](https://cloud.3mdeb.com/index.php/s/zTqkJQdNtJDo5Nd) to the DUT. -1. Make sure the package is executable: - `sudo chmod +x /usr/local/bin/cbmem`. -1. Disable Secure Boot. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open the terminal and run the following command and note results: - - ```bash - sudo cbmem -1 |grep PPI - ``` - -**Expected result** - -The `cbmem.log` should contain the following lines (the hex numbers may be -different per platform): - -```txt -[DEBUG] PPI: Pending OS request: 0x0 (0x0) -[DEBUG] PPI: OS response: CMD 0x39073907 = 0x0 -[DEBUG] TPM PPI 8. 0x76ffe620 0x0000015a -``` - -If the above lines are present, the firmware supports TPM PPI. - -## TPM003.002 Check TPM Physical Presence Interface (Ubuntu) - -**Test description** - -This test aims to verify that the TPM Physical Presence Interface is correctly -recognized by the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu -1. Platform with TPM 2.0 module present. - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open the terminal and run the following command to check the version of TPM - PPI in sysfs: - - ```bash - cat /sys/class/tpm/tpm0/ppi/version - ``` - -**Expected result** - -The command should return information about the TPM PPI version (only 1.3 is -valid). If PPI is not available the file will not be found and test fails. - -Example output: - -```bash -cat /sys/class/tpm/tpm0/ppi/version -1.3 -``` - -## TPM003.003 Check TPM Physical Presence Interface (Windows) - -**Test description** - -This test aims to verify that the TPM Physical Presence Interface is correctly -recognized by the operating system. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Windows -1. Platform with TPM 2.0 module present. +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test setup** +## TPM003.201 Check TPM Physical Presence Interface (Ubuntu) -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a PowerShell as administrator and run the following command: - - ```PowerShell - tpmtool getdeviceinformation - ``` - -**Expected result** +## TPM003.301 Check TPM Physical Presence Interface (Windows) -The command should return information about the TPM PPI version (only 1.3 is -valid). If PPI is not available on the list, test fails. - -Example output: - -```PowerShell -tpmtool getdeviceinformation - --TPM Present: True --TPM Version: 2.0 --TPM Manufacturer ID: INTC --TPM Manufacturer Full Name: Intel --TPM Manufacturer Version: 600.18.0.0 --PPI Version: 1.3 --Is Initialized: True --Ready For Storage: True --Ready For Attestation: True --Is Capable For Attestation: True --Clear Needed To Recover: False --Clear Possible: True --TPM Has Vulnerable Firmware: False --Maintenance Task Complete: True --Bitlocker PCR7 Binding State: Binding Not Possible --TPM Spec Version: 1.38 --TPM Errata Date: Wednesday, December 18, 2019 --PC Client Version: 1.04 --Lockout Information: - -Is Locked Out: False - -Lockout Counter: 0 - -Max Auth Fail: 32 - -Lockout Interval: 7200s - -Lockout Recovery: 86400s -``` +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop ## TPM004.001 Check TPM Clear procedure @@ -615,7 +134,7 @@ with running TPM Clear procedure to ensure correct state of ownership. 1. The output in step 11 should be equal 1. 1. The output in step 21 should be 0. -## TPM005.01 Check TPM Hash Algorithm Support SHA1 (Firmware) +## TPM005.001 Check TPM Hash Algorithm Support SHA1 (Firmware) **Test description** @@ -642,7 +161,7 @@ This test aims to verify that the TPM supports needed hash algorithm (SHA1). The entry should contain `SHA1`. -## TPM005.02 Check TPM Hash Algorithm Support SHA256 (Firmware) +## TPM006.001 Check TPM Hash Algorithm Support SHA256 (Firmware) **Test description** @@ -669,7 +188,7 @@ This test aims to verify that the TPM supports needed hash algorithm (SHA256). The entry should contain `SHA256`. -## TPM005.03 Check TPM Hash Algorithm Support SHA384 (Firmware) +## TPM007.001 Check TPM Hash Algorithm Support SHA384 (Firmware) **Test description** @@ -696,7 +215,7 @@ This test aims to verify that the TPM supports needed hash algorithm (SHA384). The entry should contain `SHA384`. -## TPM005.04 Check TPM Hash Algorithm Support SHA512 (Firmware) +## TPM008.001 Check TPM Hash Algorithm Support SHA512 (Firmware) **Test description** @@ -723,7 +242,7 @@ This test aims to verify that the TPM supports needed hash algorithm (SHA512). The entry should contain `SHA512`. -## TPM006.001 Encrypt and Decrypt non-rootfs partition (Ubuntu) +## TPM009.201 Encrypt and Decrypt non-rootfs partition (Ubuntu) **Test description** @@ -790,7 +309,7 @@ Test encrypting and decrypting non-rootfs partition using TPM. The output in step 5 should contain `hello-world`. -## TPM007.001 Encrypt and Decrypt rootfs partition (Ubuntu) +## TPM010.201 Encrypt and Decrypt rootfs partition (Ubuntu) **Test description** diff --git a/docs/unified/protectli/test-matrix.md b/docs/unified/protectli/test-matrix.md index cb51748ab7..c2ef04e080 100644 --- a/docs/unified/protectli/test-matrix.md +++ b/docs/unified/protectli/test-matrix.md @@ -100,7 +100,7 @@ subjected from before the release of the new binary. | No. | Supported test suite | Test suite ID | Supported test cases | |:-----|:--------------------------------------|:-------------:|:-------------------------------------| - | 1. | [TPM Support][TPM] | TPM | TPM001.002, TPM001.003, TPM002.002, TPM002.003, TPM003.002, TPM003.003 | + | 1. | [TPM Support][TPM] | TPM | TPM001.201, TPM001.301, TPM002.201, TPM002.301, TPM003.201, TPM003.301 | | 2. | [Secure Boot support][SBO] | SBO | All | [TPM]: ../../unified-test-documentation/dasharo-security/200-tpm-support.md @@ -500,7 +500,7 @@ subjected from before the release of the new binary. | No. | Supported test suite | Test suite ID | Supported test cases | |:-----|:--------------------------------------------------|:-------------:|:-------------------------------------| - | 1. | [TPM Support][TPM] | TPM | TPM001.002 and TPM001.003 | + | 1. | [TPM Support][TPM] | TPM | TPM001.201 and TPM001.301 | | 2. | [Verified Boot support][VBO] | VBO | Without VBO006.001 and VBO007.001 | | 3. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | All | diff --git a/docs/variants/asus_kgpe_d16/test-matrix.md b/docs/variants/asus_kgpe_d16/test-matrix.md index 7fb9a20b71..3c4ad2b2ec 100644 --- a/docs/variants/asus_kgpe_d16/test-matrix.md +++ b/docs/variants/asus_kgpe_d16/test-matrix.md @@ -37,7 +37,7 @@ subjected from before the release of the new binary. | No. | Supported test suite | Test suite ID | Supported test cases | |:-----|:--------------------------------------------------|:-------------:|:-------------------------------------| -| 1. | [TPM Support][TPM] | TPM | TPM001.002 | +| 1. | [TPM Support][TPM] | TPM | TPM001.201 | | 2. | [Verified Boot support][VBO] | VBO | VBO006.001, VBO007.001, VBO008.001 | [TPM]: ../../unified-test-documentation/dasharo-security/200-tpm-support.md diff --git a/docs/variants/dell_optiplex/test-matrix.md b/docs/variants/dell_optiplex/test-matrix.md index f8683acb14..5892f6405b 100644 --- a/docs/variants/dell_optiplex/test-matrix.md +++ b/docs/variants/dell_optiplex/test-matrix.md @@ -61,7 +61,7 @@ subjected from before the release of the new binary. | No. | Supported test suite | Test suite ID | Supported test cases | |:-----|:--------------------------------------------------|:-------------:|:-------------------------------------| -| 1. | [TPM Support][TPM] | TPM | TPM001.002 | +| 1. | [TPM Support][TPM] | TPM | TPM001.201 | | 2. | [Measured Boot support][MBO] | MBO | All | | 4. | [Secure Boot support][SBO] | SBO | All | | 9. | [UEFI Setup password][PSW] | PSW | All | diff --git a/docs/variants/hardkernel_odroid_h4/test-matrix.md b/docs/variants/hardkernel_odroid_h4/test-matrix.md index db2ee197d1..9f4400a275 100644 --- a/docs/variants/hardkernel_odroid_h4/test-matrix.md +++ b/docs/variants/hardkernel_odroid_h4/test-matrix.md @@ -77,7 +77,7 @@ Hardkernel devices. | No. | Supported test suite | Test suite ID | Supported test cases | |:---:|:--------------------------------------|:-------------:|:-------------------------------------| -| 1. | [TPM Support][TPM] | TPM | TPM001.002,TPM002.001,TPM002.002,TPM003.001,TPM003.002,TPM003.004, | +| 1. | [TPM Support][TPM] | TPM | TPM001.201,TPM002.001,TPM002.201,TPM003.001,TPM003.201,TPM003.004, | | 2. | [Verified Boot Integration][VBO] | VBO | All | | 3. | [BIOS lock support][BLS] | BLS | All | | 4. | [Measured boot integration][MBO] | MBO | All | From 76a68c97daeae210801bbae3aa096a18fb9ebcad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 10:50:08 +0200 Subject: [PATCH 096/133] 203-measured-boot: MBO: Remove autaomted test suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-security/203-measured-boot.md | 73 +------------------ 1 file changed, 1 insertion(+), 72 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-security/203-measured-boot.md b/docs/unified-test-documentation/dasharo-security/203-measured-boot.md index 4d5e26d920..9175609318 100644 --- a/docs/unified-test-documentation/dasharo-security/203-measured-boot.md +++ b/docs/unified-test-documentation/dasharo-security/203-measured-boot.md @@ -1,74 +1,3 @@ # Dasharo Security: Measured Boot support -## MBO001.001 Measured Boot support (Ubuntu) - -**Test description** - -Measured Boot is a method for detecting changes to the firmware by storing -hashes of each firmware component in the TPM PCR registers. If a PCR changes -value across reboots, a change to the firmware has been made. This test aims to -verify that Measured Boot is functional and that measurements are stored in the -TPM.a. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware). -1. Proceed with the - [Generic test setup: OS installer](../generic-test-setup.md#os-installer). -1. Proceed with the - [Generic test setup: OS installation](../generic-test-setup.md#os-installation). -1. Proceed with the - [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -1. Download `cbmem` from the - [cloud](https://cloud.3mdeb.com/index.php/s/zTqkJQdNtJDo5Nd) to the DUT. -1. Disable Secure Boot. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the following command: - -```bash -sudo ./cbmem -c | grep -i PCR -``` - -**Expected result** - -1. The output of the command should indicate that measurements of the coreboot - components have been made. - - Example output: - - ```text - TPM: Extending digest for `VBOOT: boot mode` into PCR 0 - TPM: Digest of `VBOOT: boot mode` to PCR 0 measured - TPM: Extending digest for `VBOOT: GBB HWID` into PCR 1 - TPM: Digest of `VBOOT: GBB HWID` to PCR 1 measured - TPM: Extending digest for `FMAP: FMAP` into PCR 2 - TPM: Digest of `FMAP: FMAP` to PCR 2 measured - TPM: Extending digest for `CBFS: bootblock` into PCR 2 - TPM: Digest of `CBFS: bootblock` to PCR 2 measured - TPM: Extending digest for `CBFS: fallback/romstage` into PCR 2 - TPM: Digest of `CBFS: fallback/romstage` to PCR 2 measured - TPM: Extending digest for `CBFS: fspm.bin` into PCR 2 - TPM: Digest of `CBFS: fspm.bin` to PCR 2 measured - TPM: Extending digest for `CBFS: fallback/postcar` into PCR 2 - TPM: Digest of `CBFS: fallback/postcar` to PCR 2 measured - TPM: Extending digest for `CBFS: fallback/ramstage` into PCR 2 - TPM: Digest of `CBFS: fallback/ramstage` to PCR 2 measured - ... - ``` - -1. The output shouldn't contain the following message: - - ```text - TPM: Extending hash into PCR failed. - ``` +The test suite is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From dcc2398e30ddbce83ee3dec6a5a20f423dfcde06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 10:53:03 +0200 Subject: [PATCH 097/133] 01-net-controller...: NET: Remove auto test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- ...-after-coldboot-warmboot-reboot-suspend.md | 238 +----------------- 1 file changed, 7 insertions(+), 231 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-stability/01-net-controller-after-coldboot-warmboot-reboot-suspend.md b/docs/unified-test-documentation/dasharo-stability/01-net-controller-after-coldboot-warmboot-reboot-suspend.md index dcbbfeab86..c4fad45d52 100644 --- a/docs/unified-test-documentation/dasharo-stability/01-net-controller-after-coldboot-warmboot-reboot-suspend.md +++ b/docs/unified-test-documentation/dasharo-stability/01-net-controller-after-coldboot-warmboot-reboot-suspend.md @@ -14,7 +14,7 @@ [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). 1. The `Thunderbolt docking station` connected to the Thunderbolt port. -## NET001.001 NET controller after coldboot (Ubuntu) +## NET001.001 201 controller after coldboot (Ubuntu) **Test description** @@ -91,238 +91,14 @@ is able to connect to the network after coldboot. up ``` -## NET002.001 NET controller after warmboot (Ubuntu) +## NET002.201 NET controller after warmboot (Ubuntu) -**Test description** - -This test aims to verify that the network controller works and the platform -is able to connect to the network after warmboot. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a Ethernet cable with internet connection to the platform. -1. Wait for internet connection to initialize. -1. Open a terminal window and execute following command to list available - network interfaces: - - ```bash - ip a - ``` - -1. Determine the name of the ethernet controller. It typically is `ethX` or - `enpXsY`, where `X` and `Y` are numbers. -1. Then, execute following command to check if the network interface is working - correctly: - - ```bash - cat /sys/class/net//operstate - ``` - -1. Perform warmboot. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the command mentioned in point 8. - -**Expected result** - -1. The `ip a` command should return information about available NET - interfaces. The list should contain the ethernet network interface, which is - typically identified as `ethX` or `enpXsY`, where `X` and `Y` are numbers. - Example output: - - ```bash - 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 - link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 - inet 127.0.0.1/8 scope host lo - valid_lft forever preferred_lft forever - inet6 ::1/128 scope host - valid_lft forever preferred_lft forever - 2: enp46s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 - link/ether d4:93:90:16:92:f8 brd ff:ff:ff:ff:ff:ff - inet 192.168.4.85/24 brd 192.168.4.255 scope global dynamic noprefixroute enp46s0 - valid_lft 40276sec preferred_lft 40276sec - inet6 fe80::8317:79e3:81ec:a1f4/64 scope link noprefixroute - valid_lft forever preferred_lft forever - 3: wlp0s20f3: mtu 1500 qdisc noqueue state DOWN group default qlen 1000 - link/ether 14:18:c3:7d:77:06 brd ff:ff:ff:ff:ff:ff - ``` - -1. The `cat /sys/class/net//operstate` command should return - information indicating if the network interface works correctly (`up`) or - not (`down`). Example output: - - ```bash - up - ``` - -## NET003.001 NET controller after reboot (Ubuntu) - -**Test description** - -This test aims to verify that the network controller works and the platform -is able to connect to the network after coldboot. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a Ethernet cable with internet connection to the platform. -1. Wait for internet connection to initialize. -1. Open a terminal window and execute following command to list available - network interfaces: - - ```bash - ip a - ``` - -1. Determine the name of the ethernet controller. It typically is `ethX` or - `enpXsY`, where `X` and `Y` are numbers. -1. Then, execute following command to check if the network interface is working - correctly: - - ```bash - cat /sys/class/net//operstate - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Reboot the system. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and execute the command mentioned in point 8. - -**Expected result** +## NET003.201 NET controller after reboot (Ubuntu) -1. The `ip a` command should return information about available NET - interfaces. The list should contain the ethernet network interface, which is - typically identified as `ethX` or `enpXsY`, where `X` and `Y` are numbers. - Example output: +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop - ```bash - 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 - link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 - inet 127.0.0.1/8 scope host lo - valid_lft forever preferred_lft forever - inet6 ::1/128 scope host - valid_lft forever preferred_lft forever - 2: enp46s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 - link/ether d4:93:90:16:92:f8 brd ff:ff:ff:ff:ff:ff - inet 192.168.4.85/24 brd 192.168.4.255 scope global dynamic noprefixroute enp46s0 - valid_lft 40276sec preferred_lft 40276sec - inet6 fe80::8317:79e3:81ec:a1f4/64 scope link noprefixroute - valid_lft forever preferred_lft forever - 3: wlp0s20f3: mtu 1500 qdisc noqueue state DOWN group default qlen 1000 - link/ether 14:18:c3:7d:77:06 brd ff:ff:ff:ff:ff:ff - ``` +## NET004.201 NET controller after suspend (Ubuntu) -1. The `cat /sys/class/net//operstate` command should return - information indicating if the network interface works correctly (`up`) or - not (`down`). Example output: - - ```bash - up - ``` - -## NET004.001 NET controller after suspend (Ubuntu) - -**Test description** - -This test aims to verify that the network controller works and the platform -is able to connect to the network after suspend. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = `Ubuntu` - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Plug in a Ethernet cable with internet connection to the platform. -1. Wait for internet connection to initialize. -1. Open a terminal window and execute following command to list available - network interfaces: - - ```bash - ip a - ``` - -1. Determine the name of the ethernet controller. It typically is `ethX` or - `enpXsY`, where `X` and `Y` are numbers. -1. Then, execute following command to check if the network interface is working - correctly: - - ```bash - cat /sys/class/net//operstate - ``` - -1. Execute following command to suspend the system and automatically wake it - up after 10 seconds: - - ```bash - sudo fwts s3 --s3-sleep-delay=10 - ``` - -1. After the system wakes up, log into the system and execute the command - mentioned in point 8. - -**Expected result** - -1. The `ip a` command should return information about available NET - interfaces. The list should contain the ethernet network interface, which is - typically identified as `ethX` or `enpXsY`, where `X` and `Y` are numbers. - Example output: - - ```bash - 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 - link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 - inet 127.0.0.1/8 scope host lo - valid_lft forever preferred_lft forever - inet6 ::1/128 scope host - valid_lft forever preferred_lft forever - 2: enp46s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 - link/ether d4:93:90:16:92:f8 brd ff:ff:ff:ff:ff:ff - inet 192.168.4.85/24 brd 192.168.4.255 scope global dynamic noprefixroute enp46s0 - valid_lft 40276sec preferred_lft 40276sec - inet6 fe80::8317:79e3:81ec:a1f4/64 scope link noprefixroute - valid_lft forever preferred_lft forever - 3: wlp0s20f3: mtu 1500 qdisc noqueue state DOWN group default qlen 1000 - link/ether 14:18:c3:7d:77:06 brd ff:ff:ff:ff:ff:ff - ``` - -1. The `cat /sys/class/net//operstate` command should return - information indicating if the network interface works correctly (`up`) or - not (`down`). Example output: - - ```bash - up - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From f28dbaee57df1f2b6d0722c06654e2a4ee99148f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 10:54:24 +0200 Subject: [PATCH 098/133] C01-usb-type-a-devices-detection: SUD: Remove auto cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../C01-usb-type-a-devices-detection.md | 148 +----------------- 1 file changed, 7 insertions(+), 141 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-stability/C01-usb-type-a-devices-detection.md b/docs/unified-test-documentation/dasharo-stability/C01-usb-type-a-devices-detection.md index cc3704e1f3..9ca71923f0 100644 --- a/docs/unified-test-documentation/dasharo-stability/C01-usb-type-a-devices-detection.md +++ b/docs/unified-test-documentation/dasharo-stability/C01-usb-type-a-devices-detection.md @@ -14,7 +14,7 @@ [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). 1. Connect the `USB device` to the USB Type-A port. -## SUD0001.001 USB devices detection after cold boot (Ubuntu) +## SUD0001.201 USB devices detection after cold boot (Ubuntu) **Test description** @@ -62,148 +62,14 @@ iterations. The output of each `lsusb` command should contain an entry of the connected `USB device`. -## SUD0002.001 USB devices detection after warm boot (Ubuntu) +## SUD0002.201 USB devices detection after warm boot (Ubuntu) -**Test description** - -This test aims to verify that the external USB devices are detected correctly -after performing a warm boot. The test should be performed in multiple -iterations. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. -1. Power off the DUT using the power button. -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. - -**Expected result** - -The output of each `lsusb` command should contain an entry of the connected -`USB device`. - -## SUD0003.001 USB devices detection after reboot (Ubuntu) - -**Test description** - -This test aims to verify that the external USB devices are detected correctly -after performing a reboot. The test should be performed in multiple iterations. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware) +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -**Test steps** +## SUD0003.201 USB devices detection after reboot (Ubuntu) -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop - ```bash - lsusb - ``` +## SUD0004.201 USB devices detection after suspension (Ubuntu) -1. Note the results. -1. Disconnect the power source, and remove the battery if present. -1. Connect power and battery again. -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. - -**Expected result** - -The output of each `lsusb` command should contain an entry of the connected -`USB device`. - -## SUD0004.001 USB devices detection after suspension (Ubuntu) - -**Test description** - -This test aims to verify that the external USB devices are detected correctly -after performing suspension. The test should be performed in multiple -iterations. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the [Firmware test suite](https://wiki.ubuntu.com/FirmwareTestSuite) - package. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. -1. Execute the following command to suspend the system and automatically wake it - up after 10 seconds: - - ```bash - sudo fwts s3 --s3-sleep-delay=10 - ``` - -1. Open a terminal window and run the following command: - - ```bash - lsusb - ``` - -1. Note the results. - -**Expected result** - -The output of each `lsusb` command should contain an entry of the connected -`USB device`. +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From a5b467184c9e904df68e9ce105e8def52fc9466c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 10:55:02 +0200 Subject: [PATCH 099/133] C02-m2-wi-fi: SMW: Remove automated cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-stability/C02-m2-wi-fi.md | 257 +----------------- 1 file changed, 7 insertions(+), 250 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-stability/C02-m2-wi-fi.md b/docs/unified-test-documentation/dasharo-stability/C02-m2-wi-fi.md index 96996047b1..fd010049dc 100644 --- a/docs/unified-test-documentation/dasharo-stability/C02-m2-wi-fi.md +++ b/docs/unified-test-documentation/dasharo-stability/C02-m2-wi-fi.md @@ -13,7 +13,7 @@ 1. Proceed with the [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -## SMW0001.001 Wi-fi connection after cold boot (Ubuntu) +## SMW0001.201 Wi-fi connection after cold boot (Ubuntu) **Test description** @@ -97,257 +97,14 @@ after performing a cold boot. The test should be performed in multiple iteration XX:XX:XX:XX:XX:XX NED-WIFI Infra 11 270 Mbit/s 17 ▂___ WPA2 ``` -## SMW0002.001 Wi-fi connection after warm boot (Ubuntu) +## SMW0002.201 Wi-fi connection after warm boot (Ubuntu) -**Test description** - -This test aims to verify that the Wi-Fi card is detected and working correctly -after performing a warm boot. The test should be performed in multiple iterations. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep "Network Controller" - ``` - -1. Open a terminal window and run the following commands: - - ```bash - nmcli radio wifi on - nmcli device wifi rescan - # Wait ~5 seconds - nmcli device wifi list - ``` - -1. Power off the DUT using the power button. -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep "Network Controller" - ``` - -1. Open a terminal window and run the following commands: - - ```bash - nmcli radio wifi on - nmcli device wifi rescan - # Wait ~5 seconds - nmcli device wifi list - ``` - -**Expected result** - -1. The output of each `lspci` command should contain information about the - mounted on the DUT network controller. Example output: - - ```bash - 2f:00.0 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 1a) - ``` - -1. The output of each `nmcli device` wifi list` command should return a list of - available Wi-Fi networks. Example output: - - ```bash - IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY - XX:XX:XX:XX:XX:XX DIRECT-ny Infra 6 65 Mbit/s 75 ▂▄▆_ WPA2 - * XX:XX:XX:XX:XX:XX 3mdeb_abr_5GHz Infra 48 405 Mbit/s 72 ▂▄▆_ WPA2 - XX:XX:XX:XX:XX:XX 3mdeb_abr Infra 11 54 Mbit/s 69 ▂▄▆_ WPA2 - XX:XX:XX:XX:XX:XX FunBox2-F9BF_2.4GHz Infra 1 130 Mbit/s 50 ▂▄__ WPA1 WPA2 - XX:XX:XX:XX:XX:XX H_Office Infra 2 270 Mbit/s 35 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-xpPhaser 3330 Infra 1 65 Mbit/s 34 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX Orange_Swiatlowod_A79A Infra 108 540 Mbit/s 32 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-KRM288x Series Infra 11 54 Mbit/s 22 ▂___ WPA2 - XX:XX:XX:XX:XX:XX Orange_Swiatlowod_A79A Infra 11 130 Mbit/s 20 ▂___ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-ejPhaser 3330 Infra 1 65 Mbit/s 17 ▂___ WPA2 - XX:XX:XX:XX:XX:XX NED-WIFI Infra 11 270 Mbit/s 17 ▂___ WPA2 - ``` - -## SMW0003.001 Wi-fi connection after reboot (Ubuntu) - -**Test description** - -This test aims to verify that the Wi-Fi card is detected and working correctly -after performing a reboot. The test should be performed in multiple iterations. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware) - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep "Network Controller" - ``` - -1. Open a terminal window and run the following commands: - - ```bash - nmcli radio wifi on - nmcli device wifi rescan - # Wait ~5 seconds - nmcli device wifi list - ``` - -1. Disconnect the power source, and remove the battery if present. -1. Connect power and battery again. -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep "Network Controller" - ``` - -1. Open a terminal window and run the following commands: - - ```bash - nmcli radio wifi on - nmcli device wifi rescan - # Wait ~5 seconds - nmcli device wifi list - ``` - -**Expected result** - -1. The output of each `lspci` command should contain information about the - mounted on the DUT network controller. Example output: - - ```bash - 2f:00.0 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 1a) - ``` - -1. The output of each `nmcli device` wifi list` command should return a list of - available Wi-Fi networks. Example output: - - ```bash - IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY - XX:XX:XX:XX:XX:XX DIRECT-ny Infra 6 65 Mbit/s 75 ▂▄▆_ WPA2 - * XX:XX:XX:XX:XX:XX 3mdeb_abr_5GHz Infra 48 405 Mbit/s 72 ▂▄▆_ WPA2 - XX:XX:XX:XX:XX:XX 3mdeb_abr Infra 11 54 Mbit/s 69 ▂▄▆_ WPA2 - XX:XX:XX:XX:XX:XX FunBox2-F9BF_2.4GHz Infra 1 130 Mbit/s 50 ▂▄__ WPA1 WPA2 - XX:XX:XX:XX:XX:XX H_Office Infra 2 270 Mbit/s 35 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-xpPhaser 3330 Infra 1 65 Mbit/s 34 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX Orange_Swiatlowod_A79A Infra 108 540 Mbit/s 32 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-KRM288x Series Infra 11 54 Mbit/s 22 ▂___ WPA2 - XX:XX:XX:XX:XX:XX Orange_Swiatlowod_A79A Infra 11 130 Mbit/s 20 ▂___ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-ejPhaser 3330 Infra 1 65 Mbit/s 17 ▂___ WPA2 - XX:XX:XX:XX:XX:XX NED-WIFI Infra 11 270 Mbit/s 17 ▂___ WPA2 - ``` - -## SMW0004.001 Wi-fi connection after suspension (Ubuntu) - -**Test description** - -This test aims to verify that the Wi-Fi card is detected and working correctly -after performing suspension. The test should be performed in multiple iterations. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the [Firmware test suite](https://wiki.ubuntu.com/FirmwareTestSuite) - package. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep "Network Controller" - ``` - -1. Open a terminal window and run the following commands: - - ```bash - nmcli radio wifi on - nmcli device wifi rescan - # Wait ~5 seconds - nmcli device wifi list - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Execute the following command to suspend the system and automatically wake it - up after 10 seconds: +## SMW0003.201 Wi-fi connection after reboot (Ubuntu) - ```bash - sudo fwts s3 --s3-sleep-delay=10 - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -1. Open a terminal window and run the following command: +## SMW0004.201 Wi-fi connection after suspension (Ubuntu) - ```bash - lspci | grep "Network Controller" - ``` - -1. Open a terminal window and run the following commands: - - ```bash - nmcli radio wifi on - nmcli device wifi rescan - # Wait ~5 seconds - nmcli device wifi list - ``` - -**Expected result** - -1. The output of each `lspci` command should contain information about the - mounted on the DUT network controller. Example output: - - ```bash - 2f:00.0 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 1a) - ``` - -1. The output of each `nmcli device` wifi list` command should return a list of - available Wi-Fi networks. Example output: - - ```bash - IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY - XX:XX:XX:XX:XX:XX DIRECT-ny Infra 6 65 Mbit/s 75 ▂▄▆_ WPA2 - * XX:XX:XX:XX:XX:XX 3mdeb_abr_5GHz Infra 48 405 Mbit/s 72 ▂▄▆_ WPA2 - XX:XX:XX:XX:XX:XX 3mdeb_abr Infra 11 54 Mbit/s 69 ▂▄▆_ WPA2 - XX:XX:XX:XX:XX:XX FunBox2-F9BF_2.4GHz Infra 1 130 Mbit/s 50 ▂▄__ WPA1 WPA2 - XX:XX:XX:XX:XX:XX H_Office Infra 2 270 Mbit/s 35 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-xpPhaser 3330 Infra 1 65 Mbit/s 34 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX Orange_Swiatlowod_A79A Infra 108 540 Mbit/s 32 ▂▄__ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-KRM288x Series Infra 11 54 Mbit/s 22 ▂___ WPA2 - XX:XX:XX:XX:XX:XX Orange_Swiatlowod_A79A Infra 11 130 Mbit/s 20 ▂___ WPA2 - XX:XX:XX:XX:XX:XX DIRECT-ejPhaser 3330 Infra 1 65 Mbit/s 17 ▂___ WPA2 - XX:XX:XX:XX:XX:XX NED-WIFI Infra 11 270 Mbit/s 17 ▂___ WPA2 - ``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From b7876ab44cee60d675e00454bc827ed9fcca5b91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 30 Apr 2025 10:55:46 +0200 Subject: [PATCH 100/133] C03-nvme-detection: SNV: Remove auto cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../dasharo-stability/C03-nvme-detection.md | 149 +----------------- 1 file changed, 7 insertions(+), 142 deletions(-) diff --git a/docs/unified-test-documentation/dasharo-stability/C03-nvme-detection.md b/docs/unified-test-documentation/dasharo-stability/C03-nvme-detection.md index b7afb57a7b..1a76fc5ef5 100644 --- a/docs/unified-test-documentation/dasharo-stability/C03-nvme-detection.md +++ b/docs/unified-test-documentation/dasharo-stability/C03-nvme-detection.md @@ -13,7 +13,7 @@ 1. Proceed with the [Generic test setup: OS boot from disk](../generic-test-setup.md#os-boot-from-disk). -## SNV0001.001 NVMe detection after cold boot (Ubuntu) +## SNV0001.201 NVMe detection after cold boot (Ubuntu) **Test description** @@ -61,149 +61,14 @@ on the DUT NVMe disk. Example output: 01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller 980 ``` -## SNV0001.001 NVMe detection after warm boot (Ubuntu) +## SNV0001.201 NVMe detection after warm boot (Ubuntu) -**Test description** - -This test aims to verify that the NVMe disk is correctly detected after -performing a warm boot. The test should be performed in multiple iterations. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep -i nvme - ``` - -1. Power off the DUT using the power button. -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep -i nvme - ``` - -**Expected result** - -The output of each `lspci` command should contain information about the mounted -on the DUT NVMe disk. Example output: - -```bash -01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller 980 -``` - -## SNV0003.001 NVMe detection after reboot (Ubuntu) - -**Test description** - -This test aims to verify that the NVMe disk is correctly detected after -performing a reboot. The test should be performed in multiple iterations. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Generic test setup: firmware](../generic-test-setup.md#firmware) - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep -i nvme - ``` - -1. Disconnect the power source, and remove the battery if present. -1. Connect power and battery again. -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep -i nvme - ``` - -**Expected result** - -The output of each `lspci` command should contain information about the mounted -on the DUT NVMe disk. Example output: - -```bash -01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller 980 -``` - -## SNV0004.001 NVMe detection after suspension (Ubuntu) - -**Test description** - -This test aims to verify that the NVMe disk is correctly detected after -performing suspension. The test should be performed in multiple iterations. - -**Test configuration data** - -1. `FIRMWARE` = Dasharo -1. `OPERATING_SYSTEM` = Ubuntu - -**Test setup** - -1. Proceed with the - [Test cases common documentation](#test-cases-common-documentation) section. -1. Install the [Firmware test suite](https://wiki.ubuntu.com/FirmwareTestSuite) - package. - -**Test steps** - -1. Power on the DUT. -1. Boot into the system. -1. Log into the system by using the proper login and password. -1. Open a terminal window and run the following command: - - ```bash - lspci | grep -i nvme - ``` - -1. Execute the following command to suspend the system and automatically wake it - up after 10 seconds: - - ```bash - sudo fwts s3 --s3-sleep-delay=10 - ``` - -1. Open a terminal window and run the following command: +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop - ```bash - lspci | grep -i nvme - ``` +## SNV0003.201 NVMe detection after reboot (Ubuntu) -**Expected result** +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -The output of each `lspci` command should contain information about the mounted -on the DUT NVMe disk. Example output: +## SNV0004.201 NVMe detection after suspension (Ubuntu) -```bash -01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller 980 -``` +The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From 9b28f81496d94b2725359060153f8f5202f35938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 7 May 2025 08:37:13 +0200 Subject: [PATCH 101/133] 20F-me-neuter.md: fix MNE004 deprecated ID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Kopeć --- .../dasharo-security/20F-me-neuter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/unified-test-documentation/dasharo-security/20F-me-neuter.md b/docs/unified-test-documentation/dasharo-security/20F-me-neuter.md index 3911e13f18..1e5945f493 100644 --- a/docs/unified-test-documentation/dasharo-security/20F-me-neuter.md +++ b/docs/unified-test-documentation/dasharo-security/20F-me-neuter.md @@ -46,7 +46,7 @@ The `Intel ME mode` field should inform that the current state is `Enabled`. The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop -## MNE004.001 Intel ME mode option Disable (HAP) works correctly (Ubuntu) +## MNE004.201 Intel ME mode option Disable (HAP) works correctly (Ubuntu) The test is fully automated. Refer to https://github.com/Dasharo/open-source-firmware-validation/tree/develop From d67719dc5d71f6eaadc951172efb76898e1c59dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Thu, 8 May 2025 12:44:05 +0200 Subject: [PATCH 102/133] docs/unified/protectli/post-install.md: fix moved link to Protectli kb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/unified/protectli/post-install.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/unified/protectli/post-install.md b/docs/unified/protectli/post-install.md index 3d27410bb3..4196076077 100644 --- a/docs/unified/protectli/post-install.md +++ b/docs/unified/protectli/post-install.md @@ -34,5 +34,5 @@ If you experience ath10k_pci failing to load with error in dmesg similar to: [ 11.177711] ath10k_pci 0000:07:00.0: could not probe fw (-110) ``` -follow the [Protectli guide](https://kb.protectli.com/kb/wifi-on-the-vault/) -(Firmware Fix section) to fix the problem. +follow the [Protectli guide](https://kb.protectli.com/kb/wifi-modules-for-protectli-vaults/) +(Section "Fix for M.2/mPCIe WiFi Card not Being Recognized") to fix the problem. From 6c5c61fa0e38700b74d7d187b4da3d7711865177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Thu, 8 May 2025 14:53:47 +0200 Subject: [PATCH 103/133] docs/variants/protectli_vp2430/releases.md: add v0.9.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/variants/protectli_vp2430/releases.md | 76 ++++++++++++++++++++-- 1 file changed, 71 insertions(+), 5 deletions(-) diff --git a/docs/variants/protectli_vp2430/releases.md b/docs/variants/protectli_vp2430/releases.md index e000bbbb03..0656420ad2 100644 --- a/docs/variants/protectli_vp2430/releases.md +++ b/docs/variants/protectli_vp2430/releases.md @@ -1,16 +1,82 @@ # Protectli VP2430 Dasharo Release Notes -Following Release Notes describe status of open-source firmware development -for Protectli VP2430. +Following Release Notes describe status of open-source firmware development for +Protectli VP2430. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md).
-[Subscribe to Protectli Dasharo Release Newsletter] -[newsletter]{.md-button .md-button--primary .center} + +[Subscribe to Protectli VP2430 Dasharo Release Newsletter] +[newsletter]{ .md-button .md-button--primary .center } +
-> Coming soon! +## v0.9.0 - 2025-05-08 + +Test results for this release can be found +[here](https://github.com/Dasharo/osfv-results/blob/main/boards/Protectli/VP2430/v0.9.0-results.csv). + +### Added + +- Initial support for Protectli Alder Lake N devices (Vault Pro 2430) +- [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/) +- [UEFI Secure Boot](https://docs.dasharo.com/unified-test-documentation/dasharo-security/206-secure-boot/) +- [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) + +### Binaries + +[protectli_vp2430_v0.9.0.rom][protectli_vp2430_v0.9.0.rom_file]{.md-button} +[sha256][protectli_vp2430_v0.9.0.rom_hash]{.md-button} +[sha256.sig][protectli_vp2430_v0.9.0.rom_sig]{.md-button} + +[protectli_vp2430_v0.9.0_dev_signed.rom][protectli_vp2430_v0.9.0_dev_signed.rom_file]{.md-button} +[sha256][protectli_vp2430_v0.9.0_dev_signed.rom_hash]{.md-button} +[sha256.sig][protectli_vp2430_v0.9.0_dev_signed.rom_sig]{.md-button} + +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/dasharo-open-source-firmware-engineering-release-signing-key.asc) + +### SBOM (Software Bill of Materials) + +- [coreboot based on 24.02 revision feb2693f](https://github.com/Dasharo/coreboot/tree/feb2693f) + + [License](https://github.com/Dasharo/coreboot/blob/feb2693f/COPYING) +- [Dasharo EDKII fork based on edk2-stable202405 revision c2de870a](https://github.com/Dasharo/edk2/tree/c2de870a) + + [License](https://github.com/Dasharo/edk2/blob/c2de870a/License.txt) +- [Dasharo iPXE fork based on 2024.07 revision 63ed3e35](https://github.com/Dasharo/ipxe/tree/63ed3e35) + + [License](https://github.com/Dasharo/ipxe/blob/63ed3e35/COPYING.GPLv2) +- [Intel Management Engine version v16.50.15.1515-v0.1](https://github.com/Dasharo/dasharo-blobs/blob/79be2c81/protectli/vault_adl_n/vp2430/me.bin) + + [License](https://github.com/Dasharo/dasharo-blobs/blob/79be2c81/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) +- [Intel Flash Descriptor version v1.2](https://github.com/Dasharo/dasharo-blobs/blob/79be2c81/protectli/vault_adl_n/vp2430/descriptor.bin) + + [License](https://github.com/Dasharo/dasharo-blobs/blob/79be2c81/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) +- [Intel Firmware Support Package version 0C.02.89.30-v0.1](https://github.com/intel/FSP/commits/86c91116/AlderLakeFspBinPkg/IoT/AlderLakeN) + + [License](https://github.com/intel/FSP/blob/86c91116/FSP_License.pdf) +- [Intel microcode version ADL N0 0x15](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240312/intel-ucode/06-be-00) + + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240312/license) [newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL +[protectli_vp2430_v0.9.0.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0.rom +[protectli_vp2430_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0.rom.sha256 +[protectli_vp2430_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0.rom.sha256.sig +[protectli_vp2430_v0.9.0_dev_signed.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0_dev_signed.rom +[protectli_vp2430_v0.9.0_dev_signed.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0_dev_signed.rom.sha256 +[protectli_vp2430_v0.9.0_dev_signed.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0_dev_signed.rom.sha256.sig From 20d33edb3aa283dbf6b47496068e83aaf5505567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Thu, 8 May 2025 15:12:07 +0200 Subject: [PATCH 104/133] docs/variants/protectli_vp2430: add v0.9.0 openness score MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- .../protectli_vp2430/openness-score.md | 120 ++++++++++++++++++ ...ectli_vp2430_v0.9.0.rom_openness_chart.png | Bin 0 -> 26248 bytes ...0_v0.9.0.rom_openness_chart_full_image.png | Bin 0 -> 32697 bytes 3 files changed, 120 insertions(+) create mode 100644 docs/variants/protectli_vp2430/protectli_vp2430_v0.9.0.rom_openness_chart.png create mode 100644 docs/variants/protectli_vp2430/protectli_vp2430_v0.9.0.rom_openness_chart_full_image.png diff --git a/docs/variants/protectli_vp2430/openness-score.md b/docs/variants/protectli_vp2430/openness-score.md index 2f40ef83eb..6d64c838c0 100644 --- a/docs/variants/protectli_vp2430/openness-score.md +++ b/docs/variants/protectli_vp2430/openness-score.md @@ -4,3 +4,123 @@ This page contains the [Dasharo Openness Score](../../glossary.md#dasharo-openness-score) for Protectli VP2430 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 protectli_vp2430_v0.9.0.rom + +Open-source code percentage: **30.8%** +Closed-source code percentage: **69.2%** + +* Image size: 16777216 (0x1000000) +* Number of regions: 24 +* Number of CBFSes: 3 +* Total open-source code size: 3414558 (0x341a1e) +* Total closed-source code size: 7660966 (0x74e5a6) +* Total data size: 677744 (0xa5770) +* Total empty size: 5023948 (0x4ca8cc) + +![](protectli_vp2430_v0.9.0.rom_openness_chart.png) + +![](protectli_vp2430_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 | 0x4ff000 | closed-source | +| SI_DESC | 0x0 | 0x1000 | data | +| SMMSTORE | 0x500000 | 0x40000 | data | +| RECOVERY_MRC_CACHE | 0x540000 | 0x20000 | data | +| RW_MRC_CACHE | 0x560000 | 0x20000 | data | +| RW_VPD | 0x580000 | 0x2000 | data | +| RW_NVRAM | 0x582000 | 0x6000 | data | +| VBLOCK_A | 0x608000 | 0x10000 | data | +| RW_FWID_A | 0xafff00 | 0x100 | data | +| RO_VPD | 0xb00000 | 0x4000 | data | +| FMAP | 0xb04000 | 0x800 | data | +| RO_FRID | 0xb04800 | 0x100 | data | +| RO_FRID_PAD | 0xb04900 | 0x700 | data | +| GBB | 0xb05000 | 0x3000 | data | + +### CBFS BOOTSPLASH + +* CBFS size: 524288 +* Number of files: 1 +* Open-source files size: 0 (0x0) +* Closed-source files size: 0 (0x0) +* Data size: 28 (0x1c) +* Empty size: 524260 (0x7ffe4) + +> 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 | 524260 | none | empty | + +### CBFS FW_MAIN_A + +* CBFS size: 5144320 +* Number of files: 13 +* Open-source files size: 1663119 (0x19608f) +* Closed-source files size: 1211091 (0x127ad3) +* Data size: 8766 (0x223e) +* Empty size: 2261344 (0x228160) + +> 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 | 1362458 | none | open-source | +| fallback/romstage | stage | 98000 | none | open-source | +| fallback/ramstage | stage | 145001 | LZMA | open-source | +| fallback/dsdt.aml | raw | 19448 | none | open-source | +| fallback/postcar | stage | 38212 | none | open-source | +| cpu_microcode_blob.bin | microcode | 138240 | none | closed-source | +| fspm.bin | fsp | 786432 | none | closed-source | +| fsps.bin | fsp | 286419 | LZ4 | closed-source | +| config | raw | 5566 | LZMA | data | +| revision | raw | 856 | none | data | +| build_info | raw | 100 | none | data | +| vbt.bin | raw | 1274 | LZMA | data | +| (empty) | null | 1764 | none | empty | + +### CBFS COREBOOT + +* CBFS size: 5210112 +* Number of files: 17 +* Open-source files size: 1751439 (0x1ab98f) +* Closed-source files size: 1211091 (0x127ad3) +* Data size: 9238 (0x2416) +* Empty size: 2238344 (0x222788) + +> 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 | 1362458 | none | open-source | +| fallback/romstage | stage | 98000 | none | open-source | +| fallback/ramstage | stage | 145001 | LZMA | open-source | +| fallback/dsdt.aml | raw | 19448 | none | open-source | +| fallback/postcar | stage | 38212 | none | open-source | +| bootblock | bootblock | 88320 | none | open-source | +| cpu_microcode_blob.bin | microcode | 138240 | none | closed-source | +| fspm.bin | fsp | 786432 | none | closed-source | +| fsps.bin | fsp | 286419 | LZ4 | closed-source | +| cbfs_master_header | cbfs header | 32 | none | data | +| intel_fit | intel_fit | 80 | none | data | +| config | raw | 5566 | LZMA | data | +| revision | raw | 856 | none | data | +| build_info | raw | 100 | none | data | +| vbt.bin | raw | 1274 | LZMA | data | +| (empty) | null | 1508 | none | empty | +| (empty) | null | 2236836 | none | empty | diff --git a/docs/variants/protectli_vp2430/protectli_vp2430_v0.9.0.rom_openness_chart.png b/docs/variants/protectli_vp2430/protectli_vp2430_v0.9.0.rom_openness_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..3ab454073e8539ef227217e9cdb06acd4ac32957 GIT binary patch literal 26248 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

KrKwO472r^e){P|3VE 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 literal 0 HcmV?d00001 From a26db31a8e32e139114ad7b12c29ec14ae0aa27a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 13 May 2025 15:01:30 +0200 Subject: [PATCH 105/133] docs/variants/protectli_vp2430/releases.md: remove uefi shell from cl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/variants/protectli_vp2430/releases.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/variants/protectli_vp2430/releases.md b/docs/variants/protectli_vp2430/releases.md index 0656420ad2..903a70a2ac 100644 --- a/docs/variants/protectli_vp2430/releases.md +++ b/docs/variants/protectli_vp2430/releases.md @@ -28,7 +28,6 @@ Test results for this release can be found - [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/) - [UEFI Secure Boot](https://docs.dasharo.com/unified-test-documentation/dasharo-security/206-secure-boot/) - [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/) From 99ac0f2023aa4d58a8fc1f34f650a5fa9f6fb5bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 13 May 2025 15:04:38 +0200 Subject: [PATCH 106/133] docs/variants/protectli_vp2430/releases.md: add known issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/variants/protectli_vp2430/releases.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/variants/protectli_vp2430/releases.md b/docs/variants/protectli_vp2430/releases.md index 903a70a2ac..88941238d9 100644 --- a/docs/variants/protectli_vp2430/releases.md +++ b/docs/variants/protectli_vp2430/releases.md @@ -41,6 +41,10 @@ Test results for this release can be found - [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 + +- [Unexpected error in dmesg](https://github.com/Dasharo/dasharo-issues/issues/1187) + ### Binaries [protectli_vp2430_v0.9.0.rom][protectli_vp2430_v0.9.0.rom_file]{.md-button} From f5be10b7a28e33cff7f79a28a0019c0dbec5ee81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 13 May 2025 15:24:14 +0200 Subject: [PATCH 107/133] docs/variants/protectli_vp2430/releases.md: update v0.9.0 release date Co-authored-by: Beata Skierka <97024713+BeataZdunczyk@users.noreply.github.com> --- docs/variants/protectli_vp2430/releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/variants/protectli_vp2430/releases.md b/docs/variants/protectli_vp2430/releases.md index 88941238d9..52392a1071 100644 --- a/docs/variants/protectli_vp2430/releases.md +++ b/docs/variants/protectli_vp2430/releases.md @@ -13,7 +13,7 @@ For details about our release process please read -## v0.9.0 - 2025-05-08 +## v0.9.0 - 2025-05-13 Test results for this release can be found [here](https://github.com/Dasharo/osfv-results/blob/main/boards/Protectli/VP2430/v0.9.0-results.csv). From 4318a123c86d4f6fd7c0b3fff329596e3c681b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 13 May 2025 15:37:59 +0200 Subject: [PATCH 108/133] docs/variants/protectli_vp2430/releases.md: fix newsletter link MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/dev-proc/ci-checks.md | 0 docs/variants/protectli_vp2430/releases.md | 9 ++------- 2 files changed, 2 insertions(+), 7 deletions(-) create mode 100644 docs/dev-proc/ci-checks.md diff --git a/docs/dev-proc/ci-checks.md b/docs/dev-proc/ci-checks.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/variants/protectli_vp2430/releases.md b/docs/variants/protectli_vp2430/releases.md index 52392a1071..326b2265ac 100644 --- a/docs/variants/protectli_vp2430/releases.md +++ b/docs/variants/protectli_vp2430/releases.md @@ -6,12 +6,8 @@ Protectli VP2430. For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). -

- -[Subscribe to Protectli VP2430 Dasharo Release Newsletter] -[newsletter]{ .md-button .md-button--primary .center } - -
+{{ subscribe_form("49abc4a2-0807-4720-aef2-b150ef701b30", +"Subscribe to NovaCustom NS5x/7x 12th Gen Dasharo Release Newsletter") }} ## v0.9.0 - 2025-05-13 @@ -76,7 +72,6 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [Intel microcode version ADL N0 0x15](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240312/intel-ucode/06-be-00) + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240312/license) -[newsletter]: https://newsletter.3mdeb.com/subscription/n2EpSxtqL [protectli_vp2430_v0.9.0.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0.rom [protectli_vp2430_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0.rom.sha256 [protectli_vp2430_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0.rom.sha256.sig From f923b5dc4fc3c1a2c71f2aa44168fe28320549bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 13 May 2025 15:40:10 +0200 Subject: [PATCH 109/133] docs/variants/protectli_vp2430/releases.md: fix binaries links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/variants/protectli_vp2430/releases.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/variants/protectli_vp2430/releases.md b/docs/variants/protectli_vp2430/releases.md index 326b2265ac..86828f5779 100644 --- a/docs/variants/protectli_vp2430/releases.md +++ b/docs/variants/protectli_vp2430/releases.md @@ -72,9 +72,9 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da - [Intel microcode version ADL N0 0x15](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/microcode-20240312/intel-ucode/06-be-00) + [License](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/microcode-20240312/license) -[protectli_vp2430_v0.9.0.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0.rom -[protectli_vp2430_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0.rom.sha256 -[protectli_vp2430_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0.rom.sha256.sig -[protectli_vp2430_v0.9.0_dev_signed.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0_dev_signed.rom -[protectli_vp2430_v0.9.0_dev_signed.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0_dev_signed.rom.sha256 -[protectli_vp2430_v0.9.0_dev_signed.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/v0.9.0/protectli_vp2430_v0.9.0_dev_signed.rom.sha256.sig +[protectli_vp2430_v0.9.0.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/uefi/v0.9.0/protectli_vp2430_v0.9.0.rom +[protectli_vp2430_v0.9.0.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/uefi/v0.9.0/protectli_vp2430_v0.9.0.rom.sha256 +[protectli_vp2430_v0.9.0.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/uefi/v0.9.0/protectli_vp2430_v0.9.0.rom.sha256.sig +[protectli_vp2430_v0.9.0_dev_signed.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/uefi/v0.9.0/protectli_vp2430_v0.9.0_dev_signed.rom +[protectli_vp2430_v0.9.0_dev_signed.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/uefi/v0.9.0/protectli_vp2430_v0.9.0_dev_signed.rom.sha256 +[protectli_vp2430_v0.9.0_dev_signed.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vp2430/uefi/v0.9.0/protectli_vp2430_v0.9.0_dev_signed.rom.sha256.sig From a82bd48fd0b3686b4b16c266017cf1d1929713ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Thu, 15 May 2025 15:46:41 +0200 Subject: [PATCH 110/133] docs/variants/msi_*/releases: Fix typo in FSP version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- docs/variants/msi_z690/releases.md | 2 +- docs/variants/msi_z790/releases.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/variants/msi_z690/releases.md b/docs/variants/msi_z690/releases.md index b24e7ddf91..8818d6ebf3 100644 --- a/docs/variants/msi_z690/releases.md +++ b/docs/variants/msi_z690/releases.md @@ -109,7 +109,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da + [License](https://github.com/Dasharo/dasharo-blobs/blob/main/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) - [Intel Flash Descriptor based on v1.1 revision 4f6e917d](https://github.com/Dasharo/dasharo-blobs/blob/4f6e917d/msi/ms7d25/descriptor.bin) + [License](https://github.com/Dasharo/dasharo-blobs/blob/main/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) -- [Intel Firmware Support Package based on RPL-S C.1.C8.50 revision 3819544e](https://github.com/intel/FSP/tree/3819544e/RaptorLakeFspBinPkg/Client/RaptorLakeS) +- [Intel Firmware Support Package based on RPL-S C.0.C8.50 revision 3819544e](https://github.com/intel/FSP/tree/3819544e/RaptorLakeFspBinPkg/Client/RaptorLakeS) + [License](https://github.com/intel/FSP/blob/3819544e/FSP_License.pdf) - [Intel microcode based on 0x36 (for CPUIDs 00090672, 00090675, 000b06f2, 000b06f5), 0x12B (for CPUID 000b0671) revision 4f6e917d](https://github.com/Dasharo/dasharo-blobs/blob/4f6e917d/msi/ms7d25/microcode.bin) + [License](https://github.com/Dasharo/dasharo-blobs/blob/main/licenses/INTEL_FSP_SIC_LICENSE.txt) diff --git a/docs/variants/msi_z790/releases.md b/docs/variants/msi_z790/releases.md index c0521acef6..68d6d0977c 100644 --- a/docs/variants/msi_z790/releases.md +++ b/docs/variants/msi_z790/releases.md @@ -108,7 +108,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/da + [License](https://github.com/Dasharo/dasharo-blobs/blob/main/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) - [Intel Flash Descriptor based on v1.2 revision 4f6e917d](https://github.com/Dasharo/dasharo-blobs/blob/4f6e917d/msi/ms7e06/descriptor.bin) + [License](https://github.com/Dasharo/dasharo-blobs/blob/main/licenses/pv%20intel%20obl%20software%20license%20agreement%2011.2.2017.pdf) -- [Intel Firmware Support Package based on RPL-S C.1.C8.50 revision 3819544e](https://github.com/intel/FSP/tree/3819544e/RaptorLakeFspBinPkg/Client/RaptorLakeS) +- [Intel Firmware Support Package based on RPL-S C.0.C8.50 revision 3819544e](https://github.com/intel/FSP/tree/3819544e/RaptorLakeFspBinPkg/Client/RaptorLakeS) + [License](https://github.com/intel/FSP/blob/3819544e/FSP_License.pdf) - [Intel microcode based on 0x36 (for CPUIDs 00090672, 00090675, 000b06f2, 000b06f5), 0x12B (for CPUID 000b0671) revision 4f6e917d](https://github.com/Dasharo/dasharo-blobs/blob/4f6e917d/msi/ms7d25/microcode.bin) + [License](https://github.com/Dasharo/dasharo-blobs/blob/main/licenses/INTEL_FSP_SIC_LICENSE.txt) From c5a5d981a1dce4ed619f1824e7d428ea86ed1038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Mon, 19 May 2025 15:08:55 +0200 Subject: [PATCH 111/133] docs/variants/protectli_vp2430/releases.md: Fix newsletter button string MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- docs/variants/protectli_vp2430/releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/variants/protectli_vp2430/releases.md b/docs/variants/protectli_vp2430/releases.md index 86828f5779..c59a46f472 100644 --- a/docs/variants/protectli_vp2430/releases.md +++ b/docs/variants/protectli_vp2430/releases.md @@ -7,7 +7,7 @@ For details about our release process please read [Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). {{ subscribe_form("49abc4a2-0807-4720-aef2-b150ef701b30", -"Subscribe to NovaCustom NS5x/7x 12th Gen Dasharo Release Newsletter") }} +"Subscribe to Protectli Dasharo Release Newsletter") }} ## v0.9.0 - 2025-05-13 From ee4366494ac2c52b329dba149bfc2c6dd035ddef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Mon, 19 May 2025 15:16:17 +0200 Subject: [PATCH 112/133] docs/dev-proc/ci-checks.md: Remove orphan page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- docs/dev-proc/ci-checks.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/dev-proc/ci-checks.md diff --git a/docs/dev-proc/ci-checks.md b/docs/dev-proc/ci-checks.md deleted file mode 100644 index e69de29bb2..0000000000 From de714f88a4b1f167fc97df7b85eca0ee021b9b94 Mon Sep 17 00:00:00 2001 From: Artur Raglis Date: Mon, 19 May 2025 15:21:51 +0200 Subject: [PATCH 113/133] README.md: add guide to embedding subscribe forms Signed-off-by: Artur Raglis --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index 2a0a78f0db..5610162f86 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,25 @@ Embedding videos with in-line HTML `iframe` tag does not work. instead. To embed an video simply type the following in markdown: `![type:video](https://www.youtube.com/embed/LXb3EKWsInQ)` (example). +### Embedding subscribe forms + +It is possible to embed subscribe form for the selfhosted Listmonk mailing +lists. To do that, paste the custom macro content in the target markdown file: + +```md +{{ subscribe_form("FORM-ID", +"Button text") }} +``` +where: + +* `FORM-ID` - target mailing list form ID that can be found [here][lm-forms]. +* `Button text` - text to be shown on the button. + +Example for ODROID H4 subpage: [example code][h4-example] + +[lm-forms]: https://github.com/3mdeb/3mdeb-website/tree/main/static/subscribe +[h4-example]: https://github.com/Dasharo/docs/blob/38e0bbfa156575d2e4dda5d33bce00488f493fcf/docs/variants/hardkernel_odroid_h4/releases.md?plain=1#L19 + ## Navigation menu ### Supported hardware From 9e9fd8631561514ec6036311a35572a91f470991 Mon Sep 17 00:00:00 2001 From: Artur Raglis Date: Mon, 19 May 2025 15:29:33 +0200 Subject: [PATCH 114/133] README.md: fix pre-commit Signed-off-by: Artur Raglis --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5610162f86..aa922a0cac 100644 --- a/README.md +++ b/README.md @@ -125,10 +125,11 @@ lists. To do that, paste the custom macro content in the target markdown file: {{ subscribe_form("FORM-ID", "Button text") }} ``` + where: -* `FORM-ID` - target mailing list form ID that can be found [here][lm-forms]. -* `Button text` - text to be shown on the button. +- `FORM-ID` - target mailing list form ID that can be found [here][lm-forms]. +- `Button text` - text to be shown on the button. Example for ODROID H4 subpage: [example code][h4-example] From 5c9502e7c1d6abb46deaf5c4fe8572b5823cc894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 20 May 2025 14:36:48 +0200 Subject: [PATCH 115/133] variants/novacustom_nv4x_adl/releases.md: add full binaries for v1.7.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- docs/variants/novacustom_nv4x_adl/releases.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/variants/novacustom_nv4x_adl/releases.md b/docs/variants/novacustom_nv4x_adl/releases.md index 896bac4fee..dfad5b6ab2 100644 --- a/docs/variants/novacustom_nv4x_adl/releases.md +++ b/docs/variants/novacustom_nv4x_adl/releases.md @@ -64,6 +64,19 @@ Test results for this release can be found [sha256][novacustom_nv4x_adl_ec_v1.7.2.rom_hash]{.md-button} [sha256.sig][novacustom_nv4x_adl_ec_v1.7.2.rom_sig]{.md-button} +[novacustom_nv4x_adl_v1.7.2_full.rom][novacustom_nv4x_adl_v1.7.2_full.rom_file]{.md-button} +[sha256][novacustom_nv4x_adl_v1.7.2_full.rom_hash]{.md-button} +[sha256.sig][novacustom_nv4x_adl_v1.7.2_full.rom_sig]{.md-button} + +!!! warning + + Please use the _full binaries instead of the ones listed below. The below + binaries are preserved for historical purposes. + + Full binaries above contain all necessary blobs for platform operation. The + binaries below don't have them and flashing them incorrectly may result in + a brick. + [novacustom_nv4x_adl_v1.7.2.rom][novacustom_nv4x_adl_v1.7.2.rom_file]{.md-button} [sha256][novacustom_nv4x_adl_v1.7.2.rom_hash]{.md-button} [sha256.sig][novacustom_nv4x_adl_v1.7.2.rom_sig]{.md-button} @@ -81,6 +94,9 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [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 [novacustom_nv4x_adl_ec_v1.7.2.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.2/novacustom_nv4x_adl_ec_v1.7.2.rom.sha256.sig +[novacustom_nv4x_adl_v1.7.2_full.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.2/novacustom_nv4x_adl_v1.7.2_full.rom +[novacustom_nv4x_adl_v1.7.2_full.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.2/novacustom_nv4x_adl_v1.7.2_full.rom.sha256 +[novacustom_nv4x_adl_v1.7.2_full.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.2/novacustom_nv4x_adl_v1.7.2_full.rom.sha256.sig [novacustom_nv4x_adl_v1.7.2.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.2/novacustom_nv4x_adl_v1.7.2.rom [novacustom_nv4x_adl_v1.7.2.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.2/novacustom_nv4x_adl_v1.7.2.rom.sha256 [novacustom_nv4x_adl_v1.7.2.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.2/novacustom_nv4x_adl_v1.7.2.rom.sha256.sig From cad629520feba5df5470147b70cee0ac75aedf97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 11:44:57 +0200 Subject: [PATCH 116/133] variants/pc_engines/releases_seabios.md: remove fixed and changed from initial release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/pc_engines/releases_seabios.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/docs/variants/pc_engines/releases_seabios.md b/docs/variants/pc_engines/releases_seabios.md index e2fee6611f..13704aae23 100644 --- a/docs/variants/pc_engines/releases_seabios.md +++ b/docs/variants/pc_engines/releases_seabios.md @@ -16,6 +16,7 @@ Test results for this release can be found ### Added +- [apu2, apu3, apu4 and apu6 support added](https://github.com/Dasharo/dasharo-issues/issues/909) - Rebased with official coreboot repository commit 5a0207e (tag 24.05) - [coreboot 24.05: security/tpm: support compiling in multiple TPM drivers](https://doc.coreboot.org/releases/coreboot-24.05-relnotes.html#security-tpm-support-compiling-in-multiple-tpm-drivers) - [coreboot 24.02 and 24.02.01: lib/rtc: Fix off-by-one error in February day count in leap year](https://doc.coreboot.org/releases/coreboot-24.02-relnotes.html#lib-rtc-fix-off-by-one-error-in-february-day-count-in-leap-year) @@ -27,19 +28,12 @@ Test results for this release can be found - [coreboot 4.21: soc/amd: read domain resource window configuration from hardware](https://doc.coreboot.org/releases/coreboot-4.21-relnotes.html#soc-amd-read-domain-resource-window-configuration-from-hardware) - [coreboot 4.20.1: cpu/x86/smm: Add PCI resource store functionality](https://doc.coreboot.org/releases/coreboot-4.20.1-relnotes.html#cpu-x86-smm-add-pci-resource-store-functionality) - [coreboot 4.20.1: drivers/usb/acpi: Add USB _DSM method to enable/disable USB LPM per port](https://doc.coreboot.org/releases/coreboot-4.20.1-relnotes.html#drivers-usb-acpi-add-usb-dsm-method-to-enable-disable-usb-lpm-per-port) - -### Changed - - [Code base was moved to Dasharo Patchqueue Initiative](https://github.com/Dasharo/dasharo-pq?tab=readme-ov-file#background) - [Sign of Life date changed to 19700101 due to making Dasharo Patchqueue Initiative based build reproducible](https://github.com/Dasharo/dasharo-issues/issues/889) - toolchain updates GCC 13.2.0, CMake 3.27.7 - ACPI 6.4 specification compliance - sortbootorder update to v24.05.00.01 -### Removed - -- [apu1, apu5 and apu7 support removed](https://github.com/Dasharo/dasharo-issues/issues/909) - ### Known issues - [Limited test scope due to infrastructure recovery issues](https://github.com/Dasharo/dasharo-issues/issues/914) From 926f7ced8e28de25e5dd11bc1eddebf72b318fe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 11:55:16 +0200 Subject: [PATCH 117/133] variants/msi_z790/releases_heads.md: remove fixed and changed from initial release and add changes from uefi release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/msi_z790/releases_heads.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/variants/msi_z790/releases_heads.md b/docs/variants/msi_z790/releases_heads.md index 7b8b427952..bba109b30e 100644 --- a/docs/variants/msi_z790/releases_heads.md +++ b/docs/variants/msi_z790/releases_heads.md @@ -19,11 +19,14 @@ Test results for this release can be found ### Added +- MSI PRO Z790-P board support with the same feature set as PRO Z690-A +- [MSI FLASHBIOS recovery support](https://docs.dasharo.com/unified/msi/recovery/#using-msi-flashbios-button) +- [Raptor Lake-S CPU support](https://github.com/Dasharo/dasharo-issues/issues/130) - [Dual TPM feature in coreboot. When ME is disabled, fTPM becomes inactive as well and chipset will route the TPM traffic to SPI bus. coreboot will now probe for all possible TPMs and initialize the one that is currently active.](https://github.com/Dasharo/dasharo-issues/issues/113) - -### Changed - - [This is a Dasharo Pro Package release](https://docs.dasharo.com/dev-proc/versioning/#dasharo-pro-package-releases) +- [Updated microcode to newer version, refer to SBOM](https://github.com/coreboot/intel-microcode/commit/390edfb411ba7de8559ad40597c7acb6c6a1ea96) +- [Updated ME to newer version, refer to SBOM](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) +- [Make NVIDIA RTX 3060 spawn HD Audio device in Device Manager](https://github.com/Dasharo/dasharo-issues/issues/364) - Heads Linux is used as a payload - [Updated Flash Descriptor to enlarge BIOS region; refer to SBOM section below](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) - ME hardcoded to be HAP disabled for heads builds. Discrete SPI TPM in JTPM1 From ca31d50ad5e32824f5a2c2c6332da47625d4e910 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 11:56:03 +0200 Subject: [PATCH 118/133] variants/msi_z790/releases.md: remove fixed and changed from initial release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/msi_z790/releases.md | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/docs/variants/msi_z790/releases.md b/docs/variants/msi_z790/releases.md index 68d6d0977c..d9e06345b1 100644 --- a/docs/variants/msi_z790/releases.md +++ b/docs/variants/msi_z790/releases.md @@ -234,24 +234,17 @@ Test results for this release can be found - [Support for logo customization](https://docs.dasharo.com../../guides/logo-customization/) - UEFI 2.8 errata C compliance in EDKII fork - [Firmware Update Mode feature](https://docs.dasharo.com/dasharo-menu-docs/dasharo-system-features/#dasharo-security-options) - -### Changed - - [This is a Dasharo Pro Package release](https://docs.dasharo.com/dev-proc/versioning/#dasharo-pro-package-releases) - [Updated microcode to newer version, refer to SBOM](https://github.com/coreboot/intel-microcode/commit/390edfb411ba7de8559ad40597c7acb6c6a1ea96) - [Updated ME to newer version, refer to SBOM](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) - -### Fixed - -- [NVIDIA RTX 3060 does not spawn HD Audio device in Device Manager](https://github.com/Dasharo/dasharo-issues/issues/364) -- [MSI FLASHBIOS feature is not working](https://github.com/Dasharo/dasharo-issues/issues/131) -- [Reset to defaults with F9 causes the wrong settings to be restored](https://github.com/Dasharo/dasharo-issues/issues/355) -- [Popup with information about recovery mode is displayed after flashing with a valid binary](https://github.com/Dasharo/dasharo-issues/issues/269) -- Too low watchdog timeout value causing reset loops on DDR5 boards with - bigger amount of RAM -- [Chipset Watchdog timeout value does not change actual watchdog trigger time](https://github.com/Dasharo/dasharo-issues/issues/413) -- Missing ACPI objects errors in Linux dmesg -- Missing Setup Password option +- [Make NVIDIA RTX 3060 spawn HD Audio device in Device Manager](https://github.com/Dasharo/dasharo-issues/issues/364) +- [Reset to defaults with F9 causes the right settings to be restored](https://github.com/Dasharo/dasharo-issues/issues/355) +- [Popup with information about recovery mode is no longer displayed after flashing with a valid binary](https://github.com/Dasharo/dasharo-issues/issues/269) +- Too low watchdog timeout value no longer causing reset loops on DDR5 boards + with bigger amount of RAM +- [Chipset Watchdog timeout value changes actual watchdog trigger time](https://github.com/Dasharo/dasharo-issues/issues/413) +- No missing ACPI objects errors in Linux dmesg +- Setup Password option ### Binaries From b267cdca9288547921a0dd2c82a7668b62dee096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 11:59:14 +0200 Subject: [PATCH 119/133] variants/msi_z690/releases_heads.md: remove fixed and changed from initial release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/msi_z690/releases_heads.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/variants/msi_z690/releases_heads.md b/docs/variants/msi_z690/releases_heads.md index 87243a4248..e452ab207a 100644 --- a/docs/variants/msi_z690/releases_heads.md +++ b/docs/variants/msi_z690/releases_heads.md @@ -11,10 +11,10 @@ Test results for this release can be found ### Added +- Initial support for the MSI PRO Z690-A WIFI DDR4 platform +- [External HDMI and Display Port rear panel display support](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/31E-display-ports-and-lcd/) +- [USB support](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/306-usb-hid-and-msc-support/) - [Dual TPM feature in coreboot. When ME is disabled, fTPM becomes inactive as well and chipset will route the TPM traffic to SPI bus. coreboot will now probe for all possible TPMs and initialize the one that is currently active.](https://github.com/Dasharo/dasharo-issues/issues/113) - -### Changed - - [This is a Dasharo Pro Package release](https://docs.dasharo.com/dev-proc/versioning/#dasharo-pro-package-releases) - Heads Linux is used as a payload - [Updated Flash Descriptor to enlarge BIOS region; refer to SBOM section below](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) From 7733177bb1e8b8cd03496be10c69344d97490db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 12:28:16 +0200 Subject: [PATCH 120/133] variants/protectli_vp46xx/releases.md: remove fixed and changed from initial release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/protectli_vp46xx/releases.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/variants/protectli_vp46xx/releases.md b/docs/variants/protectli_vp46xx/releases.md index 77e26b7bef..c1087bc48c 100644 --- a/docs/variants/protectli_vp46xx/releases.md +++ b/docs/variants/protectli_vp46xx/releases.md @@ -328,10 +328,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - Customized setup menu keys - Configurable boot order - Configurable boot options - -### Changed - -- ME version to 14.0.47.1558 +- ME version 14.0.47.1558 ### Known issues From 92ecc3a2214f9405ddf0037747c30c878bafb64e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 12:53:27 +0200 Subject: [PATCH 121/133] variants/protectli_vp2410/releases.md: remove fixed and changed from initial release, add more info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/protectli_vp2410/releases.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/variants/protectli_vp2410/releases.md b/docs/variants/protectli_vp2410/releases.md index 8b5e5c77cd..d48a5a19d1 100644 --- a/docs/variants/protectli_vp2410/releases.md +++ b/docs/variants/protectli_vp2410/releases.md @@ -126,18 +126,18 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu ## v1.0.15 - 2022-05-31 -### Changed +### Added +- Initial support for the Protectli VP2410 platform +- TPM2 support +- [TPM Measured Boot](https://docs.dasharo.com/unified-test-documentation/dasharo-security/203-measured-boot/) +- [UEFI compatibility](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/30M-uefi-compatible-interface/) +- [Protectli boot logo](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/304-custom-logo/) +- [UEFI shell](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/30P-uefi-shell/) - Customized Network boot menu and strings - -### Fixed - -- SMBIOS memory information showing 0 MB DRAM in setup - -### Known issues - -- [USB 2.0 sticks not detected on VP2410](https://github.com/Dasharo/dasharo-issues/issues/99) -- [S3 resume does not work in Geminilake FSP](https://github.com/Dasharo/dasharo-issues/issues/27) +- [Dasharo SMBIOS compatibility](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/31L-smbios/) +- [USB 2.0 sticks support](https://github.com/Dasharo/dasharo-issues/issues/99) +- [S3 resume ](https://github.com/Dasharo/dasharo-issues/issues/27) ### Binaries From d18cce573aea6ae5cd171b116aef26cea4c1711a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 12:59:07 +0200 Subject: [PATCH 122/133] variants/protectli_v1000-series/releases.md: remove fixed and changed from initial release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/protectli_v1000-series/releases.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/docs/variants/protectli_v1000-series/releases.md b/docs/variants/protectli_v1000-series/releases.md index 2b656d29e7..6c7b60c436 100644 --- a/docs/variants/protectli_v1000-series/releases.md +++ b/docs/variants/protectli_v1000-series/releases.md @@ -31,9 +31,6 @@ Test results for this release can be found here: - SMBIOS fields and strings to reduce differences in SMBIOS between proprietary FW and Dasharo - Intel-specific HDA verbs, for proper audio functionality - -### Changed - - Disabled audio DSP - Disabled SATA due to lack of HW support - Rebased on official coreboot 4.21 @@ -48,14 +45,11 @@ Test results for this release can be found here: - Scope of reset to default hotkey to global in firmware setup - Disabled Intel HWP feature causing a decreased network bandwidth due to too aggressive CPU power savings, thus not reaching the required performance. - -### Fixed - -- Auto-boot timeout default value in setup not restored to proper value by F9 key -- Not all Secure Boot settings required a reset -- Errors related to WiFi L0 showing up in dmesg -- Not all Dasharo variables were measured at boot -- Windows default drivers not probing successfully due to SSID programming +- Auto-boot timeout default value in setup gets restored to proper value by F9 key +- All Secure Boot settings require a reset +- No errors related to WiFi L0 showing up in dmesg +- All Dasharo variables get measured at boot +- Windows default drivers probe successfully #### Binaries From 1ef09c69541edd9e2ca4debd139f166350cae425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 13:06:57 +0200 Subject: [PATCH 123/133] variants/protectli_fw6/releases.md: remove fixed and changed from initial release, add info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/protectli_fw6/releases.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/variants/protectli_fw6/releases.md b/docs/variants/protectli_fw6/releases.md index f1275ceb66..9d62368ff2 100644 --- a/docs/variants/protectli_fw6/releases.md +++ b/docs/variants/protectli_fw6/releases.md @@ -14,8 +14,12 @@ Test results for this platform can be found ## v1.0.14 - 2022-05-13 -### Changed +### Added +- Initial support for the Protectli FW6 platform +- SeaBIOS/legacy boot support +- iPXE Network Boot support +- [Protectli boot logo](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/304-custom-logo/) - Throttling temperature to 75 Celsius degrees ### Known issues From ebcd1926a5a7f6cfbdc3c3ebbd47f9a01b7e23c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 13:33:56 +0200 Subject: [PATCH 124/133] variants/novacustom_nv4x_adl/releases.md: remove fixed and changed from initial release 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 | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/docs/variants/novacustom_nv4x_adl/releases.md b/docs/variants/novacustom_nv4x_adl/releases.md index dfad5b6ab2..a809e1a97d 100644 --- a/docs/variants/novacustom_nv4x_adl/releases.md +++ b/docs/variants/novacustom_nv4x_adl/releases.md @@ -286,14 +286,11 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Vboot Recovery Popup](https://docs.dasharo.com/unified-test-documentation/dasharo-security/201-verified-boot/#vbo009001-recovery-boot-popup-firmware) - Fullscreen setup menu - [Open-source Embedded Controller Firmware](https://docs.dasharo.com/unified/novacustom/recovery/#ec-firmware-recovery) - -### Fixed - -- [The external headset connected to the jack slot doesn't work](https://github.com/Dasharo/dasharo-issues/issues/254) -- [ISO keyboard issue for non-US layouts NV4xMx](https://github.com/Dasharo/dasharo-issues/issues/259) -- [Sleep sometimes not working](https://github.com/Dasharo/dasharo-issues/issues/261) -- [The connected RJ45 cable to the Ethernet socket causes a hardware error on Windows 11](https://github.com/Dasharo/dasharo-issues/issues/264) -- [The touchpad ON/OFF switch Fn key is not functional](https://github.com/Dasharo/dasharo-issues/issues/38) +- [The external headset connected to the jack slot works properly](https://github.com/Dasharo/dasharo-issues/issues/254) +- [ISO keyboard works with non-US layouts NV4xMx](https://github.com/Dasharo/dasharo-issues/issues/259) +- [Sleep working consistently ](https://github.com/Dasharo/dasharo-issues/issues/261) +- [The connected RJ45 cable to the Ethernet socket working properly in Windows 11](https://github.com/Dasharo/dasharo-issues/issues/264) +- [Functional touchpad ON/OFF switch Fn key](https://github.com/Dasharo/dasharo-issues/issues/38) ### Known issues From 2f694453cbbebe16b88d23f4d3b0ac9513def26c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 13:36:02 +0200 Subject: [PATCH 125/133] variants/novacustom_nv4x_adl/releases_heads.md: remove fixed and changed from initial release, add info 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_heads.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/variants/novacustom_nv4x_adl/releases_heads.md b/docs/variants/novacustom_nv4x_adl/releases_heads.md index af96af76ca..a304870a50 100644 --- a/docs/variants/novacustom_nv4x_adl/releases_heads.md +++ b/docs/variants/novacustom_nv4x_adl/releases_heads.md @@ -51,8 +51,14 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/customer-key Test results for this release can be found [here](https://docs.google.com/spreadsheets/d/1yWZ--zFPIsQhXZByf7nJIrasQYuRSf1yCi60lY_RGsQ/edit#gid=2042954457). -### Changed - +### Added + +- Support for NovaCustom NV4x 12th Gen +- [Open-source Embedded Controller Firmware](https://docs.dasharo.com/unified/novacustom/recovery/#ec-firmware-recovery) +- [The external headset connected to the jack slot works properly](https://github.com/Dasharo/dasharo-issues/issues/254) +- [ISO keyboard works with non-US layouts NV4xMx](https://github.com/Dasharo/dasharo-issues/issues/259) +- [Sleep working consistently ](https://github.com/Dasharo/dasharo-issues/issues/261) +- [Functional touchpad ON/OFF switch Fn key](https://github.com/Dasharo/dasharo-issues/issues/38) - [This is a Dasharo Pro Package release](https://docs.dasharo.com/dev-proc/versioning/#dasharo-pro-package-releases) - Heads Linux is used as a payload From abb2bdf22418dcbea772971084fe6c3f4d03e72a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 13:39:18 +0200 Subject: [PATCH 126/133] variants/novacustom_v560tu/releases_heads.md: add info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- .../novacustom_v560tu/releases_heads.md | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/docs/variants/novacustom_v560tu/releases_heads.md b/docs/variants/novacustom_v560tu/releases_heads.md index 3dcf5bf3b8..7d8b475a37 100644 --- a/docs/variants/novacustom_v560tu/releases_heads.md +++ b/docs/variants/novacustom_v560tu/releases_heads.md @@ -16,8 +16,36 @@ Test results for this release can be found ### Added -- [This is a Dasharo Pro Package Release](https://docs.dasharo.com/dev-proc/versioning/#dasharo-entry-subscription-releases) -- Heads Linux is used as a payload +- Support for Novacustom V56 (v560tu) +- [Configured correct clock for GbE on Clevo/MTL-H](https://github.com/Dasharo/coreboot/commit/8554fcaac3e1b9790298ef658ec8ba03c5f9b497) +- [Fixed touchpad IRQ pin assignment on Clevo/MTL-H](https://github.com/Dasharo/coreboot/commit/5a28a0b82c13e41e147d082ab47ce287fa11ffda) +- [Adjusted ACPI configuration to fix missing CNVi pinmux](https://github.com/Dasharo/coreboot/commit/41de74e14e802aec65ea4e8538577a27b4269882) +- [Meteor Lake graphics operations integrated into SoC](https://github.com/Dasharo/coreboot/commit/ea0d2ab2daea6f17506c3da87aae4783db7df53d) +- [Clevo/MTL-H PCIe root port flags added](https://github.com/Dasharo/coreboot/commit/6757a4679e2d4a1ebffbcf8d404fb85b5cf2154d) +- [Windows BSOD caused by missing ACPI device names](https://github.com/Dasharo/coreboot/commit/160fa32c8493e88f67e5167abdc08b2870d366f2) +- [RTC failure workaround for MRC fastboot](https://github.com/Dasharo/coreboot/commit/d7eb079076fc5213d525468425e4def12bf6c204) +- [SPD size correctly set for Clevo/MTL-H](https://github.com/Dasharo/coreboot/commit/041ef28b686417204cd3850731ea4a9ab1c8a7a7) +- [Corrected temperature control offsets in Meteor Lake](https://github.com/Dasharo/coreboot/commit/c835072d2fa67be113631efb53ad85a68c24889d) +- [Fixed duplicate temperature symbol in Kconfig](https://github.com/Dasharo/coreboot/commit/c835072d2fa67be113631efb53ad85a68c24889d) +- [Introduced Quiet Mode for reduced technical output in logs](https://github.com/linuxboot/heads/pull/1875) +- [Added TPM extend operations logging while maintaining quiet mode](https://github.com/linuxboot/heads/pull/1875) +- [Added support for GPG Admin/User PIN output grabbing for Nitrokey HOTP verification](https://github.com/Nitrokey/nitrokey-hotp-verification/issues/38) +- [Integrated EFF Diceware short wordlist v2 for easier passphrase generation](https://www.eff.org/dice) +- [Introduced automatic Secrets App reset logic for Nitrokey 3](https://github.com/Nitrokey/nitrokey-hotp-verification/pull/43) +- [Unified and enhanced passphrase generation logic in recovery shell](https://github.com/linuxboot/heads/pull/1875) +- Quiet Mode now logs all technical details to /tmp/debug.log instead of + showing them in the console +- Improved TPM2 primary handle debugging and error handling +- Refactored the OEM Factory Reset process to clarify mode-based security implications +- Improved kexec boot configuration handling with enhanced security warnings +- [Transitioned from `ash` shell to `bash` for improved scripting consistency](https://github.com/linuxboot/heads/pull/1875) +- Suppressed unnecessary grep errors for missing `/etc/config.user` +- Resolved logging inconsistencies when performing TPM resets +- [Fixed Secure App PIN handling during Nitrokey 3 +re-ownership](https://github.com/Nitrokey/nitrokey-hotp-verification/pull/43) +- Corrected Diceware dictionary parsing and selection method for unbiased +passphrase generation +- Eliminated redundant USB Security dongle detection messages ### Known issues From 4e529facf4561eec9733696ba0ad30e4a225d188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 13:40:02 +0200 Subject: [PATCH 127/133] variants/: pre-commit fixes 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 | 2 +- docs/variants/novacustom_nv4x_adl/releases_heads.md | 2 +- docs/variants/protectli_vp2410/releases.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/variants/novacustom_nv4x_adl/releases.md b/docs/variants/novacustom_nv4x_adl/releases.md index a809e1a97d..0b13391e90 100644 --- a/docs/variants/novacustom_nv4x_adl/releases.md +++ b/docs/variants/novacustom_nv4x_adl/releases.md @@ -288,7 +288,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [Open-source Embedded Controller Firmware](https://docs.dasharo.com/unified/novacustom/recovery/#ec-firmware-recovery) - [The external headset connected to the jack slot works properly](https://github.com/Dasharo/dasharo-issues/issues/254) - [ISO keyboard works with non-US layouts NV4xMx](https://github.com/Dasharo/dasharo-issues/issues/259) -- [Sleep working consistently ](https://github.com/Dasharo/dasharo-issues/issues/261) +- [Sleep working consistently](https://github.com/Dasharo/dasharo-issues/issues/261) - [The connected RJ45 cable to the Ethernet socket working properly in Windows 11](https://github.com/Dasharo/dasharo-issues/issues/264) - [Functional touchpad ON/OFF switch Fn key](https://github.com/Dasharo/dasharo-issues/issues/38) diff --git a/docs/variants/novacustom_nv4x_adl/releases_heads.md b/docs/variants/novacustom_nv4x_adl/releases_heads.md index a304870a50..eec9eef660 100644 --- a/docs/variants/novacustom_nv4x_adl/releases_heads.md +++ b/docs/variants/novacustom_nv4x_adl/releases_heads.md @@ -57,7 +57,7 @@ Test results for this release can be found - [Open-source Embedded Controller Firmware](https://docs.dasharo.com/unified/novacustom/recovery/#ec-firmware-recovery) - [The external headset connected to the jack slot works properly](https://github.com/Dasharo/dasharo-issues/issues/254) - [ISO keyboard works with non-US layouts NV4xMx](https://github.com/Dasharo/dasharo-issues/issues/259) -- [Sleep working consistently ](https://github.com/Dasharo/dasharo-issues/issues/261) +- [Sleep working consistently](https://github.com/Dasharo/dasharo-issues/issues/261) - [Functional touchpad ON/OFF switch Fn key](https://github.com/Dasharo/dasharo-issues/issues/38) - [This is a Dasharo Pro Package release](https://docs.dasharo.com/dev-proc/versioning/#dasharo-pro-package-releases) - Heads Linux is used as a payload diff --git a/docs/variants/protectli_vp2410/releases.md b/docs/variants/protectli_vp2410/releases.md index d48a5a19d1..c72ed5a969 100644 --- a/docs/variants/protectli_vp2410/releases.md +++ b/docs/variants/protectli_vp2410/releases.md @@ -137,7 +137,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - Customized Network boot menu and strings - [Dasharo SMBIOS compatibility](https://docs.dasharo.com/unified-test-documentation/dasharo-compatibility/31L-smbios/) - [USB 2.0 sticks support](https://github.com/Dasharo/dasharo-issues/issues/99) -- [S3 resume ](https://github.com/Dasharo/dasharo-issues/issues/27) +- [S3 resume](https://github.com/Dasharo/dasharo-issues/issues/27) ### Binaries From 976977af6f13c1f6c6295d2abcb96618ef0fcdea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 14:20:14 +0200 Subject: [PATCH 128/133] docs/variants: fix missing non-public versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/dell_optiplex/releases.md | 2 ++ docs/variants/novacustom_ns5x_adl/releases.md | 2 ++ docs/variants/novacustom_ns5x_tgl/releases.md | 2 ++ docs/variants/novacustom_nv4x_adl/releases.md | 2 ++ docs/variants/novacustom_nv4x_tgl/releases.md | 6 ++++++ docs/variants/protectli_fw6/releases.md | 2 ++ docs/variants/protectli_v1000-series/releases.md | 2 ++ docs/variants/protectli_vp2410/releases.md | 2 ++ docs/variants/protectli_vp46xx/releases.md | 2 ++ 9 files changed, 22 insertions(+) diff --git a/docs/variants/dell_optiplex/releases.md b/docs/variants/dell_optiplex/releases.md index caa7054acd..38f60a2a36 100644 --- a/docs/variants/dell_optiplex/releases.md +++ b/docs/variants/dell_optiplex/releases.md @@ -70,3 +70,5 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/blob/master/dasharo/dell [dell_optiplex_7010_9010_v0.1.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/dell_optiplex_7010_9010/v0.1.1/dell_optiplex_7010_9010_v0.1.1.rom.sha256 [dell_optiplex_7010_9010_v0.1.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/dell_optiplex_7010_9010/v0.1.1/dell_optiplex_7010_9010_v0.1.1.rom.sha256.sig + +## v0.1.0 - Non-public engineering release diff --git a/docs/variants/novacustom_ns5x_adl/releases.md b/docs/variants/novacustom_ns5x_adl/releases.md index 32866eedaf..a8013fe367 100644 --- a/docs/variants/novacustom_ns5x_adl/releases.md +++ b/docs/variants/novacustom_ns5x_adl/releases.md @@ -179,6 +179,8 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [novacustom_ns5x_adl_v1.7.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.7.1/novacustom_ns5x_adl_v1.7.1.rom.sha256 [novacustom_ns5x_adl_v1.7.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_adl/v1.7.1/novacustom_ns5x_adl_v1.7.1.rom.sha256.sig +## v1.7.0 - Non-public engineering release + ## v1.6.0 - 2023-04-07 Test results for this release can be found diff --git a/docs/variants/novacustom_ns5x_tgl/releases.md b/docs/variants/novacustom_ns5x_tgl/releases.md index 6f11835e1e..8f1f111a1d 100644 --- a/docs/variants/novacustom_ns5x_tgl/releases.md +++ b/docs/variants/novacustom_ns5x_tgl/releases.md @@ -183,6 +183,8 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [novacustom_ns5x_tgl_v1.5.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_tgl/v1.5.1/novacustom_ns5x_tgl_v1.5.1.rom.sha256 [novacustom_ns5x_tgl_v1.5.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_tgl/v1.5.1/novacustom_ns5x_tgl_v1.5.1.rom.sha256.sig +## v1.5.0 - Non-public engineering release + ## v1.4.0 - 2023-03-02 ### Added diff --git a/docs/variants/novacustom_nv4x_adl/releases.md b/docs/variants/novacustom_nv4x_adl/releases.md index 0b13391e90..6414f0d609 100644 --- a/docs/variants/novacustom_nv4x_adl/releases.md +++ b/docs/variants/novacustom_nv4x_adl/releases.md @@ -201,6 +201,8 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [novacustom_nv4x_adl_v1.7.1_dev_signed.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.1/novacustom_nv4x_adl_v1.7.1_dev_signed.rom.sha256 [novacustom_nv4x_adl_v1.7.1_dev_signed.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_adl/v1.7.1/novacustom_nv4x_adl_v1.7.1_dev_signed.rom.sha256.sig +## v1.7.0 - Non-public engineering release + ## v1.6.0 - 2023-04-19 ### Added diff --git a/docs/variants/novacustom_nv4x_tgl/releases.md b/docs/variants/novacustom_nv4x_tgl/releases.md index 351f4de20a..fe56ec20b5 100644 --- a/docs/variants/novacustom_nv4x_tgl/releases.md +++ b/docs/variants/novacustom_nv4x_tgl/releases.md @@ -183,6 +183,8 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [novacustom_nv4x_tgl_v1.5.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_tgl/v1.5.1/novacustom_nv4x_tgl_v1.5.1.rom.sha256 [novacustom_nv4x_tgl_v1.5.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_nv4x_tgl/v1.5.1/novacustom_nv4x_tgl_v1.5.1.rom.sha256.sig +## v1.5.0 - Non-public engineering release + ## v1.4.0 - 2023-02-24 Test results for this release can be found @@ -715,3 +717,7 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu - [coreboot 4.14 (with additional commits for Clevo NV41MZ board support)](https://gitlab.com/novacustom/coreboot/-/compare/4.14...v0.1.1?from_project_id=29249618) - [EDK2](https://github.com/MrChromebox/edk2/commit/659ed4cb983a66ec241c05f42b69ad4d2e47b714) + +[newsletter]: https://3mdeb.com/subscribe/nc_nv4x_11th.html + +## v0.1.0 .. v0.1.1: Non-public engineering releases diff --git a/docs/variants/protectli_fw6/releases.md b/docs/variants/protectli_fw6/releases.md index 9d62368ff2..6f1994a240 100644 --- a/docs/variants/protectli_fw6/releases.md +++ b/docs/variants/protectli_fw6/releases.md @@ -58,3 +58,5 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [v1.0.14_rom]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom [v1.0.14_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom.sha256 [v1.0.14_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom.sha256.sig + +## v1.0.0 .. v1.0.13: Non-public engineering releases diff --git a/docs/variants/protectli_v1000-series/releases.md b/docs/variants/protectli_v1000-series/releases.md index 6c7b60c436..fc5ae0bf16 100644 --- a/docs/variants/protectli_v1000-series/releases.md +++ b/docs/variants/protectli_v1000-series/releases.md @@ -99,3 +99,5 @@ using [this key](https://github.com/3mdeb/3mdeb-secpack/raw/master/customer-keys [protectli_v1610_v0.9.3.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_jsl/v0.9.3/protectli_v1610_v0.9.3.rom [protectli_v1610_v0.9.3.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_jsl/v0.9.3/protectli_v1610_v0.9.3.rom.sha256 [protectli_v1610_v0.9.3.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/protectli_vault_jsl/v0.9.3/protectli_v1610_v0.9.3.rom.sha256.sig + +## v0.9.0 .. v0.9.2 - Non-public engineering releases diff --git a/docs/variants/protectli_vp2410/releases.md b/docs/variants/protectli_vp2410/releases.md index c72ed5a969..6f1d45e782 100644 --- a/docs/variants/protectli_vp2410/releases.md +++ b/docs/variants/protectli_vp2410/releases.md @@ -170,3 +170,5 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [v1.0.15_rom]: https:/3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.0.15/protectli_vault_glk_v1.0.15.rom [v1.0.15_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.0.15/protectli_vault_glk_v1.0.15.rom.sha256 [v1.0.15_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.0.15/protectli_vault_glk_v1.0.15.rom.sha256.sig + +## v1.0.0 .. v1.0.14: Non-public engineering releases diff --git a/docs/variants/protectli_vp46xx/releases.md b/docs/variants/protectli_vp46xx/releases.md index c1087bc48c..e7e170b477 100644 --- a/docs/variants/protectli_vp46xx/releases.md +++ b/docs/variants/protectli_vp46xx/releases.md @@ -379,3 +379,5 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [v1.0.13_rom]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/protectli_vault_cml_v1.0.13.rom [v1.0.13_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/protectli_vault_cml_v1.0.13.rom.sha256 [v1.0.13_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/protectli_vault_cml_v1.0.13.rom.sha256.sig + +## v1.0.0 .. v1.0.12: Non-public engineering releases From 9d31c8c58c1a68d64dfffb59eadab47c7972e557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 3 Apr 2025 14:33:28 +0200 Subject: [PATCH 129/133] variants/: minor wording fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/variants/msi_z690/releases_heads.md | 2 +- docs/variants/msi_z790/releases.md | 8 ++++---- docs/variants/msi_z790/releases_heads.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/variants/msi_z690/releases_heads.md b/docs/variants/msi_z690/releases_heads.md index e452ab207a..e8fc0b0573 100644 --- a/docs/variants/msi_z690/releases_heads.md +++ b/docs/variants/msi_z690/releases_heads.md @@ -17,7 +17,7 @@ Test results for this release can be found - [Dual TPM feature in coreboot. When ME is disabled, fTPM becomes inactive as well and chipset will route the TPM traffic to SPI bus. coreboot will now probe for all possible TPMs and initialize the one that is currently active.](https://github.com/Dasharo/dasharo-issues/issues/113) - [This is a Dasharo Pro Package release](https://docs.dasharo.com/dev-proc/versioning/#dasharo-pro-package-releases) - Heads Linux is used as a payload -- [Updated Flash Descriptor to enlarge BIOS region; refer to SBOM section below](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) +- [Flash Descriptor with larger BIOS region; refer to SBOM section below](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) - ME hardcoded to be HAP disabled for heads builds. Discrete SPI TPM in JTPM1 header is required to provide TPM functionality. diff --git a/docs/variants/msi_z790/releases.md b/docs/variants/msi_z790/releases.md index d9e06345b1..3ccffad544 100644 --- a/docs/variants/msi_z790/releases.md +++ b/docs/variants/msi_z790/releases.md @@ -235,12 +235,12 @@ Test results for this release can be found - UEFI 2.8 errata C compliance in EDKII fork - [Firmware Update Mode feature](https://docs.dasharo.com/dasharo-menu-docs/dasharo-system-features/#dasharo-security-options) - [This is a Dasharo Pro Package release](https://docs.dasharo.com/dev-proc/versioning/#dasharo-pro-package-releases) -- [Updated microcode to newer version, refer to SBOM](https://github.com/coreboot/intel-microcode/commit/390edfb411ba7de8559ad40597c7acb6c6a1ea96) -- [Updated ME to newer version, refer to SBOM](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) +- [Use new microcode version, refer to SBOM](https://github.com/coreboot/intel-microcode/commit/390edfb411ba7de8559ad40597c7acb6c6a1ea96) +- [Use new ME version, refer to SBOM](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) - [Make NVIDIA RTX 3060 spawn HD Audio device in Device Manager](https://github.com/Dasharo/dasharo-issues/issues/364) - [Reset to defaults with F9 causes the right settings to be restored](https://github.com/Dasharo/dasharo-issues/issues/355) -- [Popup with information about recovery mode is no longer displayed after flashing with a valid binary](https://github.com/Dasharo/dasharo-issues/issues/269) -- Too low watchdog timeout value no longer causing reset loops on DDR5 boards +- [Popup with information about recovery mode is not displayed after flashing with a valid binary](https://github.com/Dasharo/dasharo-issues/issues/269) +- Proper watchdog timeout value to avoid reset loops on DDR5 boards with bigger amount of RAM - [Chipset Watchdog timeout value changes actual watchdog trigger time](https://github.com/Dasharo/dasharo-issues/issues/413) - No missing ACPI objects errors in Linux dmesg diff --git a/docs/variants/msi_z790/releases_heads.md b/docs/variants/msi_z790/releases_heads.md index bba109b30e..49adf734b4 100644 --- a/docs/variants/msi_z790/releases_heads.md +++ b/docs/variants/msi_z790/releases_heads.md @@ -24,11 +24,11 @@ Test results for this release can be found - [Raptor Lake-S CPU support](https://github.com/Dasharo/dasharo-issues/issues/130) - [Dual TPM feature in coreboot. When ME is disabled, fTPM becomes inactive as well and chipset will route the TPM traffic to SPI bus. coreboot will now probe for all possible TPMs and initialize the one that is currently active.](https://github.com/Dasharo/dasharo-issues/issues/113) - [This is a Dasharo Pro Package release](https://docs.dasharo.com/dev-proc/versioning/#dasharo-pro-package-releases) -- [Updated microcode to newer version, refer to SBOM](https://github.com/coreboot/intel-microcode/commit/390edfb411ba7de8559ad40597c7acb6c6a1ea96) -- [Updated ME to newer version, refer to SBOM](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) +- [Use new microcode version, refer to SBOM](https://github.com/coreboot/intel-microcode/commit/390edfb411ba7de8559ad40597c7acb6c6a1ea96) +- [Use new ME version, refer to SBOM](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) - [Make NVIDIA RTX 3060 spawn HD Audio device in Device Manager](https://github.com/Dasharo/dasharo-issues/issues/364) - Heads Linux is used as a payload -- [Updated Flash Descriptor to enlarge BIOS region; refer to SBOM section below](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) +- [Flash Descriptor with larger BIOS region; refer to SBOM section below](https://github.com/Dasharo/dasharo-blobs/tree/main/msi/ms7e06) - ME hardcoded to be HAP disabled for heads builds. Discrete SPI TPM in JTPM1 header is required to provide TPM functionality. From 97e6696aa1a7e72677a5b82a24a830ab9d57310f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Tue, 29 Apr 2025 09:44:58 +0200 Subject: [PATCH 130/133] docs/variants/protectli: Add missing release notes for FW6, VP46XX and VP2410 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- docs/variants/protectli_fw6/releases.md | 169 ++++++++++++++++++++- docs/variants/protectli_vp2410/releases.md | 105 ++++++++++++- docs/variants/protectli_vp46xx/releases.md | 26 +++- 3 files changed, 296 insertions(+), 4 deletions(-) diff --git a/docs/variants/protectli_fw6/releases.md b/docs/variants/protectli_fw6/releases.md index 6f1994a240..5086cb2ac8 100644 --- a/docs/variants/protectli_fw6/releases.md +++ b/docs/variants/protectli_fw6/releases.md @@ -12,6 +12,10 @@ For details about our release process please read Test results for this platform can be found [here](https://docs.google.com/spreadsheets/d/1wI0qBSLdaluayYsm_lIa9iJ9LnPnCOZ9eNOyrKSc-j4/edit?usp=sharing). +> The missing versions were assigned to different platforms interchangeably. +> See [Protectli VP46XX releases](../protectli_vp46xx/releases.md) and +> [Protectli VP2410 releases](../protectli_vp2410/releases.md). + ## v1.0.14 - 2022-05-13 ### Added @@ -59,4 +63,167 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [v1.0.14_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom.sha256 [v1.0.14_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_kbl/v1.0.14/protectli_vault_kbl_v1.0.14.rom.sha256.sig -## v1.0.0 .. v1.0.13: Non-public engineering releases +## v1.0.11 - 2021-10-13 + +### Added + +- Support for IT8613 Super I/O on FW6 +- iPXE support for I210 Gigabit Network Connection on FW6 + +### Changed + +- Unified FW6A/B/C and FW6D/E sources + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.12 revision 87f9fc85](https://github.com/Dasharo/coreboot/compare/87f9fc85...protectli_vault_kbl_v1.0.11) +- [SeaBIOS v1.0.6 based on rel-1.12.1 revision 171fc897](https://github.com/Dasharo/SeaBIOS/compare/171fc897...v1.0.6) +- [iPXE 2019.3 stable revision ebf2eaf5](https://github.com/ipxe/ipxe/commits/ebf2eaf5) +- [MemTest86+ revision dd5b4ff2](https://review.coreboot.org/admin/repos/memtest86plus,general) + +## v1.0.7 - 2021-05-12 + +### Fixed + +- [Platform doesn't reboot after flashing](https://github.com/Dasharo/dasharo-issues/issues/7) +- [CPU turbo has been disabled on FW6E due to issues with Linux kernel booting](https://github.com/Dasharo/dasharo-issues/issues/6) + Both platform have passed extensive OS booting and stress testing. + +### Changed + +- CPU Turbo has been enabled on FW6E + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.12 revision 87f9fc85](https://github.com/Dasharo/coreboot/compare/87f9fc85...protectli-firewall-1.0.7) +- [SeaBIOS v1.0.6 based on rel-1.12.1 revision 171fc897](https://github.com/Dasharo/SeaBIOS/compare/171fc897...v1.0.6) +- [iPXE 2019.3 stable revision ebf2eaf5](https://github.com/ipxe/ipxe/commits/ebf2eaf5) +- [MemTest86+ revision dd5b4ff2](https://review.coreboot.org/admin/repos/memtest86plus,general) + +## v1.0.6 - 2021-04-23 + +### Fixed + +- [Platform doesn't reboot after flashing](https://github.com/Dasharo/dasharo-issues/issues/7) + +### Changed + +- CPU Turbo has been enabled on FW6D + +### Known issues + +- [CPU turbo has been disabled on FW6E due to issues with Linux kernel booting](https://github.com/Dasharo/dasharo-issues/issues/6) + The problem also reproduced with AMI BIOS. Disabling Turbo Mode is a workaround. + Tested version that were affected: + + Ubuntu 16.04.6 desktop i386 with Linux kernel 4.15.0 + + Ubuntu 20.04.1 desktop amd64 with Linux kernel 5.4.0 + + Debian live 10.7.0 amd64 cinnamon with Linux kernel 4.19.0 + + Note that the issue may affect more kernels and distros, thus the turbo is + kept disabled temporarily on FW6E. + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.12 revision 87f9fc85](https://github.com/Dasharo/coreboot/compare/87f9fc85...protectli-firewall-1.0.6) +- [SeaBIOS v1.0.6 based on rel-1.12.1 revision 171fc897](https://github.com/Dasharo/SeaBIOS/compare/171fc897...v1.0.6) +- [iPXE 2019.3 stable revision ebf2eaf5](https://github.com/ipxe/ipxe/commits/ebf2eaf5) +- [MemTest86+ revision dd5b4ff2](https://review.coreboot.org/admin/repos/memtest86plus,general) + +## v1.0.4 - 2021-04-02 + +### Changed + +- DMI BIOS version is now in format: `coreboot 4.X, Dasharo 1.0.Y` +- The boot order has been changed to: mSATA, SSD, USB, iPXE + +### Known issues + +- [CPU turbo has been disabled due to issues with Linux kernel booting](https://github.com/Dasharo/dasharo-issues/issues/6) + The problem also reproduced with AMI BIOS. Disabling Turbo Mode is a workaround. + Tested version that were affected: + + Ubuntu 16.04.6 desktop i386 with Linux kernel 4.15.0 + + Ubuntu 20.04.1 desktop amd64 with Linux kernel 5.4.0 + + Debian live 10.7.0 amd64 cinnamon with Linux kernel 4.19.0 + + Note that the issue may affect more kernels and distros, thus the turbo is + kept disabled temporarily. +- [Platform doesn't reboot after flashing](https://github.com/Dasharo/dasharo-issues/issues/7) + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.12 revision 87f9fc85](https://github.com/Dasharo/coreboot/compare/87f9fc85...protectli-firewall-1.0.4) +- [SeaBIOS v1.0.6 based on rel-1.12.1 revision 171fc897](https://github.com/Dasharo/SeaBIOS/compare/171fc897...v1.0.6) +- [iPXE 2019.3 stable revision ebf2eaf5](https://github.com/ipxe/ipxe/commits/ebf2eaf5) +- [MemTest86+ revision dd5b4ff2](https://review.coreboot.org/admin/repos/memtest86plus,general) + +## v1.0.2 - 2021-03-25 + +### Fixed + +- [MemTest86+ payload which did not work correctly on FW6D](https://github.com/Dasharo/dasharo-issues/issues/8) + +### Known issues + +- [CPU turbo has been disabled due to issues with Linux kernel booting](https://github.com/Dasharo/dasharo-issues/issues/6) + The problem also reproduced with AMI BIOS. Disabling Turbo Mode is a workaround. + Tested version that were affected: + + Ubuntu 16.04.6 desktop i386 with Linux kernel 4.15.0 + + Ubuntu 20.04.1 desktop amd64 with Linux kernel 5.4.0 + + Debian live 10.7.0 amd64 cinnamon with Linux kernel 4.19.0 + + Note that the issue may affect more kernels and distros, thus the turbo is + kept disabled temporarily. + +- [Platform doesn't reboot after flashing](https://github.com/Dasharo/dasharo-issues/issues/7) + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.12 revision 87f9fc85](https://github.com/Dasharo/coreboot/compare/87f9fc85...protectli-firewall-1.0.2) +- [SeaBIOS v1.0.6 based on rel-1.12.1 revision 171fc897](https://github.com/Dasharo/SeaBIOS/compare/171fc897...v1.0.6) +- [iPXE 2019.3 stable revision ebf2eaf5](https://github.com/ipxe/ipxe/commits/ebf2eaf5) +- [MemTest86+ revision dd5b4ff2](https://review.coreboot.org/admin/repos/memtest86plus,general) + +## v1.0.1 - 2021-02-19 + +### Fixed + +- [Fixed an issue with Linux kernel booting and resetting in the middle of launching](https://github.com/Dasharo/dasharo-issues/issues/6) +- [Issues with hangs after reboot](https://github.com/Dasharo/dasharo-issues/issues/7) + +### Changed + +- SeaBIOS displays coreboot version instead of Dasharo Firewall now +- DMI tables display the coreboot version besides the Dasharo Firewall version + in the BIOS information + +### Removed + +- [MemTest86+ payload which did not work correctly on FW6D](https://github.com/Dasharo/dasharo-issues/issues/8) + +### Known issues + +- [CPU turbo has been disabled due to issues with Linux kernel booting](https://github.com/Dasharo/dasharo-issues/issues/6) + The problem also reproduced with AMI BIOS. Disabling Turbo Mode is a workaround. + Tested version that were affected: + + Ubuntu 16.04.6 desktop i386 with Linux kernel 4.15.0 + + Ubuntu 20.04.1 desktop amd64 with Linux kernel 5.4.0 + + Debian live 10.7.0 amd64 cinnamon with Linux kernel 4.19.0 + + Note that the issue may affect more kernels and distros, thus the turbo is + kept disabled temporarily. + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.12 revision 87f9fc85](https://github.com/Dasharo/coreboot/compare/87f9fc85...protectli-firewall-1.0.1) +- [SeaBIOS v1.0.6 based on rel-1.12.1 revision 171fc897](https://github.com/Dasharo/SeaBIOS/compare/171fc897...v1.0.6) +- [iPXE 2019.3 stable revision ebf2eaf5](https://github.com/ipxe/ipxe/commits/ebf2eaf5) + +## v1.0.0 - 2021-02-02 + +### Added + +- FW6D open source firmware support with Dasharo Firewall version 1.0.0 + +### Known issues + +None diff --git a/docs/variants/protectli_vp2410/releases.md b/docs/variants/protectli_vp2410/releases.md index 6f1d45e782..e1203860dd 100644 --- a/docs/variants/protectli_vp2410/releases.md +++ b/docs/variants/protectli_vp2410/releases.md @@ -12,6 +12,10 @@ For details about our release process please read Test results for this platform can be found [here](https://docs.google.com/spreadsheets/d/1wSE6xA3K3nXewwLn5lV39_2wZL1kg5AkGb4mvmG3bwE/edit#gid=1033426620). +> The missing versions before v1.0.15 were assigned to different platforms +> interchangeably. See [Protectli FW6 releases](../protectli_fw6/releases.md) +> and [Protectli VP46XX releases](../protectli_vp46xx/releases.md). + ## v1.1.1 - 2025-01-23 Test results for this release can be found @@ -171,4 +175,103 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [v1.0.15_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.0.15/protectli_vault_glk_v1.0.15.rom.sha256 [v1.0.15_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_glk/v1.0.15/protectli_vault_glk_v1.0.15.rom.sha256.sig -## v1.0.0 .. v1.0.14: Non-public engineering releases +## v1.0.10 - 2021-09-29 + +### Changed + +- Update ME image to fix VR issues + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.13 revision a4cd9117](https://github.com/Dasharo/coreboot/compare/a4cd9117...protectli_vault_glk_v1.0.10) +- [Dasharo UEFI based on TianoCore EDK2 edk2-stable202011](https://github.com/Dasharo/edk2/compare/dd7523b5b123de6f0730f2f2abb207f2a5c1ccd4...615f9f4b67876df08dcf872d311dd73884a449e3) +- [EFI iPXE 1.20.1+ (g9b25)](https://github.com/ipxe/ipxe/commit/9b25f6e5cf517f426de80ede618398ef01e385f9) + +## v1.0.9 - 2021-07-20 + +### Changed + +- SMBIOS Product name to VP2410 +- UEFI Setup key changed to DEL + +### Fixed + +- USB detection issues + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.13 revision a4cd9117](https://github.com/Dasharo/coreboot/compare/a4cd9117...protectli_vault_glk_v1.0.9) +- [Dasharo UEFI based on TianoCore EDK2 edk2-stable202011](https://github.com/Dasharo/edk2/compare/dd7523b5b123de6f0730f2f2abb207f2a5c1ccd4...615f9f4b67876df08dcf872d311dd73884a449e3) +- [EFI iPXE 1.20.1+ (g9b25)](https://github.com/ipxe/ipxe/commit/9b25f6e5cf517f426de80ede618398ef01e385f9) + +## v1.0.8 - 2021-05-28 + +### Added + +- UEFI compatible interface +- iPXE network boot +- UEFI Shell +- TPM2 menu +- UEFI Measured Boot +- Persistent boot options + +### Fixed + +- [The VGA text mode console does not work in SeaBIOS.](https://github.com/Dasharo/dasharo-issues/issues/13) + UEFI graphics works well. +- [VT-d (IOMMU) is not being correctly configured by FSP.](https://github.com/Dasharo/dasharo-issues/issues/14) +- Flashrom did not support Geminilake chipset. The upstream support is already there. +- [Fastboot is not yet working.](https://github.com/Dasharo/dasharo-issues/issues/15) + FSP fastboot has been fixed to work with coreboot +- [Display does not work in FreeBSD and other BSD systems](https://github.com/Dasharo/dasharo-issues/issues/16) + UEFI graphics works in FreeBSD. +- [Linux reports non-working TPM interrupt.](https://github.com/Dasharo/dasharo-issues/issues/12) + +### Known issues + +- USB keyboard cannot wake platform from S3 suspend. This s a limitation of the + hardware design which routes only 5V power supply available in full powered + state. Waking the platform from S3 state is only possible with power button + and Wake-on-LAN. +- [S3 resume does not work in FSP](https://github.com/Dasharo/dasharo-issues/issues/27). + For power saving it is recommended to use modern S0 idle states, aka s2idle + as explained in the [Linux kernel documentation](https://www.kernel.org/doc/html/v5.0/admin-guide/pm/sleep-states.html). + S0 idle is known to be more efficient in saving power. Additionally the + keyboard can wake the platform from s2idle state since the power is not cut + off from USB devices in this state. + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.13 revision a4cd9117](https://github.com/Dasharo/coreboot/compare/a4cd9117...protectli-firewall-1.0.8) +- [Dasharo UEFI based on TianoCore EDK2 edk2-stable202011](https://github.com/Dasharo/edk2/compare/dd7523b5b123de6f0730f2f2abb207f2a5c1ccd4...615f9f4b67876df08dcf872d311dd73884a449e3) +- [EFI iPXE 1.20.1+ (g9b25)](https://github.com/ipxe/ipxe/commit/9b25f6e5cf517f426de80ede618398ef01e385f9) + +## 1.0.3-rc1 - 2021-03-19 (Engineering release) + +### Added + +- Initial support for Protectli Vault FW4 Geminilake platform + +### Fixed + +- SeaBIOS: change handling the CBFS pointer to correctly detect CBFS location + on Apollolake and Geminilake platforms + +### Known issues + +- [The VGA text mode console does not work in SeaBIOS.](https://github.com/Dasharo/dasharo-issues/issues/13) + SeaBIOS does not print boot menu prompt and boot options. Only serial console + redirection and graphical logo works. +- [VT-d (IOMMU) is not being correctly configured by FSP.](https://github.com/Dasharo/dasharo-issues/issues/14) +- Flashrom does not support Geminilake chipset. +- [Fastboot is not yet working.](https://github.com/Dasharo/dasharo-issues/issues/15) + It makes the boot process longer due to full memory training on each boot. +- [Since VGA text mode console doesn't yet work.](https://github.com/Dasharo/dasharo-issues/issues/16) + FreeBSD can only be accessed on serial console. +- [Linux reports non-working TPM interrupt.](https://github.com/Dasharo/dasharo-issues/issues/12) + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.13 revision a4cd9117](https://github.com/Dasharo/coreboot/compare/a4cd9117...protectli-firewall-1.0.3-rc1) +- [SeaBIOS v1.0.8 based on rel-1.12.1 revision 171fc897](https://github.com/Dasharo/SeaBIOS/compare/171fc897...v1.0.8) +- [iPXE 2019.3 stable revision ebf2eaf5](https://github.com/ipxe/ipxe/commits/ebf2eaf5) diff --git a/docs/variants/protectli_vp46xx/releases.md b/docs/variants/protectli_vp46xx/releases.md index e7e170b477..1d92e09f1c 100644 --- a/docs/variants/protectli_vp46xx/releases.md +++ b/docs/variants/protectli_vp46xx/releases.md @@ -12,6 +12,10 @@ For details about our release process please read Test results for this platform can be found [here](https://docs.google.com/spreadsheets/d/1wI0qBSLdaluayYsm_lIa9iJ9LnPnCOZ9eNOyrKSc-j4/edit?usp=sharing). +> The missing versions before v1.0.16 were assigned to different platforms +> interchangeably. See [Protectli FW6 releases](../protectli_fw6/releases.md) +> and [Protectli VP2410 releases](../protectli_vp2410/releases.md). + ## v1.2.0 - 2024-03-25 Test results for this release can be found @@ -358,6 +362,26 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu + CPU signature: 0x0806EC, Date: 28.04.2021, Revision: 0xEC + CPU signature: 0x0A0660, Date: 28.04.2021, Revision: 0xEA +## v1.0.5 + +### Added + +- Initial support for FW6 Cometlake platform + +### Known issues + +- [FW6 Comet Lake graphics crashes in Linux](https://github.com/Dasharo/dasharo-issues/issues/26) + The system may crash and reset itself on kernels (< 5.2) which do not have + support for Cometlake graphics in i915 DRM driver in situations when the + screen goes idle (locked screen or longer inactivity of the system). + +### SBOM (Software Bill of Materials) + +- [coreboot based on 4.13 revision a4cd9117](https://github.com/Dasharo/coreboot/compare/a4cd9117...protectli-firewall-1.0.5) +- [SeaBIOS v1.0.8 based on rel-1.12.1 revision 171fc897](https://github.com/Dasharo/SeaBIOS/compare/171fc897...v1.0.8) +- [iPXE 2019.3 stable revision ebf2eaf5](https://github.com/ipxe/ipxe/commits/ebf2eaf5) +- [MemTest86+ revision dd5b4ff2](https://review.coreboot.org/admin/repos/memtest86plus,general) + [protectli_vp4630_vp4650_v1.0.19.rom_file]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.0.19/protectli_vp4630_vp4650_v1.0.19.rom [protectli_vp4630_vp4650_v1.0.19.rom_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.0.19/protectli_vp4630_vp4650_v1.0.19.rom.sha256 [protectli_vp4630_vp4650_v1.0.19.rom_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/v1.0.19/protectli_vp4630_vp4650_v1.0.19.rom.sha256.sig @@ -379,5 +403,3 @@ using [this key](https://raw.githubusercontent.com/3mdeb/3mdeb-secpack/master/cu [v1.0.13_rom]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/protectli_vault_cml_v1.0.13.rom [v1.0.13_hash]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/protectli_vault_cml_v1.0.13.rom.sha256 [v1.0.13_sig]: https://3mdeb.com/open-source-firmware/Dasharo/protectli_vault_cml/protectli_vault_cml_v1.0.13.rom.sha256.sig - -## v1.0.0 .. v1.0.12: Non-public engineering releases From 151f6f186b2f3269db048f0402f4d99ecc6ce9c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 19 May 2025 18:14:29 +0200 Subject: [PATCH 131/133] qemu_q35/releases.md: Add v0.2.1 release notes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/variants/qemu_q35/releases.md | 42 ++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/docs/variants/qemu_q35/releases.md b/docs/variants/qemu_q35/releases.md index 31eff63716..a0d8f9f929 100644 --- a/docs/variants/qemu_q35/releases.md +++ b/docs/variants/qemu_q35/releases.md @@ -1,8 +1,46 @@ -# Release Notes +# emulation qemu_q35 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 QEMU Q35 (Emulator). +For details about our release process please read +[Dasharo Standard Release Process](../../dev-proc/standard-release-process.md). + +## v0.2.1 - 2025-05-23 + +Test results for this release can be found +[here](https://github.com/Dasharo/osfv-results/blob/main/boards/QEMU/Q35/v0.2.1_results.csv). + +### Changed + +- The Local APIC timer is now used instead of the HPET + +### Fixed + +- The time in the firmware flows at a correct pace now resulting in much + quicker boot times. + +### Known issues + +- [Measured Boot PCR values don't match the TPM measurement log](https://github.com/Dasharo/dasharo-issues/issues/1354) + +### Binaries + +[qemu_q35_v0.2.1.rom][qemu_q35_v0.2.1.rom_file]{.md-button} +[sha256][qemu_q35_v0.2.1.rom_hash]{.md-button} +[sha256.sig][qemu_q35_v0.2.1.rom_sig]{.md-button} + +### SBOM (Software Bill of Materials) + +- [Dasharo coreboot fork based on 4.18 revision b8e6b3eb](https://github.com/Dasharo/coreboot/tree/b8e6b3eb) + + [License](https://github.com/Dasharo/coreboot/blob/b8e6b3eb/COPYING) +- [Dasharo EDKII fork based on edk2-stable202002 revision e8cd1856](https://github.com/Dasharo/edk2/tree/e8cd1856) + + [License](https://github.com/Dasharo/edk2/blob/e8cd1856/License.txt) + +[qemu_q35_v0.2.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/qemu_q35/v0.2.1/qemu_q35_v0.2.1.rom +[qemu_q35_v0.2.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/qemu_q35/v0.2.1/qemu_q35_v0.2.1.rom.sha256 +[qemu_q35_v0.2.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/qemu_q35/v0.2.1/qemu_q35_v0.2.1.rom.sha256.sig + ## v0.2.0 - 2024-06-26 Tests reports and logs can be found From f95e7e7b49655aa1bc2e3aeaa601e82492625674 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Tue, 27 May 2025 16:42:38 +0200 Subject: [PATCH 132/133] lab-assembly/odroid-assembly-guide.md: fix UART connection Signed-off-by: Maciej Pijanowski --- docs/guides/lab-assembly/odroid-assembly-guide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/guides/lab-assembly/odroid-assembly-guide.md b/docs/guides/lab-assembly/odroid-assembly-guide.md index ea35df1ddd..2673da8384 100644 --- a/docs/guides/lab-assembly/odroid-assembly-guide.md +++ b/docs/guides/lab-assembly/odroid-assembly-guide.md @@ -34,9 +34,9 @@ wires. | RTE J18 | Odroid H4 EXPANSION HEADER | |:--------------------|:---------------------------------------| -| J18 pin 1 (TX) | pin 6 APU_UART_RXD_BUF | -| J18 pin 2 (RX) | pin 8 APU_UART_TXD_BUF | -| J18 pin 3 (GND) | pin 10 GND | +| J18 pin 1 (TX) | pin 8 APU_UART_RXD_BUF | +| J18 pin 2 (RX) | pin 10 APU_UART_TXD_BUF | +| J18 pin 3 (GND) | pin 6 GND | ![](../../images/odroid_exthead.png) From d1fdbd68b540b18c74ce78bc78c8cb40725176f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 28 May 2025 10:37:30 +0200 Subject: [PATCH 133/133] qemu_q35/releases.md: Add missing iPXE component & fix binary URL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/variants/qemu_q35/releases.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/docs/variants/qemu_q35/releases.md b/docs/variants/qemu_q35/releases.md index a0d8f9f929..51df1ae402 100644 --- a/docs/variants/qemu_q35/releases.md +++ b/docs/variants/qemu_q35/releases.md @@ -26,20 +26,17 @@ Test results for this release can be found ### Binaries -[qemu_q35_v0.2.1.rom][qemu_q35_v0.2.1.rom_file]{.md-button} -[sha256][qemu_q35_v0.2.1.rom_hash]{.md-button} -[sha256.sig][qemu_q35_v0.2.1.rom_sig]{.md-button} +Binaries can be found in +[GitHub release](https://github.com/Dasharo/coreboot/releases/tag/qemu_q35_v0.2.1). ### SBOM (Software Bill of Materials) -- [Dasharo coreboot fork based on 4.18 revision b8e6b3eb](https://github.com/Dasharo/coreboot/tree/b8e6b3eb) +- [Dasharo coreboot fork based on 25.03 revision b8e6b3eb](https://github.com/Dasharo/coreboot/tree/b8e6b3eb) + [License](https://github.com/Dasharo/coreboot/blob/b8e6b3eb/COPYING) -- [Dasharo EDKII fork based on edk2-stable202002 revision e8cd1856](https://github.com/Dasharo/edk2/tree/e8cd1856) +- [Dasharo EDKII fork based on edk2-stable202502 revision e8cd1856](https://github.com/Dasharo/edk2/tree/e8cd1856) + [License](https://github.com/Dasharo/edk2/blob/e8cd1856/License.txt) - -[qemu_q35_v0.2.1.rom_file]: https://dl.3mdeb.com/open-source-firmware/Dasharo/qemu_q35/v0.2.1/qemu_q35_v0.2.1.rom -[qemu_q35_v0.2.1.rom_hash]: https://dl.3mdeb.com/open-source-firmware/Dasharo/qemu_q35/v0.2.1/qemu_q35_v0.2.1.rom.sha256 -[qemu_q35_v0.2.1.rom_sig]: https://dl.3mdeb.com/open-source-firmware/Dasharo/qemu_q35/v0.2.1/qemu_q35_v0.2.1.rom.sha256.sig +- [Dasharo iPXE fork based on 2024.07 revision 63ed3e35](https://github.com/Dasharo/ipxe/tree/63ed3e35) + + [License](https://github.com/Dasharo/ipxe/blob/63ed3e35/COPYING.GPLv2) ## v0.2.0 - 2024-06-26