Found the DMP disable chicken bit. it's HID11_EL1<30>
(at least on M2).
So yeah, as I predicted, GoFetch is entirely patchable. I'll write up a patch for Linux to hook it up as a CPU security bug workaround.
(HID4_EL1<4>
also works, but we have a name for that and it looks like a big hammer: HID4_FORCE_CPU_OLDEST_IN_ORDER
)
Code here: https://github.com/AsahiLinux/m1n1/blob/main/proxyclient/experiments/dmp.py (Thanks to @dkohlbre for the userspace C version this is based off of!)
One interesting finding is that the DMP is already disabled in EL2 (and presumably EL1), it only works in EL0. So it looks like the CPU designers already had some idea that it is a security liability, and chose to hard-disable it in kernel mode. This means kernel-mode crypto on Linux is already intrinsically safe.
@marcan @dkohlbre Random Curiosity, why is it called a Chicken bit?