January 18, 2023

ARM Processor 101 -- the MMU table

Once again, this is for the ARMv7-A instruction set.

The MMU maps 4G of address space. Each descritor maps a 1M "section". Therefore we need 4*1024 descriptors which will take up 16K of ram.

Now consider the address map on the Orange Pi. We have 1G of ram (typically) starting at 0x4000_0000. This means the 2G from 0x800_0000 to the end could be invalidated. We have IO devices scattered in the 1G starting at 0x0.

Now consider the BBB. We have 1/2G of ram starting at 0x8000_0000. Nothing is at address 0, so we can map that as invalid to catch wild pointer bugs. IO addresses are at addresses with 0x4000_0000 and up.


Have any comments? Questions? Drop me a line!

Kyu / tom@mmto.org