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:
Hector Martin 2021-06-18 02:24:55 +09:00
parent b3526bd667
commit cb6d1f58a2
3 changed files with 53 additions and 2 deletions

View file

@ -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()

View 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()

View 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}")