Asahi Lina
51abb9082e
m1n1.agx.render: New module
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
2ffc9fb166
m1n1.agx.event: Add a new event manager class
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
31dfb0c071
m1n1.agx.context: Add a pipeline object allocator
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
9688aeb52c
m1n1.agx: Handle faults
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
b10a56f1ff
m1n1.agx: Poll syslog channels first
...
This gets us the syslogs caused by a fault before the actual fault
raises an exception
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
f829afcf80
m1n1.agx: Logging updates
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
610f3e6a11
m1n1.agx.object: Support deallocation
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
3fa3b5abd3
m1n1.agx.object: Support making mon tracking, align to end optional
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
17142da838
m1n1.agx.object: Support setting guard page count
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
6ce60e875c
m1n1.agx.object: Be more efficient for pushes, verbose control
...
- Support compression
- Avoid pushing objects which haven't changed (optionally)
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
f19625f8da
m1n1.fw.agx: Disable some prints
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
Asahi Lina
cd1803f6dc
experiments/agx_1tri.py: Update for bunny frame, new structs
...
This will be obsolete soon anyway, but for now it runs...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:28 +09:00
Asahi Lina
39f9844431
m1n1.fw.agx: Lots more structure updates / renames
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:22 +09:00
Asahi Lina
5a8c54c762
hv/trace_agx.py: Encoder ID filter example
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:37:22 +09:00
Asahi Lina
c34e9f95af
m1n1.hw.uat: Do not always flush PTs, except for the internal allocator
...
This optimizes GPU submissions since the PTs can be flushed just once,
instead of for every UAT manipulation. But we need to flush for the
internal allocator since it is used by RTKit stuff that does not know
how to flush.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:37:22 +09:00
Asahi Lina
0c9d64b80c
m1n1.proxyutils: Improve compressed_writemem
...
Make progress arg optional, reduce compression. Spending more time on
gzip does not help speed things up (at least with USB).
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:37:22 +09:00
Asahi Lina
3de894576c
m1n1.trace.agx: Do not pause after init by default
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:37:22 +09:00
Asahi Lina
2ecbe6f39b
m1n1.trace.agx: Monitor some more initdata-referenced areas
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:37:22 +09:00
Asahi Lina
6335e20fae
m1n1.trace.agx: Disable dumping some structures we know about
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:37:22 +09:00
Asahi Lina
129726ddbc
m1n1.trace.agx: Add support for filtering by encoder ID
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 01:41:51 +09:00
Asahi Lina
5d245d6ba5
m1n1.utils: Support setting stride in chexdump()
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 01:36:56 +09:00
Asahi Lina
ffe2f4104e
fb: Support XBGR pixel format for fb_blit()
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 01:36:41 +09:00
Asahi Lina
2d317ee515
m1n1/fw/agx/controllist.py: Improve tiler params struct
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-07 01:50:44 +09:00
Asahi Lina
72892e0b95
experiments/agx_1tri.py: Update magic addresses for flag demo
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Asahi Lina
a2affd834b
m1n1.agx.context: Support passing block count to GPUBufferManager
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Asahi Lina
ff7a145d6f
m1n1.agx.context: Support tracking userspace objects
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Asahi Lina
f7fe615251
m1n1.agx.context: Fix allocator protocol
...
.ctx needed for agx.reg_object() to work.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Asahi Lina
f6db8502d1
m1n1.agx.object: Allow aligning VAs properly
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Asahi Lina
77d6e75a1f
experiments/agx_1tri.py: Clean up more fields/structs
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Asahi Lina
ccedb7fb9c
m1n1.constructutils: Prefix struct members with short struct name
...
This makes it easier to grep for stuff across multiple structs.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Asahi Lina
9c05301d42
experiments/agx_1tri.py: Fix TVB addresses
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Asahi Lina
94b1209139
m1n1.fw.agx.cmdqueue: More WorkCommandSubC fields
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Asahi Lina
e3b78fffc5
experiments/agx_1tri.py: Fix color component order
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Asahi Lina
ecb7de93c9
m1n1.trace.agx: Fix field name
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-06 23:37:42 +09:00
Janne Grunau
b6e9333cd6
m1n1.hw.pmu: Add SPMI PMU support for resetting the panic counter
...
Replace the handrolled implementation in experiments/agx_1tri.py and
tools/reset_panic_counter.py.
In addition reset the panic counter in reboot.py and run_guest.py. If
can reboot or start guests the boot process works fine and macOS
recovery needs to leave us alone.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-06-05 20:58:15 +09:00
Akihiko Odaki
5cea0db10d
m1n1.hv: Introduce gdbserver
...
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-06-04 20:20:21 +09:00
Akihiko Odaki
cd3c3f36b2
m1n1.hv: Add hardware watchpoint support
...
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-06-04 20:20:21 +09:00
Akihiko Odaki
b02a84e1a7
m1n1.hv: Propagate breakpoint change to other CPUs
...
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-06-04 20:20:21 +09:00
Akihiko Odaki
bcbe26d79b
m1n1.hv: Always continue on the stepped thread
...
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-06-04 20:20:21 +09:00
Akihiko Odaki
6babf39184
m1n1.hv: Add a method to write memory
...
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-06-04 20:20:21 +09:00
Akihiko Odaki
0a28817ce2
m1n1.hv: Add a method to read memory
...
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-06-04 20:20:21 +09:00
Akihiko Odaki
16f6d5734b
m1n1.hv: Shadow used debug registers
...
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-06-04 20:20:21 +09:00
Asahi Lina
7ed86d89bb
experiments/agx_1tri.py: Add AGX 1 Triangle demo
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:55:46 +09:00
Asahi Lina
a22df510c0
m1n1.agx.context: New module for context-related classes
...
GPUContext: GPU context (address space)
GPUWorkQueue: GPU work queue (command submission queue)
GPUMicroSequence: GPU microcommand sequence (for commands)
GPUBufferManager: GPU dynamic buffer/page manager (TVB related)
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:55:13 +09:00
Asahi Lina
b164021dbf
m1n1.trace.agx: Update to new structures
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:53:25 +09:00
Asahi Lina
0ca3af9b13
m1n1.fw.agx.cmdqueue,controllist: Add/fix lots of structures
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:53:00 +09:00
Asahi Lina
c81df296c7
hv/trace_agx.py: Make untracing/tracing on reload less painful
...
Just use TraceMode.OFF instead of commenting lines out.
Also always trace the GPU panic register (TODO: do not hardcode)
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:51:14 +09:00
Asahi Lina
bdd9603fa7
m1n1.agx: Add AGX.p = proxy
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:50:06 +09:00
Asahi Lina
ff9a88fbba
m1n1.trace.agx: Load initdata with the fully extended address
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:49:42 +09:00
Asahi Lina
a69744688b
m1n1.trace.agx: Add regionA tracing, fix lengths
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:49:42 +09:00
Asahi Lina
4c7bc1103c
m1n1.trace.agx: Redump more stuff after command completions
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:49:42 +09:00
Asahi Lina
2fb80a5ae3
m1n1.trace.agx: Support optional monitoring of global regions
...
And make it work across reloads
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:49:42 +09:00
Asahi Lina
62c1f5bbc7
m1n1.trace.agx: Reload some stuff
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:49:42 +09:00
Asahi Lina
a8038cb498
m1n1.trace.agx: Support GPUVM userspace tracing
...
Still not perfect, cannot track all unmaps/maps properly, causes HV
translation faults...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:49:42 +09:00
Asahi Lina
ca653557a3
m1n1.fw.agx.initdata: Make printing work without the hypervisor
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:49:42 +09:00
Asahi Lina
29f300548b
m1n1.fw.agx.initdata & co: Add/fix lots of initdata stuff
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:46:01 +09:00
Asahi Lina
722f4c4b8e
m1n1.agx: Add channel allocation/init
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:46:01 +09:00
Asahi Lina
1f5905fffb
m1n1.agx.channels: Add channel management module
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:46:01 +09:00
Asahi Lina
cb5e8dbf3f
trace/agx.py: Update to new channel stuff names
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:46:01 +09:00
Asahi Lina
033bf7a130
m1n1.fw.agx.channels: Fix a bunch of structs, s/Channels/ChannelInfoSet/
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:40:46 +09:00
Asahi Lina
ebe18e1fac
m1n1.agx: Add .work() and .log()
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:40:46 +09:00
Asahi Lina
3bcc2243b5
m1n1.agx: Fix allocator mapping flags
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:40:46 +09:00
Asahi Lina
bf73b7f671
m1n1.agx.object: GPUAllocator: Support configurable page sizes & context
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:40:46 +09:00
Asahi Lina
c78e92e9ad
m1n1.agx: Add global object tracker
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:40:46 +09:00
Asahi Lina
b7da00f761
m1n1.agx.object: Improve GPUObject
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:40:46 +09:00
Asahi Lina
d531af3a6d
m1n1.fw.agx: Add address decoding & iotranslate
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:40:46 +09:00
Asahi Lina
8a5ab0047a
m1n1.fw.agx: Rename endpoints & fix/add proper messages
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:40:46 +09:00
Asahi Lina
0fcaf69728
m1n1.hw.uat: Add RegMap accessor
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:28:54 +09:00
Asahi Lina
d7a4f30043
m1n1.agx: Use new UAT init API
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:28:54 +09:00
Asahi Lina
8d808904a0
m1n1.hw.uat: Handle multiple contexts
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:21:18 +09:00
Asahi Lina
3a773c8a6e
m1n1.fw.agx and friends: Add __all__ to lots of modules
...
This unborks reloading, since otherwise non-reloaded modules can clobber
symbols from reloaded modules with their old versions
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:17:33 +09:00
Asahi Lina
6175739132
m1n1.hw.asc: Add work_for(time)
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:12:31 +09:00
Asahi Lina
1dad2dad6a
m1n1.fw.asc.crash: Decode registers and stacktraces
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:12:23 +09:00
Asahi Lina
eb15ba0102
m1n1.adt: Decode more GPU properties
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:11:23 +09:00
Asahi Lina
4dcdb608a7
m1n1.trace: Fix PrintTracer address decoding
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:10:57 +09:00
Asahi Lina
682333e520
m1n1.proxyutils: Add 512-bit read/write accessors
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:04:51 +09:00
Asahi Lina
f13489f516
m1n1.hv: Fix atomic instruction mask
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:04:31 +09:00
Asahi Lina
0a25a3ef0d
m1n1.hv: Fix trace_range()
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:04:09 +09:00
Asahi Lina
e1e8d05ead
m1n1.constructutils: Fix building ConstructValueClass
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:21 +09:00
Asahi Lina
a9ae6b81fa
m1n1.constructutils: Add a regmap() to make a RegMap out of a Construct
...
Handy for ringbuf pointer type structures where we need to be able to
read/write individual members using atomic primitives, without going
through Construct.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:21 +09:00
Asahi Lina
892ee0e76b
m1n1.utils: Split RegMap into BaseRegMap (without metaclass)
...
This allows alternative BaseRegMap subclasses to dynamically build the
map instead of doing the metaclass stuff.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:19 +09:00
Asahi Lina
28fdcb4284
m1n1.constructutils: Improve str representation, add dump() for Python
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:19 +09:00
Asahi Lina
4ad733493b
m1n1.constructutils: Add a global struct address tracer
...
Currently unconditional, kind of hacky. Good for HV use.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:19 +09:00
Asahi Lina
de4f024ced
m1n1.constructutils: Make the Pointer<->addr association two-way
...
Also add Lazy support
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:17 +09:00
Asahi Lina
570ea8c4b8
m1n1.constructutils: Add .sizeof()
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 22:57:32 +09:00
Asahi Lina
83dfa1ef70
m1n1.constructutils: Move _off to class, improve addr stuff
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 22:56:52 +09:00
Asahi Lina
029ba73f44
m1n1.constructutils: Make Dec buildable
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 22:54:21 +09:00
Asahi Lina
1c35ce60c7
m1n1.constructutils: Better string representations
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 22:53:57 +09:00
Asahi Lina
3fe8f3e72f
m1n1.constructutils: Improve recursive reload
...
Reload more things, but also avoid reloading the same class multiple
times.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 22:53:17 +09:00
Hector Martin
714420a694
display: Put DCP to sleep if display is external
...
This stops DCP from killing our modeset if the connection cycles.
Also force a (potential) configure cycle if the display is external;
this makes sure updated stage2s will have a chance at fixing issues of
old stage1s. Modesetting is fast when it's the same mode as before.
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 01:54:11 +09:00
Hector Martin
2bd6060f43
experiments/dcp_iboot.py: Fully shut down DCP when done
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
e9f383aa6b
m1n1.fw.dcp.dcpav: Add some DCPAV EPIC stuff
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
5c69011fc7
m1n1.fw.dcp.iboot: Fix padding
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
58db65db63
experiments/dcp_iboot.py: Shut down display before doing anything
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
7282f30527
m1n1.fw.afk: Fix a bunch of brokenness
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
eb4483f8e1
hv/trace_dcp.py: Log hexdumps to the HV log
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
06ec66e2a9
proxy: Export pmgr_reset()
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
0472bc05cd
proxy: Export display functions
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
9548ddd75d
fw.asc: Autodetect whether to boot the ASC or wake it up
...
Technically both can be done unconditionally, but let's be explicit in
the python side to see if we ever find this algorithm doesn't work.
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Martin Povišer
60254a38ed
experiments/ohmmeter.py: Make CS42L84 your ohmmeter
...
Add script which prints out the (rough) measured impedance of connected
headphones on machines with the CS42L84 jack codec (2021 Macbook Pros).
$ proxyclient/experiments/ohmmeter.py
Waiting for plug... measuring... 64.3 ohms... yanked
Waiting for plug... measuring... 697.1 ohms...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-31 21:51:53 +09:00
Martin Povišer
4d306bb0d8
m1n1.hw.i2c: Fix & extend register access
...
Fix reading of registers (there have been STOPs issued between the two
messages which surprisingly went unnoticed until now). Also add support
for multibyte register addresses.
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-31 21:51:53 +09:00
Martin Povišer
e1b50f9ced
experiments/aop.py: Bring up AOP
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:27:04 +09:00
Martin Povišer
d924c97a0c
tools/second_proxy.py: Add setup of second proxy stream
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
e78cd14fee
experiments/mmio_sweep.py: Add MMIO sweep tool
...
Tool can do blanket sweep or isolate ranges associated with a power
domain.
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
96d4b5dd07
m1n1.proxyutils: Fortify against non-working disassembler
...
If not caught it can lead to an ugly crash...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
d040e61aa8
m1n1.hw.admac: Add UNK4 report flag
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
f0ff2e9eaf
m1n1.hw.admac: Do without an ADT node
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
38ca45816f
m1n1.hw.admac: Support early poll() exit
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
f353017ac6
m1n1.hw.loadobjs: Accept queer call methods
...
Let user specify a call method to use on symbols.
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
dcc75ab4f1
m1n1.hw.mca: Document the feedback disable
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
9e32a75bc6
experiments/speaker_amp.py: Remove dead power-domain call
...
/arm-io/mca0 doesn't have a PD (instead /arm-io/mca-switch has the MCA0
domain).
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
2579a97fde
m1n1.loadobjs: Avoid pasting paths into cmdline strings
...
Do not go through a formatted cmdline string when invoking tools. There
are user-controlled paths involved which can contain spaces (and other
foul characters).
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
72c6170ee8
m1n1.loadobjs: Support loading of inline C snippets
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Hector Martin
9212ac2036
m1n1.hw.asc: Add more mailbox control fields
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 23:23:37 +09:00
Janne Grunau
12db5c3910
tools/reset_panic_counter.py: Use ADT to support t600x
...
In addition make it executable and add python shebang as for the other
tools.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:56:43 +09:00
Janne Grunau
8a90ced4b4
tools/reset_panic_counter.py: minor fixes
...
- add SPDX-License-Identifier
- make it executable
- add python shebang
- remove unused import
Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:56:43 +09:00
Sven Peter
afe9c9bb16
proxyclient: add AES experiment
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-05-30 22:54:50 +09:00
Sven Peter
ee045af977
proxyclient: add AES registers
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-05-30 22:54:50 +09:00
Janne Grunau
8c82a7cb92
m1n1.fw.dcp.ipc: Add Call/Callbacks observed while tracing macos 12.3
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:49:00 +09:00
Janne Grunau
5ef9197edc
m1n1.fw.dcp.ipc: Annotate 'swap_complete_ap_gated' arguments
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:49:00 +09:00
Janne Grunau
8119130e88
hv/trace_dcp.py: update to mac OS 12.3 API
...
Verified calls A000 through A358 due to inconsistencies in the trace
log for A104 and A105.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:49:00 +09:00
Janne Grunau
8366bcd859
m1n1.fw.dcp.ipc: Update struct sizes to macos 12.3 firmware
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:49:00 +09:00
Akihiko Odaki
4a67fbe10e
m1n1.shell: Don't save history if init failed
...
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-05-30 22:48:40 +09:00
Akihiko Odaki
3440aadc3c
proxy: Specify coordinates in fb_fill method
...
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-05-30 22:47:26 +09:00
Hector Martin
45ac8633bd
m1n1.shell: Don't print bools as hex
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 22:38:30 +09:00
Hector Martin
e9080b8139
hv: Don't allow lower() on non-fault states
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 22:38:11 +09:00
Hector Martin
984b22cd51
m1n1.hv,proxyutils: Refactor how faults are printed re: context
...
Instead of directly taking a proxy entry code to determine what to
decode, just take an is_fault argument and only show and decode ESR/FAR
if true.
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 22:36:37 +09:00
Hector Martin
7c5d47ff85
m1n1.hv: Use hv.run_shell() everywhere
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 22:35:49 +09:00
Hector Martin
8eeb7966aa
hv: Refactor CPU switch logic, make hv.cpu() not exit shell
...
Get rid of the hv_rearm() thing (which was always a bit dodgy) and
instead properly make sure that all CPUs rendezvous when needed and
switch the active proxy thread without ever exiting exception context.
The Python side can now switch proxy context (by waiting directly for
a proxy boot) without having to exit out of the hypervisor callback,
so cpu() now works as a normal Python method.
Add a cpus() iterator so you can do things like:
>>> for i in cpus(): bt()
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 22:33:44 +09:00
Hector Martin
01a1a0f597
hv: Make time stealing run-time configurable
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 19:37:23 +09:00
R
dd111b22b8
prores: test 36-bit iova; fix tracer
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
8406d44db3
prores: some cleanups
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
fb968ef3fe
prores: figure out output size
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
2cc5c9488f
prores: rename some variables
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
200bdf9ce6
prores: figure out alpha
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
270da3849b
prores: input format / chroma flags
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
b95baad365
prores: figure out offset
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
846b1cb37b
prores: get data into block the correct way
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
fbd63c4bc7
prores: legible image with wrong colors
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
6986aa9c81
prores: sizes are less huge now
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
da6c8379fd
prores: make container hack slightly smarter
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
479fe52128
prores: play with sizes
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
95ff15f2bd
prores: load in some luma stuff
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
2b6e1ed218
prores: this bug got perturbed away
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
6fff4af32f
prores: add a big fat hack so we can actually look at the output
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
baf5ebcde9
prores: clarify
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
0328517051
prores: picture header fields
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
af8ebc03ef
prores: figure out frame header stuff
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
014edb643c
prores: ack IRQ
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
7af2335cda
prores: initial work on an experiment
...
it appears to succeed, but no data is written to the output
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
66c019cfec
prores: trace enough to dump some buffers
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
3970b25add
prores: start tracing descriptors
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
3f60769b39
prores: add results of register bruteforce
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
R
6a8a816bfa
prores: initial commit
...
Signed-off-by: R <rqou@berkeley.edu>
2022-05-30 18:05:16 +09:00
Janne Grunau
d5ceafe41d
m1n1.hv: fix argument names in HV.trace_range()
...
event_mmio() uses 'start' kwarg since 'zone' conflicts with
add_tracer()'s argument of the same name.
Fixes
TypeError: HV.add_tracer() got multiple values for argument 'zone'
Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-25 15:24:05 +09:00
Asahi Lina
d44306a1c7
m1n1.agx: Initial AGX client scaffolding
...
Moves things from m1n1.fw.agx to here; the fw object will only do the
basic ASC stuff, GPU management gets its own object.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
ae1a8ad504
m1n1.fw.agx.initdata: Remove complex creation code
...
Moving this to its own place
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
891bdd3101
m1n1.fw.agx.channels: Remove creation code
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
3133dcfa15
m1n1.trace.agx: Many improvements to tracer
...
Also fix how cmdqueues are interpreted
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
2af56cbc0a
m1n1.fw.agx.cmdqueue: Lots of struct improvements
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
9893219052
m1n1.fw.agx.controllist: Add lots more structs/fields
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
7fb99adf10
m1n1.fw.agx.channels: Add meta_fn arg to get_message()
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
8df6f6d060
m1n1.fw.agx.channels: s/DeviceControl_17/DC_DestroyContext/
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
01d7c5f6cd
m1n1.fw.agx.channels.NotifyCmdQueueWork: Show more info
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
a993f35874
hv/trace_agx.py: Add hypercalls for pause/resume, disable bulk tracers
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
f5ba42e3bb
tools/reset_panic_counter.py: New tool
...
Also adds m1n1.hw.spmi
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
25472a4373
m1n1.hw.uat: Remove init stuff, single allocator, make flags kwargs
...
Let's use this allocator only for ASC stuff. GPU stuff will have its own
va space allocators.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
4de4fdfb27
m1n1.fw.asc.mgmt: Allow being less verbose
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
cbe0e98f4c
m1n1.fw.asc: Add boot_or_start()
...
This tries both ways so it'll work regardless of how the ASC was shut
down.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
f3830c034f
m1n1.constructutils: Add debug (commented out)
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
797e58568b
m1n1.constructutils: Make Pointers useful for builds
...
- Add ROPointer subclass which is not built through
- Add build hook to detect (RO)Pointers and assign the address field
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
b681de37c5
m1n1.constructutils: Add colors, offsets, support additional metadata
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
4320d065c0
m1n1.constructutils: Support Switch() properly
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
5b6afed509
m1n1.constructutils: Add Dec(), improve printing
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
3ec82d989d
m1n1.hw.uat: Always print through translation failures
...
Make sure it's loud in case exceptions get eaten by Construct
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
87e0b69fc6
m1n1.trace: Propagate show_cpu in log()
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
9201ce3a13
m1n1.utils: Work around Register reloads breaking Constants
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
88c443008f
m1n1.hv: Handle atomic instructions by disabling those pages
...
Ugly hack, but enough for now
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
2f2794508a
m1n1.hv: Make SIGQUIT dump stacks and exit
...
This is useful in case a tracer is stuck in an infinite loop
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
802b37aaf3
m1n1.hv: Add support for "hypercalls" via BRK
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
c746549c2e
hv: Map RAM via tracer infra, handle carveouts in Python
...
Previously RAM was mapped ad-hoc, but this can end up interacting
poorly with the tracer infrastructure which we are now using for RAM
too. Move to mapping guest RAM via the tracer infra, and also unmap the
TZ carveouts in the Python side so it knows about them.
This is a HV ABI break.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
30c4503966
m1n1.hv: Support names and bases for PrintTracers
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
22228934bd
m1n1.fw.agx.channels: EventMsg structure
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:12 +09:00
Asahi Lina
6b6dfde814
m1n1.fw.agx: Lots of GPU work
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:54:10 +09:00
Asahi Lina
dc21c15537
m1n1.fw.agx.channels/initdata: Use __repr__ instead of __str__
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:52:43 +09:00
Asahi Lina
08c34dbc37
hv/trace_agx.py: Reload some stuff
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:52:43 +09:00
Asahi Lina
dc4673c03b
m1n1.constructutils: Propagate force arg in _reloadcls()
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:52:43 +09:00
Asahi Lina
57d23f8491
m1n1.constructutils: Use repr() instead of str()
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-05-21 03:52:43 +09:00
Scott Mansell
a17e9e4f5e
m1n1.fw.agx: WIP generate initdata
...
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:52:43 +09:00
Scott Mansell
79b01a7bcb
m1n1.fw.agx: enough of a driver to boot gfx-asc
...
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:52:32 +09:00
Scott Mansell
fe9c1f4bca
m1n1.hw.uat: Implement iomap
...
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:52:32 +09:00
Scott Mansell
43e3e0f3c2
m1n1.hw.uat: Reflect ARMv8 nature
...
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:52:32 +09:00
Scott Mansell
f72417b78f
m1n1.trace.agx: Add support for Work submission
...
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:52:32 +09:00
Scott Mansell
636ebe70d7
m1n1.hw.uat: Allow accessing as a stream
...
This allows us to use construct's Pointer
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:52:32 +09:00
Scott Mansell
804e944a1b
m1n1.constructutils: Add ConstructClass wrapper around construct
...
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:52:32 +09:00
Scott Mansell
42edf41e37
m1n1.hw.uat: fix VA_MASK
...
Was missing the lowest bits, which broke unaligned reads/writes
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:52:32 +09:00
Scott Mansell
980b9241d2
m1n1.trace.agx: Trace AGX wip
...
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:46:36 +09:00
Scott Mansell
90eae66b33
m1n1.hw.uat: Intitial UAT implementaiton
...
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:46:26 +09:00
Scott Mansell
254f01b3ea
m1n1.proxyutils.RegMon: Allow custom read lambda
...
Useful for monitoring ranges beind an iommu
Signed-off-by: Scott Mansell <phiren@gmail.com>
2022-05-21 03:46:14 +09:00
Hector Martin
144c3da78e
experiments/amcc_err_handler.py: New old thing to dump AMCC errors
2022-04-19 23:32:11 +09:00
Janne Grunau
d4637513e0
WIP: m1n1.hv: add support for starting CPUs on the second M1 Ultra die
...
notes:
- macos guest only works if the display is not initialized
- macos guest appears to be very slow
Signed-off-by: Janne Grunau <j@jannau.net>
2022-04-19 21:39:52 +09:00
R
90479ac755
jpeg: Add documentation
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
04fc26639b
jpeg: Unbreak encode for RGB formats
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
d28ab8cc81
jpeg: Figured out how to activate tiling
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
b2a0352a8f
jpeg: Implement encoding from planar formats
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
f2b8054309
jpeg: Support encoding linear YUV
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
c71d341ff1
jpeg: Implement YUV10 mode for encoding
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
4681053ea9
jpeg: Implement encoding other RGB formats
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
970b2789d0
jpeg: Implement encoding subsampling modes
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
45876d09a1
jpeg: Import working encode experiment
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
9fca773c8f
jpeg: Implement decoding into planar formats
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
3a18075d89
jpeg: Decode linear YUV
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
4c8807fcca
jpeg: Add RGB565 to decoder
...
Note that dithering does not get configured
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
7350baf58b
jpeg: Implement decoding other subsampling modes
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
0c1f89d1f9
jpeg: Import working basic decode experiment
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
49cdf7fe22
jpeg: probe registers more thoroughly
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
c6169c1c15
jpeg: Import register definitions
...
This comes from experiments that were performed out-of-tree
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:40:44 +09:00
R
0f6991ccbc
dart-t8110: fill in more details from poking
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:24:00 +09:00
R
96b2d584fe
dart-t8110: Import more stuff pulled from symbols
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:24:00 +09:00
R
ce5e5fe476
dart-t8110: Add other seen registers; poke protect
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:24:00 +09:00
R
18535a2385
dart-t8110: uncomment helper functions
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:24:00 +09:00
R
25ebf8adb1
dart-t8110: map/translate
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:24:00 +09:00
R
5b07956e43
dart-t8110: flush/init
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:24:00 +09:00
R
ecb9d1210c
dart-t8110: dumping appears to work completely
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:24:00 +09:00
R
16028224f9
dart-t8110: dump first-level translation tables
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:24:00 +09:00
R
4a09eca74a
dart-t8110: Initial commit
...
Signed-off-by: R <rqou@berkeley.edu>
2022-04-16 19:24:00 +09:00
Kyle Evans
0ba2027e5e
proxyclient: tools: add a FreeBSD loader
...
The differences are documented in the script itself, but the main odd
bit is that we pass the provided kernel as an initramfs. Our modified
loader will probe for the initramfs start/end props in FDT and put up
a memdisk that we load the kernel from. This choice was made for two
reasons:
1.) Avoid ad-hoc interpretations of a memory region in m1n1, it doesn't
care if we actually passed it an initramfs or not anyways.
2.) We already had some code on hand to do this in our loader, so I
suspect we've done similar shenanigans elsewhere anyways.
This also requires a U-Boot change to allow bootefi of an arbitrary
location, as long the size is provided.
The alignment constraints for loader/kernel were kept arbitrarily. The
kernel will be bounced anyways by loader. I don't recall what
alignment requirements UEFI payloads have, but 2M seems reasonable.
Signed-off-by: Kyle Evans <kevans@FreeBSD.org>
2022-04-16 19:22:55 +09:00
Kyle Evans
3b68165900
proxyclient: tools: fix linux U-Boot support
...
-t is optional, we may not have a tty_dev, so we can avoid trying to
grab the baudrate from it if it's unspecified.
We don't want to use dtb_addr for booti; this is the unmodified payload.
m1n1 will load it and add bits to it at a separate address for passing
on to U-Boot. For booti purposes, we actually want the augmented FDT
rather than the user-specified.
Signed-off-by: Kyle Evans <kevans@FreeBSD.org>
2022-04-16 19:18:06 +09:00
Davide Cavalca
eeebd9dad3
Make scripts executable
...
Signed-off-by: Davide Cavalca <davide@cavalca.name>
2022-04-16 19:17:33 +09:00
Asahi Lina
87a849287a
m1n1.utils.Reloadable: Add force argument to _reloadcls()
...
Useful to force reload classes that haven't changed when their
dependencies might have.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-04-16 19:06:22 +09:00
Asahi Lina
8b10324815
m1n1.trace: Add space after CPU number in PrintTracer logs
...
This makes the logs align properly with other trace logs.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-04-16 19:06:22 +09:00
Asahi Lina
6c57d3ded9
m1n1.proxyutils.RegMonitor: Add support for custom log function
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-04-16 19:06:22 +09:00
Asahi Lina
e2f63a07b2
hv: Improve VM emulation for tracer
...
Adds support for up to 64-byte ops and more SIMD/paired operations.
This is good enough to trace a lot of GPU VM address space.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-04-16 19:06:22 +09:00
Asahi Lina
cf8be42aa9
hv: Fix bug when unmapping IO ranges
...
Sometimes ranges were not properly unmapped if they did not overlap the
currently defined range maps.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-04-16 19:06:22 +09:00
Asahi Lina
302a9ec4c0
m1n1.hv: Add BYPASS trace mode
...
Forces SW mapping but does not do any hooking. This can be useful for
testing the emulation or to work around issues with HW/SW map
differences.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-04-16 19:06:22 +09:00
Hector Martin
9af9e834bf
chainload.py: Pad image to terminate payloads
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-03-27 18:34:53 +09:00
Janne Grunau
df53f16f76
m1n1.hv: Copy /chosen/memory-map/preoslog if it exists
...
preoslog was added in macos 12.3 and seems to contain iBootStage1 log
output. Since macos 12.3 accesses it it has to be copied to after the
guest image.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-20 03:04:13 +09:00
Hector Martin
94d640aa20
tools/run_guest.py: Support restricting CPU list available to guest
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-03-14 21:08:23 +09:00
Hector Martin
be1421d2ad
m1n1.hw.spi: Update register definitions
...
This had been sitting in my worktree...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-03-11 22:14:46 +09:00
Hector Martin
822b3c3cca
m1n1.trace.spi: Remove UNBUF mode
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-03-11 22:13:27 +09:00
Janne Grunau
c2a48da4c1
m1n1.hv: Add trace script keyboard/trackpad
...
Input devices use HID over SPI. HID communication is obscured by "sio"
DMA.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:06:01 +09:00
Janne Grunau
387fab6132
m1n1.utils: Add CRC-16 (polygon 0xA001)
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:06:01 +09:00
Janne Grunau
025fa41e90
m1n1.trace: Add SPI tracer
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:06:01 +09:00
Janne Grunau
45824d2676
m1n1: move SPI register to m1n1.hw
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:06:01 +09:00
Janne Grunau
e90be797a8
m1n1.trace.gpio: Update register description based on the Linux driver
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:06:01 +09:00
Janne Grunau
9c80a69266
m1n1.hv: Use dynamic pin maps in trace_gpio.py
...
Hardcoded pin maps do not make sense with additional HW support.
Allows tracing of a single pin in another tracing module, for example
for tracing the SPI cs pin.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:06:01 +09:00
Janne Grunau
5e8beca9fe
experiments/dcp.py: Upload fb in 512k chunks for slow (v)UARTs
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:05:21 +09:00
Janne Grunau
f297decfb4
experiments/dcp.py: Use display size for frame buffers
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:05:21 +09:00
Janne Grunau
6a8016a8e3
experiments/dcp.py: set DVA offset from ADT
...
This does not appear to be necessary. It worked on t8103 before and I
see no different behavior on t6001.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:05:21 +09:00
Janne Grunau
66f4d625b8
experiments/dcp.py: Use t8103/t600x specific code paths
...
MMIO space differes between t8103 and t600x so the hardcoded RegMonitor
addresses make only sens on the former.
set_display_device difference is taken from macOS trace on t6001.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:05:21 +09:00
Janne Grunau
d1d93eb2b5
m1n1.fw.dcp: Add callbacks used by t600x-dcp
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:05:21 +09:00
Janne Grunau
7028f3e2d8
m1n1.fw.dcp: Zero dcpep's shared memeory
...
Fixes a crash of DCP with experiments/dcp.py after chainloading m1n1 on
j314c.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-03-11 12:05:21 +09:00
Hector Martin
99124a41fe
tools/chainload.py: Support chainloading raw binaries
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-03-10 00:30:15 +09:00
Hector Martin
123d1df1a7
kboot: Replace kboot_set_bootargs with kboot_set_chosen
...
This allows setting arbitrary /chosen string props
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-03-09 20:55:34 +09:00
Hector Martin
adb1cb943e
proxy: Export smp_set_wfe_mode
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-03-08 00:02:06 +09:00
Janne Grunau
d76f3a6631
m1n1.hw.DART: coalesce continuos l2 ptes
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-02-24 23:55:46 +09:00
Janne Grunau
e1c5df5037
experiments/dart_dump.py: Use DART.from_adt()
...
The label of the ADT node is easier to use. Uses the proper DART type on
t600x SoCs.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-02-24 23:55:46 +09:00
Janne Grunau
a57696366f
hv/trace_dcp.py: Update to macOS 12.x API
...
DCP API seems to be mostly unchanged from 12 beta to 12.2.
Signed-off-by: Janne Grunau <j@jannau.net>
2022-02-24 23:55:46 +09:00
Janne Grunau
fb49d88d90
m1n1.fw.dcp.ipc: annotate swap_complete_intent_gated
...
Signed-off-by: Janne Grunau <j@jannau.net>
2022-02-24 23:55:46 +09:00
Sven Peter
53af416b07
hv.py: Add helper to break on symbols
...
We already have breakpoints and symbols, let's make our life easier
by also allowing to break on symbols.
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-02-24 23:55:25 +09:00
Hector Martin
08b77c2b1b
m1n1.adt: Handle underscores in properties as __
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-02-21 15:31:31 +09:00
Hector Martin
5bf8c5ac83
m1n1.hv: Use p.mcc_hv_unmap_carveouts()
...
Fixes random SErrors due to the guest issuing speculative instruction
fetches into TZ regions.
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-02-21 15:30:25 +09:00
Hector Martin
50a9593034
mcc: Add mcc_hv_unmap_carveouts() and proxy op
...
This is necessary to stop the guest from speculating into carveouts.
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-02-21 15:30:21 +09:00
Hector Martin
a8a93a3b5f
hv/trace_smc.py: Add GetKeyByIndex decoding
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-02-15 14:05:13 +09:00
Hector Martin
ec126bb16a
experiments/smc.py: Turn into SMC key dumper
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-02-15 14:05:13 +09:00
Hector Martin
d381341865
m1n1.trace.asc: Add missing power control messages
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-02-15 14:05:13 +09:00
Hector Martin
45c3682f60
m1n1.fw.smc: Handle notifications
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-02-15 14:05:13 +09:00
Hector Martin
a0680a2678
m1n1.adt: Better parse PMU props
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-02-15 14:05:13 +09:00
Martin Povišer
41f0874f99
experiments/audio_capture.py: Demonstrate audio capture
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-02-08 14:18:20 +09:00
Martin Povišer
78aa55f0bc
experiments/speaker_amp.py: Revamp hardware setup
...
Use register definitions where they are now available. Start from full
AUDIO_P reset and set NCO ourselves (instead of relying on iBoot
values).
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-02-08 14:18:20 +09:00
Martin Povišer
0d4c7af26b
m1n1.hw.mca: Add MCA register definitions
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-02-08 14:18:20 +09:00
Martin Povišer
90c4a1ae46
m1n1.hw.admac: Improve polling
...
Make sure we read any reports before we start submitting new
descriptors. Also put sleep in busy-wait loop and make speaker_amp.py
exit once EOF is reached.
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-02-08 14:18:20 +09:00
Martin Povišer
9bd84dfbb9
experiments/speaker_amp.py: Drop 'polling console'
...
Drop the 'polling console' code as there are now better ways to achieve
the same. (One can use USB_VUART for second proxy session, see 85ee2f24)
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-02-08 14:18:20 +09:00
Martin Povišer
532f260fae
m1n1.hw.admac: Label burst size, buswidth registers
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-02-08 14:18:20 +09:00
Martin Povišer
3a8ae74907
m1n1.hw.admac: Introduce RX channels
...
Fill in register definitions and extend the driver code to introduce
support for RX channels. This involves change of channel numbering.
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-02-08 14:18:20 +09:00
Martin Povišer
590722b29d
m1n1.hw.admac: Use stderr for debug prints
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-02-08 14:18:20 +09:00
Martin Povišer
64d8f9d1b3
m1n1.loadobjs: Add util for loading objects on target
...
For those of us who can't write assembly but still need to run code on
the other side.
>>> from m1n1.loadobjs import *
>>> lp = LinkedProgram(u)
>>> lp.debug_printf("hello from the other side (%d)\n", 42)
TTY> hello from the other side (42)
0x1f
>>> lp.load_obj("build/test.o")
>>> lp.test()
TTY> hello from loaded object
0x19
>>> lp.clear_objs()
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-02-08 14:14:38 +09:00
Hector Martin
0d35eb3da7
m1n1.proxyutils: Wrap ADT base to 64 bits
...
This works around a wraparound issue when the virt base ends up causing
the ADT address to go negative, when on 12.1+ using a dummy virt base.
Fixes : #155
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-02-06 20:49:54 +09:00
Mikhail Gusarov
88874936c6
proxyclient: utils.py: add ehexdump()
...
ehexdump is similar to chexdump, and uses CP437 control characters
and Braille to improve eyeballability of character output.
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
2022-01-26 15:39:23 +09:00
Sven Peter
ccf4b20a1d
proxy: add nvme_{read,flush}
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-01-26 15:38:40 +09:00
Sven Peter
f44d5db4fa
proxyclient/asc: s/Mgmt_StartSyslog/Mgmt_SetAPPower/
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-01-26 15:38:40 +09:00
Sven Peter
6816c151bb
proxyclient/epic: Add support for SubHeader.version = 3
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-01-19 03:24:20 +09:00
Hector Martin
e2b87b695f
tools/smccli.py: Shut down cleanly, increase verbosity
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:22:33 +09:00
Hector Martin
434a3b6c78
hv/trace_smc.py: Support RW ops
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:22:16 +09:00
Hector Martin
07c695926d
hv/trace_dcp.py: Fix typo
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:21:55 +09:00
Hector Martin
ce2f705b16
m1n1.trace.asc: Handle prealloc'd syslog buffers
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:21:30 +09:00
Hector Martin
293d78fd7f
m1n1.hw.asc: Add verbose flag
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:21:15 +09:00
Hector Martin
a79200ef1e
m1n1.fw.smc: Many improvements
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:21:04 +09:00
Hector Martin
c7d42837e4
m1n1.fw.asc.mgmt: Fix the IOP/AP power state stuff
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:19:48 +09:00
Hector Martin
db0eaa86ca
experiments/dcp_iboot.py: Clean up after shell
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:19:08 +09:00
Hector Martin
9cdf2b5d06
experiments/dcp_iboot.py: Do not dump DART
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:18:55 +09:00
Hector Martin
e468e08603
m1n1.fw.asc.{crashlog,syslog}: Do not ack prealloced bufs
...
This is wrong and causes IOP crashes due to unacked crashlog msgs.
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:18:18 +09:00
Hector Martin
bacb19b301
m1n1.fw.asc: Make DVA_OFFSET dynamic
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-19 03:16:12 +09:00
Hector Martin
f98723bb81
m1n1.trace.dart: Prime register cache on startup
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-17 04:42:00 +09:00
Hector Martin
7969d2c689
m1n1.fw.dcp.iboot: Cleanup & fixes
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-17 04:42:00 +09:00
Hector Martin
323e163eb4
hv/trace_dcp.py: Fix reinitialization
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-17 04:42:00 +09:00
Hector Martin
e3e2d05967
experiments/dcp_iboot.py: New experiment
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 20:23:01 +09:00
Hector Martin
d2535159a5
m1n1.fw.dcp.iboot: Add iBoot DCP interface client
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
17e0dfceab
hv/trace_dcp.py: Add EPIC support and refactor
...
This now partially uses the scaffolding in m1n1.fw.afk.
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
1d79711e79
m1n1.fw.afk: Add AFK/EPIC endpoint support
...
These cover the non-dcpep endpoints of the DCP interface, including
the iBoot interface (disp0).
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
b2da9faac7
m1n1.fw.dcp.ipc: Add some more struct fields
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
0e326923cf
m1n1.fw.common: Move some common defs here from m1n1.fw.dcp.ipc
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
23b9b45040
hv/trace_all.py: Use async tracing by default
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
72b7dfed5f
m1n1.fw.asc: Stop endpoints on global stop
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
b388093d33
m1n1.hw.dart: Wait for invalidations to complete
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
78d1e5fd93
m1n1.hw.dart: Remove stray print
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
4482ae634d
m1n1.hv: Add a .started variable to indicate HV is running
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
deb728adb9
m1n1.fw.asc: Invalidate DART after making new mappings
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
fb9cdcb1e9
m1n1.fw.asc.crash: Raise exception on ASC crashes
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
df481228b7
m1n1.gpiola: Add load_regmap()
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
1ecf7de936
m1n1.gpiola: Make Reloadable
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
3d523f27ad
hv/trace_i2c.py: New example trace script
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
9012247cdd
m1n1.trace.i2c: Add I2C dev tracer
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 19:39:03 +09:00
Hector Martin
430e8d2e8a
m1n1.hw.i2c: Rename registers to PASemi names, add all bit defs
...
This can serve as hardware documentation of the PASemi peripheral,
in lieu of public docs.
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-01-16 18:55:44 +09:00
Sven Peter
0b9829e227
proxyclient: add nvme_{init,shutdown}
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-01-16 18:53:29 +09:00
Sven Peter
5763569d9c
hv/trace_nvme: Add NVMe tracer
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-01-01 16:49:14 +09:00
Sven Peter
6445cf61ba
proxyclient: utils.py: allow to specify print function to chexdump
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-01-01 16:49:14 +09:00
Hector Martin
40894439cb
m1n1.trace: Fix redundant MMIO logs
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-28 21:09:58 +09:00
Hector Martin
90cf4baf85
m1n1.gpiola: Bugfixes
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-28 21:09:48 +09:00
Hector Martin
ba258dc805
hv/trace_gpio.py: Work on both t8103 and t6000
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-28 21:09:30 +09:00
Hector Martin
9496803b18
hv/trace_dcp.py: Add Shutdown commands for IOEp
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-28 21:09:06 +09:00
Hector Martin
f10f32af9e
experiments/spi.py: Misc updates
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-28 21:08:47 +09:00
Hector Martin
054e437c31
experiments/pcie_enable_devices.py: New script
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-21 20:14:56 +09:00
Hector Martin
1fd1a467e1
chainload.py: Do not set secondary RVBARs if --no-sepfw
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-21 12:08:32 +09:00
Hector Martin
f2eac15ca7
tools/chainload.py: Default to copying SEPFW
...
This doesn't really take any significant time and is the correct thing
to do. Use --no-sepfw for e.g. serial bring-up where doing the ADT dance
costs measurable time.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-17 22:30:42 +09:00
Hector Martin
e8b30c9325
experiments/spi.py: New experiment to test SPI peripheral
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-09 01:22:38 +09:00
Hector Martin
a05f68d1c8
m1n1.gpiola: New module
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-09 01:22:37 +09:00
Janne Grunau
5e202ab2fe
m1n1.trace.dart: initialize DART with correct pte type
...
Signed-off-by: Janne Grunau <j@jannau.net>
2021-12-08 09:06:07 +09:00
Janne Grunau
d23e09c2f0
m1n1.hw.dart: update pte BIT(1) annotation
...
BIT(1) of a page table entry is "disable sub-page protection".
Signed-off-by: Janne Grunau <j@jannau.net>
2021-12-08 09:06:07 +09:00
Hector Martin
32515c936f
m1n1.proxy: Fix typos in fb_blit/unblit
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-27 01:24:36 +09:00
Martin Povišer
c835b1d2fe
experiments/speaker_amp.py: Insert proper header
...
Add SPDX header, make directly executable.
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
4f7d03addf
m1n1.hw.*: Fill in SPDX license headers
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
f71397abb7
tools/dump_pmgr.py: Show calculated NCO rate
...
Show the calculated rate for NCO channels' output based on the present
register values.
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
5e5b83e7a2
m1n1.hw.nco: Add NCO driver
...
Apple SoCs have an NCO block used for generating audio master clocks.
The block performs fractional division of a higher-rate input clock and
contains a counter which is partially implemented as a LFSR. Credit
goes to Hector for reversing the divisor register semantics.
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
549dcf8b3a
m1n1.hw.admac: Add debug print of estimated rate
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
99a0741c87
speaker_amp.py: Clean up
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
53be0ec40d
speaker_amp.py: Note down TAS2770 as best match
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
8833696c69
m1n1.hw.admac: Fix descriptor deserialization
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
301ba75b6b
m1n1.utils: Remove dead formatting
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
145b1101c9
m1n1.utils: Add Register32.fields property
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
d65526d326
m1n1.hw.admac: Clear underflow counters on reset
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
570107629a
m1n1.hw.admac: Fix and extend register defs
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
2cebfaab73
m1n1.hw.i2c: Reset status before transaction
...
Reset the status register before each transaction. This is necessary if
we are taking over the peripheral after the Linux driver (e.g. in paused
hypervisor).
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 17:49:39 +09:00
Martin Povišer
a40840f13c
proxy: Expose usb_iodev_vuart_setup
...
Expose the usb_iodev_vuart_setup function in uartproxy. This opens
the secondary ACM pipe to new uses outside the hypervisor. E.g. it can
be set up as another stream for sending proxy requests.
Sample usage from proxyclient:
p.usb_iodev_vuart_setup(p.iodev_whoami())
p.iodev_set_usage(IODEV.USB_VUART, USAGE.UARTPROXY)
# the second virtual serial now also serves proxy
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-11-26 15:31:21 +09:00
Hector Martin
98d6e9bb4f
tools/chainload.py: Fix 8b/16b copy confusion
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-26 13:58:39 +09:00
Hector Martin
b86574e410
tools/pmgr_adt2dt.py: New script to convert ADT PMGR devs to DT nodes
...
This still requires manual editing to fix up some issues, since our idea
of always-on devices and parent-child relationships doesn't always match
Apple's.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-24 16:19:01 +09:00
Hector Martin
0e3ee31254
m1n1.fw.asc.kdebug: Handle prealloc messages (partially)
...
Not sure if these need a reply...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-23 17:27:37 +09:00
Hector Martin
99acc2675b
m1n1.fw.asc: Add support for shutting down RTKit links
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-23 17:20:09 +09:00
Hector Martin
0446838460
m1n1.fw.asc.crash: Add a basic crashlog parser
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-23 17:19:38 +09:00
Hector Martin
10dda2550d
m1n1.hv: Automatically lower BRKs
...
This makes Linux BUG()s work out of the box without breaking into the
HV.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-23 14:05:26 +09:00
Jean-Marc Ranger
45a62144ff
Set missing execute bits in proxyclient/{experiments|tools}/*.py
...
Currently, only some scripts in proxyclient/experiments and
proxyclient/tools have their execute bit set. Set it for those
that miss it.
Signed-off-by: Jean-Marc Ranger <jmranger@hotmail.com>
2021-11-23 01:23:11 +09:00
Jean-Marc Ranger
d4f750cb22
experiments/smc.py: Adapt to API change in SMCEndpoint
...
Update experiments/smc.py to use fw/smc.py's new API.
Fixes: b9ddd74c02
("hv/trace_smc.py: Add SMC tracer")
Signed-off-by: Jean-Marc Ranger <jmranger@hotmail.com>
2021-11-23 01:22:57 +09:00
Hector Martin
6906af06cc
experiments/dcp.py: Use new ADT DART constructor
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-22 18:13:51 +09:00
Hector Martin
8778819831
m1n1.hw.dart: Fix typo
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-22 18:13:32 +09:00
Hector Martin
c8a8946e82
m1n1.hw.dart: Add a constructor that figures out DART type from the ADT
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-22 18:13:10 +09:00
Hector Martin
4027c34c7a
proxy: Add proxy ops for pcie_init/shutdown
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-22 16:04:35 +09:00
Hector Martin
660d7482b9
hv/trace_pmgr.py: New script
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-22 07:21:07 +09:00
Hector Martin
5d214606df
m1n1.hv: Add flag to hide the CPU prefix in hv.log()
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-16 17:20:47 +09:00
Hector Martin
06975c8b87
m1n1.hv: Add TraceMode.WSYNC to make writes synchronous, but not reads
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-16 17:20:21 +09:00
Hector Martin
ccbe181d75
m1n1.adt: Improve PMGR props parsing, add to dump_pmgr.py
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-16 17:19:42 +09:00
Janne Grunau
46c945ac95
usb: use dynamic paths for usb related ADT nodes
...
Adds support for the 3rd USB-C port on 2021 Macbook Pros.
Currently up to 8 USB-C ports are supported which should be sufficient
for expected future devices.
Tested on Macbook Pro 14" and Mac Mini.
Signed-off-by: Janne Grunau <j@jannau.net>
2021-11-12 23:48:32 +09:00
Janne Grunau
2724d69f4c
iodev: usb: replace secondary usb iodevs with single vuart iodev
...
Signed-off-by: Janne Grunau <j@jannau.net>
2021-11-12 23:48:32 +09:00
Janne Grunau
3a2446c53b
m1n1.proxy: remove trailing whitespace
...
Signed-off-by: Janne Grunau <j@jannau.net>
2021-11-12 23:48:32 +09:00
Hector Martin
c947f6aec3
m1n1.trace.asc: Add support for tracing DARTless ASCs
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-11 15:22:25 +09:00
Hector Martin
9d2be299a4
tools/smccli.py: Simple shell for an instantiated SMCClient
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-10 20:43:51 +09:00
Hector Martin
eaa72c7a91
m1n1.fw.smc: Improve and add more functions
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-10 20:43:51 +09:00
Hector Martin
198fc24f14
m1n1.adt: Fix ranges prop decoding
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-10 20:43:51 +09:00
Hector Martin
927c12ad53
hv/trace_all.py: Trace all I/O ranges using the arm-io prop
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-10 20:43:51 +09:00
Hector Martin
ae7228f398
m1n1.asm: Fix bad objdump variable
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-10 20:43:51 +09:00
Hector Martin
b9ddd74c02
hv/trace_smc.py: Add SMC tracer
...
Also fix up a bunch of stuff in m1n1.fw.smc, but it's untested as a
client.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-10 20:43:51 +09:00
Vincent Duvert
407663b73d
bootstrap_port: Improve UART baud setting
...
Rework the serial port bootstrap so it works correctly if the target is already
at 1500000 baud.
No baud adjustment is made if the proxy is using the serial-USB interface.
Tested with the Mac-to-Mac serial connection (macvdmtool) and the serial-USB
connection.
Signed-off-by: Vincent Duvert <vincent@duvert.net>
2021-11-10 16:02:44 +09:00
Hector Martin
8e0ca1a39c
m1n1.hv: Print diagnostic info when MMIO forwarding fails
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-08 19:55:16 +09:00
Hector Martin
e19e74be8b
m1n1.asm: Make work on macOS/clang
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-08 14:41:24 +09:00
Hector Martin
a4e922ecaf
m1n1.hv: Map vUART IRQ properly
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 04:03:50 +09:00
Hector Martin
ff1b668a5d
m1n1.hv: Fix broken cpu# in SYNC tracers
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 04:03:50 +09:00
Hector Martin
74dece703e
m1n1.hv: Add support for dumping MMIO accesses in Python syntax to a log
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 04:03:50 +09:00
Hector Martin
bfc91be170
m1n1.hv: Keep track of started CPUs
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 04:03:50 +09:00
Hector Martin
3d3d5ea5ad
m1n1.hv: Forward more sysregs properly to EL12
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 04:03:50 +09:00
Hector Martin
85ca5b94cb
m1n1.hv: Do map low RAM
...
Apparently this is still necessary
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 03:52:43 +09:00
Hector Martin
49858b6d2c
m1n1.hv: Fix cpustart for >2 clusters
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 03:52:43 +09:00
Hector Martin
f2975c7e34
m1n1.utils: Fix bug in RangeMap
...
Adding a zero-length range was breaking things.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 03:52:43 +09:00
Hector Martin
075168c233
m1n1.hv: Handle MMIO/PMGR hooks dynamically
...
This makes m1n1 boot all the way on t6000
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 03:52:43 +09:00
Hector Martin
08f90e6dd6
m1n1.hv: Fix bug for sync tracing 64-bit writes
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 03:52:43 +09:00
Hector Martin
77074b9098
hv_aic: Support AICv2
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-04 03:52:42 +09:00
Hector Martin
339bd37077
m1n1.hv: Compute RAM base from bootargs
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-02 02:22:47 +09:00
Hector Martin
e3f0836eae
m1n1.hv: Use vUART base from ADT
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-02 02:22:17 +09:00
Hector Martin
68aec75918
memory: Larger PA support & dynamically map MMIO
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-01 21:00:56 +09:00
Hector Martin
bc82dbea4e
m1n1.hw.dart: Add support for T6000 DARTs
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-01 19:00:34 +09:00
Hector Martin
9fab740a77
tools/chainload.py: Add --quiet arg to suppress FB
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-01 19:00:34 +09:00
Hector Martin
f590ef73d0
m1n1.adt: Add field to pmgr devices
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-01 19:00:34 +09:00
Hector Martin
c76851ae11
m1n1.adt: Add pmap-io-ranges parsing
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-01 19:00:34 +09:00
Hector Martin
1e787e9d02
m1n1.adt: Add & use SafeGreedyRange
...
This avoids swallowing subcon errors silently, like GreedyRange does.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-01 19:00:34 +09:00
Hector Martin
7ff48f6201
memory: Make the RAM base dynamic
...
For now we compute this as phys_base aligned down to a 4GiB boundary.
Hopefully that works for future SoCs too.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-01 13:39:40 +09:00
Hector Martin
73180e29fa
m1n1.hw.dart: Add show_error() and some more defs
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-10-27 15:49:12 +09:00
Hector Martin
0d0a646922
m1n1.adt: Support per-compat prop decoding, make it work on t6000
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-10-21 18:41:13 +09:00
Hector Martin
ecceec9b5c
experiments/cpu_pstate_latencies.py: Fix the asm
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-10-18 17:13:41 +09:00
Hector Martin
0255831153
m1n1.trace: Support HOOK mode
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-10-15 23:44:12 +09:00
Hector Martin
f49428bb65
m1n1.proxyutils: Fix GuardedHeap to actually work
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-10-15 23:44:12 +09:00
Hector Martin
1d0d60a846
m1n1.proxy: Fix weird typo in mask16
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-10-15 23:44:12 +09:00
Hector Martin
08873880fa
m1n1.hv: Fix TLB invalidation issue
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-10-15 23:44:12 +09:00
Hector Martin
1444c93a24
proxy: Add P_MMU_INIT_SECONDARY
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-10-15 23:44:12 +09:00
Danny Lin
7a29455646
proxyclient: Fix typo in LazyADT str implementation
...
Fix the `gstr` typo so that `print(hv.adt)` works as expected.
Signed-off-by: Danny Lin <danny@kdrag0n.dev>
2021-10-11 12:42:55 +09:00
Alyssa Rosenzweig
8010e38376
Add smc.py script to enable radios
...
Add a basic SMC client and a script in experiments/ using it to enable
the radios. Running this before booting Linux will make the network
controller devices show up in lspci, even if Linux lacks an SMC driver.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2021-10-11 12:41:27 +09:00
Martin Povišer
925215aea2
proxyclient: Expect m1n1 at /dev/ttyACM0
...
Change the default serial port.
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-10-11 12:40:43 +09:00
Hector Martin
3a4b2870a8
experiments/cpu_pstates.py: Only set DVMR if necessary
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-24 01:16:32 +09:00
Hector Martin
febf83a981
experiments/cpu_pstates.py: Enable DVMR unconditionally
...
Seems this is not always enabled by the bootloader on some systems
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-24 00:53:07 +09:00
Sven Peter
0b4d5bd793
proxyclient: hv: Add simple DWC3/XHCI/ATCPHY tracer
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-09-22 19:01:03 +09:00
TophEvich
913c775165
proxyclient: removed unused code
...
Little clean-up of unused proxyclient code.
Code used/referenced by commented out sections were taken
into account and left behind to be used by it at a later point.
Signed-off-by: TophEvich <84676511+TophEvich@users.noreply.github.com>
2021-09-22 19:00:34 +09:00
Martin Povišer
18bc2c7db1
Add m1n1.hw.admac, experiments/speaker_amp.py
...
Add initial code for driving the ADMAC hw blocks, also add a script
which shows it in action by streaming audio to the Mac mini's embedded
speaker.
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-09-22 16:02:35 +09:00
Martin Povišer
d25581ddb3
Fill in m1n1.hw.i2c
...
Signed-off-by: Martin Povišer <povik@protonmail.com>
2021-09-22 16:02:35 +09:00
Hector Martin
9dc332b660
tools/dump_pmgr.py: Show fixed clock usages from DT
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-22 01:03:10 +09:00
Hector Martin
a816f2718b
m1n1.hv: Improve bt()
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-22 00:36:41 +09:00
Hector Martin
9cc0c0a55b
m1n1.hv: Add lower() command to send an exception to the guest
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-22 00:36:40 +09:00
Hector Martin
36e0283a87
hv: Handle PAC mask automatically
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-21 23:28:31 +09:00
Hector Martin
bce239b36f
exception: Make space in the stack for full exception context
...
This is step 1 of the rework to make reentrant exceptions work
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-21 20:29:19 +09:00
Hector Martin
04668b370a
m1n1.proxyutils: Print and clear L2C regs on SErrors
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-21 17:15:49 +09:00
Hector Martin
0e3770ca47
hv, m1n1.hv: Add cpu() command to switch CPU contexts
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-21 13:18:06 +09:00
Hector Martin
5feae51f25
tools/run_guest.py: Add --debug-xnu argument
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-21 13:15:24 +09:00
Hector Martin
9545371c87
m1n1.hv: Add more PMGR hacks for xnu bug workarounds etc
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-21 13:15:04 +09:00
Hector Martin
160ced7449
m1n1.hv: Also guard IMX pstate
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-21 00:40:31 +09:00
Hector Martin
16314a6203
m1n1.fw.pmp: New module
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-20 18:01:21 +09:00
Hector Martin
6211e9f9e6
m1n1.hw.pmgr: New module
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-20 18:01:09 +09:00
Hector Martin
eae9eceff1
m1n1.adt: Fix more pmgr fields, improve dump_pmgr.py
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-20 17:55:45 +09:00
Hector Martin
d2d5952aa5
tools: dump_pmgr.py
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-20 03:00:40 +09:00
Hector Martin
1e98c320df
m1n1.adt: Pretty sure the v_ things were wrong
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-20 02:49:58 +09:00
Hector Martin
5c99406790
m1n1.hv: Guard UART0 pmgr regs
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-20 02:48:23 +09:00
Hector Martin
c461b5d033
m1n1.adt: Add clock-frequencies decoding
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-19 22:33:38 +09:00
Hector Martin
6c070fa224
m1n1.proxyutils: Only set baud if connected via serial
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-19 22:32:58 +09:00
Hector Martin
99e38d24d0
experiments/cpu_pstates.py: Remove p-core boost testing hack
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-19 02:28:49 +09:00
Hector Martin
c8eb9a7862
experiments: Add cpu_pstate_latencies.py
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-19 02:03:27 +09:00
Hector Martin
6a620ddab9
experiments: Add cpu_pstates.py
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-19 02:03:24 +09:00
Hector Martin
c3ba77ce16
hv_exc: Handle SYS_IMP_APL_CYC_OVRD in the fast path
...
m1n1 now uses this for SMP, and due to wfi FIQ leakage from the HV
timer this gets spammed thousands of times per second. Handle it in
the HV directly.
Fixes : #107
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-18 22:33:28 +09:00
Hector Martin
37b2fdda7c
m1n1.adt: Handle empty function props
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-18 22:27:13 +09:00
Hector Martin
2d952752db
proxy: Add smp_wait() to the proxy
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-17 15:25:34 +09:00
Hector Martin
b16bad61b4
m1n1.utils: Fix RegAccessor assignment
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-17 00:34:56 +09:00
Hector Martin
bbf8889d87
m1n1.trace.asc: Print more registers
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-17 00:34:42 +09:00
Hector Martin
36a7f3f2e1
m1n1.hw.asc: Print raw messages in hex
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-17 00:34:22 +09:00
Hector Martin
0d13ed692e
m1n1.fw.asc: Align buffer sizes in reply messages
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-17 00:33:34 +09:00
Hector Martin
966b50a753
m1n1.fw.asc: Support booting an ASC
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-17 00:33:12 +09:00
Hector Martin
b53b627cb9
m1n1.hw.dart: Support initializing a DART from scratch
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-17 00:30:41 +09:00
Hector Martin
97ed24a908
m1n1.fw.asc: Make DVA offset configurable
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-17 00:30:14 +09:00
Hector Martin
77fbb05623
m1n1.adt: Pretty-print functions
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-16 17:06:51 +09:00
Hector Martin
961f8eae4d
m1n1.adt: Print a useful diag when a prop fails to parse
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-16 16:48:22 +09:00
Hector Martin
de8b490b01
m1n1.adt: Add some mcc props
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-16 16:47:45 +09:00
Hector Martin
3b6a645db6
m1n1.adt: Support master (templated) ADTs properly
...
They used to parse but not round-trip, now they do
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-16 16:47:22 +09:00
Hector Martin
9ecaeb9e1b
m1n1.hv: Add SMP support
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:32:57 +09:00
Hector Martin
509481d5d5
hv: Add SMP support
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:32:57 +09:00
Hector Martin
d68e4e42dd
m1n1.trace: Show CPU number in default MMIO PrintTracer
2021-09-15 23:32:57 +09:00
Hector Martin
e88d55005a
m1n1.trace: Use hv.log() in Tracer.log()
2021-09-15 23:32:57 +09:00
Hector Martin
a4efa373f3
m1n1.trace: Make Tracer.trace() take read/write args
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:32:57 +09:00
Hector Martin
81aaa72740
m1n1.hv: Improve pmgr hack messages
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:32:57 +09:00
Hector Martin
2598b3a7ba
m1n1.hv: Only patch exception handling on CPU#0
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:27:21 +09:00
Hector Martin
e06e58e864
m1n1.xnutools: Update decode_debugger_state() for 12.0
...
We need to find a better way of doing this...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:26:45 +09:00
Hector Martin
290e851d98
m1n1.hv: Add read/write args to hv.trace_range()
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:25:12 +09:00
Hector Martin
683161eef4
m1n1.hv: Make sysreg storage per-CPU
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:24:37 +09:00
Hector Martin
3871fa1e2f
m1n1.hv: Add hv.log() that prepends CPU index, use it
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:24:37 +09:00
Hector Martin
56b54a6641
hv_vm/hv_exc: Add cpu_id to exception & mmiotrace structs
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:24:37 +09:00
Hector Martin
6627873267
m1n1.hv, run_guest.py: Make exception hook enable an argument
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:24:37 +09:00
Hector Martin
368b48a365
hv_wdt: Make HV WDT CPU configurable and WDT optional
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 23:24:37 +09:00
Hector Martin
aa11841808
m1n1.adt: s/gate/psidx/
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 21:59:13 +09:00
Hector Martin
496516ded0
m1n1.adt: PMGR and function call stuff
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 17:11:45 +09:00
Hector Martin
dfb10956bc
m1n1.fw.dcp: Add OSSerialize parser for DCPAV properties
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 17:08:21 +09:00
Hector Martin
9b91c90f3a
m1n1.utils: Move FourCC definition here
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-15 17:08:21 +09:00
Hector Martin
fa50bb6474
fb: Do not restore logo when using kboot
...
Also don't clear the whole screen, only the console section so the logo
is glitchless.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-31 14:10:52 +09:00
Hector Martin
219950235c
fw.dcp.ipc: Define rt_bw_config_t properly
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-30 12:09:36 +09:00
Hector Martin
4df78129aa
m1n1.shell: Fix broken signature thing for some objects
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-29 01:36:27 +09:00
Hector Martin
63547f6fc9
m1n1.fw.asc.mgmt: Print endpoints
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-29 01:36:01 +09:00
Hector Martin
0584200aaf
m1n1.fw.dcp.manager: Make map_buf() work
...
What it needs to do is map the buffer to the disp dart stream 4,
apparently (or maybe the stream varies?)
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-29 01:35:25 +09:00
Hector Martin
43c93af949
m1n1.fw.asc: Handle DARTless ASCs
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-29 01:32:27 +09:00
Hector Martin
eec6bbdeaf
m1n1.hw.dart: Fix dirty cache clobbering on iomap_at()
...
Fixes : #102
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-29 00:03:39 +09:00
Alyssa Rosenzweig
eb466796d8
fw.dcp: Add some stubs needed for modesetting
...
This isn't enough to set the video mode yet but it gets us further. I
think allocate_memory/map_buf/powerOnDART need real implementations,
otherwise setting a video mode crashes the DCP in an APIODMA interrupt
handler, whatever that is.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2021-08-24 21:09:35 +09:00
Hector Martin
e6d3b6b6c6
m1n1.adt: Handle borked reg properties
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-24 12:20:31 +09:00
Hector Martin
d0731de381
m1n1.hv: Fix pac_mask for linux
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-23 23:10:28 +09:00
Hector Martin
c39fe2fbde
m1n1.fw.asc: Handle syslog/ioreporting buffer size properly
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-23 23:10:28 +09:00
Hector Martin
1666d86d43
fw.asc.mgmt: Handle version negotiation properly
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-23 23:04:23 +09:00
Hector Martin
cc39491863
m1n1.proxy: Allow overriding default timeout with M1N1TIMEOUT
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-23 17:03:20 +09:00
Hector Martin
017f050fff
hv_vuart: Implement RX & enough to support Linux
...
This works to get to a serial shell on Linux, and to use m1n1-as-LV1
proxyclient with M1N1DEVICE=/dev/m1n1-sec
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-23 17:02:28 +09:00
Hector Martin
c2c6da3df2
fw.dcp.ipc: Remove junk prints
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:53:32 +09:00
Hector Martin
fa3b1ddcf6
experiments/dcp.py: Add DCP driver example
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:40:18 +09:00
Hector Martin
de5b5d996c
m1n1.fw.dcp: Add DCP client framework, port tracer to it
...
This also includes an update to the macOS 12.0 beta ABI
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:39:17 +09:00
Hector Martin
b32aec3786
m1n1.trace.asc: Use shared reg/msg definitions, improve syslog
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:37:09 +09:00
Hector Martin
27a0a15eee
m1n1.hw/fw.asc: Add basic ASC driver and RTKit handling
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:36:49 +09:00
Hector Martin
7b01b0525b
m1n1.trace.asc: Be more clear about endpoint number in log
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:34:24 +09:00
Hector Martin
105b671fb3
m1n1.hw.dart: Add mutation functions (iomap, iowrite)
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:33:18 +09:00
Hector Martin
fc5ce75c21
m1n1.adt: Add repr()
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:32:26 +09:00
Hector Martin
fe503a3802
m1n1.proxy: Handle zero-length readmem()
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:32:07 +09:00
Hector Martin
a96e277b56
m1n1.utils: Add Constant support to Register
...
This allows setting register fields to an expected contant value, e.g.
because they are opcodes for a variable-format register (like a mailbox)
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:31:10 +09:00
Hector Martin
b00b36620a
m1n1.utils: Add unhex() helper
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:30:38 +09:00
Hector Martin
f8110dd409
hv_exc: Handle M1RACLES mitigation here due to 12.0 spam
...
macOS 12.0 added a silly ineffective "mitigation" that clears the
register on every context switch. This doesn't actually mitigate
anything, but it does make this sysreg trap performance-critical,
so we have to move its handling into the C side.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-08-14 16:30:18 +09:00
Andrew Worsley
bd5211909e
Fix Exception when no Signature present
...
Signed-off-by: Andrew Worsley <amworsley@gmail.com>
2021-08-03 23:54:23 +09:00
Pip Cet
d709b047d8
proxyclient/m1n1/utils.py: don't compact non-adjacent ranges
...
Signed-off-by: Pip Cet <pipcet@gmail.com>
2021-08-03 13:53:41 +09:00
Andrew Worsley
1d932888f9
Add command categories to reduce command clutter
...
Based on a suggestion from Ludwig Schubert it now uses the inspect class
to generate signatures of the functions for the help messages and
the qualified names which is a big improvement.
Also greatly reduced the clutter by putting the class functions into seperate
categories based on their class name. Now the top level help fits on one
page making it much more readable.
Signed-off-by: Andrew Worsley <amworsley@gmail.com>
2021-08-03 13:52:31 +09:00
Andrew Worsley
ddb6951abb
Fix some review comments, spacing
...
Signed-off-by: Andrew Worsley <amworsley@gmail.com>
2021-08-03 13:52:31 +09:00
Andrew Worsley
255f1bac16
Add some doc string to write/read/mrs/msr
...
Signed-off-by: Andrew Worsley <amworsley@gmail.com>
2021-08-03 13:52:31 +09:00
Andrew Worsley
eab52cc855
Extend help to all commands
...
Also print 1 line summary or full output if called directly on command
Signed-off-by: Andrew Worsley <amworsley@gmail.com>
2021-08-03 13:52:31 +09:00
Andrew Worsley
bf4f702077
Add some docstrings/help to shell commands
...
Signed-off-by: Andrew Worsley <amworsley@gmail.com>
2021-08-03 13:52:31 +09:00
Andrew Worsley
012ecc07e7
Add simple help command to shell tool
...
Signed-off-by: Andrew Worsley <amworsley@gmail.com>
2021-08-03 13:52:31 +09:00
Andrew Worsley
2ea43e6ff1
Briefly document protocol
...
Signed-off-by: Andrew Worsley <amworsley@gmail.com>
2021-08-03 13:52:31 +09:00
Hector Martin
63e8d0d48e
m1n1.fw.dcp.ipc: Fix late_init_signal return type
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-18 02:28:27 +09:00
Hector Martin
9fae977161
m1n1.fw.dcp.ipc: Add SizedArray/SizedBytes to handle data/len pairs
...
The serialization always uses fixed-length arrays. These wrappers use a
length argument (possibly coming later in the args) to size the fields
so that the arrays are truncated or padded to the right length as
returned to the user.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-18 02:28:26 +09:00
Hector Martin
231aa772fd
m1n1.fw.dcp: Initial DCP log tracing implementation
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-15 22:29:01 +09:00
Hector Martin
f635d64429
hv/trace_dcp.py: Update call list for 11.4 (partial?)
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-15 22:28:27 +09:00
Hector Martin
0034311ee3
m1n1.utils: Add indent argument to chexdump
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-15 22:27:52 +09:00
Hector Martin
4a6fa4b0e1
hv/trace_dcp.py: Redo cmd/ack handling properly, add logging & msg list
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-15 16:27:56 +09:00
Sven Peter
5b86c1ee8d
proxyclient: sep: add initial code to boot SEPOS
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-09 15:58:00 +09:00
Sven Peter
93ca3fae08
hv: add hardware breakpoint support
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-09 15:52:40 +09:00
Sven Peter
e0d889fac1
hv: add proper single stepping support
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-09 15:52:40 +09:00
Sven Peter
620f1972ce
linux.py: add missing serial import
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-09 15:41:04 +09:00
Janne Grunau
e74b79dc2a
m1n1/hv: fix irq trace after "Rework MMIO PT handling & tracing"
...
Also removes unused leftover demonstration code which came obsolete by
tracer scripts. See hv/trace_gpio.py for an example.
Signed-off-by: Janne Grunau <j@jannau.net>
2021-07-09 15:31:08 +09:00
Hector Martin
e00e8f178d
hv/trace_dcp.py: Fix stuff
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-24 02:12:07 +09:00
Hector Martin
819d2cf6bc
hv/trace_dcp.py: Parsing a bunch of stuff now
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-24 01:15:32 +09:00
Hector Martin
3cfe943ec3
m1n1.trace.asc.Syslog: Fix message termination
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-24 01:15:15 +09:00
Hector Martin
7687d00f5f
m1n1.trace.asc: Add EP.start() to initialize endpoints
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-24 01:14:57 +09:00
Hector Martin
c490f74872
m1n1.trace.asc: Move EP handlers to per-EP objects
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-23 20:19:30 +09:00
Hector Martin
b4c2272855
m1n1.hw.dart: Don't cache invalid mappings
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-23 20:19:30 +09:00
Hector Martin
b4fef18e12
m1n1.trace.dart: Log invalidates
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-23 17:04:30 +09:00
Hector Martin
92c3ad223c
m1n1.proxyutils.RegMonitor: Add ASCII mode, overridable readmem, abbrev
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-23 17:02:14 +09:00
Hector Martin
faa37342f9
m1n1.utils.chexdump: Add abbreviation
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-23 17:01:17 +09:00
Hector Martin
cf00bedade
m1n1.hv.HV: Upload ADT late to allow user overrides
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 02:02:06 +09:00
Hector Martin
94f5c29c9f
hv/trace_dcp.py: More things
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
9a480c656b
m1n1.shell.HistoryConsole: Guard against mon.poll() exceptions
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
912776372a
m1n1.trace.asc: Support more messages, syslog decoding, associated DART
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
42b7adad06
m1n1.trace.dart: Add DART tracer/handler
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
b7147a130a
m1n1.trace.ADTDevTracer: Fix _reloadcls() binding issue
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
c76489e6dd
m1n1.hw.dart: Move DART support code here, add IOVA resolver
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
d025574e1d
m1n1.hv.HV: Run passive tracers *before* issuing the MMIO write
...
E.g. this means tracers run *before* an ASC command gets sent, which
might be relevant if the same memory is used for commands and responses.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
d255a74271
m1n1.hv: Add HV.run_shell() convenience function, fix messages
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
83b05e7743
m1n1.utils.RegAccessor: Pass through None when register is unavailable
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
d942984b72
m1n1.utils.Reloadable: Be verbose about what gets reloaded
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
026c16c7c2
m1n1.utils.chexdump(): Fix justification
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
32d03f3ae2
m1n1.utils.RegMap: Fix register access widths
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
f7063e6f06
m1n1.trace.Tracer: Multiple bugfixes
...
- Set ident properly before looking up cache
- Off-by-one error in regmap lookups
- Reload regmap classes on reload
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 16:24:04 +09:00
Hector Martin
035aa486d6
m1n1.hv: Properly update current shell globals after run_script()
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 16:19:43 +09:00
Hector Martin
a714c74e1a
m1n1.utils.Reloadable: Only reload each module once
...
This avoids confusion with types changing ID when the same module is
repeatedly reloaded. Now we use the file mtime and only reload things
which have changed since last time, and dependent modules.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 16:00:00 +09:00
Alyssa Rosenzweig
ba478f2de5
mini.hv.dcp: Decode common messages
...
This accounts for most of the DCP traffic once macOS is booted. I used
a sophisticated side-channel hypervisor timing attack to determine the
message functions [ adding time.sleep(1) ]
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2021-06-21 14:02:25 +09:00
Alyssa Rosenzweig
6adf0c692c
mini.trace.asc: Don't log handled messages
...
ASC handlers now return a boolean to indicate whether they successfully
handled the message (True if so). In that case, printing the underlying
mailbox traffic is redundant, so let's hide it.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2021-06-21 14:02:25 +09:00
Hector Martin
86e233931e
m1n1.trace.asc: Add core endpoint numbers
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:51:46 +09:00
Hector Martin
e4a591d81a
m1n1.trace.asc: Fix MSG_EP_MAP.LAST
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:49:55 +09:00
Hector Martin
71cdcb9bef
ASCTracer: Fix subclassing
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:43:01 +09:00
Hector Martin
dbeb174ac9
m1n1.hv: Don't die on ^C in the shell
2021-06-21 02:34:07 +09:00
Hector Martin
03ceed3a97
m1n1.hv: Fix map_hook_idx read/write options
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:06:22 +09:00
Hector Martin
7632a57ff3
m1n1.trace.asc: Implement basic message handling/dispatch
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:05:36 +09:00
Hector Martin
8a0125ac17
m1n1.trce.gpio: Use new register arrays
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:05:08 +09:00
Hector Martin
86154a8194
dart_dump.py: Use new 2D register arrays
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:04:35 +09:00
Hector Martin
2e250df645
run_guest.py: Don't die if -m or -c fails, bring up a shell instead.
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:04:09 +09:00
Hector Martin
0a3bd5c91b
m1n1.utils: Add support for multidimensional reg arrays in RegMap
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:03:18 +09:00
Hector Martin
9e42f4fc0f
m1n1.trace: Add a state
stash to Tracer that persists
...
This allows Tracers to keep internal state around even across complete
re-instantiations.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:02:05 +09:00
Hector Martin
7090138779
m1n1.utils: Make Register sub-subclasses work, optimize
...
Now figures out the fields/etc in a metaclass, not at object
instantiation time.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:01:07 +09:00
Hector Martin
8d61a81bed
m1n1.hv: Wrap tracer calls in a shell to handle exceptions
...
This allows you to fix a tracer and retry ('cont' or ^D) or skip
('skip') its execution.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 01:58:47 +09:00
Hector Martin
7c19dcc33f
m1n1.hv: Handle symbol addresses properly for Linux
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-19 21:51:36 +09:00