| |||
| Home > Memory Management Unit > MMU descriptors > Second-level page table walk | |||
If bits [1:0] of the first-level descriptor bits are b01, then a page table walk is required. The MMU requests the second-level page table descriptor from external memory. Figure 5.13 shows how the second-level page table address is generated.
When the page table address is generated, a request is made to external memory for the second-level descriptor.
By examining bits [1:0] of the second-level descriptor, the access type is indicated as shown in Table 5.14.
Table 5.14. Access types from second-level descriptor bit values
| Descriptor format | Bit values | Access type |
|---|---|---|
| Both | b00 | Translation fault |
| Backwards-compatible | b01 | 64KB large page |
| ARMv6 | b01 | 64KB large page |
| Backwards-compatible | b10 | 4KB small page |
| ARMv6 | b1XN | 4KB extended small page |
| Backwards-compatible | b11 | 4KB extended small page |
If bits [1:0] of the second-level descriptor are b00, then a translation fault is generated. This generates an abort to the MP11 CPU, either a Prefetch Abort for the instruction side or a Data Abort for the data side.
If bits [1:0] of the second-level descriptor are b01, then a large page table walk is required. Figure 5.14 shows the translation process for a 64KB large page using ARMv6 format (AP bits disabled).
Figure 5.15 shows the translation process for a 64KB large page, or a 16KB large page subpage, using backwards-compatible format (AP bits enabled).
Using backwards-compatible format descriptors, the 64KB large page is generated by setting all of the AP bit pairs to the same values, AP3=AP2=AP1=AP0. If any one of the pairs are different, then the 64KB large page is converted into four 16KB large page subpages. The subpage access permission bits are chosen using the Virtual Address bits [15:14].
If bits [1:0] of the second-level descriptor are b10 for backwards-compatible format, then a small page table walk is required.
Figure 5.16 shows the translation process for a 4KB small page or a 1KB small page subpage using backwards-compatible format descriptors (AP bits enabled).
Using backwards-compatible descriptors, the 4KB small page is generated by setting all of the AP bit pairs to the same values, AP3=AP2=AP1=AP0. If any one of the pairs are different, then the 4KB small page is converted into four 1KB small page subpages. The subpage access permission bits are chosen using the Virtual Address bits [11:10].
If bits [1:0] of the second-level descriptor are b1XN for ARMv6 format descriptors, or b11 for backwards-compatible descriptors, then an extended small page table walk is required. Figure 5.17 shows the translation process for a 4KB extended small page using ARMv6 format descriptors (AP bits disabled).
Figure 5.18 shows the translation process for a 4KB extended small page or a 1KB extended small page subpage using backwards-compatible format descriptors (AP bits enabled).
Figure 5.18. 4KB extended small page or 1KB extended small subpage translations, backwards‑compatible
Using backwards-compatible descriptors, the 4KB extended small page is generated by setting all of the AP bit pairs to the same values, AP3=AP2=AP1=AP0. If any one of the pairs are different, then the 4KB extended small page is converted into four 1KB extended small page subpages. The subpage access permission bits are chosen using the Virtual Address bits [11:10].