1
votes

I was trying to understand the boot process and memory management on arm and had question related to memory map addresses and ram address.

  • What I understand:

Every Soc will have a memory map and size depends on the addressing capability, ex: a 32 bit processor has addressing capability of 2^32 or 4GB. A memory map will contain address of different peripherals mapped and vector table e.t.c ex: address 0x00000000 is reset vector, address 0x70000000 is UART registers, and so on.

Similarly a DDR controller will also have a memory mapped address to control the RAM.

  • My Question:

Assuming size of the RAM as 4GB, how does the address 0x70000000 of RAM is accessesd without effecting the memory map (or UART registers) ?

Please correct my understanding if I have misunderstood it.

1

1 Answers

1
votes

The simple answer is: it's not accessible. Memory-mapped peripherals take precedence over RAM at the same address.

The most famous example is actually Win32, where video cards are memory-mapped and often reduce available RAM to 3.5GB.