@@ -106,16 +106,13 @@ def __init__(self, tracer, info, index):
106106
107107 self .channel = Channel (self .u , self .uat , self .info , channelRings [index ], base = base ,
108108 state_fields = self .STATE_FIELDS )
109- for addr , size in self .channel .st_maps :
110- self .log (f"st_map { addr :#x} ({ size :#x} )" )
111109 for i in range (self .ring_count ):
112110 for addr , size in self .channel .rb_maps [i ]:
113111 self .log (f"rb_map[{ i } ] { addr :#x} ({ size :#x} )" )
114112
115113 self .set_active (self .state .active )
116114
117- def state_read (self , evt , regmap = None , prefix = None ):
118- off = evt .addr - self .channel .state_phys
115+ def state_read (self , evt , regmap = None , prefix = None , off = None ):
119116 ring = off // 0x30
120117 off = off % 0x30
121118
@@ -133,8 +130,7 @@ def state_read(self, evt, regmap=None, prefix=None):
133130 if self .verbose :
134131 self .log (f"RD [{ evt .addr :#x} ] UNK[{ ring } ] { off :#x} = { evt .data :#x} " )
135132
136- def state_write (self , evt , regmap = None , prefix = None ):
137- off = evt .addr - self .channel .state_phys
133+ def state_write (self , evt , regmap = None , prefix = None , off = None ):
138134 ring = off // 0x30
139135 off = off % 0x30
140136
@@ -187,16 +183,20 @@ def set_active(self, active=True):
187183 self .state .tail [ring ] = self .channel .state [ring ].WRITE_PTR .val
188184
189185 for base in range (0 , 0x30 * self .ring_count , 0x30 ):
190- self .hv .add_tracer (irange (self .channel .state_phys + base + self .RPTR , 4 ),
186+ p = self .uat .iotranslate (0 , self .channel .state_addr + base + self .RPTR , 4 )[0 ][0 ]
187+ self .hv .add_tracer (irange (p , 4 ),
191188 f"ChannelTracer/{ self .name } " ,
192189 mode = TraceMode .SYNC ,
193190 read = self .state_read ,
194- write = self .state_write )
195- self .hv .add_tracer (irange (self .channel .state_phys + base + self .WPTR , 4 ),
191+ write = self .state_write ,
192+ off = base + self .RPTR )
193+ p = self .uat .iotranslate (0 , self .channel .state_addr + base + self .WPTR , 4 )[0 ][0 ]
194+ self .hv .add_tracer (irange (p , 4 ),
196195 f"ChannelTracer/{ self .name } " ,
197196 mode = TraceMode .SYNC ,
198197 read = self .state_read ,
199- write = self .state_write )
198+ write = self .state_write ,
199+ off = base + self .WPTR )
200200 else :
201201 self .hv .clear_tracers (f"ChannelTracer/{ self .name } " )
202202 self .state .active = active
0 commit comments