I am a computer science student trying to port an operating system to ARMv8. And I found Peter Maydell's helpful Stackoverflow post  while trying to turn on the remaining cores in QEMU.
ldr w0, =0xc4000003
ldr x1, =1
ldr x2, =cpu1_only
ldr x3, =0
In EL1 everything works fine. But if I also emulate EL2 (-machine virtualization=on) and EL3 (-machine secure=on) the core stays on the state halted and I get -2 (INVALID_PARAMETERS) as return value. Although I did not change the parameters. The author of the question seems to have the same problem.
Do you happen to have an idea what the problem might be? Is this a bug in the PSCI emulation? Or did I miss something? If required I can provide a minimal runnable sample.