Commit graph

1393 commits

Author SHA1 Message Date
Alyssa Ross
0d5454e235 m1n1.shell: carry on if saving history fails
This shouldn't crash the shell — it's enough to warn about it and
carry on.

Signed-off-by: Alyssa Ross <hi@alyssa.is>
2023-11-02 15:54:23 +09:00
Hector Martin
680f1c9bd9 run_guest_kernel: s/python/python3/
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-10-12 02:47:07 +09:00
Asahi Lina
12ba00d98b m1n1.trace.dart: Add basic IOVA tracer
In the spirit of what we have for AGX, but simpler.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-10-08 16:12:59 +09:00
Asahi Lina
23d4f99bb4 m1n1.trace.isp: t8112 etc changes
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-10-08 16:12:59 +09:00
Hector Martin
595ecb423a m1n1.adt: Fix the weird DAPF variant parsing
Looks like there is a flag bit for this...

Signed-off-by: Hector Martin <marcan@marcan.st>
2023-10-05 16:05:53 +09:00
Asahi Lina
5e2e537506 m1n1.adt: Add DAPF decoding
There's a weird thing with DCP DAPF entries being larger... but we don't
use them anyway?

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-10-05 14:21:13 +09:00
Asahi Lina
e1bb8e85a6 m1n1.adt: Fix dashes in __delattr__
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-10-05 14:21:13 +09:00
Asahi Lina
0e471529cc m1n1.trace.isp: Hexdump to HV log
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-10-05 14:21:13 +09:00
Asahi Lina
204f6b8189 m1n1.fw.isp: Fix message validity check
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-10-05 14:21:13 +09:00
Hector Martin
e378605d70 hv/trace_wlan.py: Backplane tracing & more
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-10-05 14:11:59 +09:00
Hector Martin
11748d6261 m1n1.hv: Make xnu_mode reflect if we used a macho or not
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-10-05 14:11:59 +09:00
Asahi Lina
0b1c9d98b7 m1n1.hw.dart8110: 4-level support
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-10-05 14:11:59 +09:00
Eileen Yoon
51b6dd8701 isp: Initial commit
Add initial stream demo + patched tracer

Signed-off-by: Eileen Yoon <eyn@gmx.com>
2023-10-05 14:02:49 +09:00
Janne Grunau
fb6e035950 hv/trace_dcp: Support commands with retcode only replies
Seen with the SetProperty command of DCP's system EP.

Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
ea5c9be657 hv/trace_dcp: simplify tracing of dcpext*
It's now enough to change the variable dcp_name to dcpext[0-7].
'dcpext' on t8103/t8112 is handled by "/aliases" in the ADT.

Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
c11632947b hv/trace_dcp: port dptxport commands to macos 13.5 fw
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
161a96a06d hv/trace_dcp: extend tracing of ap_std_calls
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
1b10a51a51 hv/trace_dcp.py: import firmware vesrions from the HV
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
ea063b6534 hv/trace_dcp.py: more verbose logging of AFK/EPIC endpoints
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
1d46073077 hv/trace_dcp: Use 'elif' instead of 'if'
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
34b0204c27 proxy: hv: Add trace_dptx.py for tracing dptx-phy on j473/t8112
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
303d08382c experiments/dcp: add system ep
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
4965a954e2 m1n1.fw.dcp.ipc: Add D129 - allocate_bandwidth
Used on M2 Ultra with OS DCP firmware 13.5.

Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
8e5788123f m1n1.fw.dcp.ipc: Clearly mark unknown Calls/Callbacks
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
a823c311ab m1n1.fw.dcp.ipc: Add support for the macOS 13.3 firmware
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
c159c5bbfd m1n1/fw/dcp/parse_log: Parse firmware version from log
Incomplete, needs to reload fw.dcp.ipc.

Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
635e046d56 m1n1.fw.dcp: Parse AVPropChunks in parse_log
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Janne Grunau
faec98b10c m1n1.constructutils: Add 13.5 firmware symbol
Signed-off-by: Janne Grunau <j@jannau.net>
2023-09-20 22:33:45 +09:00
Mark Kettenis
ea64e7bda4 m1n1.asm: make it work again on OpenBSD
Using llvm from ports.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
2023-09-07 19:19:38 +09:00
Hector Martin
6d0979e71e m1n1.adt: Decode apcie tunables
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-08-21 23:16:08 +09:00
Martin Povišer
526f81f51e m1n1.hw.codecs: Add iMac codec
Signed-off-by: Martin Povišer <povik@cutebit.org>
2023-08-17 19:50:09 +09:00
Asahi Lina
37ad9f7df6 m1n1.fw.dcp.ipc: Fix assert
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-08-17 19:46:07 +09:00
Asahi Lina
31da584be8 m1n1.fw.agx: Helpers everywhere!
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-08-17 19:46:07 +09:00
Asahi Lina
7f94c7f39a tools.chainload.py: Fixes for 13.5
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-08-17 19:46:07 +09:00
Alexis Deruelle
b2e5b3ef00 proxyclient:picocom-sec.sh:warn when overriding SECDEV
Add a warning message when overriding the target serial device with
SECDEV variable, just in case one is caught by surprise there.

