Commit graph

1292 commits

Author SHA1 Message Date
Hector Martin
6da0301d6b m1n1.adt: Add amp-dcblocker-config decoding
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-09-13 00:26:15 +09:00
Hector Martin
8a44f1ddb2 m1n1.adt: Add speaker-config decoding
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-09-13 00:18:21 +09:00
Hector Martin
5e26ae26f8 tools/run_guest_kernel.sh: Allow overriding $TMPDIR
Also use $XDG_RUNTIME_DIR by default if set

Signed-off-by: Hector Martin <marcan@marcan.st>
2022-09-12 17:46:31 +09:00
Hector Martin
281784d48e experiments/dcpext_iboot.py: displayRequest() works now
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-31 02:32:35 +09:00
Hector Martin
501a367310 m1n1.fw.afk.rbep: Update rptr after each packet
This seems to unblock things for some reason.

Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-31 02:29:31 +09:00
Hector Martin
270f864ae9 m1n1.fw.afk.epic: Implement system endpoint & debug enable
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-31 02:14:54 +09:00
Hector Martin
7d999ddf11 m1n1.fw.afk.epic: s/send_cmd/call/ for higher level messages
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-31 02:14:54 +09:00
Hector Martin
2c528baf2d m1n1.fw.common: Implement OSSerialize build
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-31 02:14:54 +09:00
Hector Martin
041e07b56b m1n1.fw.afk.epic: Ack notifies (maybe)
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-31 02:14:54 +09:00
Sven Peter
76b878a350 proxyclient/m1n1/hv: Support loading additional symbols from kexts
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-08-30 22:41:58 +09:00
Sven Peter
0f87d79a61 proxyclient/m1n1/macho: Support demangling symbols
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-08-30 22:41:58 +09:00
Javier Alvarez
8a544a8b27
m1n1 entrypoint args for raw binary images (#240)
* tools/run_guest.py: Allow specifying entrypoint for raw images

This allows running images other than m1n1 that don't have the
entrypoint at 0x800. If unspecified, it defaults to 0x800 for m1n1.

Signed-off-by: Javier Alvarez <javier.alvarez@allthingsembedded.net>
2022-08-30 22:39:20 +09:00
Javier Alvarez
6836e8a72f tools/chainload.py: Allow specifying entrypoint for raw images
This allows running images other than m1n1 that don't have the
entrypoint at 0x800. If unspecified, it defaults to 0x800 for m1n1.

Signed-off-by: Javier Alvarez <javier.alvarez@allthingsembedded.net>
2022-08-30 22:38:38 +09:00
Janne Grunau
5e6a6abcfb experiments/dcp.py: replace image loading with rainbow
A couple of p.memset32() are much faster than uploading an image over
the virtualized uart.
Avoids creating resolution dependent framebuffer data files.

Signed-off-by: Janne Grunau <j@jannau.net>
2022-08-30 22:32:30 +09:00
Janne Grunau
27439718e4 experiments/dcp.py: adapt update_notify_clients_dcp to macos 12.3 API
Signed-off-by: Janne Grunau <j@jannau.net>
2022-08-30 22:32:30 +09:00
Janne Grunau
583401d630 m1n1.fw.asc: Increase default boot timeout to 3
Necessary for running experiments/dcp.py with hv/trace_dcp.py.

Signed-off-by: Janne Grunau <j@jannau.net>
2022-08-30 22:32:30 +09:00
Janne Grunau
4ddf2a9eb6 m1n1.fw.dcp.manager: use kwargs for swap_complete_*
Also handle NULL swap_data. Fixes experiments/dcp.py after naming the
parameters in ipc.py.

Signed-off-by: Janne Grunau <j@jannau.net>
2022-08-30 22:32:30 +09:00
Sven Peter
44781f2b72 proxyclient/trace_atc: Add dwc3 PIPEHANDLER regs
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-08-30 22:31:36 +09:00
Sven Peter
236e01808e proxyclient/trace_atc: Change default settings
Trace async because we don't care about DMA buffers yet and disable
dwc3 tracing by default since that's relatively boring.

Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-08-30 22:31:36 +09:00
Sven Peter
0aa91e5b98 proxyclient/trace_atc: Add more ATCPHY registers
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-08-30 22:31:36 +09:00
Sven Peter
443194a8cd proxyclient/trace_atc: Split register definitions from trace_atc.py
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-08-30 22:31:36 +09:00
Sven Peter
f3d34a3765 proxyclient/trace: Allow to specify offset into RegMap
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-08-30 22:31:36 +09:00
amarioguy (Arminder Singh)
7367f91089 set sym_offset if using XNU symbols
This is to fix a bug with the hv raw binary patch that caused XNU symbols to stop working.

Signed-off-by: amarioguy (Arminder Singh) <arminders208@outlook.com>
2022-08-30 22:30:04 +09:00
Martin Povišer
ff46ca4118 tools/run_guest.py: Add --append-payload
Add command-line option for appending a separate file (or files) to
the payload.

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
ed84e15eaa m1n1.asm: Fix missing DEFAULT_ARCH on Darwin
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
7de6d56274 experiments/speaker_amp.py: Fix AUDIO_P power-domain index
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
bce384e8c4 m1n1.hw.codecs: Define some TAS5770 TDM_* registers
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
4f6a65f481 m1n1.hw.codecs.cs42l84: Extend register definitions
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
42f7f46bdc m1n1.hw.admac: Add fill_canary()
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
e20509f42d m1n1.hw.admac: Fix typo
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
3c012da1ee tools/codecshell.py: Enforce reset (unless given --no-reset)
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
13a15aefc3 m1n1.utils: Add chexundump, inverse of chexdump
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
6fa017cb0b m1n1.hv: Support hooks on breakpoints
Also add clear_hw_bps() to clear all breakpoints.

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
4a61e3d50d m1n1.hostutils: Support accesses wider than kernel granule
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Martin Povišer
27e1499c72 m1n1.hw.hostutils: Add regmap backend over host kernel's regmaps
Add utility accessor to the host kernel's regmaps -- allowing one to use
m1n1 RegMaps with the internal regmap structures of the host kernel,
poking behind the back of in-development kernel drivers.

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-08-30 22:29:41 +09:00
Hector Martin
846b1a4d6a tools/run_guest_kernel.sh: Fix usage without initramfs
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-30 21:42:16 +09:00
Hector Martin
90b8a47462 tools/run_guest.py: Start HV with ^D
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-30 21:42:00 +09:00
Hector Martin
b6823890db m1n1.utils: RegMap: Fix aliasing...
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-30 21:41:45 +09:00
Hector Martin
692817f382 experiments/dcpext_iboot.py: Separate experiment for dcpext stuff
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-30 21:39:38 +09:00
Hector Martin
d0ba79fde2 m1n1.fw.dcp: Support multi-unit EPIC services, refactor, add stuff
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-30 21:38:45 +09:00
Hector Martin
5ed8991c38 m1n1.utils: RegMap: Fix inheritance
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-29 18:10:16 +09:00
Hector Martin
4ed4dea56e m1n1.hv: Make TLBOS op tracing optional
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-29 17:25:40 +09:00
Hector Martin
5456642834 tools/run_guest_kernel.sh: Support specifying kernel
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-29 17:14:33 +09:00
Hector Martin
a47b590776 m1n1.adt: Add translate() method
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-29 17:03:02 +09:00
Hector Martin
29a85d6857 Makefile, asm.py: Work on native arm64 by default
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-08-29 17:03:01 +09:00
Asahi Lina
a010a2fc36 m1n1.hw.uat: Clear out any stray page tables on init
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-19 02:04:08 +09:00
Asahi Lina
5ec5def953 m1n1.hw.agx: Better fault decoding
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-19 02:03:18 +09:00
Asahi Lina
85b4dc6b27 m1n1.agx.object: Fix noncoherent object unmap dance
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-18 21:39:01 +09:00
Asahi Lina
fafe5c8c62 m1n1.fw.agx.handoff: Fix args & flush fields
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-18 21:38:38 +09:00
Asahi Lina
a87d85a7a2 m1n1.constructutils: Do not print Ver-disabled fields
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-18 21:26:00 +09:00
Asahi Lina
b95860ee10 m1n1.fw.agx.initdata: Unbreak 12.3 firmware
I knew I'd mess something up here...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-18 21:25:28 +09:00
Asahi Lina
690ff9bde8 tools/run_guest_kernel.sh: Allow passing HV args
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-18 02:05:49 +09:00
Asahi Lina
cfca18b83a experiments: Add misc AGX experiments
A lot of these are broken/out of date with the current code, but it's
good to have them committed...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
2506ccf63f m1n1.agx.render: Misc field value changes (CHECK!)
Things I changed during the 13.0b4 port. These are all suspect and we
really should figure out what they do.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
ffb42cabc7 m1n1.agx.render: Only blit 1920px wide FBs, disable depth dumps
This is a hack anyway. Almost all my demos/tests work with this
particular logic right now.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
2b1bb76416 m1n1.agx.render: Log event IDs
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
b0f8700796 m1n1.agx.render: Add support for input barriers
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
fc887ac570 m1n1.agx.render: Updates for struct changes and 13.0b4 support
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
8f7d1a9a9c m1n1.fw.agx.microsequence: Updates for 13.0b4 and fixes
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
88de83422a m1n1.fw.agx.cmdqueue: Updates for 13.0b4 support and misc
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
a4bfc4a9b8 m1n1.agx.event: Log when flag messages are received
This makes the event grouping visible

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
d96d17d36a m1n1.agx.initdata: Disable the idle time overrides
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
dc3a39a2c7 m1n1.agx.object: Show object type in the Construct path
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
7f9d8a343c m1n1.agx.channels: Add support for more DeviceControl messages
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
3ad561bc25 HACK: Disable Stats message parsing
The size changed in 13.0b4, need to figure out the new size...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
35067afec3 m1n1.fw.agx.channels: Fix KTrace message size/count
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
59bce08297 m1n1.fw.agx.channels: Fix TimeoutMsg field
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
f4daec5869 m1n1.fw.agx.channels: Add some more DeviceControl messages
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
b189e6a0ba m1n1.fw.agx.channels: Switch a bunch of things to ZPadding
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
6441fe11cd m1n1.fw.asc: Increase default boot timeout to 2
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
e8ce458dd5 m1n1.fw.agx.initdata: Updates for 13.0b4 support
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
6a99f397de hv/trace_agx.py: Automatically set version
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
2b06a62b63 m1n1.proxyutils: Add support for figuring out firmware version
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
ccbb943993 m1n1.construcutils: Add to_rust() to generate Rust struct defs
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
8e3d6b1b52 m1n1.constructutils: Add Ver() versioning support
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
da40a6d843 m1n1.constructutils: Add ZPadding type
Like Padding, but actually asserts that the contents are zeroed.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
9aaac03907 m1n1.trace.agx: Print work item addresses
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
71e24171be m1n1.trace.agx: Check for ring buffer overflow
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
5b9c709753 m1n1.trace.agx: s/NewInitData/InitData/
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
2ce4db9d8d experiments/dcp_iboot.py: Fix p.display_shutdown() call
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
4923dd1e2e m1n1.agx.shim: Optimize GBM buffer polling/copying
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
6ddc79a6eb m1n1.agx.shim: Add log() method
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
15ba9aa55c m1n1.agx.shim: Allocate GPU context explicitly
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
f89a0f5c8d m1n1.agx.render: Change fb/depth dumping conditions
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
f4a71eecb0 m1n1.agx.render: Log more/less stuff
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
818ba31268 m1n1.agx.render: More random field value updates
Some of these really need to be investigated...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
e53298a6ca m1n1.agx.render: Add timestamp objects
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
23e8d463d0 m1n1.agx.render: Rearm events when fired
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
4fa101e0a3 m1n1.agx.render: Keep track of work objects and free them
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
b6fde95d88 m1n1fw.agx.cmdqueue: Update barrier stamp field names
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
8923ffdaa4 m1n1.fw.agx.microsequence: More field updates
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
448bcf1bba m1n1.agx.event: Do not free event when it fires
Renderer will reuse events

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
1f7e1b34c9 m1n1.agx.object: Properly do the free() unmap dance
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
2a4b408678 m1n1.agx.object: Optimize handling of raw buffers
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
76071a4fee m1n1.agx.context: Add freeing support
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
701714d92b m1n1.agx.context: Default to shared mappings
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
8f5ba29af9 m1n1.agx.context: Add strange map at 0x6fffff8000
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
75ebc3ad31 m1n1.trace.agx: Remove some dumps
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
daf56619df m1n1.trace.agx: Reset queue tracer on new queue
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
08cc1c3178 m1n1.trace.agx: Add separate kern/user va tracing
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
00625fb8a0 m1n1.trace.agx: Add handoff tracer
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
daa7dfba28 m1n1.trace.agx: Add FWCtl ring tracing
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
04a92ce11c m1n1.fw.agx: Drop spurious UAT import
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
1275e15b58 m1n1.agx: Add FWCtl ring
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
0aee8b7e2e m1n1.fw.agx: Add FWCtl doorbell function
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
b5c3d9fdd6 m1n1.agx.channels: Add FWCtl ring support
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
8631deb731 m1n1.agx: Add the poke_sgx() mystery thing
Still don't know what this does...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
fa6edb8fe8 m1n1.agx: Drop uat.early_init()
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
8a3aad19e9 m1n1.agx: Add show_stats to disable stats printing
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
0b37f5599c m1n1.agx: Update DeviceControl message names
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
ae8a4d9c4e m1n1.fw.agx.channels: Add support for FWCtl ring
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
ab136b3234 m1n1.fw.agx.channels: Rename some DeviceControl messages
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
3609cb0f11 m1n1.hv: Trace GPU TLBI operations
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
f705672a7b m1n1.hv: Actually step through unhandled atomics instead of punting
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
0f87d2b4f2 m1n1.hv: Add support for log timestamps, Linux style
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
f81bbcbd61 hv/trace_agx.py: Trace more/less things
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
94084c8ede m1n1.proxyutils: Lower gzip compression level
This is the right tradeoff for the faster dwc3 code.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
bfccbd32e7 m1n1.proxyutils: Support sys/sysl ops (e.g. tlbi)
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
60d69697d3 m1n1.proxyutils: Add instruction cache to speed up repeat inst() calls
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
0b787f7d0d m1n1.fw.agx.initdata: More field updates...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
a76dd299a8 m1n1.hw.uat: Flush TLB on changes
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
8f2530cf64 m1n1.hw.uat: Clear out new page tables
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
2b6996db63 m1n1.hw.uat: Move handoff code to m1n1.fw.agx.handoff
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
ec3fcfc562 m1n1.asm: Upgrade to armv8.4-a
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
0cd85eb14b m1n1.utils: Hack to recognize NdRange even if a partial reload happened
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 15:00:00 +09:00
Asahi Lina
15d04b3778 proxy: Expose hv_write_hcr()
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 14:02:55 +09:00
Asahi Lina
b6d2cc127c hv_exc: Add support for resetting stolen time delta
This is useful to re-sync AGX, since it shares the same timebase as the
CPU.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 14:01:49 +09:00
Asahi Lina
8cd2865c1f m1n1.sysreg & co: Add support for op-like sysregs (e.g. TLBI)
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 14:01:07 +09:00
Asahi Lina
52492350ee m1n1.fw.agx.cmdqueue: Add support for setting queue priority
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:58:37 +09:00
Asahi Lina
a0aa41c743 m1n1.fw.agx.cmdqueue: Rename uuid field
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:58:19 +09:00
Asahi Lina
2193b4faff m1n1.agx.render: Track fewer objects
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:58:04 +09:00
Asahi Lina
4810a868f3 m1n1.agx.render: Use separate TA/3D stamps
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:57:47 +09:00
Asahi Lina
1e0999450d m1n1.agx.{context,render}: Track fewer objects
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:56:55 +09:00
Asahi Lina
27e161b94e m1n1.fw.agx.channels: Proper statistics message definitions
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:56:19 +09:00
Asahi Lina
06673c40ba m1n1.agx: str() arguments to log()
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:55:56 +09:00
Asahi Lina
96e4979c84 m1n1.agx: Support fault handling and recovery
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:55:39 +09:00
Asahi Lina
cb61ec4146 m1n1.agx: Increase guard page count for default allocators
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:54:44 +09:00
Asahi Lina
cc03bd8877 m1n1.agx: Instantiate SGXRegs
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:52:24 +09:00
Asahi Lina
be386b23c4 m1n1.hw.agx: Add SGXRegs definition
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:51:32 +09:00
Asahi Lina
b3afa720fc m1n1.construcutils: Add .clone() method
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:49:47 +09:00
Asahi Lina
4bc08e9173 m1n1.constructutils: Abbreviate lists with trailing zero/null items
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:49:22 +09:00
Asahi Lina
5ab443ccd7 m1n1.fw.agx.initdata: Even more updates and new fields...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:48:42 +09:00
Asahi Lina
ec3cc1bad3 experiments/agx_1tri.py: Updates for new structs
This is probably broken anyway, but worth keeping around for
reference...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:46:07 +09:00
Asahi Lina
554b44c022 m1n1.agx.shim: Add support for dumping frames
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:46:02 +09:00
Asahi Lina
bbdd86a998 m1n1.agx.render: Lots and lots of updates for new structs, etc.
Also add GPUFrame to represent saved GPU frame dumps, and save/load
support.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:46:02 +09:00
Asahi Lina
d476c03b19 m1n1.agx.object: Auto-push new buffers
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:46:02 +09:00
Asahi Lina
8647e1102c m1n1.agx.context: BufferManager fixes, add explicit counter management
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:46:02 +09:00
Asahi Lina
c94c020197 m1n1.agx.context: Keep track of microsequence length
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:46:02 +09:00
Asahi Lina
37a7243b7e m1n1.agx.object: Remember map flags used
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:46:02 +09:00
Asahi Lina
fac3a5a9b9 m1n1.agx.object: Support polling and diffing
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:46:02 +09:00
Asahi Lina
438ec70baa m1n1.fw.agx.{cmdqueue,microsequence}: Lots of struct updates
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
54f9f22578 m1n1.fw.agx.channels: Pass __str__ kwargs for diff/etc support
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
bc77092cb7 m1n1.fw.agx.channels: s/Fault2/Timeout/
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
59a00bdb5a m1n1.agx.event: Log events again
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
80a18f7761 m1n1.agx.context: Caller passes job_list structure
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
027dea9145 m1n1.agx.context: Add a separate allocator for GEM objects
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
85e6208a79 m1n1.agx.shim: Move UAPI to m1n1.agx.uapi
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
5eeed0a8bd m1n1.hw.uat: Add stream field to control whether to parse recursively
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
8c0b6453f4 m1n1.trace.agx: Disable mon for now
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
6b0f600a33 m1n1.trace.agx: Update for initdata changes
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
277b840a86 m1n1.trace.agx: Log less
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
08c7473c9a m1n1.trace.agx: Add redump and trace_userva options
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
1f895e1ad2 m1n1.agx: Add timeout handler
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
1c1331a28d m1n1.agx: Map all structs as shared for now
This makes it easier to snoop on what the GPU is doing...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
3182be4fc3 m1n1.agx: Correctly map RX channels as RX
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
3ff716d321 m1n1.agx: Support tracking/diffing objects
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
1e7805284c m1n1.fw.agx.initdata: Lots of fixes/updates and new fields...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
4b9bda904d m1n1.constructutils: Support loading to/from JSON
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
6fad479e08 m1n1.constructutils: Add addrof()
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
1fcfa3d0e3 m1n1.constructutils: Optionally do not recurse through pointers
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
203c0135e7 m1n1.construcutils: Correctly set address of structs in lists
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
42af4319de m1n1.constructutils: Add struct diffing feature
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
2d1151041f m1n1.constructutils: Keep a global addr->struct map
This allows easily identifying pointers to the beginning of structs.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
9a94937e3f m1n1.constructutils: Add SPDX header, move imports
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
ee59dec6e5 m1n1.gpiola: Support explicitly telling the LA thread to exit
Also misc fixes.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
c7254865c0 m1n1.proxy: s/ic_ivac/dc_ivac/
This was a typo...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
894f9726e1 m1n1.proxyutils: Switch RegMonitor to use chexdiff32()
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
eedaf2941a m1n1.setup: Always reset PMU boot error counters
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00
Asahi Lina
9a39bf15ef m1n1.utils: Add chexdiff32()
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:13:34 +09:00
Asahi Lina
af3814c56d m1n1.gpiola: Support reg/RAM-only tracing properly
This also implements compression for reg-only tracing properly.
TODO: should probably change the logic for when both pin and reg change
detection are active.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-05 15:26:05 +09:00
Hector Martin
f09c10b5fa tools/run_guest_kernel.sh: Fix initramfs support
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-30 15:59:21 +09:00
Hector Martin
4f0be4aa2c m1n1.hv: Add ctx shell alias for context.
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-30 15:12:55 +09:00
Hector Martin
72cce09c77 m1n1.hv: Improve context printout
Make the addresses virtual, add symbols

Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-30 15:12:55 +09:00
Hector Martin
12bff05700 tools/run_guest_kernel.sh: New utility script
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-30 15:12:55 +09:00
Hector Martin
659093b8bb scripts/picocom-sec.sh: Add convenience script
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-30 15:12:55 +09:00
Hector Martin
1247c2b7e4 m1n1.proxy: Default to /dev/m1n1
We have udev rules, let's just default to a pretty device name to avoid
conflicts with other devices.

Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-30 14:18:39 +09:00
amarioguy
0cf1f393ed Add raw binary support to HV scripts
Signed-off-by: amarioguy <arminders208@outlook.com>
2022-07-30 14:18:39 +09:00
Hector Martin
8ae1d15fac hv/trace_pmgr.py: Tolerate missing pwrgate-regs
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-12 13:08:16 +09:00
Hector Martin
c6e95657c3 experiments/mtp.py: Dump info
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 20:14:48 +09:00
Hector Martin
94a115800a m1n1.hw.dart: Support sub-instances
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:56:16 +09:00
Hector Martin
ad6b340a3b experiments/mtp.py: Update to use client
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
e2e093b66c m1n1.hw.asc: Add .work_pending() and .has_messages()
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
0b509daa47 m1n1.constructutils: Handle variable-length tail structs nicely
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
60c523d1a6 m1n1.fw.mtp: MTP client module
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
adae2516fe m1n1.trace.dockchannel: Add DockChannel tracer
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
4d688062db experiments/mtp.py: New experiment
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
1526560bd9 m1n1.hw.dockchannel: New module
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
6075388d31 tools/dump_pmgr.py: Do not dump pwrgate regs
These are gone in newer ADTs

Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
b02eed81f0 m1n1.shell: Add poll_func hook
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
5921631f28 m1n1.setup: Always clear PMU counters
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
b6f358021c m1n1.hw.dart8110: Pass kwargs through from_adt()
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
4d8065807c m1n1.fw.asc: Make startup/shutdown more proper
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
615878ce68 m1n1.fw.asc: Support setting DART stream and allow physmem passthrough
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-11 19:02:21 +09:00
Hector Martin
4555cc5148 dapf: Initialize DAPFs from the ADT
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-03 23:27:50 +09:00
Hector Martin
eb4fa83bbc m1n1.hw.spmi: Add some more register defs
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-02 00:29:08 +09:00
Hector Martin
4f0c712e16 m1n1.hw.pmu: Don't hardcode PMU address
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-07-02 00:28:55 +09:00
James Calligeros
a95c6d4de6 hv/trace_mesa: remove butchered tracer gore
Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
2022-07-01 17:58:20 +09:00
James Calligeros
1e2c52b5b3 hv/trace_mesa: rename bindump of fingerprint transfer message
Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
2022-07-01 17:58:20 +09:00
James Calligeros
1f21b6b7b8 hv/trace_mesa: tidy up output and trace SPI regs
We weren't tracing the SPI control registers before, and the output
was borked due to changes in m1n1. These have been fixed. Still
doesn't show much useful information..

Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
2022-07-01 17:58:20 +09:00
Hector Martin
1b8c422202 m1n1.hw.dart8110: Misc fixes
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-28 01:47:02 +09:00
Hector Martin
fa4aedefdb m1n1.hv: Support t8112 cpustart offset
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-28 01:47:02 +09:00
Hector Martin
4856e37a79 experiments/cpu_pstate_latencies.py: Support t8112
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-28 01:47:02 +09:00
Hector Martin
efc83f61da m1n1.proxyutils: Add a flag for MMU-less mode
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-28 01:41:24 +09:00
Hector Martin
6f52823441 m1n1.hw.dart8110: Support multiple instances
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-28 01:41:24 +09:00
Hector Martin
55ccea6a2d m1n1.hw.dart8110: Use 32-bit IOVA space by default
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-28 01:41:24 +09:00
Hector Martin
f3f883c2fc m1n1.adt: Match PMU properties properly for t8112
Apple changed the node name...

Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-28 01:41:24 +09:00
Hector Martin
96f59e6322 proxyclient/experiments/aes.py: Add t8110 DART support
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-28 01:41:24 +09:00
Hector Martin
b077c08181 dart: Add dart,t8110 support
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-28 01:41:24 +09:00
James Calligeros
e2d671d597 hv/trace_mesa.py: add mesa tracer
Mesa is Apple's codename for the TouchID sensor. On M1-based
systems, it is connected to the SPI bus and communicates via
SIO on DMA channels 0x18 and 0x19. The application processors
seem to have very little to do with its operation.

After power on, the command buffer is encrypted by the SEP and
very little useful data can be gleaned from snooping the SIO
messages. While the commands are garbled by the SEP, we can see
that it has a few recurring themes:

* A power on routine involving some sort of calibration, perhaps
  to get a noise image to subtract from each fingerprint

* A polling mode where it is kicked by the kernel and acks if
  there's no finger on the sensor (runs while macOS waits for a
  print)

