blob: 2e9c17b1fa4c727825fa5ad3456a376c905c3198 [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 of the sim cfg - typically same as the name of the DUT.
name: chip
// Top level dut name (sv module).
dut: chip_earlgrey_asic
// Top level testbench name (sv module).
tb: tb
// Default simulator used to sign off.
tool: vcs
// Fusesoc core file used for building the file list.
fusesoc_core: lowrisc:dv:chip_sim:0.1
// Testplan hjson file, excluding the connectivity tests.
testplan: "{proj_root}/hw/top_earlgrey/data/chip_testplan.hjson:-conn"
// RAL spec - used to generate the RAL model.
ral_spec: "{proj_root}/hw/top_earlgrey/data/top_earlgrey.hjson"
// Add additional tops for simulation.
sim_tops: ["clkmgr_bind",
"pwrmgr_bind",
"rstmgr_bind",
"top_earlgrey_bind",
"xbar_main_bind",
"xbar_peri_bind"]
// Import additional common sim cfg files.
import_cfgs: [// Project wide common sim cfg file
"{proj_root}/hw/dv/tools/dvsim/common_sim_cfg.hjson",
// Common CIP test lists
"{proj_root}/hw/dv/tools/dvsim/tests/csr_tests.hjson",
// TODO #5484, comment these 2 lines out because spi host memory is dummy
// "{proj_root}/hw/dv/tools/dvsim/tests/mem_tests.hjson",
// xbar tests
"{proj_root}/hw/ip/tlul/generic_dv/xbar_tests.hjson",
// Config files to get the correct flags for otbn_memutil and otbn_tracer
"{proj_root}/hw/dv/verilator/memutil_dpi_scrambled_opts.hjson",
"{proj_root}/hw/ip/otbn/dv/memutil/otbn_memutil_sim_opts.hjson",
"{proj_root}/hw/ip/otbn/dv/tracer/otbn_tracer_sim_opts.hjson",
"{proj_root}/hw/top_earlgrey/dv/chip_smoketests.hjson",
"{proj_root}/hw/top_earlgrey/dv/chip_mask_rom_tests.hjson",
]
// Override existing project defaults to supply chip-specific values.
overrides: [
// Chip level design is markedly different from our Comportable IPs (and so
// is our coverage goals). The coverage goals also differ between 'default'
// and the 'cover_reg_top' (used by common tests) builds. We override the
// variables below to swap the coverage cfg files used for the Comportable
// IPs with chip-specific ones. See `doc/ug/dv_methodology.md` for more
// details.
// Used by all chip level functional test. Collects coverage on the IO
// boundary of all pre-verified IPs and full coverage on non-pre-verified
// IPs. See `hw/dv/tools/dvsim/common_sim_cfg.hjson` for the default value.
{
name: default_vcs_cov_cfg_file
value: "-cm_hier {proj_root}/hw/top_earlgrey/dv/cov/chip_cover.cfg+{proj_root}/hw/top_earlgrey/dv/autogen/xbar_tgl_excl.cfg"
}
// Used by 'cover_reg_top' only builds - we only cover the *_reg_top of
// the non-pre-verified modules at the chip level. See
// `hw/dv/tools/dvsim//common_sim_cfg.hjson` for the default value.
{
name: cover_reg_top_vcs_cov_cfg_file
value: "-cm_hier {proj_root}/hw/top_earlgrey/dv/cov/chip_cover_reg_top.cfg"
}
{
name: xbar_build_mode_vcs_cov_cfg_file
value: "-cm_hier {proj_root}/hw/top_earlgrey/dv/cov/chip_cover_reg_top.cfg"
}
// Used by the UNR flow.
{
name: vcs_unr_cfg_file
value: "{proj_root}/hw/top_earlgrey/dv/cov/unr.cfg"
}
// This defaults to 'ip' in `hw/data/common_project_cfg.hjson`.
{
name: design_level
value: "top"
}
// The jtag agent requires the data and bytenable widths to be increased.
{
name: tl_dw
value: 64
}
{
name: tl_dbw
value: 8
}
]
// exclusion files
vcs_cov_excl_files: ["{proj_root}/hw/top_earlgrey/dv/cov/conn_ast_mem_cfg.el"]
// Default iterations for all tests - each test entry can override this.
reseed: 1
// Default UVM test and seq class name.
uvm_test: chip_base_test
uvm_test_seq: chip_sw_base_vseq
sw_build_device: sim_dv
// Add a default build option to indicate it is a top-level DV testbench.
build_opts: ["+define+TOP_LEVEL_DV"]
// Add build modes.
build_modes: [
{
name: en_ibex_tracer
build_opts: ["+define+RVFI=1"]
}
// Sim mode that enables build randomization. See the `build_seed` mode
// defined in `hw/dv/tools/dvsim/common_modes.hjson` for more details.
{
name: build_seed
pre_build_cmds: [
// TODO: find where in run phase we are using this pkg. It fails during ibex TLUL integrity
// check.
// '''cd {proj_root} && ./util/topgen.py -t {ral_spec} \
// -o hw/top_earlgrey --rnd_cnst_seed {seed}
// ''',
"cd {proj_root} && ./util/design/gen-otp-mmap.py --seed {seed}",
// Use eval_cmd to save build_seed in a file and reuse that file during run phase.
// Create the build directory first because eval_cmd runs before actual build phase command
// execution.
'''{eval_cmd} mkdir -p {build_dir}; echo {seed} > {build_seed_file_path}; \
echo "echo create file {build_seed_file_path}"
'''
]
is_sim_mode: 1
}
]
// Add options needed to compile against otbn_memutil, otbn_tracer, and
// memutil_dpi_scrambled.
en_build_modes: ["{tool}_otbn_memutil_build_opts",
"{tool}_otbn_tracer_build_opts",
"{tool}_memutil_dpi_scrambled_build_opts"]
// Setup for generating OTP images.
gen_otp_images_cfg_dir: "{proj_root}/hw/ip/otp_ctrl/data"
gen_otp_images_cmd: "{proj_root}/util/design/gen-otp-img.py"
gen_otp_images_cmd_opts: ["--quiet",
"--img-seed {seed}",
// Only provide `--otp-seed` argument if the file to store build_seed
// is found. Set this option at the end of the list to avoid `eval_cmd`
// take other options as eval_cmd.
'''{eval_cmd} file=`echo {build_seed_file_path}`; \
if [ -f $file ]; then \
while read line; do \
echo "--otp-seed $line"; \
done < $file; \
fi ''']
// Add run modes.
run_modes: [
// Generates OTP images with different LC states with cannonical values,
// pseudo-randomized with the same test seed.
{
name: gen_otp_images_mode
pre_run_cmds: [
'''{gen_otp_images_cmd} \
--img-cfg {gen_otp_images_cfg_dir}/otp_ctrl_img_raw.hjson \
--out {run_dir}/otp_ctrl_img_raw.vmem \
{gen_otp_images_cmd_opts}
''',
'''{gen_otp_images_cmd} \
--img-cfg {gen_otp_images_cfg_dir}/otp_ctrl_img_dev.hjson \
--out {run_dir}/otp_ctrl_img_dev.vmem \
{gen_otp_images_cmd_opts}
''',
'''{gen_otp_images_cmd} \
--img-cfg {gen_otp_images_cfg_dir}/otp_ctrl_img_rma.hjson \
--out {run_dir}/otp_ctrl_img_rma.vmem \
{gen_otp_images_cmd_opts}
''',
]
}
{
name: sw_test_mode_common
run_opts: ["+sw_build_bin_dir={sw_build_dir}/build-bin",
"+sw_build_device={sw_build_device}",
// Separate individual SW images supplied to +sw_images plusarg by comma.
"+sw_images={eval_cmd} echo {sw_images} | sed -E 's/\\s+/,/g'"]
en_run_modes: ["gen_otp_images_mode"]
}
{
name: sw_test_mode_test_rom
sw_images: ["sw/device/lib/testing/test_rom/test_rom:0"]
en_run_modes: ["sw_test_mode_common"]
}
{
name: sw_test_mode_mask_rom
sw_images: ["sw/device/silicon_creator/mask_rom/mask_rom:0"]
en_run_modes: ["sw_test_mode_common"]
}
{
name: stub_cpu_mode
en_run_modes: ["gen_otp_images_mode"]
run_opts: ["+stub_cpu=1"]
}
{
// Append stub cpu mode to csr_tests_mode, run with 20 reseeds.
name: csr_tests_mode
en_run_modes: ["stub_cpu_mode"]
}
{
// Append stub cpu mode to mem_tests_mode, run with 20 reseeds.
name: mem_tests_mode
en_run_modes: ["stub_cpu_mode"]
reseed: 20
}
{
name: xbar_run_mode
en_run_modes: ["gen_otp_images_mode"]
run_opts: ["+xbar_mode=1"]
reseed: 100
}
]
// List of test specifications.
//
// If you are adding a test that has been generated from the `sw_tests`
// dictionary declared in `sw/device/tests/meson.build`, the `sw_images` list
// below should contain `sw/device/tests/<sw_test_name>` (without any more
// subdirectories) because that is where the meson target is created. For
// example `gpio_test` is added to `sw_tests` in
// `sw/device/tests/sim_dv/meson.build`, but the final meson targets all
// start with `sw/device/tests/gpio_test_`.
//
// Each entry in `sw_images` is followed by an index separated with ':' which
// is used by the testbench to know what type of image is it:
// - 0 for Boot ROM,
// - 1 for SW test,
// - 2 for OTBN test,
// This allows an arbitrary number of SW images to be supplied to the TB.
tests: [
{
// Reused from hw/dv/tools/dvsim/tests/csr_tests.hjson.
name: "chip_csr_bit_bash"
// Don't test over 512 randomly picked CSRs at a time.
run_opts: ["+test_timeout_ns=120_000_000", "+num_test_csrs=400"]
}
{
name: chip_sw_example_flash
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/example_test_from_flash:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_example_rom
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/example_test_from_rom:0"]
en_run_modes: ["sw_test_mode_common"]
}
{
name: chip_sw_sleep_pwm_pulses
uvm_test_seq: chip_sw_pwm_pulses_vseq
sw_images: ["sw/device/tests/sleep_pwm_pulses_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_uart_tx_rx
uvm_test_seq: chip_sw_uart_tx_rx_vseq
sw_images: ["sw/device/tests/uart_tx_rx_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+uart_idx=0"]
reseed: 5
}
{
name: chip_sw_uart_tx_rx_idx1
uvm_test_seq: chip_sw_uart_tx_rx_vseq
sw_images: ["sw/device/tests/uart_tx_rx_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+uart_idx=1"]
reseed: 5
}
{
name: chip_sw_uart_tx_rx_idx2
uvm_test_seq: chip_sw_uart_tx_rx_vseq
sw_images: ["sw/device/tests/uart_tx_rx_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+uart_idx=2"]
reseed: 5
}
{
name: chip_sw_uart_tx_rx_idx3
uvm_test_seq: chip_sw_uart_tx_rx_vseq
sw_images: ["sw/device/tests/uart_tx_rx_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+uart_idx=3"]
reseed: 5
}
{
name: chip_sw_uart_tx_rx_bootstrap
uvm_test_seq: chip_sw_uart_tx_rx_vseq
sw_images: ["sw/device/tests/uart_tx_rx_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+use_spi_load_bootstrap=1"]
}
{
name: chip_sw_uart_rand_baudrate
uvm_test_seq: chip_sw_uart_rand_baudrate_vseq
sw_images: ["sw/device/tests/uart_tx_rx_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=80_000_000"]
reseed: 20
}
{
name: chip_sw_uart_tx_rx_alt_clk_freq
uvm_test_seq: chip_sw_uart_rand_baudrate_vseq
sw_images: ["sw/device/tests/uart_tx_rx_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=80_000_000", "+use_otp_image=LcStRma",
"+ext_clk_type=ExtClkHighSpeed", "+use_extclk=1"]
reseed: 5
}
{
name: chip_sw_uart_tx_rx_alt_clk_freq_low_speed
uvm_test_seq: chip_sw_uart_rand_baudrate_vseq
sw_images: ["sw/device/tests/uart_tx_rx_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=80_000_000", "+use_otp_image=LcStRma",
"+ext_clk_type=ExtClkLowSpeed", "+use_extclk=1", "+extclk_low_speed_sel=1"]
reseed: 5
}
// usually, uart core clock should be 24 Mhz, same as the div_4_clock, regardless using ext_clk
// or not.
// This test uses the high speed ext clk 96 Mhz, but only enable div2, so that it runs at
// 48Mhz, so that we know ext_clk is actually used. But this test may not work in gate-sim, as
// div_4_clock is too fast and it may cause some timing issue
{
name: chip_sw_uart_tx_rx_alt_clk_fast_ip_clk
uvm_test_seq: chip_sw_uart_rand_baudrate_vseq
sw_images: ["sw/device/tests/uart_tx_rx_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=80_000_000", "+use_otp_image=LcStRma",
"+ext_clk_type=ExtClkHighSpeed", "+use_extclk=1", "+extclk_low_speed_sel=1"]
reseed: 5
}
{
name: chip_sw_spi_device_tx_rx
uvm_test_seq: chip_sw_spi_tx_rx_vseq
sw_images: ["sw/device/tests/spi_tx_rx_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_gpio
uvm_test_seq: chip_sw_gpio_vseq
sw_images: ["sw/device/tests/gpio_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_flash_ctrl_ops
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/flash_ctrl_ops_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=7000_000"]
}
{
name: chip_sw_flash_ctrl_lc_rw_en
uvm_test_seq: chip_sw_flash_ctrl_lc_rw_en_vseq
sw_images: ["sw/device/tests/flash_ctrl_lc_rw_en_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_flash_ctrl_access
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/flash_ctrl_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_flash_ctrl_idle_low_power
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/flash_ctrl_idle_low_power_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_flash_rma_unlocked
uvm_test_seq: chip_sw_flash_rma_unlocked_vseq
sw_images: ["sw/device/tests/flash_rma_unlocked_test:0"]
en_run_modes: ["sw_test_mode_common"]
run_opts: ["+sw_test_timeout_ns=200_000_000"]
}
{
name: chip_sw_flash_ctrl_clock_freqs
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/flash_ctrl_clock_freqs_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_lc_ctrl_otp_hw_cfg
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/lc_ctrl_otp_hw_cfg_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
// Set higher reseed value to reach all kmac_data to lc_ctrl toggle coverage.
name: chip_sw_lc_ctrl_transition
uvm_test_seq: chip_sw_lc_ctrl_transition_vseq
sw_images: ["sw/device/tests/lc_ctrl_transition_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
reseed: 15
}
{
name: chip_sw_lc_walkthrough
uvm_test_seq: chip_sw_lc_walkthrough_vseq
sw_images: ["sw/device/tests/lc_walkthrough_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+use_otp_image=LcStRaw"]
reseed: 1
}
{
name: chip_sw_rstmgr_sw_req
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/rstmgr_sw_req_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_rstmgr_sw_rst
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/rstmgr_sw_rst_ctrl_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_rstmgr_alert_info
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/rstmgr_alert_info_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=18_000_000"]
}
{
name: chip_sw_pwrmgr_usbdev_wakeup
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/pwrmgr_usbdev_smoketest:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_pwrmgr_full_aon_reset
uvm_test_seq: chip_sw_full_aon_reset_vseq
sw_images: ["sw/device/tests/rstmgr_smoketest:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_pwrmgr_main_power_glitch_reset
uvm_test_seq: chip_sw_main_power_glitch_vseq
sw_images: ["sw/device/tests/pwrmgr_main_power_glitch_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+bypass_alert_ready_to_end_check=1"]
}
{
name: chip_sw_pwrmgr_sleep_power_glitch_reset
uvm_test_seq: chip_sw_main_power_glitch_vseq
sw_images: ["sw/device/tests/pwrmgr_sleep_power_glitch_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+bypass_alert_ready_to_end_check=1"]
}
{
name: chip_sw_pwrmgr_sleep_disabled
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/pwrmgr_sleep_disabled_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_rv_timer_irq
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_aon_timer_irq
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/aon_timer_irq_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=18000000"]
}
{
name: chip_sw_aon_timer_sleep_wdog_sleep_pause
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/aon_timer_sleep_wdog_sleep_pause_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=18000000"]
}
{
name: chip_sw_aon_timer_wdog_bite_reset
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/aon_timer_wdog_bite_reset_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=18000000"]
}
{
name: chip_sw_aon_timer_wdog_lc_escalate
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/aon_timer_wdog_lc_escalate_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=18000000"]
}
{
name: chip_sw_adc_ctrl_sleep_debug_cable_wakeup
uvm_test_seq: chip_sw_adc_ctrl_sleep_debug_cable_wakeup_vseq
sw_images: ["sw/device/tests/adc_ctrl_sleep_debug_cable_wakeup_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=18000000"]
}
{
name: chip_sw_otbn_randomness
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/otbn_randomness_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=18000000"]
}
{
name: chip_sw_otbn_ecdsa_op_irq
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/otbn_ecdsa_op_irq_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=28000000"]
}
{
name: chip_sw_otbn_mem_scramble
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/otbn_mem_scramble_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=15000000"]
}
{
name: chip_sw_aes_enc
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/aes_smoketest:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=22000000"]
}
{
name: chip_sw_aes_idle
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/aes_idle_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=15000000"]
}
{
name: chip_sw_alert_test
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/alert_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_alert_handler_ping_timeout
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/alert_handler_ping_timeout_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_aes_entropy
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/aes_entropy_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=15000000"]
}
{
name: chip_sw_hmac_enc_irq
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/hmac_enc_irq_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_hmac_enc
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/hmac_enc_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_keymgr_key_derivation
uvm_test_seq: chip_sw_keymgr_key_derivation_vseq
sw_images: ["sw/device/tests/keymgr_key_derivation_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=20000000"]
}
{
name: chip_sw_keymgr_key_derivation_jitter_en
uvm_test_seq: chip_sw_keymgr_key_derivation_vseq
sw_images: ["sw/device/tests/keymgr_key_derivation_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=20000000", "+en_jitter=1"]
}
{
name: chip_sw_kmac_mode_cshake
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/kmac_mode_cshake_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_kmac_mode_kmac
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/kmac_mode_kmac_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_kmac_app_rom
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/kmac_app_rom_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_kmac_idle
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/kmac_idle_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_rom_ctrl_integrity_check
uvm_test_seq: chip_sw_rom_ctrl_integrity_check_vseq
sw_images: ["sw/device/tests/rom_ctrl_integrity_check_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_sram_ctrl_ret_scrambled_access
uvm_test_seq: chip_sw_sram_ctrl_scrambled_access_vseq
sw_images: ["sw/device/tests/sram_ctrl_ret_scrambled_access_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+mem_sel=ret"]
}
{
name: chip_sw_sram_ctrl_main_scrambled_access
uvm_test_seq: chip_sw_sram_ctrl_scrambled_access_vseq
sw_images: ["sw/device/tests/sram_ctrl_main_scrambled_access_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+mem_sel=main",
"+sw_test_timeout_ns=7000000"]
}
{
name: chip_sw_sram_ctrl_execution_main
uvm_test_seq: chip_sw_sram_ctrl_execution_main_vseq
sw_images: ["sw/device/tests/sram_ctrl_execution_test_main:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_sleep_sram_ret_contents
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/sram_ctrl_sleep_sram_ret_contents_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_sensor_ctrl_alert
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/sensor_ctrl_alert_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=40000000"]
}
{
name: chip_sw_sensor_ctrl_status
uvm_test_seq: chip_sw_sensor_ctrl_status_intr_vseq
sw_images: ["sw/device/tests/sensor_ctrl_status_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=40000000"]
}
{
name: chip_sw_pwrmgr_sleep_sensor_ctrl_alert_wakeup
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/sensor_ctrl_wakeup_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=8000000"]
}
{
name: chip_sw_coremark
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/benchmarks/coremark/coremark_top_earlgrey:1:external"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+en_uart_logger=1",
"+sw_test_timeout_ns=22000000"]
}
// The test below is from tl_access_tests.hjson, but we don't need to include tl_intg_err,
// which is also in tl_access_tests.hjson, as TLUL integrity is generated by design and we
// include this block in the data path when we stub CPU to verify TL access
// So copy chip_tl_errors here and append the stub_cpu_mode run mode.
{
name: chip_tl_errors
build_mode: "cover_reg_top"
uvm_test_seq: "{name}_common_vseq"
run_opts: ["+run_tl_errors"]
en_run_modes: ["stub_cpu_mode"]
reseed: 20
}
{
name: chip_plic_all_irqs
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/plic_all_irqs_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_clkmgr_off_peri
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/clkmgr_off_peri_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_clkmgr_external_clk_src_for_lc
uvm_test_seq: chip_sw_lc_ctrl_transition_vseq
sw_images: ["sw/device/tests/clkmgr_external_clk_src_for_lc_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+ext_clk_type=ExtClkLowSpeed", "+calibrate_usb_clk=1"]
}
{
name: chip_sw_clkmgr_external_clk_src_for_sw_fast
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/clkmgr_external_clk_src_for_sw_fast_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+ext_clk_type=ExtClkHighSpeed", "+calibrate_usb_clk=1"]
}
{
name: chip_sw_clkmgr_external_clk_src_for_sw_slow
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/clkmgr_external_clk_src_for_sw_slow_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+ext_clk_type=ExtClkLowSpeed", "+calibrate_usb_clk=1"]
}
{
name: chip_sw_clkmgr_jitter
uvm_test_seq: chip_sw_base_vseq
sw_images: ["sw/device/tests/clkmgr_jitter_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_jtag_csr_rw
uvm_test_seq: "chip_jtag_csr_rw_vseq"
en_run_modes: ["stub_cpu_mode"]
run_opts: ["+en_scb=0", "+csr_rw", "+create_jtag_riscv_map=1"]
}
{
name: chip_jtag_mem_access
uvm_test_seq: "chip_jtag_mem_vseq"
en_run_modes: ["stub_cpu_mode"]
run_opts: ["+create_jtag_riscv_map=1"]
}
{
name: chip_sw_ast_clk_outputs
uvm_test_seq: chip_sw_ast_clk_outputs_vseq
sw_images: ["sw/device/tests/ast_clk_outs_test:1"]
en_run_modes: ["sw_test_mode_test_rom"]
}
{
name: chip_sw_pwrmgr_deep_sleep_all_wake_ups
uvm_test_seq: "chip_sw_pwrmgr_deep_sleep_all_wake_ups_vseq"
sw_images: ["sw/device/tests/pwrmgr_deep_sleep_all_wake_ups:1"]
en_run_modes: ["sw_test_mode_test_rom"]
run_opts: ["+sw_test_timeout_ns=18000000"]
}
]
// List of regressions.
regressions: [
{
name: smoke
tests: ["chip_sw_uart_tx_rx", "chip_plic_all_irqs"]
}
]
}