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
b35f0d7cf2
kboot_gpu: Initial T602x support
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:00 +09:00
Asahi Lina
af85202b58
math: Add powf()
...
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
88df8a6335
cpufreq: Initialize a bunch more stuff
...
At least some of this fixes hangs when overheating on j413. We still
don't know exactly what most of this is, but let's try to get closet to
the init that macOS does.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-06-04 20:10:39 +09:00
Hector Martin
5cd985b4db
cpufreq: Redefine the dvmr flag as pcluster
...
We're going to use this later.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-06-04 17:03:58 +09:00
Hector Martin
7ce414224c
pmgr: Add a helper to test for pmgr features in the ADT
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-06-04 17:02:48 +09:00
Hector Martin
1f154402a4
cpufreq: Drop the DVMR stuff
...
This is enabled by iBoot in all versions we support.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-06-04 17:02:44 +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
2c531aa7ae
hv_exc: Remove PMC0 CNT enable shadowing from fast sysreg path
...
This is outside the hv_exc_entry/hv_exc_exit bracketing now, so modify
the register directly. We only stop the PMCs when we go into the
slowpath.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-22 00:27:08 +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
Janne Grunau
076217a802
display: Skip init on j473/474s while it's not supported
...
Signed-off-by: Janne Grunau <j@jannau.net>
2023-05-16 18:23:44 +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
48db941199
cpu_regs.h: Typo fix
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-05 19:20:48 +09:00
Hector Martin
50c808df2c
pmgr: Power up parents before children
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-05 12:39:26 +09:00
Hector Martin
59e0032ba4
cpu_regs,apple_regs.json: More registers
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-05 04:46:11 +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
895488aebb
chickens: Change IRQ mode from 0 to 2
...
0 seems to misbehave when IRQs fire in EL1. 2 works as intended.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-05 00:32:42 +09:00
Hector Martin
abe4bb04c5
exception: Improve IRQ/FIQ log messages
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-05-05 00:31:05 +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
254a2acf18
dcp_iboot: Support macOS 13.3 DCP firmware
...
The macOS 13.3 DCP firmware extended swap_set_layer_cmd in an
incompatible way. Let dcp_ib_swap_set_layer() send the matching struct
based on the firmware version.
Signed-off-by: Janne Grunau <j@jannau.net>
2023-04-27 04:11:18 +09:00
Janne Grunau
01ea1ae8df
afk: Accept message type TYPE_REPLY in start_interface
...
The macOS 13.3 DCP firmware uses TYPE_REPLY instead of TYPE_NOTIFY for
the disp0-service interface init message.
Signed-off-by: Janne Grunau <j@jannau.net>
2023-04-27 04:11:18 +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
Janne Grunau
cd8e9d6676
payload: Add a custom header with a payload size field for initramfs'
...
This add supports for concatenated (compressed) cpio archives and relies
on the kernel to decompress the initramfs.
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
9e9693eb6c
rust: Switch to RUSTC_BOOTSTRAP=1 backdoor instead of nightly
...
Nightly is messing around with alloc_error_handler and they can't seem
to make up their mind about it, breaking our CI. Just switch to stable
rust with the usual backdoor to enable unstable features (same as the
kernel does).
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-25 23:58:05 +09:00
Hector Martin
1933e59af6
rust: Drop mixed_integer_ops feature
...
This is now stable.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-25 23:56:17 +09:00
Hector Martin
7cbd3e7612
rust: Upgrade log to 0.4.17
...
Fixes a compile warning.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-25 23:50:01 +09:00
Hector Martin
9602fb1859
hv_exc: Add a fast path for sysregs that can be handled without locking
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-25 20:08:59 +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
b8b76f34f4
cpufreq: Correct fixup for M2 devices
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-19 04:44:58 +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
bd63b119ec
startup: Direct primary CPU RVBAR entry to m1n1 main
...
This definitely isn't going to work yet, but it's better than ending up
in the secondary loop if it ever works.
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
121d20cddf
cpu_regs: Make fields usable from assembler
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-19 02:37:02 +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
cae2059c06
hv: Add a rendezvous timeout and panic on failure
...
Prints the CPUs that failed rendezvous, which should help debug what
caused them to go away.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 23:50:11 +09:00
Hector Martin
587da648a3
hv_exc: Be a bit more paranoid handling IPIs
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 23:38:40 +09:00
Hector Martin
b0c3f6d7ae
hv: Implement ECV on M2 and later chips
...
This lets us eliminate HV timer ticks on secondary CPUs, which should
significantly improve the scalability of this whole thing.
(We leave them at 1Hz just in case, since that much won't hurt)
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 23:37:18 +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
40ae642d7b
tools/apple_regs.json: Update some regs with stuff from XNU dumps
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 23:06:53 +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
bdf54ba7e1
usb_dwc3: Populate serial number with the actual serial number
...
This will be useful for CI and similar use cases, to distinguish
different machines. Also fix spurious NUL-termination of the descriptor
strings while I'm here.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 22:07:21 +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
Hector Martin
cf7da86eba
cpufreq: Fix m1n1 stage 1 bugs
...
Old stage1 did cpufreq init and didn't do it right. Undo the damage in
stage2.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 21:55:12 +09:00