Signed-off-by: Alexis Deruelle <alexis.deruelle@gmail.com>
2023-08-17 19:45:13 +09:00
Alexis Deruelle
21a403a163 proxyclient:tools:add default device name for macOS
Under macOS host, secondary UART device name is different from the linux
device name. Check OS name and chose default device name accordingly.

Signed-off-by: Alexis Deruelle <alexis.deruelle@gmail.com>
2023-08-17 19:45:13 +09:00
Alexis Deruelle
0673a226c9 proxyclient:m1n1:rely on UartInterface defaults when creating object
- in 'main' section, device name and baud values are redundant as the
  UartInterface constructor handles it already
- Add a comment on how to run proxy.py as script

Signed-off-by: Alexis Deruelle <alexis.deruelle@gmail.com>
2023-08-17 19:45:13 +09:00
Alexis Deruelle
bd82c5f47a proxyclient:m1n1:add macOS device name for m1n1 primary UART
m1n1 UART device names on macOS follow /dev/cu.usbmodemP_XX naming
convention. Check for platform name using platform.system() and use the
macOS device name instead of /dev/m1n1 if equals 'Darwin'

Signed-off-by: Alexis Deruelle <alexis.deruelle@gmail.com>
2023-08-17 19:45:13 +09:00
Davide Cavalca
6bca5f77e1 m1n1.asm: make it work again with gcc
Signed-off-by: Davide Cavalca <davide@cavalca.name>
2023-08-15 18:27:51 +09:00
Hector Martin
31930a25f7 m1n1.hv: Add t6022 cpustart
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-08-07 19:27:47 +09:00
Hector Martin
33ef9cdaa8 m1n1.adt: Fix GPUPerfStates64 for T6022
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-08-07 19:27:47 +09:00
Asahi Lina
538693a05a hv/trace_agx{_defer}.py: Enable command dumps
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
d437d04dd4 m1n1.trace.agx: Fix broken TA parsing
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
d2cb85d048 m1n1.trace.agx: Add a missing UAT inval
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
6e40dd9aaa m1n1.trace.agx: Add AGXDECODE solib support & trace VDM
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
825fbaf1ec m1n1.agx.initdata: Split buffer manager mappings between GPU/FW
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
817b48dbc9 m1n1.fw.agx & co: Unbork a bunch of stuff on <G14X
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
b270f2f86c m1n1.agx: Handle pending stamps properly for V13_5B4
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
6761cd2d53 m1n1.fw.agx: Blit stuff for G14X
Just hacking on the structures to get it to dump, this probably broke
other firmware combinations...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
788a5b9866 m1n1.trace.agx: Changes to unbreak G14X tracing
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
40c9dfe128 m1n1.trace.agx: Skip tracing the stats queue
This is spammy and sometimes so slow it blocks forever. Let's explicitly
remove these ranges from the GPUVM tracer.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
d743db30b6 m1n1.trace.agx: Add extra dumping around TVB control messages
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
8ae5c219dc m1n1.trace.agx: Add support for dumping commands as json
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
61678c4231 m1n1.fw.agx: Add compute changes for G14X
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-11 01:49:13 +09:00
Asahi Lina
34df83601c m1n1.fw.agx: Add TVB growth control messages
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-07 13:50:13 +09:00
Asahi Lina
9e63f885e9 m1n1.fw.agx.initdata: Add 13.5B4 G14X initdata changes
Simple for once!

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-07 13:25:19 +09:00
Asahi Lina
6a149e5028 m1n1.constructutils: Improve json serialization of Value types
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-07 13:24:26 +09:00
Asahi Lina
311385e645 m1n1.trace.agx: Dump some buffers on G14X from register values
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +09:00
Asahi Lina
6902cb6210 m1n1.trace.agx: Disable the ASC tracer after initdata is available
Since we directly trace the queue rptr/wptr memory locations, we don't
need the ASC tracing and this speeds things up quite a bit (without it,
Linux can get stuck in a pathological stats gathering loop without
making forward progress while traced).

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +09:00
Asahi Lina
b219bc318a m1n1.fw.agx: Fixes for V13_3
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +09:00
Asahi Lina
b6dec2a644 m1n1.constructutils: Improve Rust export
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +09:00
Asahi Lina
c2bbb41953 m1n1.fw.agx: More fixes for t602x stuff
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +09:00
Asahi Lina
1c7131e26d m1n1.agx: T602x rendering changes
Too lazy to split this up...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +09:00
Asahi Lina
af6b8c29a8 m1n1.constructutils: Fix array addressing bug
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +09:00
Asahi Lina
b29c9734ad m1n1.adt: Add float parsing for *-kp-1 props.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +09:00
Asahi Lina
dabde44937 m1n1.fw.agx: Initdata setup & fixes for G14X/V13_3
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +09:00
Asahi Lina
e4fa6048c2 m1n1.fw.agx: Add changes for G14X on 13.2 and 13.3
Still pending confirming 13.3 on other architectures...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +09:00
Asahi Lina
d3e61153cc m1n1.trace.agx: Do not dump misc structs
These are no longer there with the register lists, and it's all
redundant anyway...

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:00 +09:00
Asahi Lina
2dbbe6050d m1n1.fw.agx.initdata: T602x 13.3 initdata structure changes
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:00 +09:00
Asahi Lina
18005b0f73 m1n1.fw.agx.initdata: T602x 12.3 initdata structure changes
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:00 +09:00
Asahi Lina
83a2a6a9bc m1n1.adt: Add afr/cs perf state props
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:00 +09:00
Asahi Lina
0f1f3b23ee m1n1.trace.agx: Run the init_hook before the shell
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:00 +09:00
Asahi Lina
f7639885ce fw.agx.channels: Don't crash if meta_fn is None
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:00 +09:00
Hector Martin
a0d2ed20be payload: Do cpufreq init before smp_start_secondaries()
This also requires exporting this to the proxy so linux.py can use it.

