@@ -62,6 +62,14 @@ class R_TLB_OP(Register32):
6262 OP = 10 , 8
6363 STREAM = 7 , 0
6464
65+ class R_PROTECT (Register32 ):
66+ LOCK_TZ_SELECT = 4
67+ LOCK_TZ_CONFIG = 3
68+ # These bits can be set, but unknown what they protect
69+ _BIT2 = 2
70+ _BIT1 = 1
71+ LOCK_TCR_TTBR = 0
72+
6573class R_TCR (Register32 ):
6674 REMAP = 11 , 8
6775 REMAP_EN = 7
@@ -90,10 +98,58 @@ class DART8110Regs(RegMap):
9098 PARAMS_C = 0x00C , R_PARAMS_C
9199
92100 TLB_OP = 0x080 , R_TLB_OP
93-
94- # ERROR = 0x40, R_ERROR
95- # ERROR_ADDR_LO = 0x50, Register32
96- # ERROR_ADDR_HI = 0x54, Register32
101+ # More regs here
102+
103+ # TODO: Errors around here
104+ REG_0x100 = 0x100 , Register32
105+ REG_0x104 = 0x100 , Register32
106+ REG_0x1c0 = 0x1c0 , Register32
107+
108+ # Write bits to _PROTECT to protect them.
109+ # They can be unprotected by writing to _UNPROTECT unless _LOCK is written.
110+ # If _LOCK is written, protection can be enabled but not disabled.
111+ REG_PROTECT = 0x200 , R_PROTECT
112+ REG_UNPROTECT = 0x204 , R_PROTECT
113+ REG_PROTECT_LOCK = 0x208 , R_PROTECT
114+
115+ REG_0x20c = 0x20c , Register32 # Tunables touch this
116+
117+ REG_DIAG_LOCK = 0x210 , Register32 # what does this do?
118+
119+ # Unknown
120+ REG_0x220 = 0x220 , Register32 # Tunables touch this
121+ REG_0x224 = 0x224 , Register32 # Tunables touch this
122+ TLIMIT = 0x228 , Register32
123+ TEQRESERVE = 0x22c , Register32
124+ REG_0x230 = 0x230 , Register32
125+
126+ # These registers exist even though it's "not supported"
127+ TZ_CONFIG = 0x500 , Register32 # 3 bits
128+ TZ_SELECT = 0x504 , Register32 # 1 bit
129+ TZ_REGION0_START = 0x508 , Register32
130+ TZ_REGION0_END = 0x510 , Register32
131+ TZ_REGION0_OFFSET = 0x518 , Register32
132+ TZ_REGION1_START = 0x520 , Register32
133+ TZ_REGION1_END = 0x528 , Register32
134+ TZ_REGION1_OFFSET = 0x530 , Register32
135+ TZ_REGION2_START = 0x538 , Register32
136+ TZ_REGION2_END = 0x540 , Register32
137+ TZ_REGION2_OFFSET = 0x548 , Register32
138+
139+ PERF_INTR_ENABLE = 0x700 , Register32 # guessed
140+ PERF_INTR_STATUS = 0x704 , Register32
141+ PERF_TLB_MISS = 0x760 , Register32
142+ PERF_TLB_FILL = 0x764 , Register32
143+ PERF_TLB_HIT = 0x768 , Register32
144+ PERF_ST_MISS = 0x770 , Register32
145+ PERF_ST_FILL = 0x774 , Register32
146+ PERF_ST_HIT = 0x778 , Register32
147+ # hwrev 1 doesn't have these
148+ PERF_CTC_MISS = 0x780 , Register32
149+ PERF_CTC_FILL = 0x784 , Register32
150+ PERF_CTC_HIT = 0x788 , Register32
151+
152+ UNK_TUNABLES = irange (0x800 , 16 , 4 ), Register32
97153
98154 ENABLE_STREAMS = irange (0xc00 , 8 , 4 ), Register32
99155 DISABLE_STREAMS = irange (0xc20 , 8 , 4 ), Register32
0 commit comments