This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

CONFIG_MAX_XLAT_TABLES

Maximum numbers of translation tables

Type: int

Help

This option specifies the maximum numbers of translation tables.
Based on this, translation tables are allocated at compile time and
used at runtime as needed.  If the runtime need exceeds preallocated
numbers of translation tables, it will result in assert. Number of
translation tables required is decided based on how many discrete
memory regions (both normal and device memory) are present on given
platform and how much granularity is required while assigning
attributes to these memory regions.

Direct dependencies

ARM_MMU && (CPU_CORTEX_A || CPU_AARCH64_CORTEX_R) && ARM64

(Includes any dependencies from ifs and menus.)

Defaults

Kconfig definition

At arch/arm64/core/Kconfig:243

Included via Kconfig:8Kconfig.zephyr:39arch/Kconfig:12arch/arm64/Kconfig:32

Menu path: (Top) → ARM64 Options

config MAX_XLAT_TABLES
    int "Maximum numbers of translation tables"
    default 20 if USERSPACE && ARM64_VA_BITS >= 40
    default 16 if USERSPACE
    default 12 if ARM64_VA_BITS >= 40
    default 8
    depends on ARM_MMU && (CPU_CORTEX_A || CPU_AARCH64_CORTEX_R) && ARM64
    help
      This option specifies the maximum numbers of translation tables.
      Based on this, translation tables are allocated at compile time and
      used at runtime as needed.  If the runtime need exceeds preallocated
      numbers of translation tables, it will result in assert. Number of
      translation tables required is decided based on how many discrete
      memory regions (both normal and device memory) are present on given
      platform and how much granularity is required while assigning
      attributes to these memory regions.

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