blob: 6befea45df727d86ede751b13bcbb7fcabe2ac4a [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
// Security countermeasures testplan extracted from the IP Hjson using reggen.
//
// This testplan is auto-generated only the first time it is created. This is
// because this testplan needs to be hand-editable. It is possible that these
// testpoints can go out of date if the spec is updated with new
// countermeasures. When `reggen` is invoked when this testplan already exists,
// It checks if the list of testpoints is up-to-date and enforces the user to
// make further manual updates.
//
// These countermeasures and their descriptions can be found here:
// .../otp_ctrl/data/otp_ctrl.hjson
//
// It is possible that the testing of some of these countermeasures may already
// be covered as a testpoint in a different testplan. This duplication is ok -
// the test would have likely already been developed. We simply map those tests
// to the testpoints below using the `tests` key.
//
// Please ensure that this testplan is imported in:
// .../otp_ctrl/data/otp_ctrl_testplan.hjson
{
testpoints: [
{
name: sec_cm_bus_integrity
desc: "Verify the countermeasure(s) BUS.INTEGRITY."
stage: V2S
tests: ["otp_ctrl_tl_intg_err"]
}
{
name: sec_cm_secret_mem_scramble
desc: "Verify the countermeasure(s) SECRET.MEM.SCRAMBLE."
stage: V2S
tests: ["otp_ctrl_smoke"]
}
{
name: sec_cm_part_mem_digest
desc: "Verify the countermeasure(s) PART.MEM.DIGEST."
stage: V2S
tests: ["otp_ctrl_smoke"]
}
{
name: sec_cm_dai_fsm_sparse
desc: "Verify the countermeasure(s) DAI.FSM.SPARSE."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_kdi_fsm_sparse
desc: "Verify the countermeasure(s) KDI.FSM.SPARSE."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_lci_fsm_sparse
desc: "Verify the countermeasure(s) LCI.FSM.SPARSE."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_part_fsm_sparse
desc: "Verify the countermeasure(s) PART.FSM.SPARSE."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_scrmbl_fsm_sparse
desc: "Verify the countermeasure(s) SCRMBL.FSM.SPARSE."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_timer_fsm_sparse
desc: "Verify the countermeasure(s) TIMER.FSM.SPARSE."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_dai_ctr_redun
desc: "Verify the countermeasure(s) DAI.CTR.REDUN."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_kdi_seed_ctr_redun
desc: "Verify the countermeasure(s) KDI_SEED.CTR.REDUN."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_kdi_entropy_ctr_redun
desc: "Verify the countermeasure(s) KDI_ENTROPY.CTR.REDUN."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_lci_ctr_redun
desc: "Verify the countermeasure(s) LCI.CTR.REDUN."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_part_ctr_redun
desc: "Verify the countermeasure(s) PART.CTR.REDUN."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_scrmbl_ctr_redun
desc: "Verify the countermeasure(s) SCRMBL.CTR.REDUN."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_timer_integ_ctr_redun
desc: "Verify the countermeasure(s) TIMER_INTEG.CTR.REDUN."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_timer_cnsty_ctr_redun
desc: "Verify the countermeasure(s) TIMER_CNSTY.CTR.REDUN."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_timer_lfsr_redun
desc: "Verify the countermeasure(s) TIMER.LFSR.REDUN."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_dai_fsm_local_esc
desc: "Verify the countermeasure(s) DAI.FSM.LOCAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc", "otp_ctrl_sec_cm"]
}
{
name: sec_cm_lci_fsm_local_esc
desc: "Verify the countermeasure(s) LCI.FSM.LOCAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc"]
}
{
name: sec_cm_kdi_fsm_local_esc
desc: "Verify the countermeasure(s) KDI.FSM.LOCAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc"]
}
{
name: sec_cm_part_fsm_local_esc
desc: "Verify the countermeasure(s) PART.FSM.LOCAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc", "otp_ctrl_macro_errs"]
}
{
name: sec_cm_scrmbl_fsm_local_esc
desc: "Verify the countermeasure(s) SCRMBL.FSM.LOCAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc"]
}
{
name: sec_cm_timer_fsm_local_esc
desc: "Verify the countermeasure(s) TIMER.FSM.LOCAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc", "otp_ctrl_sec_cm"]
}
{
name: sec_cm_dai_fsm_global_esc
desc: "Verify the countermeasure(s) DAI.FSM.GLOBAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc", "otp_ctrl_sec_cm"]
}
{
name: sec_cm_lci_fsm_global_esc
desc: "Verify the countermeasure(s) LCI.FSM.GLOBAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc"]
}
{
name: sec_cm_kdi_fsm_global_esc
desc: "Verify the countermeasure(s) KDI.FSM.GLOBAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc"]
}
{
name: sec_cm_part_fsm_global_esc
desc: "Verify the countermeasure(s) PART.FSM.GLOBAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc", "otp_ctrl_macro_errs"]
}
{
name: sec_cm_scrmbl_fsm_global_esc
desc: "Verify the countermeasure(s) SCRMBL.FSM.GLOBAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc"]
}
{
name: sec_cm_timer_fsm_global_esc
desc: "Verify the countermeasure(s) TIMER.FSM.GLOBAL_ESC."
stage: V2S
tests: ["otp_ctrl_parallel_lc_esc", "otp_ctrl_sec_cm"]
}
{
name: sec_cm_part_data_reg_integrity
desc: "Verify the countermeasure(s) PART.DATA_REG.INTEGRITY."
stage: V2S
tests: ["otp_ctrl_init_fail"]
}
{
name: sec_cm_part_data_reg_bkgn_chk
desc: "Verify the countermeasure(s) PART.DATA_REG.BKGN_CHK."
stage: V2S
tests: ["otp_ctrl_check_fail"]
}
{
name: sec_cm_part_mem_regren
desc: "Verify the countermeasure(s) PART.MEM.REGREN."
stage: V2S
tests: ["otp_ctrl_dai_lock"]
}
{
name: sec_cm_part_mem_sw_unreadable
desc: "Verify the countermeasure(s) PART.MEM.SW_UNREADABLE."
stage: V2S
tests: ["otp_ctrl_dai_lock"]
}
{
name: sec_cm_part_mem_sw_unwritable
desc: "Verify the countermeasure(s) PART.MEM.SW_UNWRITABLE."
stage: V2S
tests: ["otp_ctrl_dai_lock"]
}
{
name: sec_cm_lc_part_mem_sw_noaccess
desc: "Verify the countermeasure(s) LC_PART.MEM.SW_NOACCESS."
stage: V2S
tests: ["otp_ctrl_dai_lock"]
}
{
name: sec_cm_access_ctrl_mubi
desc: "Verify the countermeasure(s) ACCESS.CTRL.MUBI."
stage: V2S
tests: ["otp_ctrl_dai_lock"]
}
{
name: sec_cm_token_valid_ctrl_mubi
desc: "Verify the countermeasure(s) TOKEN_VALID.CTRL.MUBI."
stage: V2S
tests: ["otp_ctrl_smoke"]
}
{
name: sec_cm_lc_ctrl_intersig_mubi
desc: "Verify the countermeasure(s) LC_CTRL.INTERSIG.MUBI."
stage: V2S
tests: ["otp_ctrl_dai_lock"]
}
{
name: sec_cm_test_bus_lc_gated
desc: "Verify the countermeasure(s) TEST.BUS.LC_GATED."
stage: V2S
tests: ["otp_ctrl_smoke"]
}
{
name: sec_cm_test_tl_lc_gate_fsm_sparse
desc: "Verify the countermeasure(s) TEST_TL_LC_GATE.FSM.SPARSE."
stage: V2S
tests: ["otp_ctrl_sec_cm"]
}
{
name: sec_cm_direct_access_config_regwen
desc: "Verify the countermeasure(s) DIRECT_ACCESS.CONFIG.REGWEN."
stage: V2S
tests: ["otp_ctrl_regwen"]
}
{
name: sec_cm_check_trigger_config_regwen
desc: "Verify the countermeasure(s) CHECK_TRIGGER.CONFIG.REGWEN."
stage: V2S
tests: ["otp_ctrl_smoke"]
}
{
name: sec_cm_check_config_regwen
desc: "Verify the countermeasure(s) CHECK.CONFIG.REGWEN."
stage: V2S
tests: ["otp_ctrl_smoke"]
}
{
name: sec_cm_macro_mem_integrity
desc: "Verify the countermeasure(s) MACRO.MEM.INTEGRITY."
stage: V2S
tests: ["otp_ctrl_macro_errs"]
}
{
name: sec_cm_macro_mem_cm
desc: "Verify the countermeasure(s) MACRO.MEM.CM."
stage: V2S
tests: ["N/A"]
}
]
}