mirror of
https://github.com/AsahiLinux/m1n1
synced 2025-02-16 21:58:27 +00:00
m1n1.trace.asc: Initial ASCTracer implementation
A tracer for the ASC coprocessor mailbox interface. Signed-off-by: Hector Martin <marcan@marcan.st>
This commit is contained in:
parent
b3526bd667
commit
cb6d1f58a2
3 changed files with 53 additions and 2 deletions
|
@ -1,5 +1,11 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
trace_device("/arm-io/gfx-asc")
|
||||
trace_device("/arm-io/sgx")
|
||||
trace_device("/arm-io/sgx", False)
|
||||
trace_device("/arm-io/pmp", False)
|
||||
trace_device("/arm-io/gfx-asc", False)
|
||||
|
||||
from m1n1.trace.asc import ASCTracer
|
||||
|
||||
ASCTracer = ASCTracer._reloadcls()
|
||||
gfx_tracer = ASCTracer(hv, "/arm-io/gfx-asc", verbose=True)
|
||||
gfx_tracer.start()
|
||||
|
|
9
proxyclient/hv/trace_dcp.py
Normal file
9
proxyclient/hv/trace_dcp.py
Normal file
|
@ -0,0 +1,9 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
trace_device("/arm-io/dcp", True, ranges=[1])
|
||||
|
||||
from m1n1.trace.asc import ASCTracer
|
||||
|
||||
ASCTracer = ASCTracer._reloadcls()
|
||||
dcp_tracer = ASCTracer(hv, "/arm-io/dcp", verbose=1)
|
||||
dcp_tracer.start()
|
36
proxyclient/m1n1/trace/asc.py
Normal file
36
proxyclient/m1n1/trace/asc.py
Normal file
|
@ -0,0 +1,36 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
from ..hv import TraceMode
|
||||
from ..utils import *
|
||||
from . import ADTDevTracer
|
||||
|
||||
class R_OUTBOX_CTRL(Register32):
|
||||
EMPTY = 17
|
||||
|
||||
class R_INBOX_CTRL(Register32):
|
||||
ENABLE = 1
|
||||
|
||||
class ASCRegs(RegMap):
|
||||
INBOX_CTRL = 0x8110, R_INBOX_CTRL
|
||||
OUTBOX_CTRL = 0x8114, R_OUTBOX_CTRL
|
||||
INBOX0 = 0x8800, Register64
|
||||
INBOX1 = 0x8808, Register64
|
||||
OUTBOX0 = 0x8830, Register64
|
||||
OUTBOX1 = 0x8838, Register64
|
||||
|
||||
class ASCTracer(ADTDevTracer):
|
||||
DEFAULT_MODE = TraceMode.SYNC
|
||||
|
||||
REGMAPS = [ASCRegs, None]
|
||||
NAMES = ["asc", None]
|
||||
|
||||
def w_OUTBOX_CTRL(self, val):
|
||||
self.log(f"OUTBOX_CTRL = {val!s}")
|
||||
|
||||
def w_INBOX1(self, val):
|
||||
inbox0 = self.asc.cached.INBOX0.val
|
||||
self.log(f"SEND: {inbox0:016x}:{val.value:016x}")
|
||||
|
||||
def r_OUTBOX1(self, val):
|
||||
outbox0 = self.asc.cached.OUTBOX0.val
|
||||
self.log(f"RECV: {outbox0:016x}:{val.value:016x}")
|
Loading…
Add table
Reference in a new issue