Signed-off-by: Hector Martin <marcan@marcan.st>
2023-06-04 15:56:42 +09:00
Hector Martin
4124485265 hv: Make breadcrumbs per-CPU and introduce panic handler
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-06-03 12:47:39 +09:00
Hector Martin
db598aa4cf m1n1.hv: Fix register names
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-21 12:29:13 +09:00
Hector Martin
ae1bcd6fe2 m1n1.hv: Update IMPDEF reg names
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-06 00:51:30 +09:00
Hector Martin
6c005ddd49 asm: Fix replacing reg names that are substrings (DAIF etc)
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-06 00:51:05 +09:00
Hector Martin
234b7064ef experiments/aic2_vms.py: New experiment
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-05 02:02:19 +09:00
Hector Martin
ebd4613f61 proxy: Add smp_call[_sync]_el1 variants
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-05 00:31:05 +09:00
Janne Grunau
7a84b2bbf9 tools/run_guest_kernel.sh: Support concatenated initramfs images
This allows booting a kernel with the firmware cpio and a cpio
containing matching modules. The modules initramfs can be prepared from
the kernel source directory with:

`make dir-pkg && usr/gen_initramfs.sh -o initramfs_mod.cpio -u squash -g squash ./tar-install/lib/`

The modules are available in /modules/$(uname -r) and the initramfs can
handle modules in the same way as the vendor firmware to make them
available for itself and the main OS.

