// 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"]
  testpoints: [
    {
      name: smoke
      desc: '''
            Enable csrng, send instantiate/generate cmds, verify 0-seed genbits/interrupt.
            '''
      milestone: V1
      tests: ["csrng_smoke"]
    }
    {
      name: firmware
      desc: '''
            Verify ability to access genbits register based on value of efuse input.
            Verify regen bit disables write access of control registers.
            Verify registers at End-Of-Test.
            '''
      milestone: V2
      tests: []
    }
    {
      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: []
    }
    {
      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.
            '''
      milestone: V2
      tests: []
    }
    {
      name: life cycle
      desc: '''
            Verify lifecycle hardware debug mode enables AES bypass, reading CSRNG internal state.
            Verify CSRNG internal state for all csrng/genbits operations.
            '''
      milestone: V2
      tests: []
    }
    {
      name: genbits
      desc: '''
            Verify genbits generated as predicted.
            Verify fips bits is passed through properly.
            Verify for multiple hw app interfaces running in parallel.
            '''
      milestone: V2
      tests: []
    }
    {
      name: stress_all
      desc: '''
            Combine the other individual testpoints while injecting TL errors and running CSR tests
            in parallel.
            '''
      milestone: V2
      tests: []
    }
  ]
}
