Asahi Lina
5a389fe87b
kboot_gpu: Add another pwcalc difference for T602x
...
This doesn't make any sense... M2 Ultra should be 2x M2 Max, so there's
no reason for this constant to be different.
I get the feeling Apple messed this one up too...
Also clean up some other constants.
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-08-17 19:46:07 +09:00
Asahi Lina
db49377e5a
kboot_gpu: Fixes for >1 die t602x
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-08-17 19:46:07 +09:00
Hector Martin
8e3016e323
pcie: T602X APCIE-GE support
...
Maybe maybe?
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-08-07 21:05:25 +09:00
Hector Martin
721107aa0a
kboot_gpu: Fixes for T6022
...
This is still blind. Lina send help.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-08-07 19:27:47 +09:00
Hector Martin
bb0e9ace57
display: Make M2+ desktop disable hack more generic
...
This should work on the Mac Pro.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-08-07 19:27:47 +09:00
Hector Martin
9b73944684
Initial t6022 support
...
GPU stuff is a wild guess.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-08-07 19:27:47 +09:00
Asahi Lina
28708461fc
kboot_gpu: Fix core count for T8112
...
Oops...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-08-02 21:10:41 +09:00
Asahi Lina
e322312c94
kboot_gpu: Do not try to set cs/afr pstates on <G14X
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-08-02 15:11:32 +09:00
Asahi Lina
86d75d4dba
kboot: Add 13.5 firmware compats
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-20 11:54:11 +09:00
Asahi Lina
f58e213529
kboot_gpu: Power calc fixes for t6020
...
Looks like this is different from t6021, and now I wonder if we need to
recheck t6000...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-20 11:54:11 +09:00
Asahi Lina
dfecc20114
firmware: Add 13.5b4 and 13.5 versions
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-07-19 13:12:24 +09:00
Asahi Lina
b7389c59be
kboot_gpu: Add T602x to the support list
...
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-06-27 18:35:01 +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
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
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
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
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
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
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
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
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
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
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
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
Hector Martin
9b944c5f56
payload: Pass m1n1 stage 1 version when chainloading
...
This might come in handy in the future.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 21:55:12 +09:00
Hector Martin
5a4e30a98d
hv: Restore CYC_OVRD WFI mode and handle FIQ disable
...
Put the WFI mode back how macOS expects it on boot, since it won't set
it itself. Then, also trap attempts by macOS to disable FIQs. This
happens in the sleep/core off path. It is not sufficient to make all
that work properly, but it's a start.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 21:55:12 +09:00
Hector Martin
8cf0df0553
utils_asm: Save/restore CYC_OVRD register
...
This keeps the previous WFI setting instead of unconditionally flipping
to 3 then back to 2.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 21:55:12 +09:00
Hector Martin
b067f26971
cpu_regs.h: Add ACC_OVRD register
...
Not used yet, but might be in the future.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 21:55:12 +09:00
Hector Martin
cbd9b7b9e1
main, kboot: Move tunables/cpufreq/clk from main to kboot
...
I already screwed something up in cpufreq, and it makes it difficult to
understand what happened if it happens in stage1 before the proxy runs,
and difficult to undo in stage2.
Let's move all this stuff to kboot, since it isn't necessary until then
(and this will also avoid doing unnecessary init for macOS under the
HV). If we need it in proxy scripts, we can add proxy commands for this
later.
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-04-18 21:55:12 +09:00