diff options
| author | Alejandro Soto <alejandro@34project.org> | 2024-01-21 06:23:46 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2024-02-20 11:11:17 -0600 |
| commit | f3b18ead59ae02f95dabbf0a1dea40873a816975 (patch) | |
| tree | 8979e50f2a37f66a4cd27e937b480efe60d72cf7 /rtl/core/cp15_map.sv | |
| parent | a8bc5a353ea997f73209b39377ee15a73e471237 (diff) | |
rtl: refactor filenames and directory hierarchy
Diffstat (limited to 'rtl/core/cp15_map.sv')
| -rw-r--r-- | rtl/core/cp15_map.sv | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/rtl/core/cp15_map.sv b/rtl/core/cp15_map.sv new file mode 100644 index 0000000..438a5bf --- /dev/null +++ b/rtl/core/cp15_map.sv @@ -0,0 +1,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 |
