Skip to content

Commit 2b92f4b

Browse files
jannaumarcan
authored andcommitted
hv/dcp: Add OOB ASYNC call context
Only observed with dcp/dptx in linux after initialisation and reset in m1n1. On the initial startup dcp sends two D576 (hotPlug_notify_gated) presumendly due to state confusion due to the multiple dptx connections. Signed-off-by: Janne Grunau <[email protected]>
1 parent 5006e08 commit 2b92f4b

2 files changed

Lines changed: 13 additions & 6 deletions

File tree

proxyclient/hv/trace_dcp.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -868,16 +868,18 @@ def __init__(self, tracer, epid):
868868
self.state.ch = {}
869869
self.state.dumpfile = None
870870

871-
self.ch_cb = DCPCallChannel(self, "CB", 0x60000, 0x8000)
872-
self.ch_cmd = DCPCallChannel(self, "CMD", 0, 0x8000)
873-
self.ch_async = DCPCallChannel(self, "ASYNC", 0x40000, 0x20000)
874-
self.ch_oobcb = DCPCallChannel(self, "OOBCB", 0x68000, 0x8000)
875-
self.ch_oobcmd = DCPCallChannel(self, "OOBCMD", 0x8000, 0x8000)
871+
self.ch_cmd = DCPCallChannel(self, "CMD", 0x00000, 0x8000)
872+
self.ch_oobcmd = DCPCallChannel(self, "OOBCMD", 0x08000, 0x8000)
873+
self.ch_async = DCPCallChannel(self, "ASYNC", 0x40000, 0x8000)
874+
self.ch_oobasync = DCPCallChannel(self, "OOBASYNC", 0x48000, 0x8000)
875+
self.ch_cb = DCPCallChannel(self, "CB", 0x60000, 0x8000)
876+
self.ch_oobcb = DCPCallChannel(self, "OOBCB", 0x68000, 0x8000)
876877

877878
self.cmd_ch = {
878879
CallContext.CB: self.ch_cmd,
879880
CallContext.CMD: self.ch_cmd,
880881
CallContext.ASYNC: None, # unknown
882+
CallContext.OOBASYNC: None, # unknown
881883
CallContext.OOBCB: self.ch_oobcmd,
882884
CallContext.OOBCMD: self.ch_oobcmd,
883885
}
@@ -886,6 +888,7 @@ def __init__(self, tracer, epid):
886888
CallContext.CB: self.ch_cb,
887889
CallContext.CMD: None,
888890
CallContext.ASYNC: self.ch_async,
891+
CallContext.OOBASYNC: self.ch_oobasync,
889892
CallContext.OOBCB: self.ch_oobcb,
890893
CallContext.OOBCMD: None,
891894
}

proxyclient/m1n1/fw/dcp/dcpep.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class CallContext(IntEnum):
2525
ASYNC = 3
2626
OOBCB = 4
2727
OOBCMD = 6
28+
OOBASYNC = 7
2829

2930
class DCPEp_Msg(DCPMessage):
3031
LEN = 63, 32
@@ -124,7 +125,8 @@ def __init__(self, *args, **kwargs):
124125

125126
self.ch_cb = DCPCallbackChannel(self, "CB", 0x60000, 0x8000)
126127
self.ch_cmd = DCPCallChannel(self, "CMD", 0, 0x8000)
127-
self.ch_async = DCPCallbackChannel(self, "ASYNC", 0x40000, 0x20000)
128+
self.ch_async = DCPCallbackChannel(self, "ASYNC", 0x40000, 0x8000)
129+
self.ch_oobasync = DCPCallbackChannel(self, "OOBASYNC", 0x48000, 0x8000)
128130
self.ch_oobcb = DCPCallbackChannel(self, "OOBCB", 0x68000, 0x8000)
129131
self.ch_oobcmd = DCPCallChannel(self, "OOBCMD", 0x8000, 0x8000)
130132

@@ -144,6 +146,8 @@ def Rx(self, msg):
144146
self.ch_oobcb.cb(msg)
145147
elif msg.CTX == CallContext.ASYNC:
146148
self.ch_async.cb(msg)
149+
elif msg.CTX == CallContext.OOBASYNC:
150+
self.ch_oobasync.cb(msg)
147151
else:
148152
raise Exception(f"Unknown RX callback channel {msg.CTX}")
149153
return True

0 commit comments

Comments
 (0)