I wonder if there is an already implemented (common – standard) “driver/kernel module/sysfs entry” way to access ARM’s coprocessor through user space. If not (to my knowledge), why it is not available? Is there anything blocking it? Isn’t it feasible?
For example; I want to get the contents of Main ID Register – MIDR, I would like to be able to do this from user space by writing to / reading from a sysfs entry.
It is generally a bad idea to expose that level of intricate hardware connection to application software – it breaks portability and can affect security and stability (which is why they are not accessible from unprivileged mode to begin with). Such things are usually better hidden behind some layers of software abstractions. But nothing prevents you from writing kernel drivers that expose such interfaces where a real reason exists.
If your question is from a pure perspective of curiosity, then I would recommend building your own kernel and either use something like KGDB to investigate during startup or simply insert printk statements in strategic locations to see what certain values are at given points.