続々 src/sys/arch/arm/arm32/pmap.c:2408

という事で確認してみた。

  • ARMv6 以前

Home > Memory Management Unit > Hardware page table translation > Backwards-compatible page table translation subpage AP bits enabled

Figure 6.5. Backwards-compatible second-level descriptor format

                   31                        16 15     12 11 10 9   8 7   6 5   4 3 2 1 0
                  +------------------------------------------------------------------+-+-+
Translation fault | Ignored                                                          |0|0|
                  +----------------------------+---------+-----+-----+-----+-----+-+-+-+-+
Large page (64KB) | Large page base address    |   TEX   | AP3 | AP2 | AP1 | AP0 |C|B|0|1|
                  +----------------------------+---------+-----+-----+-----+-----+-+-+-+-+
Small page (4KB)  | Small page base address              | AP3 | AP2 | AP1 | AP0 |C|B|1|0|
                  +--------------------------------------+-----+--+--+---+-+-----+-+-+-+-+
Extended small    | Extended small page base address     |   SBZ  |  TEX |   AP  |C|B|1|1|
       page (4KB) +--------------------------------------+--------+------+-------+-+-+-+-+

やっぱりありませんね。


じゃあ ARMv6 からかな。

  • ARMv6

Home > Memory Management Unit > Hardware page table translation > ARMv6 page table translation subpage AP bits disabled

Figure 6.8. ARMv6 second-level descriptor format

                   31                           16 15 14  12 11 10  9  8 7 6 5  4 3 2 1  0
                  +------------------------------------------------------------------+-+--+
Translation fault | Ignored                                                          |0| 0|
                  +-------------------------------+--+------+--+--+---+-----+----+-+-+-+--+
Large page (64KB) | Large page table base address |NX| TEX  |nG| S|APX| SBZ | AP |C|B|0| 1|
                  +-------------------------------+--+------+--+--+---+-----+----+-+-+-+--+
Small page (4KB)  | Extended small page base address        |nG| S|APX| TEX | AP |C|B|1|NX|
                  +-----------------------------------------+-----+---+-----+----+-+-+-+--+

ARMv6 から nG bit が導入されたみたいです。


一応 Cortex-A8 とかも見てみましょうか。

  • Cortex-A8

Home > Memory Management Unit > 16MB supersection support
Cortex-A8 では first level descriptor の 16MB page のレイアウトが変わっただけなんですかね。