From 5daf1b42842d7344bbc032f1700f56355d981624 Mon Sep 17 00:00:00 2001 From: Nick Quarton <139178705+nquarton@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:42:03 -0800 Subject: [PATCH] Fixing release CI failures and adding frozen 1.1 ROM (#1809) * Fixing release CI failures and adding frozen 1.1 ROM * Changing CI ROM version from rust feature to environment variable * Removing reference to main branch in release flow Prevents a release being made from main when tests were actuall run on a different branch/commit --- .github/workflows/fpga.yml | 18 ++- .github/workflows/fw-test-emu.yml | 11 +- .github/workflows/nightly-release.yml | 107 +++++++++++++++++- builder/src/lib.rs | 73 +++++++++--- .../fmc_integration_tests/test_rtalias.rs | 7 +- hw/1.0/caliptra-rom-1.0.1-9342687.bin | Bin 49152 -> 0 bytes .../caliptra-rom-with-log-1.0.1-9342687.bin | Bin 49152 -> 0 bytes .../1.0/caliptra-rom-1.0.3-e8e23d9.bin | Bin 0 -> 49152 bytes .../caliptra-rom-with-log-1.0.3-e8e23d9.bin | Bin 0 -> 49152 bytes .../1.1/caliptra-rom-1.1.0-51ff0a8.bin | Bin 0 -> 49152 bytes .../caliptra-rom-with-log-1.1.0-51ff0a8.bin | Bin 0 -> 49152 bytes runtime/Cargo.toml | 2 +- .../test_get_idev_csr.rs | 45 +++++--- test/Cargo.toml | 2 +- .../caliptra_integration_tests/smoke_test.rs | 75 ++++++++++-- .../rom-1.0/fmc_alias_cert_redacted.der | Bin 0 -> 907 bytes .../rom-1.0/fmc_alias_cert_redacted.txt | 45 ++++++++ .../rom-1.1/fmc_alias_cert_redacted.der | Bin 0 -> 907 bytes .../rom-1.1/fmc_alias_cert_redacted.txt | 45 ++++++++ .../fmc_alias_cert_redacted.der | Bin .../fmc_alias_cert_redacted.txt | 0 test/tests/fips_test_suite/common.rs | 18 ++- 22 files changed, 387 insertions(+), 61 deletions(-) delete mode 100644 hw/1.0/caliptra-rom-1.0.1-9342687.bin delete mode 100644 hw/1.0/caliptra-rom-with-log-1.0.1-9342687.bin create mode 100644 rom/ci_frozen_rom/1.0/caliptra-rom-1.0.3-e8e23d9.bin create mode 100644 rom/ci_frozen_rom/1.0/caliptra-rom-with-log-1.0.3-e8e23d9.bin create mode 100644 rom/ci_frozen_rom/1.1/caliptra-rom-1.1.0-51ff0a8.bin create mode 100644 rom/ci_frozen_rom/1.1/caliptra-rom-with-log-1.1.0-51ff0a8.bin create mode 100644 test/tests/caliptra_integration_tests/smoke_testdata/rom-1.0/fmc_alias_cert_redacted.der create mode 100644 test/tests/caliptra_integration_tests/smoke_testdata/rom-1.0/fmc_alias_cert_redacted.txt create mode 100644 test/tests/caliptra_integration_tests/smoke_testdata/rom-1.1/fmc_alias_cert_redacted.der create mode 100644 test/tests/caliptra_integration_tests/smoke_testdata/rom-1.1/fmc_alias_cert_redacted.txt rename test/tests/caliptra_integration_tests/smoke_testdata/{ => rom-latest}/fmc_alias_cert_redacted.der (100%) rename test/tests/caliptra_integration_tests/smoke_testdata/{ => rom-latest}/fmc_alias_cert_redacted.txt (100%) diff --git a/.github/workflows/fpga.yml b/.github/workflows/fpga.yml index 84c84388b1..5f143ea03a 100644 --- a/.github/workflows/fpga.yml +++ b/.github/workflows/fpga.yml @@ -22,6 +22,9 @@ on: hw-version: default: "latest" type: string + rom-version: + default: "latest" + type: string workflow_call: description: 'Set true for workflow_call' default: true @@ -161,6 +164,9 @@ jobs: run: | export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER="aarch64-linux-gnu-gcc" export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C link-arg=--sysroot=$FARGO_SYSROOT" + if [ "${{ inputs.rom-version }}" != "latest" ]; then + export CPTRA_CI_ROM_VERSION="${{ inputs.rom-version }}" + fi if [ "${{ inputs.workflow_call }}" ]; then FEATURES=fpga_realtime,${{ inputs.extra-features }} @@ -420,11 +426,6 @@ jobs: TEST_BIN=/tmp/caliptra-test-binaries VARS="CPTRA_UIO_NUM=4 CALIPTRA_PREBUILT_FW_DIR=/tmp/caliptra-test-firmware CALIPTRA_IMAGE_NO_GIT_REVISION=1" - if [[ "${{ inputs.workflow_call }}" && "${{ inputs.hw-version }}" != "latest" ]]; then - VARS+=" FIPS_TEST_HW_EXP_VERSION=1_0_0" - VARS+=" FIPS_TEST_ROM_EXP_VERSION=1_0_1" - fi - if [ "${{ inputs.rom-logging }}" == "true" ] || [ -z "${{ inputs.rom-logging }}" ]; then VARS+=" CPTRA_ROM_TYPE=ROM_WITH_UART" elif [ "${{ inputs.rom-logging }}" == false ]; then @@ -433,7 +434,12 @@ jobs: echo "Unexpected inputs.rom-logging: ${{ inputs.rom-logging }}" exit 1 fi - echo CPTRA_ROM_TYPE=${CPTRA_ROM_TYPE} + + if [[ "${{ inputs.workflow_call }}" && "${{ inputs.rom-version }}" != "latest" ]]; then + VARS+=" CPTRA_CI_ROM_VERSION="${{ inputs.rom-version }}"" + fi + + echo VARS=${VARS} COMMON_ARGS=( --cargo-metadata="${TEST_BIN}/target/nextest/cargo-metadata.json" diff --git a/.github/workflows/fw-test-emu.yml b/.github/workflows/fw-test-emu.yml index 06fdfca5df..33d270edb7 100644 --- a/.github/workflows/fw-test-emu.yml +++ b/.github/workflows/fw-test-emu.yml @@ -13,6 +13,9 @@ on: rom-logging: default: true type: boolean + rom-version: + default: "latest" + type: string jobs: build_and_test: @@ -57,6 +60,9 @@ jobs: - name: Run tests run: | export CALIPTRA_PREBUILT_FW_DIR=/tmp/caliptra-test-firmware + if [ "${{ inputs.rom-version }}" != "latest" ]; then + export CPTRA_CI_ROM_VERSION="${{ inputs.rom-version }}" + fi if [ "${{ inputs.rom-logging }}" == "true" ] || [ -z "${{ inputs.rom-logging }}" ]; then export CPTRA_ROM_TYPE=ROM_WITH_UART @@ -67,11 +73,6 @@ jobs: exit 1 fi - if [[ ${{ inputs.extra-features }} == *"hw-1.0"* ]]; then - export FIPS_TEST_HW_EXP_VERSION=1_0_0 - export FIPS_TEST_ROM_EXP_VERSION=1_0_1 - fi - # Workaround https://github.com/nextest-rs/nextest/issues/267 export LD_LIBRARY_PATH=$(rustc --print sysroot)/lib diff --git a/.github/workflows/nightly-release.yml b/.github/workflows/nightly-release.yml index d67ee3d39f..105d4e2059 100644 --- a/.github/workflows/nightly-release.yml +++ b/.github/workflows/nightly-release.yml @@ -23,7 +23,6 @@ jobs: - uses: actions/checkout@v3 with: submodules: 'true' - ref: 'main' fetch-depth: 0 - name: Find latest release @@ -66,6 +65,7 @@ jobs: artifact-suffix: -fpga-realtime-hw-1.0-etrng-log extra-features: slow_tests hw-version: "1.0" + rom-version: "1.0" rom-logging: true fpga-itrng: false @@ -78,6 +78,7 @@ jobs: artifact-suffix: -fpga-realtime-hw-1.0-etrng-nolog extra-features: slow_tests hw-version: "1.0" + rom-version: "1.0" rom-logging: false fpga-itrng: false @@ -90,6 +91,7 @@ jobs: artifact-suffix: -fpga-realtime-hw-1.0-itrng-log extra-features: slow_tests,itrng hw-version: "1.0" + rom-version: "1.0" rom-logging: true fpga-itrng: true @@ -102,6 +104,59 @@ jobs: artifact-suffix: -fpga-realtime-hw-1.0-itrng-nolog extra-features: slow_tests,itrng hw-version: "1.0" + rom-version: "1.0" + rom-logging: false + fpga-itrng: true + + fpga-1_1-full-suite-etrng-log: + name: FPGA Suite (1.1, etrng, log) + needs: find-latest-release + if: needs.find-latest-release.outputs.create_release + uses: ./.github/workflows/fpga.yml + with: + artifact-suffix: -fpga-realtime-rom-1.1-etrng-log + extra-features: slow_tests + hw-version: "latest" + rom-version: "1.1" + rom-logging: true + fpga-itrng: false + + fpga-1_1-full-suite-etrng-nolog: + name: FPGA Suite (1.1, etrng, nolog) + needs: find-latest-release + if: needs.find-latest-release.outputs.create_release + uses: ./.github/workflows/fpga.yml + with: + artifact-suffix: -fpga-realtime-rom-1.1-etrng-nolog + extra-features: slow_tests + hw-version: "latest" + rom-version: "1.1" + rom-logging: false + fpga-itrng: false + + fpga-1_1-full-suite-itrng-log: + name: FPGA Suite (1.1, itrng, log) + needs: find-latest-release + if: needs.find-latest-release.outputs.create_release + uses: ./.github/workflows/fpga.yml + with: + artifact-suffix: -fpga-realtime-rom-1.1-itrng-log + extra-features: slow_tests,itrng + hw-version: "latest" + rom-version: "1.1" + rom-logging: true + fpga-itrng: true + + fpga-1_1-full-suite-itrng-nolog: + name: FPGA Suite (1.1, itrng, nolog) + needs: find-latest-release + if: needs.find-latest-release.outputs.create_release + uses: ./.github/workflows/fpga.yml + with: + artifact-suffix: -fpga-realtime-rom-1.1-itrng-nolog + extra-features: slow_tests,itrng + hw-version: "latest" + rom-version: "1.1" rom-logging: false fpga-itrng: true @@ -149,7 +204,7 @@ jobs: with: artifact-suffix: -fpga-realtime-latest-itrng-nolog extra-features: slow_tests,itrng - hw-version: latest + hw-version: "latest" rom-logging: false fpga-itrng: true @@ -193,6 +248,50 @@ jobs: extra-features: slow_tests,itrng rom-logging: false + sw-emulator-rom-1_1-full-suite-etrng-log: + name: sw-emulator Suite (etrng, log) + needs: find-latest-release + if: needs.find-latest-release.outputs.create_release + uses: ./.github/workflows/fw-test-emu.yml + with: + artifact-suffix: -sw-emulator-hw-1.1-etrng-log + extra-features: slow_tests + rom-logging: true + rom-version: "1.1" + + sw-emulator-rom-1_1-full-suite-etrng-nolog: + name: sw-emulator Suite (etrng, nolog) + needs: find-latest-release + if: needs.find-latest-release.outputs.create_release + uses: ./.github/workflows/fw-test-emu.yml + with: + artifact-suffix: -sw-emulator-hw-1.1-etrng-nolog + extra-features: slow_tests + rom-logging: false + rom-version: "1.1" + + sw-emulator-rom-1_1-full-suite-itrng-log: + name: sw-emulator Suite (itrng, log) + needs: find-latest-release + if: needs.find-latest-release.outputs.create_release + uses: ./.github/workflows/fw-test-emu.yml + with: + artifact-suffix: -sw-emulator-hw-1.1-itrng-log + extra-features: slow_tests,itrng + rom-logging: true + rom-version: "1.1" + + sw-emulator-rom-1_1-full-suite-itrng-nolog: + name: sw-emulator Suite (itrng, nolog) + needs: find-latest-release + if: needs.find-latest-release.outputs.create_release + uses: ./.github/workflows/fw-test-emu.yml + with: + artifact-suffix: -sw-emulator-hw-1.1-itrng-nolog + extra-features: slow_tests,itrng + rom-logging: false + rom-version: "1.1" + sw-emulator-hw-1_0-full-suite-etrng-log: name: sw-emulator Suite (etrng, log) needs: find-latest-release @@ -202,6 +301,7 @@ jobs: artifact-suffix: -sw-emulator-hw-1.0-etrng-log extra-features: hw-1.0,slow_tests rom-logging: true + rom-version: "1.0" sw-emulator-hw-1_0-full-suite-etrng-nolog: name: sw-emulator Suite (etrng, nolog) @@ -212,6 +312,7 @@ jobs: artifact-suffix: -sw-emulator-hw-1.0-etrng-nolog extra-features: hw-1.0,slow_tests rom-logging: false + rom-version: "1.0" sw-emulator-hw-1_0-full-suite-itrng-log: name: sw-emulator Suite (itrng, log) @@ -222,6 +323,7 @@ jobs: artifact-suffix: -sw-emulator-hw-1.0-itrng-log extra-features: hw-1.0,slow_tests,itrng rom-logging: true + rom-version: "1.0" sw-emulator-hw-1_0-full-suite-itrng-nolog: name: sw-emulator Suite (itrng, nolog) @@ -232,6 +334,7 @@ jobs: artifact-suffix: -sw-emulator-hw-1.0-itrng-nolog extra-features: hw-1.0,slow_tests,itrng rom-logging: false + rom-version: "1.0" create-release: name: Create New Release diff --git a/builder/src/lib.rs b/builder/src/lib.rs index 17fbe0353f..8db888bb56 100644 --- a/builder/src/lib.rs +++ b/builder/src/lib.rs @@ -35,6 +35,13 @@ use once_cell::sync::Lazy; pub const THIS_WORKSPACE_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/.."); +#[derive(Debug, PartialEq)] +pub enum CiRomVersion { + Rom1_0, + Rom1_1, + Latest, +} + fn other_err(e: impl Into>) -> io::Error { io::Error::new(ErrorKind::Other, e) } @@ -362,28 +369,60 @@ pub fn build_firmware_elf(id: &FwId<'static>) -> io::Result>> { Ok(result) } +// Returns the ROM version to be used for CI testing specified in the environment variable "CPTRA_CI_ROM_VERSION" +// Default is Latest +pub fn get_ci_rom_version() -> CiRomVersion { + match std::env::var("CPTRA_CI_ROM_VERSION").as_deref() { + Ok("1.0") => CiRomVersion::Rom1_0, + Ok("1.1") => CiRomVersion::Rom1_1, + Ok(version) => panic!("Unknown CI ROM version \'{}\'", version), + Err(_) => CiRomVersion::Latest, + } +} + /// Returns the most appropriate ROM for use when testing non-ROM code against /// a particular hardware version. DO NOT USE this for ROM-only tests. pub fn rom_for_fw_integration_tests() -> io::Result> { let rom_from_env = firmware::rom_from_env(); - if cfg!(feature = "hw-1.0") { - if rom_from_env == &firmware::ROM { - Ok( - include_bytes!("../../hw/1.0/caliptra-rom-1.0.1-9342687.bin") - .as_slice() - .into(), - ) - } else if rom_from_env == &firmware::ROM_WITH_UART { - Ok( - include_bytes!("../../hw/1.0/caliptra-rom-with-log-1.0.1-9342687.bin") - .as_slice() - .into(), - ) - } else { - Err(other_err(format!("Unexpected ROM fwid {rom_from_env:?}"))) + if cfg!(feature = "hw-1.0") && get_ci_rom_version() != CiRomVersion::Rom1_0 { + panic!("CPTRA_CI_ROM_VERSION of \'1.0\' is expected for hw-1.0"); + } + match get_ci_rom_version() { + CiRomVersion::Rom1_0 => { + if rom_from_env == &firmware::ROM { + Ok( + include_bytes!("../../rom/ci_frozen_rom/1.0/caliptra-rom-1.0.3-e8e23d9.bin") + .as_slice() + .into(), + ) + } else if rom_from_env == &firmware::ROM_WITH_UART { + Ok(include_bytes!( + "../../rom/ci_frozen_rom/1.0/caliptra-rom-with-log-1.0.3-e8e23d9.bin" + ) + .as_slice() + .into()) + } else { + Err(other_err(format!("Unexpected ROM fwid {rom_from_env:?}"))) + } } - } else { - Ok(build_firmware_rom(rom_from_env)?.into()) + CiRomVersion::Rom1_1 => { + if rom_from_env == &firmware::ROM { + Ok( + include_bytes!("../../rom/ci_frozen_rom/1.1/caliptra-rom-1.1.0-51ff0a8.bin") + .as_slice() + .into(), + ) + } else if rom_from_env == &firmware::ROM_WITH_UART { + Ok(include_bytes!( + "../../rom/ci_frozen_rom/1.1/caliptra-rom-with-log-1.1.0-51ff0a8.bin" + ) + .as_slice() + .into()) + } else { + Err(other_err(format!("Unexpected ROM fwid {rom_from_env:?}"))) + } + } + CiRomVersion::Latest => Ok(build_firmware_rom(rom_from_env)?.into()), } } diff --git a/fmc/tests/fmc_integration_tests/test_rtalias.rs b/fmc/tests/fmc_integration_tests/test_rtalias.rs index 9b36fa00ad..498dba8462 100644 --- a/fmc/tests/fmc_integration_tests/test_rtalias.rs +++ b/fmc/tests/fmc_integration_tests/test_rtalias.rs @@ -1,7 +1,7 @@ // Licensed under the Apache-2.0 license use caliptra_builder::{ firmware::{self, runtime_tests::MOCK_RT_INTERACTIVE, FMC_WITH_UART}, - ImageOptions, + get_ci_rom_version, CiRomVersion, ImageOptions, }; use caliptra_common::RomBootStatus::*; @@ -91,7 +91,10 @@ fn test_fht_info() { let data = hw.mailbox_execute(TEST_CMD_READ_FHT, &[]).unwrap().unwrap(); let fht = FirmwareHandoffTable::read_from_prefix(data.as_bytes()).unwrap(); assert_eq!(fht.ldevid_tbs_size, 552); - assert_eq!(fht.fmcalias_tbs_size, 753); + match get_ci_rom_version() { + CiRomVersion::Rom1_0 | CiRomVersion::Rom1_1 => assert_eq!(fht.fmcalias_tbs_size, 786), + _ => assert_eq!(fht.fmcalias_tbs_size, 753), + }; assert_eq!(fht.ldevid_tbs_addr, 0x50003C00); assert_eq!(fht.fmcalias_tbs_addr, 0x50004000); assert_eq!(fht.pcr_log_addr, 0x50004800); diff --git a/hw/1.0/caliptra-rom-1.0.1-9342687.bin b/hw/1.0/caliptra-rom-1.0.1-9342687.bin deleted file mode 100644 index abf52f1688c64b9856444fcd330d87f17f57f71a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49152 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 HyBPRCS$ZfW diff --git a/hw/1.0/caliptra-rom-with-log-1.0.1-9342687.bin b/hw/1.0/caliptra-rom-with-log-1.0.1-9342687.bin deleted file mode 100644 index 874e47aeb9907c54cd234999c778feffbc1ebe52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49152 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 #zmss$kdRFK^Tw-6$tEXv~2TU#O= zHbI~fw`z+EiqyJAL2X@7L8R^qE_FfU-nv#$RN(iW6E>~)zSsBe=lA}(X(Q*%naugl zcfR|4XXXs;Vvk!$VdGvR9~eQ)VMrZ%mDzO(k74Q2?MHAuGkZeX)i=XFna*azRB4Zr zhuVX8F@uMDV8raaW38h{eBVZo*eb)jQ&R--KiV@Ges}(8_NZ*I4Re5gmzFN2j35$c zG{qiUQfkiLtrS^ADhx>T)Z!s%D`%3Wc1>X`yY^Bm&gX(NcFft8uizS1h1VCG-^O!9 ze9D-Bb>b=G$V zGxMJF)vVk8inupCs?H6hy%n-r!G`q?n#P$dbro1i=~ZlMPkQURY)M!h>}RE!e~Cz5 zHh-mA-piHS)3wVr?~6f38o{Zy1ZWN;pc?S{;IAbqf*l@V-U#-31k4WtyZwKd-7MPB zolqVoyxFh`w0kpz;*f%l@ zG{Y{~4elgj_tOUru|6Obc4dJmb%01%5rkn?lP*Z{^twGo0?tBf5zL$Gk@hM-iRBI0 zakQb;p@wQ`M9ra+!eZuLZ7?sW9DcW+bUF?a*=)U3Q(Mb&s+N1JziKcw;=5K!=o>6W zQe_{fGiurvIh`_AsevM#3UMEfN;M4!S?Wr#f9YBlRYte2%aTBZa

rX*1H$PgoZU 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 diff --git a/rom/ci_frozen_rom/1.0/caliptra-rom-1.0.3-e8e23d9.bin b/rom/ci_frozen_rom/1.0/caliptra-rom-1.0.3-e8e23d9.bin new file mode 100644 index 0000000000000000000000000000000000000000..5b2cb3b8cb7752176e5823977a4a69947953e05e GIT binary patch literal 49152 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 E1L;c!{Qv*} literal 0 HcmV?d00001 diff --git a/rom/ci_frozen_rom/1.0/caliptra-rom-with-log-1.0.3-e8e23d9.bin b/rom/ci_frozen_rom/1.0/caliptra-rom-with-log-1.0.3-e8e23d9.bin new file mode 100644 index 0000000000000000000000000000000000000000..42a93e03c9a5a4bad831bcf1f02af40e058ffc25 GIT binary patch literal 49152 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 UQ|nv!i*NbAYX66U|35MCUs#^RW&i*H literal 0 HcmV?d00001 diff --git a/rom/ci_frozen_rom/1.1/caliptra-rom-1.1.0-51ff0a8.bin b/rom/ci_frozen_rom/1.1/caliptra-rom-1.1.0-51ff0a8.bin new file mode 100644 index 0000000000000000000000000000000000000000..74ba16f96a5795bdea824eb1a5f0fc60d862678a GIT binary patch literal 49152 zcmcG1e|%Hrz5jD^a?&JCAmOw~TadJ;4Q(hjP)hwpO)w|4r9h}H2#PBl$_1}VQK@s2 z*^r(}YOC#HRouKwDXpa<1F>}T&TH!^0s<>cnBxj7b};ekQk;0FSM>XS&Pixd=kD(7 zyFZ>LIp_KDc|OnQ_w#w4K47u!dcb1)#RER#e8A_TWv1W7xczQsj(-kwtN&KUn%$oP1s_2FkUgoHM&G(6B$>QujPwdAv`lV^XuQn1}ddNiyvv`M37+cboK zAeTr9tmYbyxOnc|rDr$|3CWe0vNG|+$8-Iks87UCQf=!jzDEgRyj?ApK3|`u-`8(B z=sRdR;yc1~oMvcs_m`V$7}7k)dWdb~h+wNER<4=L)h%{i?%7oHfQ6ZP4Wj{s{-2|K zuIqK|%h^BUz^p?z9xgaKXTW=W{M*SVuYKqKQ`PVO;LMl3e@P=V$G`EHG|SAV@z*x< z>3x4m8-DcZ{dn$t`oLe(oHL(3WRxQ|i?qp=CcZ4r@gDcCocr-y&Fw$FeQW8A+updX z^se{ry8nB13&*)1AU5Zy@&EMybNqqt{qM%_s=KBi>%+DG;h8+FkDT$n<+J}54g7B? zU{f6vzG1!YOxnBlQ;ynvtX4=X7MNVXNri2iMohdgPTVRsdEWNSnETVh>5biubG);k ze7kV-zQg;TJ&^ar{KiF3E^Qn*@bHO`eJjh3m!+=QRFfq}d{s*bN%TJD4xOx9o6xs$ zJYByY$hKcl)yBCDyytk!^h5WcEs1TAd}4=N9)

q~*r28GR`|fOYecd@i1Z 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%0D;Uq7jq& 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 literal 0 HcmV?d00001 diff --git a/rom/ci_frozen_rom/1.1/caliptra-rom-with-log-1.1.0-51ff0a8.bin b/rom/ci_frozen_rom/1.1/caliptra-rom-with-log-1.1.0-51ff0a8.bin new file mode 100644 index 0000000000000000000000000000000000000000..00fa4a1b4ea40fdabad554e47fecd26dd9579ef0 GIT binary patch literal 49152 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 Z8vBaKyWg}{;-*D<-@@N~%m2UC{s*U5naBVD literal 0 HcmV?d00001 diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index bd8ec23e8c..2a70738d43 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -64,4 +64,4 @@ fips_self_test=[] no-cfi = ["caliptra-image-verify/no-cfi", "caliptra-drivers/no-cfi"] fpga_realtime = ["caliptra-drivers/fpga_realtime"] "hw-1.0" = ["caliptra-builder/hw-1.0", "caliptra-drivers/hw-1.0", "caliptra-registers/hw-1.0", "caliptra-kat/hw-1.0","caliptra-cpu/hw-1.0"] -fips-test-hooks = ["caliptra-drivers/fips-test-hooks"] +fips-test-hooks = ["caliptra-drivers/fips-test-hooks"] \ No newline at end of file diff --git a/runtime/tests/runtime_integration_tests/test_get_idev_csr.rs b/runtime/tests/runtime_integration_tests/test_get_idev_csr.rs index 13078f7e60..43082c0817 100644 --- a/runtime/tests/runtime_integration_tests/test_get_idev_csr.rs +++ b/runtime/tests/runtime_integration_tests/test_get_idev_csr.rs @@ -1,6 +1,7 @@ // Licensed under the Apache-2.0 license use caliptra_api::SocManager; +use caliptra_builder::{get_ci_rom_version, CiRomVersion}; use caliptra_common::mailbox_api::{CommandId, GetIdevCsrResp, MailboxReqHeader}; use caliptra_drivers::{IdevIdCsr, MfgFlags}; use caliptra_error::CaliptraError; @@ -25,20 +26,28 @@ fn test_get_csr() { chksum: caliptra_common::checksum::calc_checksum(u32::from(CommandId::GET_IDEV_CSR), &[]), }; - let response = model - .mailbox_execute(CommandId::GET_IDEV_CSR.into(), payload.as_bytes()) - .unwrap() - .unwrap(); + let result = model.mailbox_execute(CommandId::GET_IDEV_CSR.into(), payload.as_bytes()); + + match get_ci_rom_version() { + // 1.0 and 1.1 ROM do not support this feature + CiRomVersion::Rom1_0 | CiRomVersion::Rom1_1 => assert_eq!( + result.unwrap_err(), + ModelError::MailboxCmdFailed(CaliptraError::RUNTIME_GET_IDEV_ID_UNSUPPORTED_ROM.into()) + ), + _ => { + let response = result.unwrap().unwrap(); - let get_idv_csr_resp = GetIdevCsrResp::read_from(response.as_bytes()).unwrap(); + let get_idv_csr_resp = GetIdevCsrResp::read_from(response.as_bytes()).unwrap(); - assert_ne!(IdevIdCsr::UNPROVISIONED_CSR, get_idv_csr_resp.data_size); - assert_ne!(0, get_idv_csr_resp.data_size); + assert_ne!(IdevIdCsr::UNPROVISIONED_CSR, get_idv_csr_resp.data_size); + assert_ne!(0, get_idv_csr_resp.data_size); - let csr_bytes = &get_idv_csr_resp.data[..get_idv_csr_resp.data_size as usize]; - assert_ne!([0; 512], csr_bytes); + let csr_bytes = &get_idv_csr_resp.data[..get_idv_csr_resp.data_size as usize]; + assert_ne!([0; 512], csr_bytes); - assert!(X509Req::from_der(csr_bytes).is_ok()); + assert!(X509Req::from_der(csr_bytes).is_ok()); + } + }; } #[test] @@ -56,8 +65,16 @@ fn test_missing_csr() { let response = model .mailbox_execute(CommandId::GET_IDEV_CSR.into(), payload.as_bytes()) .unwrap_err(); - assert_eq!( - response, - ModelError::MailboxCmdFailed(CaliptraError::RUNTIME_GET_IDEV_ID_UNPROVISIONED.into()) - ); + + match get_ci_rom_version() { + // 1.0 and 1.1 ROM do not support this feature + CiRomVersion::Rom1_0 | CiRomVersion::Rom1_1 => assert_eq!( + response, + ModelError::MailboxCmdFailed(CaliptraError::RUNTIME_GET_IDEV_ID_UNSUPPORTED_ROM.into()) + ), + _ => assert_eq!( + response, + ModelError::MailboxCmdFailed(CaliptraError::RUNTIME_GET_IDEV_ID_UNPROVISIONED.into()) + ), + }; } diff --git a/test/Cargo.toml b/test/Cargo.toml index cf97f91cfb..def56736ad 100644 --- a/test/Cargo.toml +++ b/test/Cargo.toml @@ -44,4 +44,4 @@ itrng = ["caliptra-hw-model/itrng"] verilator = ["caliptra-hw-model/verilator"] fips_self_test = ["caliptra-runtime/fips_self_test"] test_env_immutable_rom = [] -"hw-1.0" = ["caliptra-builder/hw-1.0", "caliptra-drivers/hw-1.0", "caliptra-hw-model/hw-1.0"] +"hw-1.0" = ["caliptra-builder/hw-1.0", "caliptra-drivers/hw-1.0", "caliptra-hw-model/hw-1.0"] \ No newline at end of file diff --git a/test/tests/caliptra_integration_tests/smoke_test.rs b/test/tests/caliptra_integration_tests/smoke_test.rs index a13c8956ab..f5477f21fd 100644 --- a/test/tests/caliptra_integration_tests/smoke_test.rs +++ b/test/tests/caliptra_integration_tests/smoke_test.rs @@ -2,7 +2,7 @@ use caliptra_api::soc_mgr::SocManager; use caliptra_api_types::{DeviceLifecycle, Fuses}; use caliptra_builder::firmware::{APP_WITH_UART, FMC_WITH_UART}; -use caliptra_builder::{firmware, ImageOptions}; +use caliptra_builder::{firmware, get_ci_rom_version, CiRomVersion, ImageOptions}; use caliptra_common::mailbox_api::{ GetFmcAliasCertReq, GetLdevCertReq, GetRtAliasCertReq, ResponseVarSize, }; @@ -25,6 +25,59 @@ use regex::Regex; use std::mem; use zerocopy::AsBytes; +// Support testing against older versions of ROM in CI +// More constants may need to be added here as the ROMs further diverge +struct RomTestParams<'a> { + #[allow(dead_code)] + testdata_path: &'a str, + fmc_alias_cert_redacted_txt: &'a str, + fmc_alias_cert_redacted_der: &'a [u8], + tcb_info_vendor: Option<&'a str>, + tcb_device_info_model: Option<&'a str>, + tcb_fmc_info_model: Option<&'a str>, + tcb_info_flags: Option, +} +const ROM_1_0_TEST_PARAMS: RomTestParams = RomTestParams { + testdata_path: "tests/caliptra_integration_tests/smoke_testdata/rom-1.0", + fmc_alias_cert_redacted_txt: include_str!("smoke_testdata/rom-1.0/fmc_alias_cert_redacted.txt"), + fmc_alias_cert_redacted_der: include_bytes!( + "smoke_testdata/rom-1.0/fmc_alias_cert_redacted.der" + ), + tcb_info_vendor: Some("Caliptra"), + tcb_device_info_model: Some("Device"), + tcb_fmc_info_model: Some("FMC"), + tcb_info_flags: Some(0x80000000), +}; +const ROM_1_1_TEST_PARAMS: RomTestParams = RomTestParams { + testdata_path: "tests/caliptra_integration_tests/smoke_testdata/rom-1.1", + fmc_alias_cert_redacted_txt: include_str!("smoke_testdata/rom-1.1/fmc_alias_cert_redacted.txt"), + fmc_alias_cert_redacted_der: include_bytes!( + "smoke_testdata/rom-1.1/fmc_alias_cert_redacted.der" + ), + ..ROM_1_0_TEST_PARAMS +}; +const ROM_LATEST_TEST_PARAMS: RomTestParams = RomTestParams { + testdata_path: "tests/caliptra_integration_tests/smoke_testdata/rom-latest", + fmc_alias_cert_redacted_txt: include_str!( + "smoke_testdata/rom-latest/fmc_alias_cert_redacted.txt" + ), + fmc_alias_cert_redacted_der: include_bytes!( + "smoke_testdata/rom-latest/fmc_alias_cert_redacted.der" + ), + tcb_info_vendor: None, + tcb_device_info_model: None, + tcb_fmc_info_model: None, + tcb_info_flags: Some(0x00000001), +}; + +fn get_rom_test_params() -> RomTestParams<'static> { + match get_ci_rom_version() { + CiRomVersion::Rom1_0 => ROM_1_0_TEST_PARAMS, + CiRomVersion::Rom1_1 => ROM_1_1_TEST_PARAMS, + _ => ROM_LATEST_TEST_PARAMS, + } +} + #[track_caller] fn assert_output_contains(haystack: &str, needle: &str) { assert!( @@ -278,8 +331,10 @@ fn smoke_test() { dice_tcb_info, [ DiceTcbInfo { - vendor: None, - model: None, + vendor: get_rom_test_params().tcb_info_vendor.map(String::from), + model: get_rom_test_params() + .tcb_device_info_model + .map(String::from), // This is from the SVN in the fuses (7 bits set) svn: Some(0x107), fwids: vec![DiceFwid { @@ -287,13 +342,13 @@ fn smoke_test() { digest: device_info_hash.to_vec(), },], - flags: Some(0x00000001), + flags: get_rom_test_params().tcb_info_flags, ty: Some(b"DEVICE_INFO".to_vec()), ..Default::default() }, DiceTcbInfo { - vendor: None, - model: None, + vendor: get_rom_test_params().tcb_info_vendor.map(String::from), + model: get_rom_test_params().tcb_fmc_info_model.map(String::from), // This is from the SVN in the image (9) svn: Some(0x109), fwids: vec![DiceFwid { @@ -404,16 +459,16 @@ fn smoke_test() { String::from_utf8(fmc_alias_cert_redacted.to_text().unwrap()).unwrap(); // To update the alias-cert golden-data: - // std::fs::write("tests/caliptra_integration_tests/smoke_testdata/fmc_alias_cert_redacted.txt", &fmc_alias_cert_redacted_txt).unwrap(); - // std::fs::write("tests/caliptra_integration_tests/smoke_testdata/fmc_alias_cert_redacted.der", &fmc_alias_cert_redacted_der).unwrap(); + // std::fs::write(format!("{}/fmc_alias_cert_redacted.txt", get_rom_test_params().testdata_path), &fmc_alias_cert_redacted_txt).unwrap(); + // std::fs::write(format!("{}/fmc_alias_cert_redacted.der", get_rom_test_params().testdata_path), &fmc_alias_cert_redacted_der).unwrap(); assert_eq!( fmc_alias_cert_redacted_txt.as_str(), - include_str!("smoke_testdata/fmc_alias_cert_redacted.txt") + get_rom_test_params().fmc_alias_cert_redacted_txt ); assert_eq!( fmc_alias_cert_redacted_der, - include_bytes!("smoke_testdata/fmc_alias_cert_redacted.der") + get_rom_test_params().fmc_alias_cert_redacted_der ); } diff --git a/test/tests/caliptra_integration_tests/smoke_testdata/rom-1.0/fmc_alias_cert_redacted.der b/test/tests/caliptra_integration_tests/smoke_testdata/rom-1.0/fmc_alias_cert_redacted.der new file mode 100644 index 0000000000000000000000000000000000000000..84e7805d2c139eb500dbefa7e5a5c3988a60cb38 GIT binary patch literal 907 zcmXqLVs1BRV&+@G%*4pVB;tYv7;v$1XtjBqvt?msHpn!TF_2nh^Gf?nxNiFkqG4wQW2g$MuI~WG_S-Kj#SeiJwI+~aP1r3cH zoy{yP%$;403@t27O)cF_4BXr-P0h{CT`dd@O)M-d4U{DKjSP&84Ge)045B3XErGz$ z$QX!BEln+>3~~(R4P+tC5kql~o3FEiV@_sbF_Me0_>CkXgE9jFHg<4OFfp>RYB#bl zC^087uw1OaRB=hK^!10gX1X8TBvg)s#NKA-2!65X^2!T~Pet~&v2plStUhsGI5t*# z_w}4lDV}^^7ES%t$ImbSPU%laxK!x;nwJ@O(vJ#X|FgSt8|N)$+4mdwPb;$hyQ#PB zV}9)7CdNF2CdMoSA)rrXg&7(Dvv3%&0VyU%W&=Ku7(Ymig_((o#Xz2oExnPIm4$^x z)IgX;kO3VSG(Li=U}b5%PLltJj$&|{kmX|$W5J%Hnh^Gf?nxNiFkqG4wQW2g$MuI~WG_S-Kj#SeiJwI+~aP1r3cH zoy{yP%$;403@t27O)cF_4BXr-P0h{CT`dd@O)M-d4U{DKjSP&84Ge)045B3XErGz$ z$QX!BEln+>3~~(R4P+tC5kql~o3FEiV@_sbF_Me0_>CkXgE9jFHg<4OFfp>RYB#bl zC^087uw1OaRB=hK^!10gX1X8TBvg)s#NKA-2!65X^2!T~Pet~&v2plStUhsGI5t*# z_w}4lDV}^^7ES%t$ImbSPU%laxK!x;nwJ@O(vJ#X|FgSt8|N)$+4mdwPb;$hyQ#PB zV}9)7CdNF2CdMoSA)rrXg&7(Dvv3%&0VyU%W&=Ku7(Ymig_((o#Xz2oExnPIm4$^x z)IgX;kO3VSG(Li=U}b5%PLltJj$&|{kmX|$W5J%H ROM_EXP_1_0_1, + "1_0_3" => ROM_EXP_1_0_3, _ => panic!( "FIPS Test: Unknown version for expected ROM values ({})", version ), } } else { - ROM_EXP_CURRENT + match get_ci_rom_version() { + CiRomVersion::Rom1_0 => ROM_EXP_1_0_3, + CiRomVersion::Rom1_1 => ROM_EXP_1_1_0, + _ => ROM_EXP_CURRENT, + } } } }