続々 src/sys/arch/arm/arm32/pmap.c:2408
という事で確認してみた。
- ARMv6 以前
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
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 のレイアウトが変わっただけなんですかね。