We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello everybody!
I am working on a IMX-6 and i have a little problem with the MMU.
I want to write on some registers which are blocked by the MMU, so i want to disable it. I went on this page ARM Information Center and i saw that i have to use this command "MCR p15, 0, <Rd>, c3, c0, 0" but i'm not very familiar with assembler. How do i choose which domain access control register i want to modify? What i should write instead of <Rd>? And, is the value (the last field, right?) in decimal or binary?
Sorry for my english, it's not my mother tongue.
Regards
Alexandre
This is highly likely to explode; you can't just "turn off" the MMU in the middle of operation as all of your physical to virtual translations (and the caches) will disappear.
Why not just map the memory page containing the registers into the virtual memory view (the correct solution)
HTH,
Pete
Hello, and thanks for your answer
I don't want to explode my board I want to put them in the sources of my kernel or my bootloader.
But i am not sure i understand your second sentence, you mean using mmap to write these registers? Because it's what i have done and it didn't worked for registers which are not writeable.
The mmap call is a user-space call which relies on the underlying (kernel-space) device node which is handling the mmap (i.e. which file descriptor) to do the right thing.
For kernel code this might be a more useful starting point:
http://www.makelinux.net/ldd3/chp-9-sect-4