Skip to content

Commit 9360a92

Browse files
hoshinolinamarcan
authored andcommitted
m1n1/trace/agx.py: Add SGXTracer
Signed-off-by: Asahi Lina <[email protected]>
1 parent 0a57f45 commit 9360a92

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

proxyclient/m1n1/trace/agx.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,12 +294,41 @@ def __init__(self, hv, agx_tracer, base, verbose=False):
294294
def start(self):
295295
self.trace_regmap(self.base, 0x4000, GFXHandoffStruct, name="regs")
296296

297+
class SGXTracer(ADTDevTracer):
298+
DEFAULT_MODE = TraceMode.HOOK
299+
300+
REGMAPS = [SGXRegs, SGXInfoRegs]
301+
NAMES = ["sgx", "sgx-id"]
302+
303+
def __init__(self, hv, devpath, verbose=False):
304+
super().__init__(hv, devpath, verbose=verbose)
305+
self.hooks = {}
306+
307+
def hook_r(self, addr, width, **kwargs):
308+
self.log(f"HOOK: {addr:#x}:{width}")
309+
310+
if addr in self.hooks:
311+
val = self.hooks[addr]
312+
self.log(f" Returning: {val:#x}")
313+
else:
314+
xval = val = super().hook_r(addr, width, **kwargs)
315+
if isinstance(val, (list, tuple)):
316+
xval = list(map(hex, val))
317+
else:
318+
xval = hex(val)
319+
self.log(f" Read: {xval}")
320+
321+
return val
322+
297323
class AGXTracer(ASCTracer):
298324
ENDPOINTS = {
299325
0x20: PongEp,
300326
0x21: KickEp
301327
}
302328

329+
REGMAPS = [ASCRegs]
330+
NAMES = ["asc"]
331+
303332
PAGESIZE = 0x4000
304333

305334
def __init__(self, hv, devpath, verbose=False):

0 commit comments

Comments
 (0)