title: How to intepret the virtual kernel memory layout on ARM64?
body: <p>The following memory layout info is printed by linux kernel at boot time, on my SoC platform (with 4-core Cortex-A53 processor and 2.75GiB DRAM), but I don't exactly understand the content of the layout:</p>
  
  <pre><code>[    0.000000] Memory: 2736316K/2883584K available (4796K kernel code, 488K rwdata, 1360K rodata, 448K init, 341K bss, 130884K reserved, 16384K cma-reserved)
  [    0.000000] Virtual kernel memory layout:
  [    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
  [    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000   (   250 GB)
  [    0.000000]       .text : 0xffffff8008080000 - 0xffffff8008530000   (  4800 KB)
  [    0.000000]     .rodata : 0xffffff8008530000 - 0xffffff8008690000   (  1408 KB)
  [    0.000000]       .init : 0xffffff8008690000 - 0xffffff8008700000   (   448 KB)
  [    0.000000]       .data : 0xffffff8008700000 - 0xffffff800877a200   (   489 KB)
  [    0.000000]        .bss : 0xffffff800877a200 - 0xffffff80087cf76c   (   342 KB)
  [    0.000000]     fixed   : 0xffffffbefe7fd000 - 0xffffffbefec00000   (  4108 KB)
  [    0.000000]     PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000   (    16 MB)
  [    0.000000]     vmemmap : 0xffffffbf00000000 - 0xffffffc000000000   (     4 GB maximum)
  [    0.000000]               0xffffffbf00000000 - 0xffffffbf02c00000   (    44 MB actual)
  [    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc0b0000000   (  2816 MB)
  </code></pre>
  
  <p>Can you please walk through those sections and/or indicate an URL for more details?</p>
  
  <p>Thanks a lot!</p>