33// SPDX-License-Identifier: Apache-2.0
44
55#include "boot/trap.h"
6+ #include "hal/dv.h"
67#include "hal/hart.h"
78#include "hal/mmio.h"
89#include "hal/mocha.h"
1213#include <stdbool.h>
1314#include <stdint.h>
1415
15- enum test_status {
16- TEST_STATUS_IN_TEST = 0x4354u ,
17- TEST_STATUS_PASSED = 0x900du ,
18- TEST_STATUS_FAILED = 0xbaadu ,
19- };
20-
2116/* magic byte string to terminate the verilator simulation */
2217static const char magic [] = "\xd8\xaf\xfb\xa0\xc7\xe1\xa9\xd7" ;
2318
@@ -53,11 +48,11 @@ test_exception_handler(struct trap_registers *registers, struct trap_context *co
5348[[noreturn ]] void test_exit (bool success )
5449{
5550 uart_t console = mocha_system_uart ();
56- void * dv_test_status = mocha_system_dv_test_status ();
51+ dv_window_t dv_window = mocha_system_dv_window ();
5752
5853 uart_puts (console , "TEST RESULT: " );
5954 uart_puts (console , success ? "PASSED" : "FAILED" );
60- DEV_WRITE (dv_test_status , success ? TEST_STATUS_PASSED : TEST_STATUS_FAILED );
55+ DEV_WRITE (& dv_window -> test_status , success ? dv_test_status_passed : dv_test_status_failed );
6156
6257 uart_putchar (console , '\n' );
6358 uart_puts (console , "Safe to exit simulator." );
@@ -75,12 +70,13 @@ test_exception_handler(struct trap_registers *registers, struct trap_context *co
7570[[noreturn ]] void main (void )
7671{
7772 uart_t console = mocha_system_uart ();
78- void * dv_test_status = mocha_system_dv_test_status ();
73+ dv_window_t dv_window = mocha_system_dv_window ();
7974
8075 uart_init (console );
8176 // Flush the uart
8277 uart_wait_for (console , uart_status_txidle );
83- DEV_WRITE (dv_test_status , TEST_STATUS_IN_TEST );
78+
79+ DEV_WRITE (& dv_window -> test_status , dv_test_status_in_test );
8480
8581 bool result = test_main (console );
8682 // Flush the uart
0 commit comments