we are using freescale powerpc running linux.
we need to develop diagnostic software to support the bringup of our
hardware.
ideally we would like to run diagnostic software in the user space as
an application (as opposed to kernal modules).

if we do run diagnostic software in the user space, will the software
have limitations in terms of being able to test hardware, (ie, can
software test memory, can software reading/write directly to the
physical address of the I/O device/memory, can software configuring PCI
address space, etc...?)

if there are limitations, what are they?

if there are no limitations, Which system calls or mechanisms are used
by the application software in order to access physcal addresses and to
configure PCI addresses?

Can anyone point me to good documentations or books?

thank you in advance.