MEMORY MAP Circle on Raspberry Pi 1 ------------------------------------------------------------------------------ Base Size Contents Remarks ------------------------------------------------------------------------------ 00000000 32 Bytes Exception vector table ... 00000100 variable ATAGS unused ... 00008000 max. 2 MByte Kernel image .init startup code .text .rodata .init_array static constructors .ARM.exidx C++ exception index .eh_frame unused .data .bss ... 00208000 128 KByte Kernel stack 00228000 32 KByte Abort exception stack 00230000 32 KByte IRQ exception stack 00238000 32 KByte FIQ exception stack 00240000 16 KByte Page table 1 ... 00400000 1 MByte Coherent region for property mailbox, VCHIQ 00500000 variable Heap allocator malloc() ???????? 4 MByte Page allocator palloc() ???????? variable GPU memory 20000000 Peripherals ... ------------------------------------------------------------------------------ Circle on Raspberry Pi 2 and 3 (AArch32) ------------------------------------------------------------------------------ Base Size Contents Remarks ------------------------------------------------------------------------------ 00000000 256 Bytes ARM stub Core 1-3 spin here 00000000 32 Bytes Exception vector table 00000100 variable ATAGS unused ... 00008000 max. 2 MByte Kernel image .init startup code .text .rodata .init_array static constructors .ARM.exidx C++ exception index .eh_frame unused .data .bss ... Kernel stacks 00208000 128 KByte for Core 0 00228000 128 KByte for Core 1 may be unused 00248000 128 KByte for Core 2 may be unused 00268000 128 KByte for Core 3 may be unused Abort exception stacks 00288000 32 KByte for Core 0 00290000 32 KByte for Core 1 may be unused 00298000 32 KByte for Core 2 may be unused 002A0000 32 KByte for Core 3 may be unused IRQ exception stacks 002A8000 32 KByte for Core 0 002B0000 32 KByte for Core 1 may be unused 002B8000 32 KByte for Core 2 may be unused 002C0000 32 KByte for Core 3 may be unused FIQ exception stacks 002C8000 32 KByte for Core 0 002D0000 32 KByte for Core 1 may be unused 002D8000 32 KByte for Core 2 may be unused 002E0000 32 KByte for Core 3 may be unused 002E8000 16 KByte Page table 1 ... 00400000 1 MByte Coherent region for property mailbox, VCHIQ 00500000 variable Heap allocator malloc() ???????? 4 MByte Page allocator palloc() 1F000000 variable rpi_stub if used for debugging ... ???????? variable GPU memory 3F000000 16 MByte Peripherals 40000000 Local peripherals ... ------------------------------------------------------------------------------ Circle on Raspberry Pi 3 (AArch64) ------------------------------------------------------------------------------ Base Size Contents Remarks ------------------------------------------------------------------------------ 00000000 256 Bytes ARM stub Core 1-3 spin here 00000100 variable ATAGS unused ... 00080000 max. 2 MByte Kernel image .init startup code .text .rodata .init_array static constructors .ARM.exidx unused .eh_frame C++ exception frames .data .bss ... Kernel stacks 00280000 128 KByte for Core 0 002A0000 128 KByte for Core 1 may be unused 002C0000 128 KByte for Core 2 may be unused 002E0000 128 KByte for Core 3 may be unused Exception stacks 00300000 32 KByte for Core 0 00308000 32 KByte for Core 1 may be unused 00310000 32 KByte for Core 2 may be unused 00318000 32 KByte for Core 3 may be unused 00500000 1 MByte Coherent region for property mailbox, VCHIQ 00600000 variable Heap allocator malloc() ???????? 16 MByte Page allocator palloc() ???????? variable GPU memory 3F000000 16 MByte Peripherals 40000000 Local peripherals ... ------------------------------------------------------------------------------ Circle on Raspberry Pi 4 (AArch32, LPAE) ------------------------------------------------------------------------------ Base Size Contents Remarks ------------------------------------------------------------------------------ 00000000 256 Bytes ARM stub Core 1-3 spin here 00000000 32 Bytes Exception vector table 00000100 variable ATAGS unused ... 00008000 max. 2 MByte Kernel image .init startup code .text .rodata .init_array static constructors .ARM.exidx C++ exception index .eh_frame unused .data .bss ... Kernel stacks 00208000 128 KByte for Core 0 00228000 128 KByte for Core 1 may be unused 00248000 128 KByte for Core 2 may be unused 00268000 128 KByte for Core 3 may be unused Abort exception stacks 00288000 32 KByte for Core 0 00290000 32 KByte for Core 1 may be unused 00298000 32 KByte for Core 2 may be unused 002A0000 32 KByte for Core 3 may be unused IRQ exception stacks 002A8000 32 KByte for Core 0 002B0000 32 KByte for Core 1 may be unused 002B8000 32 KByte for Core 2 may be unused 002C0000 32 KByte for Core 3 may be unused FIQ exception stacks 002C8000 32 KByte for Core 0 002D0000 32 KByte for Core 1 may be unused 002D8000 32 KByte for Core 2 may be unused 002E0000 32 KByte for Core 3 may be unused 002E8000 16 KByte Page table 1 ... 00400000 4 MByte Coherent region for property mailbox, VCHIQ, xHCI 00800000 variable Heap allocator "new" and malloc() ???????? 4 MByte Page allocator palloc() ???????? variable GPU memory 40000000 variable High heap allocator unused above 0xC0000000 ... FA000000 2 MByte xHCI controller mapped from 0x600000000 ... FC000000 64 MByte Peripherals ------------------------------------------------------------------------------ Circle on Raspberry Pi 4 (AArch64) ------------------------------------------------------------------------------ Base Size Contents Remarks ------------------------------------------------------------------------------ 00000000 256 Bytes ARM stub Core 1-3 spin here 00000100 variable ATAGS unused ... 0006F000 4 KByte EL3 stack 00070000 2 KByte Exception vector table EL3 ... 00080000 max. 2 MByte Kernel image .init startup code .text .rodata .init_array static constructors .ARM.exidx unused .eh_frame C++ exception frames .data .bss ... Kernel stacks 00280000 128 KByte for Core 0 002A0000 128 KByte for Core 1 may be unused 002C0000 128 KByte for Core 2 may be unused 002E0000 128 KByte for Core 3 may be unused Exception stacks 00300000 32 KByte for Core 0 00308000 32 KByte for Core 1 may be unused 00310000 32 KByte for Core 2 may be unused 00318000 32 KByte for Core 3 may be unused 00500000 4 MByte Coherent region for property mailbox, VCHIQ, xHCI 00900000 variable Heap allocator "new" and malloc() ???????? 16 MByte Page allocator palloc() ???????? variable GPU memory 40000000 variable High heap allocator unused above 0xC0000000 ... FC000000 64 MByte Peripherals ... 600000000 64 MByte xHCI controller ... ------------------------------------------------------------------------------ Circle on Raspberry Pi 5 (AArch64) ------------------------------------------------------------------------------ Base Size Contents Remarks ------------------------------------------------------------------------------ 00000000 32 KByte ARM Trusted Firmware BL31 ... 00080000 max. 2 MByte Kernel image .init startup code .text .rodata .init_array static constructors .ARM.exidx unused .eh_frame C++ exception frames .data .bss ... Kernel stacks 00280000 128 KByte for Core 0 002A0000 128 KByte for Core 1 may be unused 002C0000 128 KByte for Core 2 may be unused 002E0000 128 KByte for Core 3 may be unused Exception stacks 00300000 32 KByte for Core 0 00308000 32 KByte for Core 1 may be unused 00310000 32 KByte for Core 2 may be unused 00318000 32 KByte for Core 3 may be unused 00500000 4 MByte Coherent region for property mailbox, MACB, xHCI 00900000 variable Heap allocator "new" and malloc() ???????? 16 MByte Page allocator palloc() ???????? variable GPU memory 40000000 variable High heap allocator ... 1000000000 16 MByte AXI peripherals ... 107C000000 16 MByte SoC peripherals ... 10F0000000 4 MByte RP1 peripherals PCI Bus 0000:01 ... ------------------------------------------------------------------------------