// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
  # This auxiliary chip sim cfg specification focuses on chip level smoke tests.
  # Please see chip_sim_cfg.hjson for full setup details.

  # Note: Please maintain alphabetical order.
  tests: [
    {
      name: chip_sw_aes_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/aes_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_aon_timer_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/aon_timer_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_clkmgr_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/clkmgr_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    // TODO(lowrisc/opentitan#7505): Debug CSRNG generate bits mismatch.
    {
     name: chip_sw_csrng_smoketest
     uvm_test_seq: chip_sw_base_vseq
     sw_images: ["sw/device/tests/csrng_smoketest:1"]
     en_run_modes: ["sw_test_mode_test_rom"]
    }
    // TODO(lowrisc/opentitan#10092): Remove dependency on uncontrolled environment.
    {
      name: chip_sw_entropy_src_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/entropy_src_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_gpio_smoketest
      uvm_test_seq: chip_sw_gpio_smoke_vseq
      sw_images: ["sw/device/tests/gpio_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_hmac_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/hmac_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_kmac_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/kmac_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_otbn_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/otbn_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_otp_ctrl_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/otp_ctrl_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_rv_plic_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/rv_plic_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_pwrmgr_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/pwrmgr_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
      run_opts: ["+sw_test_timeout_ns=10000000"]
    }
    {
      name: chip_sw_rv_timer_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/rv_timer_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_rstmgr_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/rstmgr_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_sram_ctrl_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/sram_ctrl_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
    {
      name: chip_sw_uart_smoketest
      uvm_test_seq: chip_sw_base_vseq
      sw_images: ["sw/device/tests/uart_smoketest:1"]
      en_run_modes: ["sw_test_mode_test_rom"]
    }
  ]
  regressions: [
    {
      name: smoke
      tests: ["chip_sw_pwrmgr_smoketest"]
    }
    {
      name: dif
      tests: ["chip_sw_aes_smoketest",
              "chip_sw_aon_timer_smoketest",
              "chip_sw_clkmgr_smoketest",
              // TODO(lowrisc/opentitan#7505): Debug CSRNG generate bits mismatch.
              "chip_sw_csrng_smoketest",
              // TODO(lowrisc/opentitan#10092): Remove dependency on uncontrolled environment.
              "chip_sw_entropy_src_smoketest",
              "chip_sw_gpio_smoketest",
              "chip_sw_hmac_smoketest",
              "chip_sw_kmac_smoketest",
              "chip_sw_otbn_smoketest",
              "chip_sw_otp_ctrl_smoketest",
              "chip_sw_rv_plic_smoketest",
              "chip_sw_pwrmgr_smoketest",
              "chip_sw_rv_timer_smoketest",
              "chip_sw_rstmgr_smoketest",
              "chip_sw_uart_smoketest",
            ]
    }
  ]
}
