smol-gilbraltar/doc/memory.md

3.3 KiB

How to make a simple unikernel on RBPi

File required on Raspberry Pi 5:

CPU used by Raspberry Pi 5: Cortex-A76 BCM2712 is the Broadcom chip used by Raspberry Pi 5

Memory layout

Gilbraltar has a fairly precise memory layout. Here are the different zones (heap, stacks, etc.).

Base Size Contents Remarks
00000000 32 KByte ARM Trusted Firmware BL31
0006F000 4 KByte EL3 Stack
00070000 2 KByte Exception vector table EL3
...
00080000 max. 6 MByte Kernel image
.init startup code
.text
.rodata
.data
.bss
...
Kernel stacks
00280000 128 KByte for Core 0
002A0000 128 KByte for Core 1
002C0000 128 KByte for Core 2
002E0000 128 KByte for Core 3
00300000 End of stacks
Exception stacks
00300000 32 KByte for Core 0
00308000 32 KByte for Core 1
00310000 32 KByte for Core 2
00318000 32 KByte for Core 3
00320000 End of exception stacks
IRQ stack
00320000 32 KByte for Core 0
00328000 32 KByte for Core 1
00330000 32 KByte for Core 2
00338000 32 KByte for Core 3
00340000 End of IRQ stacks
FIQ stack
00340000 32 KByte for Core 0
00348000 32 KByte for Core 1
00350000 32 KByte for Core 2
00358000 32 KByte for Core 3
00360000 End of FIQ stacks
00500000 4 MByte Coherent region
00900000
1b000000 16 MByte Pager
1c000000
40000000 Heap
...
100000000 8192 MB Heap
1000000000 16 MByte AXI peripherals