[test] Move rv_timer_test.c into tests/dif
Signed-off-by: Miguel Young de la Sota <mcyoung@google.com>
diff --git a/ci/run_verilator_pytest.sh b/ci/run_verilator_pytest.sh
index 85cde05..ff57239 100755
--- a/ci/run_verilator_pytest.sh
+++ b/ci/run_verilator_pytest.sh
@@ -18,10 +18,10 @@
"examples/hello_usbdev/hello_usbdev_sim_verilator.elf"
"tests/aes_test_sim_verilator.elf"
"tests/dif_plic_sanitytest_sim_verilator.elf"
+ "tests/dif_rv_timer_sanitytest_sim_verilator.elf"
"tests/dif_uart_sanitytest_sim_verilator.elf"
"tests/flash_ctrl_test_sim_verilator.elf"
"tests/sha256_test_sim_verilator.elf"
- "tests/rv_timer_test_sim_verilator.elf"
)
FAIL_TARGETS=()
diff --git a/sw/device/tests/rv_timer_test.c b/sw/device/tests/dif/dif_rv_timer_sanitytest.c
similarity index 82%
rename from sw/device/tests/rv_timer_test.c
rename to sw/device/tests/dif/dif_rv_timer_sanitytest.c
index 4a5f697..4c76d77 100644
--- a/sw/device/tests/rv_timer_test.c
+++ b/sw/device/tests/dif/dif_rv_timer_sanitytest.c
@@ -5,17 +5,14 @@
#include "sw/device/lib/dif/dif_rv_timer.h"
#include "sw/device/lib/base/log.h"
-#include "sw/device/lib/dif/dif_gpio.h"
#include "sw/device/lib/handler.h"
#include "sw/device/lib/irq.h"
-#include "sw/device/lib/pinmux.h"
#include "sw/device/lib/runtime/check.h"
#include "sw/device/lib/runtime/hart.h"
#include "sw/device/lib/runtime/ibex.h"
#include "sw/device/lib/testing/test_main.h"
#include "hw/top_earlgrey/sw/autogen/top_earlgrey.h"
-static dif_gpio_t gpio;
static dif_rv_timer_t timer;
// Flag for checking whether the interrupt handler was called. When the handler
@@ -33,58 +30,6 @@
static const uint64_t kTickFreqHz = 1000 * 1000; // 1 MHz.
static const uint64_t kDeadline = 0x10000; // 10 ms.
-const test_config_t kTestConfig = {};
-
-bool test_main(void) {
- pinmux_init();
- // Enable GPIO: 0-7 and 16 is input, 8-15 is output
- dif_gpio_config_t gpio_config = {
- .base_addr = mmio_region_from_addr(TOP_EARLGREY_GPIO_BASE_ADDR)};
- CHECK(dif_gpio_init(&gpio_config, &gpio) == kDifGpioOk);
- CHECK(dif_gpio_output_mode_all_set(&gpio, 0xFF00) == kDifGpioOk);
-
- irq_global_ctrl(true);
- irq_timer_ctrl(true);
-
- mmio_region_t timer_reg =
- mmio_region_from_addr(TOP_EARLGREY_RV_TIMER_BASE_ADDR);
- CHECK(dif_rv_timer_init(
- timer_reg,
- (dif_rv_timer_config_t){.hart_count = 1, .comparator_count = 1},
- &timer) == kDifRvTimerOk);
-
- CHECK(dif_rv_timer_irq_enable(&timer, kHart, kComparator,
- kDifRvTimerEnabled) == kDifRvTimerOk);
-
- dif_rv_timer_tick_params_t tick_params;
- CHECK(dif_rv_timer_approximate_tick_params(kClockFreqHz, kTickFreqHz,
- &tick_params) == kDifRvTimerOk);
- CHECK(dif_rv_timer_set_tick_params(&timer, kHart, tick_params) ==
- kDifRvTimerOk);
-
- uint64_t current_time;
- CHECK(dif_rv_timer_counter_read(&timer, kHart, ¤t_time) ==
- kDifRvTimerOk);
- LOG_INFO("Current time: %d; timer theshold: %d", (uint32_t)current_time,
- (uint32_t)(current_time + kDeadline));
- CHECK(dif_rv_timer_arm(&timer, kHart, kComparator,
- current_time + kDeadline) == kDifRvTimerOk);
-
- irq_fired = false;
- CHECK(dif_rv_timer_counter_set_enabled(&timer, kHart, kDifRvTimerEnabled) ==
- kDifRvTimerOk);
-
- CHECK(dif_gpio_all_write(&gpio, 0xFF00) == kDifGpioOk); // all LEDs on
-
- while (!irq_fired) {
- wait_for_interrupt();
- }
-
- CHECK(dif_gpio_all_write(&gpio, 0xAA00) == kDifGpioOk); // Test Completed
-
- return true;
-}
-
static void test_handler(void) {
CHECK(!irq_fired, "Entered IRQ handler, but `irq_fired` was not false!");
@@ -106,3 +51,45 @@
test_handler();
LOG_INFO("Exiting handler_irq_timer()");
}
+
+const test_config_t kTestConfig = {};
+
+bool test_main(void) {
+ irq_global_ctrl(true);
+ irq_timer_ctrl(true);
+
+ mmio_region_t timer_reg =
+ mmio_region_from_addr(TOP_EARLGREY_RV_TIMER_BASE_ADDR);
+ CHECK(dif_rv_timer_init(
+ timer_reg,
+ (dif_rv_timer_config_t){.hart_count = 1, .comparator_count = 1},
+ &timer) == kDifRvTimerOk);
+
+ dif_rv_timer_tick_params_t tick_params;
+ CHECK(dif_rv_timer_approximate_tick_params(kClockFreqHz, kTickFreqHz,
+ &tick_params) ==
+ kDifRvTimerApproximateTickParamsOk);
+ CHECK(dif_rv_timer_set_tick_params(&timer, kHart, tick_params) ==
+ kDifRvTimerOk);
+ CHECK(dif_rv_timer_irq_enable(&timer, kHart, kComparator,
+ kDifRvTimerEnabled) == kDifRvTimerOk);
+
+ uint64_t current_time;
+ CHECK(dif_rv_timer_counter_read(&timer, kHart, ¤t_time) ==
+ kDifRvTimerOk);
+ LOG_INFO("Current time: %d; timer theshold: %d", (uint32_t)current_time,
+ (uint32_t)(current_time + kDeadline));
+ CHECK(dif_rv_timer_arm(&timer, kHart, kComparator,
+ current_time + kDeadline) == kDifRvTimerOk);
+
+ irq_fired = false;
+ CHECK(dif_rv_timer_counter_set_enabled(&timer, kHart, kDifRvTimerEnabled) ==
+ kDifRvTimerOk);
+
+ while (!irq_fired) {
+ LOG_INFO("Waiting...");
+ wait_for_interrupt();
+ }
+
+ return true;
+}
diff --git a/sw/device/tests/dif/meson.build b/sw/device/tests/dif/meson.build
index e06b6b9..6388ff6 100644
--- a/sw/device/tests/dif/meson.build
+++ b/sw/device/tests/dif/meson.build
@@ -113,6 +113,7 @@
],
),
)
+sw_tests += { 'dif_plic_sanitytest': dif_plic_sanitytest_lib }
dif_uart_sanitytest_lib = declare_dependency(
link_with: static_library(
@@ -125,8 +126,20 @@
],
),
)
+sw_tests += { 'dif_uart_sanitytest': dif_uart_sanitytest_lib }
-sw_tests += {
- 'dif_plic_sanitytest': dif_plic_sanitytest_lib,
- 'dif_uart_sanitytest': dif_uart_sanitytest_lib,
-}
+dif_rv_timer_sanitytest_lib = declare_dependency(
+ link_with: static_library(
+ 'dif_rv_timer_sanitytest_lib',
+ sources: ['dif_rv_timer_sanitytest.c'],
+ dependencies: [
+ dif_rv_timer,
+ sw_lib_base_log,
+ sw_lib_mmio,
+ sw_lib_runtime_hart,
+ sw_lib_irq,
+ ],
+ ),
+)
+sw_tests += { 'dif_rv_timer_sanitytest': dif_rv_timer_sanitytest_lib }
+
diff --git a/sw/device/tests/meson.build b/sw/device/tests/meson.build
index b4ef197..512b613 100644
--- a/sw/device/tests/meson.build
+++ b/sw/device/tests/meson.build
@@ -37,20 +37,6 @@
),
)
-rv_timer_test_lib = declare_dependency(
- link_with: static_library(
- 'rv_timer_test_lib',
- sources: ['rv_timer_test.c'],
- dependencies: [
- sw_lib_irq,
- sw_lib_pinmux,
- dif_rv_timer,
- sw_lib_base_log,
- sw_lib_dif_gpio,
- ],
- ),
-)
-
sha256_test_lib = declare_dependency(
link_with: static_library(
'sha256_test_lib',
@@ -66,7 +52,6 @@
sw_tests += {
'aes_test': aes_test_lib,
'flash_ctrl_test': flash_ctrl_test_lib,
- 'rv_timer_test': rv_timer_test_lib,
'sha256_test': sha256_test_lib,
}