* A data transfer mode, where a SIO message is sent to an unmapped
  EP and the fingerprint scanned into memory. Likely triggered by
  an interrupt coming off the finger detection ring, but I haven't
  been able to verify this.

Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
2022-06-21 17:22:16 +09:00
Martin Povišer
e2065decbe m1n1.trace.i2c: Clean up handling of page/immediate split
Also fix detection of read being a read of the page control register.

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-06-21 17:20:30 +09:00
Martin Povišer
56d8de66db m1n1.hw.codecs.cs42l84: File the ohmmeter codec regmap
Move the regmap from experiments/ to a handier place. Also add the
codec to trace_codecs.py and codecshell.py.

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-06-21 17:20:30 +09:00
Martin Povišer
0da13afda8 tools/codecshell.py: Add codec-poking shell
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-06-21 17:20:30 +09:00
Martin Povišer
a8bc1bc3f2 m1n1.hw.i2c: Add I2CRegMapDev base class
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-06-21 17:20:30 +09:00
Martin Povišer
46a5e0450c experiments/ohmmeter.py: Fill missing definitions
Fill in missing headset-interface-related registers into the regmap,
mostly by analogy with CS42L42.

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-06-21 17:20:30 +09:00
Martin Povišer
d358563d6c hv/trace_codecs.py: Trace volume/gain on speaker amps
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-06-21 17:20:30 +09:00
Martin Povišer
97d0130bcc m1n1.trace.i2c: Extend device tracing
Start new class I2CRegMapTracer to trace register accesses on devices
with the usual paged register maps.

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-06-21 17:20:30 +09:00
Janne Grunau
dc69227c96 hv/trace_nvme: Trace rtkit interface and remove hardcoded sart address
Signed-off-by: Janne Grunau <j@jannau.net>
2022-06-21 17:19:32 +09:00
Asahi Lina
512982f4aa m1n1.agx.shim: New module
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-19 03:54:31 +09:00
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