Confusion regarding ARMv5 MMU access permissions

Sasha Sirotkin buildroot at browserseal.com
Fri Apr 9 17:36:13 EDT 2010


I'm trying to figure out how ARMv5 MMU access permissions work in 
general and on Linux in particular.

Table B4-1 MMU access permissions (from the ARM Architecture Reference 
Manual) does not make sense to me and trying to correlate it with
 * Permission translation:
 *  YUWD   AP    SVC    User
 *  0xxx  0x00    no acc    no acc
 *  100x  0x00    r/o    no acc
 *  10x0  0x00    r/o    no acc
 *  1011  0x55    r/w    no acc
 *  110x  0xaa    r/w    r/o
 *  11x0  0xaa    r/w    r/o
 *  1111  0xff    r/w    r/w

from armv3_set_pte_ext makes even less sense.

Can please anybody shed some light on this black magic?

What YUWD stand for? How AP from the above table relate to AP[0:1] bits 
in the ARM page table ? How should I read ARM MMU access permissions table:
S R APXa AP[1:0] Privileged permissions User permissions Description
0 0  0       0b00     No access No access All accesses generate 
permission faults
x x  0       0b01     Read/write No access Privileged access only
x x  0       0b10     Read/write Read only Writes in User mode generate 
permission faults
x x  0       0b11     Read/write Read/write Full access
0 0 1        0b00     - - RESERVED
0 0 1        0b01     Read only No access Privileged read only
0 0 1        0b10     Read only Read only Privileged/User read only
0 0 1        0b11     - - RESERVED

The S and R bits are deprecated in VMSAv6. The following entries apply 
to legacy systems only.

0 1 0 0b00 Read only Read only Privileged/User read only
1 0 0 0b00 Read only No access Privileged read only
1 1 0 0b00 - - RESERVED
0 1 1 0bxx - - RESERVED
1 0 1 0bxx - - RESERVED
1 1 1 0bxx - - RESERVED

And what does that x (don't care !?) mean ?

Thanks a lot, hope this is the right place to ask these kinds of questions.



More information about the linux-arm-kernel mailing list