diff options
Diffstat (limited to '')
| -rw-r--r-- | rtl/core/mmu/format.sv | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/rtl/core/mmu/format.sv b/rtl/core/mmu/format.sv index 83ca3eb..3029b83 100644 --- a/rtl/core/mmu/format.sv +++ b/rtl/core/mmu/format.sv @@ -2,6 +2,7 @@ `define CORE_MMU_FORMAT_SV typedef logic[17:0] mmu_base; +typedef logic[3:0] mmu_domain; `define MMU_L1_INDEX [29:18] `define MMU_L1_FAULT 2'b00 @@ -10,6 +11,16 @@ typedef logic[17:0] mmu_base; typedef struct packed { + logic[31:10] field10; + logic[9:9] imp; + logic[8:5] domain; + logic[4:4] sbz; + logic[3:2] field2; + logic[1:0] typ; +} mmu_l1_entry; + +typedef struct packed +{ logic[31:10] base; logic[9:9] imp; logic[8:5] domain; @@ -65,9 +76,30 @@ typedef struct packed logic[1:0] typ; } mmu_l2_small; -//TODO: struct mmu_l2_smallext +typedef struct packed +{ + logic[31:12] base; + logic[11:9] sbz; + logic[8:6] tex; + logic[5:4] ap; + logic[3:3] c; + logic[2:2] b; + logic[1:0] typ; +} mmu_l2_smallext; `define MMU_LARGE_INDEX [13:0] `define MMU_SMALL_INDEX [9:0] +typedef logic[1:0] mmu_fault_type; + +`define MMU_FAULT_WALK 2'b01 +`define MMU_FAULT_DOMAIN 2'b10 +`define MMU_FAULT_ACCESS 2'b11 + +typedef struct packed +{ + logic manager, + allowed; +} mmu_domain_ctrl; + `endif |
