blob: 438a5bf4979b327b405c1a8e2ef7c604f9d18905 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
`ifndef CORE_CP15_MAP_SV
`define CORE_CP15_MAP_SV
`define CP15_CRN_CPUID 4'd0
`define CP15_CRN_SYSCFG 4'd1
`define CP15_CRN_TTBR 4'd2
`define CP15_CRN_DOMAIN 4'd3
`define CP15_CRN_FSR 4'd5
`define CP15_CRN_FAR 4'd6
`define CP15_CRN_CACHE 4'd7
`define CP15_CRN_TLB 4'd8
`define CP15_CRN_CACHE_LCK 4'd9
`define CP15_CRN_TLB_LCK 4'd10
`define CP15_CRN_DMA 4'd11
`define CP15_CRN_PID 4'd13
`define CP15_CRN_CYCLECNT 4'd15
typedef struct packed
{
logic[31:24] implementor;
logic[23:20] variant;
logic[19:16] architecture;
logic[15:4] part_number;
logic[3:0] revision;
} cp15_cpuid_main;
`define CP15_CPUID_CACHE 3'b001
typedef struct packed
{
logic[11:11] p;
logic[10:10] mbz;
logic[9:6] size;
logic[5:3] assoc;
logic[2:2] m;
logic[1:0] len;
} cp15_cpuid_cache_size;
typedef struct packed
{
logic[31:29] mbz;
logic[28:25] ctype;
logic[24:24] s;
cp15_cpuid_cache_size dsize,
isize;
} cp15_cpuid_cache;
`define CP15_CPUID_TCM 3'b010
typedef struct packed
{
logic[31:29] mbz;
logic[28:19] sbz0;
logic[18:16] dtcm;
logic[15:3] sbz1;
logic[2:0] itcm;
} cp15_cpuid_tcm;
`define CP15_CPUID_TLB 3'b011
typedef struct packed
{
logic[31:24] sbz0;
logic[23:16] ilsize;
logic[15:8] dlsize;
logic[7:1] sbz1;
logic[0:0] s;
} cp15_cpuid_tlb;
`define CP15_CPUID_MPU 3'b100
typedef struct packed
{
logic[31:24] sbz0;
logic[23:16] iregion;
logic[15:8] dregion;
logic[7:1] sbz1;
logic[0:0] s;
} cp15_cpuid_mpu;
`define CP15_SYSCFG_CTRL 3'b000
typedef struct packed
{
logic[31:27] reserved;
logic[26:26] l2;
logic[25:25] ee;
logic[24:24] ve;
logic[23:23] xp;
logic[22:22] u;
logic[21:21] fi;
logic[20:20] st;
logic[19:19] sbz0;
logic[18:18] it;
logic[17:17] sbz1;
logic[16:16] dt;
logic[15:15] l4;
logic[14:14] rr;
logic[13:13] v;
logic[12:12] i;
logic[11:11] z;
logic[10:10] f;
logic[9:9] r;
logic[8:8] s;
logic[7:7] b;
logic[6:6] l;
logic[5:5] d;
logic[4:4] p;
logic[3:3] w;
logic[2:2] c;
logic[1:1] a;
logic[0:0] m;
} cp15_syscfg_ctrl;
`define CP15_SYSCFG_ACCESS 3'b010
typedef struct packed
{
logic[31:14] base;
logic[13:5] sbz;
logic[4:3] rgn;
logic[2:2] imp;
logic[1:1] s;
logic[0:0] c;
} cp15_ttbr;
`endif
|