Signed-off-by: Janne Grunau <j@jannau.net>
2023-04-27 04:09:49 +09:00
Hector Martin
54f44be7d6 hv_exc: Add hv_add_time() function & proxy thunk
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-26 00:51:51 +09:00
Hector Martin
a0f01809ce experiments/touchbar_rainbow.py: Better rainbow
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-23 18:12:09 +09:00
Hector Martin
a81314fe77 run_guest: Implement going to sleep
Getting back from sleep is left as an exercise to the reverse
engineer...

Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-19 03:21:58 +09:00
Hector Martin
06b732e788 smp: Add smp_stop_secondaries()
Doesn't work properly yet since we can't restart them...

Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-19 03:21:58 +09:00
Hector Martin
3288548faa utils: Add cpu_sleep() function
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-19 03:21:58 +09:00
Hector Martin
4638632657 hv: Implement emulated guest CPU shutdown
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-19 01:21:33 +09:00
Hector Martin
4d7b18d382 m1n1.proxy: Support negative arguments
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-19 01:02:03 +09:00
Hector Martin
a75afff83b hv_exc: Pass through dangerous CYC_OVRD writes to Python
This makes it easier to experiment with the sleep/WFI stuff.

Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 23:36:55 +09:00
Hector Martin
a1be8f233c m1n1.fw.smc: Add read32f()
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 22:09:07 +09:00
Hector Martin
7f9eaecbad m1n1.asm: Textually replace sysregs with their identifier
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 22:08:41 +09:00
Hector Martin
b57a91726d experiments/cpu_pstate_latencies.py: Fix stuff
Extra pstates only for J416c, drop the second pstate field sets (still
no idea what that does), fix a mask.

Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 21:55:12 +09:00
Asahi Lina
8f6e13b170 firmware: Add 13.3
This has the same iBoot version as 13.3.1, so firmwares probably did not
change.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-04-18 20:45:10 +09:00
Hector Martin
88b1866fcc experiments/spi.py: Cleanup/updates
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-16 21:23:46 +09:00
Hector Martin
9b7ae1b443 m1n1.fw.mtp: Fix parsing of init messages
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-16 21:23:46 +09:00
Hector Martin
36bcc36173 m1n1.fw.asc.oslog: Implement properly
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-16 21:23:46 +09:00
Hector Martin
d5267123c1 experiments/mtp.py: Clean up
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-16 21:23:46 +09:00
Asahi Lina
19e00f1f23 m1n1.hv: Remove __OS_LOG segments from coprocessors
These are supposed to be after the kernel, so we'd have to move them
for the guest to be able to access them. It seems things work if we just
delete those segments.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-04-16 21:23:46 +09:00
Janne Grunau
22890f3ba1 experiments: Optimize bad apple video playback
Let ffmpeg rotate, align to stride and convert to RGBA.
Do not allocate a framebuffer for every frame.

Signed-off-by: Janne Grunau <j@jannau.net>
2023-04-16 17:11:33 +09:00
Sasha Finkelstein
5681036b2e Add touchbar screen experiments
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
2023-04-15 17:23:36 +09:00