OpenCores
URL https://opencores.org/ocsvn/fwrisc/fwrisc/trunk

Subversion Repositories fwrisc

[/] [fwrisc/] [trunk/] [ve/] [fwrisc/] [tests/] [riscv-compliance/] [riscv-test-env/] [v/] [riscv_test.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 mballance
// See LICENSE for license details.
2
 
3
#ifndef _ENV_VIRTUAL_SINGLE_CORE_H
4
#define _ENV_VIRTUAL_SINGLE_CORE_H
5
 
6
#include "../p/riscv_test.h"
7
 
8
//-----------------------------------------------------------------------
9
// Begin Macro
10
//-----------------------------------------------------------------------
11
 
12
#undef RVTEST_FP_ENABLE
13
#define RVTEST_FP_ENABLE fssr x0
14
 
15
#undef RVTEST_CODE_BEGIN
16
#define RVTEST_CODE_BEGIN                                               \
17
        .text;                                                          \
18
        .global userstart;                                              \
19
userstart:                                                              \
20
        init
21
 
22
//-----------------------------------------------------------------------
23
// Pass/Fail Macro
24
//-----------------------------------------------------------------------
25
 
26
#undef RVTEST_PASS
27
#define RVTEST_PASS li a0, 1; scall
28
 
29
#undef RVTEST_FAIL
30
#define RVTEST_FAIL sll a0, TESTNUM, 1; 1:beqz a0, 1b; or a0, a0, 1; scall;
31
 
32
//-----------------------------------------------------------------------
33
// Data Section Macro
34
//-----------------------------------------------------------------------
35
 
36
#undef RVTEST_DATA_END
37
#define RVTEST_DATA_END
38
 
39
//-----------------------------------------------------------------------
40
// Supervisor mode definitions and macros
41
//-----------------------------------------------------------------------
42
 
43
#define MAX_TEST_PAGES 63 // this must be the period of the LFSR below
44
#define LFSR_NEXT(x) (((((x)^((x)>>1)) & 1) << 5) | ((x) >> 1))
45
 
46
#define PGSHIFT 12
47
#define PGSIZE (1UL << PGSHIFT)
48
 
49
#define SIZEOF_TRAPFRAME_T ((__riscv_xlen / 8) * 36)
50
 
51
#ifndef __ASSEMBLER__
52
 
53
typedef unsigned long pte_t;
54
#define LEVELS (sizeof(pte_t) == sizeof(uint64_t) ? 3 : 2)
55
#define PTIDXBITS (PGSHIFT - (sizeof(pte_t) == 8 ? 3 : 2))
56
#define VPN_BITS (PTIDXBITS * LEVELS)
57
#define VA_BITS (VPN_BITS + PGSHIFT)
58
#define PTES_PER_PT (1UL << RISCV_PGLEVEL_BITS)
59
#define MEGAPAGE_SIZE (PTES_PER_PT * PGSIZE)
60
 
61
typedef struct
62
{
63
  long gpr[32];
64
  long sr;
65
  long epc;
66
  long badvaddr;
67
  long cause;
68
} trapframe_t;
69
#endif
70
 
71
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.