From 21bc848e39422bff596c59422c94e187ac447b00 Mon Sep 17 00:00:00 2001 From: Weizhao Ouyang Date: Mon, 15 Apr 2024 11:08:00 +0800 Subject: [PATCH] identify.yaml: recognise ACS-IR 2.0 with linux v6.4 - Add an entry in identify.yaml to identify ACS-IR v23.03_2.0.0-Linux-v6.4 - Update the unit test Signed-off-by: Weizhao Ouyang --- identify.yaml | 13 + .../acs_results/fwts/FWTSResults.log | 353 ++++++++++++++++++ .../linux_acs/bsa_acs_app/BSALinuxResults.log | 18 + .../acs_results/sct_results/Sequence/EBBR.seq | Bin 0 -> 171818 bytes tests/test-identify | 7 + 5 files changed, 391 insertions(+) create mode 100755 tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/fwts/FWTSResults.log create mode 100755 tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/linux_acs/bsa_acs_app/BSALinuxResults.log create mode 100755 tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/sct_results/Sequence/EBBR.seq diff --git a/identify.yaml b/identify.yaml index 6bf1bec..abfb67a 100644 --- a/identify.yaml +++ b/identify.yaml @@ -152,6 +152,13 @@ known-files: - BSA v1.0.4 - Version 1.0.4 + - name: BSALinuxResults.log from ACS-IR v23.03_2.0.0-Linux-v6.4 + path: acs_results/linux_acs/bsa_acs_app/BSALinuxResults.log + search: + - SystemReady IR ACS v2.0.0 + - BSA v1.0.4 + - Version 1.0.6 + - name: BSALinuxResults.log from ACS-IR v23.09_2.1.0 path: acs_results/linux_acs/bsa_acs_app/BSALinuxResults.log search: @@ -203,6 +210,12 @@ versions: - FWTSResults.log from ACS-IR v23.09_2.1.0 version: IR v2.1 + - files: + - BSALinuxResults.log from ACS-IR v23.03_2.0.0-Linux-v6.4 + - EBBR.seq from ACS-IR v22.10_2.0.0_BETA-1 .. v23.09_2.1.0 + - FWTSResults.log from ACS-IR v23.03_2.0.0 + version: IR v2.0 + - files: - BSALinuxResults.log from ACS-IR v23.03_2.0.0 - EBBR.seq from ACS-IR v22.10_2.0.0_BETA-1 .. v23.09_2.1.0 diff --git a/tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/fwts/FWTSResults.log b/tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/fwts/FWTSResults.log new file mode 100755 index 0000000..75b1142 --- /dev/null +++ b/tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/fwts/FWTSResults.log @@ -0,0 +1,353 @@ +SystemReady IR ACS v2.0.0 +FWTS v23.01.00 +Results generated by fwts: Version V23.01.00 (2023-01-16 04:09:35). + +Some of this work - Copyright (c) 1999 - 2021, Intel Corp. All rights reserved. +Some of this work - Copyright (c) 2010 - 2021, Canonical. +Some of this work - Copyright (c) 2016 - 2021, IBM. +Some of this work - Copyright (c) 2017 - 2021, ARM Ltd. + +This test run on 03/03/23 at 09:50:46 on host Linux generic-arm64 +6.4.0-yocto-standard+ #1 SMP PREEMPT Sun Jun 25 23:29:58 UTC 2023 aarch64. + +Command: "fwts --ebbr -r /mnt/acs_results/fwts/FWTSResults.log uefivarinfo esrt +uefibootpath dt_base". +Running tests: uefivarinfo esrt uefibootpath dt_base uefirtmisc uefirtvariable +uefirttime. + +uefivarinfo: UEFI variable info query. +-------------------------------------------------------------------------------- +Test 1 of 1: UEFI variable info query. +SKIPPED: Test 1, QueryVariableInfo UEFI runtime interface not supported: cannot +test. + +ADVICE: Firmware also needs to check if the revision of system table is correct +or not. Linux kernel returns EFI_UNSUPPORTED as well, if the FirmwareRevision of +system table is less than EFI_2_00_SYSTEM_TABLE_REVISION. + + +esrt: Sanity check UEFI ESRT Table. +-------------------------------------------------------------------------------- +Test 1 of 2: Sanity check UEFI ESRT Table. +PASSED: Test 1, No issues found in ESRT table. + +Test 2 of 2: Validity of fw_class in UEFI ESRT Table for EBBR. +PASSED: Test 2, The fw_class in the ESRT are not default u-boot guids 1 + +================================================================================ +2 passed, 0 failed, 0 warning, 0 aborted, 0 skipped, 0 info only. +================================================================================ + +uefibootpath: Sanity check for UEFI Boot Path Boot####. +-------------------------------------------------------------------------------- +Test 1 of 1: Test UEFI Boot Path Boot####. + +================================================================================ +0 passed, 0 failed, 0 warning, 0 aborted, 0 skipped, 0 info only. +================================================================================ + +dt_base: Base device tree validity check +-------------------------------------------------------------------------------- +Test 1 of 3: Check device tree presence +PASSED: Test 1, Device tree present + +Test 2 of 3: Check device tree baseline validity +PASSED: Test 2, Device tree data valid + +Test 3 of 3: Check device tree warnings +WARNING: Test 3, Some warnings from dtc. Run command "dtc -I fs -O dts -o my.dts +/sys/firmware/devicetree/base" for further review: /dev/null: Warning +(unit_address_vs_reg): /binman/simple-bin/fit/images/@tee-SEQ: node has a unit +name, but no reg or ranges property /dev/null: Warning (unit_address_vs_reg): +/binman/simple-bin/fit/images/@fdt-SEQ: node has a unit name, but no reg or +ranges property /dev/null: Warning (unit_address_vs_reg): /binman/simple-bin/fit +/images/@atf-SEQ: node has a unit name, but no reg or ranges property /dev/null: +Warning (unit_address_vs_reg): /binman/simple-bin/fit/configurations/@config-SEQ +: node has a unit name, but no reg or ranges property /dev/null: Warning +(unit_address_vs_reg): /memory: node has a reg or ranges property, but no unit +name + +================================================================================ +2 passed, 0 failed, 1 warning, 0 aborted, 0 skipped, 0 info only. +================================================================================ + +uefirtmisc: UEFI miscellaneous runtime service interface tests. +-------------------------------------------------------------------------------- +Test 1 of 4: Test for UEFI miscellaneous runtime service interfaces. +Testing UEFI runtime service GetNextHighMonotonicCount interface. +SKIPPED: Test 1, Skipping test, GetNextHighMonotonicCount runtime service is not +supported on this platform. +Testing UEFI runtime service QueryCapsuleCapabilities interface. +SKIPPED: Test 1, Skipping test, QueryCapsuleCapabilities runtime service is not +supported on this platform. +SKIPPED: Test 1, Skipping test, QueryCapsuleCapabilities runtime service is not +supported on this platform. +SKIPPED: Test 1, Skipping test, QueryCapsuleCapabilities runtime service is not +supported on this platform. +SKIPPED: Test 1, Skipping test, QueryCapsuleCapabilities runtime service is not +supported on this platform. +SKIPPED: Test 1, Skipping test, QueryCapsuleCapabilities runtime service is not +supported on this platform. + +Test 2 of 4: Stress test for UEFI miscellaneous runtime service interfaces. +SKIPPED: Test 2, Skipping test, GetNextHighMonotonicCount runtime service is not +supported on this platform. + +Test 3 of 4: Test GetNextHighMonotonicCount with invalid NULL parameter. +SKIPPED: Test 3, Skipping test, GetNextHighMonotonicCount runtime service is not +supported on this platform. + +Test 4 of 4: Test UEFI miscellaneous runtime services unsupported status. +PASSED: Test 4, UEFI GetNextHighMonotonicCount runtime service unsupported +status test passed. + +================================================================================ +1 passed, 0 failed, 0 warning, 0 aborted, 8 skipped, 0 info only. +================================================================================ + +uefirtvariable: UEFI Runtime service variable interface tests. +-------------------------------------------------------------------------------- +Test 1 of 9: Test UEFI RT service get variable interface. +SKIPPED: Test 1, Skipping test, SetVariable runtime service is not supported on +this platform. + +Test 2 of 9: Test UEFI RT service get next variable name interface. +The runtime service GetNextVariableName interface function test. +SKIPPED: Test 2, Skipping test, SetVariable runtime service is not supported on +this platform. + +Test 3 of 9: Test UEFI RT service set variable interface. +Testing SetVariable on two different GUIDs and the same variable name. +SKIPPED: Test 3, Skipping test, SetVariable runtime service is not supported on +this platform. + +Test 4 of 9: Test UEFI RT service query variable info interface. +SKIPPED: Test 4, Skipping test, QueryVariableInfo runtime service is not +supported on this platform. + +Test 5 of 9: Test UEFI RT service variable interface stress test. +Testing GetVariable on getting the variable 1024 times. +SKIPPED: Test 5, Skipping test, SetVariable runtime service is not supported on +this platform. + +Test 6 of 9: Test UEFI RT service set variable interface stress test. +Testing SetVariable on setting the variable with the same data 40 times. +SKIPPED: Test 6, Skipping test, SetVariable runtime service is not supported on +this platform. + +Test 7 of 9: Test UEFI RT service query variable info interface stress test. +Testing QueryVariableInfo on querying the variable 1024 times. +SKIPPED: Test 7, Skipping test, QueryVariableInfo runtime service is not +supported on this platform. + +Test 8 of 9: Test UEFI RT service get variable interface, invalid parameters. +SKIPPED: Test 8, Skipping test, SetVariable runtime service is not supported on +this platform. + +Test 9 of 9: Test UEFI RT variable services unsupported status. +PASSED: Test 9, UEFI SetVariable runtime service unsupported status test passed. +SKIPPED: Test 9, GetVariable runtime service supported, skip test. +SKIPPED: Test 9, GetNextVarName runtime service supported, skip test. +PASSED: Test 9, UEFI QueryVarInfo runtime service unsupported status test +passed. + +================================================================================ +2 passed, 0 failed, 0 warning, 0 aborted, 10 skipped, 0 info only. +================================================================================ + +uefirttime: UEFI Runtime service time interface tests. +-------------------------------------------------------------------------------- +Test 1 of 36: Test UEFI RT service get time interface. +SKIPPED: Test 1, Skipping test, GetTime runtime service is not supported on this +platform. + +Test 2 of 36: Test UEFI RT service get time interface, NULL time parameter. +SKIPPED: Test 2, Skipping test, GetTime runtime service is not supported on this +platform. + +Test 3 of 36: Test UEFI RT service get time interface, NULL time and NULL +capabilities parameters. +SKIPPED: Test 3, Skipping test, GetTime runtime service is not supported on this +platform. + +Test 4 of 36: Test UEFI RT service set time interface. +SKIPPED: Test 4, Skipping test, GetTime runtime service is not supported on this +platform. + +Test 5 of 36: Test UEFI RT service set time interface, invalid year 1899. +SKIPPED: Test 5, Skipping test, GetTime runtime service is not supported on this +platform. + +Test 6 of 36: Test UEFI RT service set time interface, invalid year 10000. +SKIPPED: Test 6, Skipping test, GetTime runtime service is not supported on this +platform. + +Test 7 of 36: Test UEFI RT service set time interface, invalid month 0. +SKIPPED: Test 7, Skipping test, GetTime runtime service is not supported on this +platform. + +Test 8 of 36: Test UEFI RT service set time interface, invalid month 13. +SKIPPED: Test 8, Skipping test, GetTime runtime service is not supported on this +platform. + +Test 9 of 36: Test UEFI RT service set time interface, invalid day 0. +SKIPPED: Test 9, Skipping test, GetTime runtime service is not supported on this +platform. + +Test 10 of 36: Test UEFI RT service set time interface, invalid day 32. +SKIPPED: Test 10, Skipping test, GetTime runtime service is not supported on +this platform. + +Test 11 of 36: Test UEFI RT service set time interface, invalid hour 24. +SKIPPED: Test 11, Skipping test, GetTime runtime service is not supported on +this platform. + +Test 12 of 36: Test UEFI RT service set time interface, invalid minute 60. +SKIPPED: Test 12, Skipping test, GetTime runtime service is not supported on +this platform. + +Test 13 of 36: Test UEFI RT service set time interface, invalid second 60. +SKIPPED: Test 13, Skipping test, GetTime runtime service is not supported on +this platform. + +Test 14 of 36: Test UEFI RT service set time interface, invalid nanosecond +1000000000. +SKIPPED: Test 14, Skipping test, GetTime runtime service is not supported on +this platform. + +Test 15 of 36: Test UEFI RT service set time interface, invalid timezone -1441. +SKIPPED: Test 15, Skipping test, GetTime runtime service is not supported on +this platform. + +Test 16 of 36: Test UEFI RT service set time interface, invalid timezone 1441. +SKIPPED: Test 16, Skipping test, GetTime runtime service is not supported on +this platform. + +Test 17 of 36: Test UEFI RT service get wakeup time interface. +SKIPPED: Test 17, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 18 of 36: Test UEFI RT service get wakeup time interface, NULL enabled +parameter. +SKIPPED: Test 18, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 19 of 36: Test UEFI RT service get wakeup time interface, NULL pending +parameter. +SKIPPED: Test 19, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 20 of 36: Test UEFI RT service get wakeup time interface, NULL time +parameter. +SKIPPED: Test 20, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 21 of 36: Test UEFI RT service get wakeup time interface, NULL enabled, +pending and time parameters. +SKIPPED: Test 21, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 22 of 36: Test UEFI RT service set wakeup time interface. +SKIPPED: Test 22, Skipping test, GetTime runtime service is not supported on +this platform. + +Test 23 of 36: Test UEFI RT service set wakeup time interface, NULL time +parameter. +SKIPPED: Test 23, Skipping test, SetWakeupTime runtime service is not supported +on this platform. + +Test 24 of 36: Test UEFI RT service set wakeup time interface, invalid year +1899. +SKIPPED: Test 24, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 25 of 36: Test UEFI RT service set wakeup time interface, invalid year +10000. +SKIPPED: Test 25, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 26 of 36: Test UEFI RT service set wakeup time interface, invalid month 0. +SKIPPED: Test 26, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 27 of 36: Test UEFI RT service set wakeup time interface, invalid month 13. +SKIPPED: Test 27, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 28 of 36: Test UEFI RT service set wakeup time interface, invalid day 0. +SKIPPED: Test 28, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 29 of 36: Test UEFI RT service set wakeup time interface, invalid day 32. +SKIPPED: Test 29, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 30 of 36: Test UEFI RT service set wakeup time interface, invalid hour 24. +SKIPPED: Test 30, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 31 of 36: Test UEFI RT service set wakeup time interface, invalid minute +60. +SKIPPED: Test 31, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 32 of 36: Test UEFI RT service set wakeup time interface, invalid second +60. +SKIPPED: Test 32, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 33 of 36: Test UEFI RT service set wakeup time interface, invalid +nanosecond 1000000000. +SKIPPED: Test 33, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 34 of 36: Test UEFI RT service set wakeup time interface, invalid timezone +-1441. +SKIPPED: Test 34, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 35 of 36: Test UEFI RT service set wakeup time interface, invalid timezone +1441. +SKIPPED: Test 35, Skipping test, GetWakeupTime runtime service is not supported +on this platform. + +Test 36 of 36: Test UEFI RT time services unsupported status. +PASSED: Test 36, UEFI GetTime runtime service unsupported status test passed. +PASSED: Test 36, UEFI SetTime runtime service unsupported status test passed. +PASSED: Test 36, UEFI SetWakeupTime runtime service unsupported status test +passed. +PASSED: Test 36, UEFI GetWakeupTime runtime service unsupported status test +passed. + +================================================================================ +4 passed, 0 failed, 0 warning, 0 aborted, 35 skipped, 0 info only. +================================================================================ + + +11 passed, 0 failed, 1 warning, 0 aborted, 54 skipped, 0 info only. + +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 | +---------------+-----+-----+-----+-----+-----+-----+ +dt_base | 2| | | 1| | | +esrt | 2| | | | | | +uefibootpath | | | | | | | +uefirtmisc | 1| | | | 8| | +uefirttime | 4| | | | 35| | +uefirtvariable | 2| | | | 10| | +uefivarinfo | | | | | 1| | +---------------+-----+-----+-----+-----+-----+-----+ +Total: | 11| 0| 0| 1| 54| 0| +---------------+-----+-----+-----+-----+-----+-----+ diff --git a/tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/linux_acs/bsa_acs_app/BSALinuxResults.log b/tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/linux_acs/bsa_acs_app/BSALinuxResults.log new file mode 100755 index 0000000..b4d0869 --- /dev/null +++ b/tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/linux_acs/bsa_acs_app/BSALinuxResults.log @@ -0,0 +1,18 @@ +SystemReady IR ACS v2.0.0 +BSA v1.0.4 + + ************ BSA Architecture Compliance Suite ********* + Version 1.0.6 + + Starting tests (Print level is 3) + + Gathering system information.... + + *** Starting Memory Map tests *** + + *** Starting Peripherals tests *** + + *** Starting PCIe tests *** + + *** BSA tests complete *** + diff --git a/tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/sct_results/Sequence/EBBR.seq b/tests/data/test-identify/v23.03_2.0.0-Linux-v6.4/acs_results/sct_results/Sequence/EBBR.seq new file mode 100755 index 0000000000000000000000000000000000000000..f548da22a8fd24a59f891b58f750e08e24ff852e GIT binary patch literal 171818 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 literal 0 HcmV?d00001 diff --git a/tests/test-identify b/tests/test-identify index cd3ac66..a20cb99 100755 --- a/tests/test-identify +++ b/tests/test-identify @@ -108,6 +108,13 @@ grep 'SystemReady IR v2.0' "$out" identify.py --dir "$data/v23.03_2.0.0" --ebbr-seq |& tee "$out" grep 'v23.03_2.0.0' "$out" +echo -n 'ir2.0 linux 6.4, ' >&3 +identify.py --dir "$data/v23.03_2.0.0-Linux-v6.4" |& tee "$out" +grep 'SystemReady IR v2.0' "$out" + +identify.py --dir "$data/v23.03_2.0.0-Linux-v6.4" --ebbr-seq |& tee "$out" +grep 'v23.03_2.0.0' "$out" + echo -n 'ir2.0 + sie, ' >&3 identify.py --dir "$data/v23.03_2.0.0_with_SIE" |& tee "$out" grep 'SystemReady IR v2.0 with SIE' "$out" -- GitLab