blob: 50c45737f4b54a352682b76f034c575096d340dc [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
name: "csrng"
import_testplans: ["hw/dv/tools/dvsim/testplans/csr_testplan.hjson",
"hw/dv/tools/dvsim/testplans/intr_test_testplan.hjson",
"hw/dv/tools/dvsim/testplans/alert_test_testplan.hjson",
"hw/dv/tools/dvsim/testplans/tl_device_access_types_testplan.hjson",
"hw/dv/tools/dvsim/testplans/stress_all_with_reset_testplan.hjson",
"csrng_sec_cm_testplan.hjson"]
testpoints: [
{
name: smoke
desc: '''
Verify sending instantiate/generate cmds via SW path.
Verify reading genbits via SW path.
'''
milestone: V1
tests: ["csrng_smoke"]
}
{
name: interrupts
desc: '''
Verify cs_cmd_req_done interrupt asserts/clears as predicted.
Verify cs_entropy_req interrupt asserts/clears as predicted.
Verify cs_hw_inst_exc interrupt asserts/clears as predicted.
Verify cs_fifo_err interrupt asserts/clears as predicted.
Verify fifo error status bits are set as predicted.
'''
milestone: V2
tests: ["csrng_intr"]
}
{
name: alerts
desc: '''
Verify recov_alert asserts as predicted.
Verify all recov_alert_sts bits assert/clear as predicted.
Verify fatal_alert asserts as predicted.
'''
milestone: V2
tests: ["csrng_alert"]
}
{
name: err
desc: '''
Verify err_code register bits assert/clear as predicted.
'''
milestone: V2
tests: ["csrng_err"]
}
{
name: cmds
desc: '''
Verify all SW app csrng commands req/status behave as predicted.
Verify all HW app csrng commands req/status behave as predicted.
Verify above for all valid values of acmd, clen, flags, glen.
Verify for multiple hw app interfaces running in parallel.
Verify sw/hw app interfaces running in parallel.
Verify internal state for sw/hw apps.
Verify genbits generated as predicted.
Verify fips bit is passed through properly.
Verify ability to access registers based on otp, enables.
Verify AES_HALT.
Verify commands with continuous/non-continuous valid.
'''
milestone: V2
tests: ["csrng_cmds"]
}
{
name: life cycle
desc: '''
Verify lifecycle hardware debug mode.
'''
milestone: V2
tests: ["csrng_cmds"]
}
{
name: stress_all
desc: '''
Combine the other individual testpoints while injecting TL errors and running CSR tests
in parallel.
'''
milestone: V2
tests: ["csrng_stress_all"]
}
]
covergroups: [
{
name: csrng_cfg_cg
desc: '''
Covers that all csrng configuration options have been tested.
Individual config settings that will be covered include:
- otp_en_cs_sw_app_read
- sw_app_enable
- read_int_state
'''
}
{
name: csrng_cmds_cg
desc: '''
Covers that all csrng commands and variations have been tested for all apps.
Individual commands and command options that will be covered include:
- app
- acmd, clen, flags, glen
Crosses of app/acmd and acmd/clen, acmd/flags, acmd/glen
- continuous/non-continuous valid
'''
}
{
name: err_test_cg
desc: '''
Covers that all fatal errors, all fifo errors, all state machine errors and
all error codes of csrng have been tested.
Individual config settings that will be covered include:
- which_hw_inst_exc (0 to NHwApps-1), NHwApps possible hw instance exceptions
- which_sp2v (0 to Sp2VWidth-1), SP2V_HIGH_LOGIC width
- which_fatal_err (0 to 25), 26 possible fatal errors
- which_fifo (0 to 15), 16 different fifos
- which_err_code (0 to 51), 26 possible fatal errors, plus 26 ERR_CODE_TEST bits test
- which_fifo_err (0 to 2), fifo write/read/state errors
- which_invalid_mubi (0 to 2), 3 possible invalid mubi4 fields
'''
}
]
}