[dvsim] Fix verilator tests on DVSim
- For bootrom, use the `.scr.40.vmem` image.
- Update / add other test entries
- Increase wakeup threshold for pwrmgr test
- Add pwrmgr test to DVSim as well as pytest versions of running
Verilator sims.
- It does not work on Verilator yet due to #6656, so its commented
out.
Signed-off-by: Srikrishna Iyer <sriyer@google.com>
diff --git a/hw/top_earlgrey/dv/verilator_sim_cfg.hjson b/hw/top_earlgrey/dv/verilator_sim_cfg.hjson
index 787300c..a5cd51d 100644
--- a/hw/top_earlgrey/dv/verilator_sim_cfg.hjson
+++ b/hw/top_earlgrey/dv/verilator_sim_cfg.hjson
@@ -64,7 +64,7 @@
'''{eval_cmd} \
opts=; \
types=(rom flash otbn otp); \
- exts=(elf elf elf vmem); \
+ exts=(scr.40.vmem elf elf vmem); \
images=`echo {sw_images}`; \
for image in $images; do \
path=`echo $image | cut -d: -f 1`; \
@@ -98,8 +98,40 @@
// This allows an arbitrary number of SW images to be supplied to the TB.
tests: [
{
- name: aes_test
- sw_images: ["sw/device/tests/aes_test:1"]
+ name: dif_aes_smoketest
+ sw_images: ["sw/device/tests/dif_aes_smoketest:1"]
+ }
+ {
+ name: dif_aon_timer_smoketest
+ sw_images: ["sw/device/tests/dif_aon_timer_smoketest:1"]
+ }
+ {
+ name: dif_clkmgr_smoketest
+ sw_images: ["sw/device/tests/dif_clkmgr_smoketest:1"]
+ }
+ {
+ name: dif_csrng_smoketest
+ sw_images: ["sw/device/tests/dif_csrng_smoketest:1"]
+ }
+ {
+ name: dif_entropy_smoketest
+ sw_images: ["sw/device/tests/dif_entropy_smoketest:1"]
+ }
+ {
+ name: dif_gpio_smoketest
+ sw_images: ["sw/device/tests/dif_gpio_smoketest:1"]
+ }
+ {
+ name: dif_hmac_smoketest
+ sw_images: ["sw/device/tests/dif_hmac_smoketest:1"]
+ }
+ {
+ name: dif_kmac_smoketest
+ sw_images: ["sw/device/tests/dif_kmac_smoketest:1"]
+ }
+ {
+ name: dif_kmac_cshake_smoketest
+ sw_images: ["sw/device/tests/dif_kmac_cshake_smoketest:1"]
}
{
name: crt_test
@@ -108,14 +140,14 @@
{
name: dif_otbn_smoketest_rtl
sw_images: ["sw/device/tests/dif_otbn_smoketest:1"]
- run_opts: ['+OTBN_USE_MODEL=0']
+ run_opts: ["+OTBN_USE_MODEL=0"]
}
- // Using the model in CI isn't possible until #4097 is resolved.
- //{
- // name: dif_otbn_smoketest_model
- // sw_images: ["sw/device/tests/dif_otbn_smoketest:1"]
- // run_opts: ['+OTBN_USE_MODEL=0']
- //}
+ // TODO: Needs to be debugged.
+ // {
+ // name: dif_otbn_smoketest_model
+ // sw_images: ["sw/device/tests/dif_otbn_smoketest:1"]
+ // run_opts: ["+OTBN_USE_MODEL=1"]
+ // }
{
name: dif_otp_ctrl_smoketest
sw_images: ["sw/device/tests/dif_otp_ctrl_smoketest:1"]
@@ -124,6 +156,11 @@
name: dif_plic_smoketest
sw_images: ["sw/device/tests/dif_plic_smoketest:1"]
}
+ // TODO(#6656): AST is not instantiated in chip_earlgrey_verilator.
+ // {
+ // name: dif_pwrmgr_smoketest
+ // sw_images: ["sw/device/tests/dif_pwrmgr_smoketest:1"]
+ // }
{
name: dif_rstmgr_smoketest
sw_images: ["sw/device/tests/dif_rstmgr_smoketest:1"]
@@ -137,14 +174,6 @@
sw_images: ["sw/device/tests/dif_uart_smoketest:1"]
}
{
- name: dif_kmac_smoketest
- sw_images: ["sw/device/tests/dif_kmac_smoketest:1"]
- }
- {
- name: dif_kmac_cshake_smoketest
- sw_images: ["sw/device/tests/dif_kmac_cshake_smoketest:1"]
- }
- {
name: flash_ctrl_test
sw_images: ["sw/device/tests/flash_ctrl_test:1"]
}
@@ -157,10 +186,6 @@
sw_images: ["sw/device/tests/pmp_smoketest_tor:1"]
}
{
- name: sha256_test
- sw_images: ["sw/device/tests/sha256_test:1"]
- }
- {
name: usbdev_test
sw_images: ["sw/device/tests/usbdev_test:1"]
}
diff --git a/sw/device/tests/dif/dif_pwrmgr_smoketest.c b/sw/device/tests/dif/dif_pwrmgr_smoketest.c
index eb819a3..290e02b 100644
--- a/sw/device/tests/dif/dif_pwrmgr_smoketest.c
+++ b/sw/device/tests/dif/dif_pwrmgr_smoketest.c
@@ -79,7 +79,14 @@
// ~4 cycle overhead for the CSR value to synchronize with the AON clock.
// We should expect the wake up to trigger in ~170us. This is sufficient
// time to allow pwrmgr config and the low power entry on WFI to complete.
- aon_timer_wakeup_config(&aon_timer, 30);
+ //
+ // Adjust the threshold for Verilator since it runs on different clock
+ // frequencies.
+ uint32_t wakeup_threshold = 30;
+ if (kDeviceType == kDeviceSimVerilator) {
+ wakeup_threshold = 300;
+ }
+ aon_timer_wakeup_config(&aon_timer, wakeup_threshold);
// Enable low power on the next WFI with default settings.
// All clocks and power domains are turned off during low power.
diff --git a/test/systemtest/config.py b/test/systemtest/config.py
index 7ba4c72..aca13b6 100644
--- a/test/systemtest/config.py
+++ b/test/systemtest/config.py
@@ -55,6 +55,10 @@
{
"name": "dif_plic_smoketest",
},
+ # TODO(#6656): AST is not instantiated in chip_earlgrey_verilator.
+ #{
+ # "name": "dif_pwrmgr_smoketest",
+ #},
{
"name": "dif_rstmgr_smoketest",
},