CONFIG_KERNEL_VM_SIZE

Size of kernel address space in bytes

Type: hex

Help

Size of the kernel’s address space. Constraining this helps control how much total memory can be used for page tables.

The difference between KERNEL_RAM_SIZE and KERNEL_VM_SIZE indicates the size of the virtual region for runtime memory mappings. This is needed for mapping driver MMIO regions, as well as special RAM mapping use-cases such as VSDO pages, memory mapped thread stacks, and anonymous memory mappings.

The system currently assumes all RAM can be mapped in the virtual address space. Systems with very large amounts of memory (such as 512M or more) will want to use a 64-bit build of Zephyr, there are no plans to implement a notion of “high” memory in Zephyr to work around physical RAM which can’t have a boot-time mapping due to a too-small address space.

Direct dependencies

MMU

(Includes any dependencies from ifs and menus.)

Default

  • 0xC0000000

Kconfig definition

At <Zephyr>/arch/Kconfig:580

Included via <Zephyr>/Kconfig:8<Zephyr>/Kconfig.zephyr:29

Menu path: (Top) → Enable MMU features

config KERNEL_VM_SIZE
    hex "Size of kernel address space in bytes"
    default 0xC0000000
    depends on MMU
    help
      Size of the kernel's address space. Constraining this helps control
      how much total memory can be used for page tables.

      The difference between KERNEL_RAM_SIZE and KERNEL_VM_SIZE indicates the
      size of the virtual region for runtime memory mappings. This is needed
      for mapping driver MMIO regions, as well as special RAM mapping use-cases
      such as VSDO pages, memory mapped thread stacks, and anonymous memory
      mappings.

      The system currently assumes all RAM can be mapped in the virtual address
      space. Systems with very large amounts of memory (such as 512M or more)
      will want to use a 64-bit build of Zephyr, there are no plans to
      implement a notion of "high" memory in Zephyr to work around physical
      RAM which can't have a boot-time mapping due to a too-small address space.

(The ‘depends on’ condition includes propagated dependencies from ifs and menus.)