Skip to content

Commit ce5e5fe

Browse files
ArcaneNibblemarcan
authored andcommitted
dart-t8110: Add other seen registers; poke protect
Signed-off-by: R <[email protected]>
1 parent 18535a2 commit ce5e5fe

1 file changed

Lines changed: 60 additions & 4 deletions

File tree

proxyclient/m1n1/hw/dart8110.py

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
6573
class 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

Comments
 (0)