@mwk @millihertz @becomethewaifu this is where we take advantage of the fact that the the PL has an axi port that allows fabric to talk to hard IP on the PS side.
and I *think* (if this doesn't work, it's 100% definitely doable over EMIO JTAG but that would make it even more cursed) you can access CoreSight APB registers on the PS side from PL this way.
So you make an RTL context switcher module that periodically halts the A9, serializes its registers out to block RAM, loads a new context, loads a new page table, flushes caches etc as needed, then resumes execution.
Boom, hardware threading with no kernel mode software.