@@ -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+
297323class 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