// 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=8000000"]
    }
    {
      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",
            ]
    }
  ]
}
