Run a process with supervisory privileges on 440GX PowerPC?

I’m writing a DMA driver for execution on the 440GX PowerPC under QNX. This requires access to the device control registers (DCRs) on the processor. The instructions that access the DCRs can only be executed in supervisory mode.

My question is, how can a process execute in supervisory (aka privileged) mode on a PowerPC? Typically the kernel code runs in supervisory mode and user processes don’t. I’m running the code via the Momentics IDE debugger. When my code reads a DCR I get a SIGILL since I don’t have supervisory privileges.

Maybe this discussion helps ?

Adding ThreadCtl(_NTO_TCTL_IO,0) to my code solved the problem. I can now read/write 440GX registers that use supervisory level instructions.