Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

menu "Memory management options"

config CONFIG_PAGE_OFFSET
	hex "Kernel page offset address"
	default "0x40000000"
	help
	  This option allows you to set the virtual address at which the
	  kernel will be mapped to.
endmenu

config CONFIG_KERNEL_4M_PAGES
	bool "Map kernel with 4MB pages"
	depends on CONFIG_METAG_META21_MMU
	default y
	help
	  Map the kernel with large pages to reduce TLB pressure.

choice
	prompt "User page size"
	default CONFIG_PAGE_SIZE_4K

config CONFIG_PAGE_SIZE_4K
	bool "4kB"
	help
	  This is the default page size used by all Meta cores.

config CONFIG_PAGE_SIZE_8K
	bool "8kB"
	depends on CONFIG_METAG_META21_MMU
	help
	  This enables 8kB pages as supported by Meta 2.x and later MMUs.

config CONFIG_PAGE_SIZE_16K
	bool "16kB"
	depends on CONFIG_METAG_META21_MMU
	help
	  This enables 16kB pages as supported by Meta 2.x and later MMUs.

endchoice

config CONFIG_NUMA
	bool "Non Uniform Memory Access (NUMA) Support"
	select CONFIG_ARCH_WANT_NUMA_VARIABLE_LOCALITY
	help
	  Some Meta systems have CONFIG_MMU-mappable on-chip memories with
	  lower latencies than main memory. This enables support for
	  these blocks by binding them to nodes and allowing
	  memory policies to be used for prioritizing and controlling
	  allocation behaviour.

config CONFIG_FORCE_MAX_ZONEORDER
	int "Maximum zone order"
	range 10 32
	default "10"
	help
	  The kernel memory allocator divides physically contiguous memory
	  blocks into "zones", where each zone is a power of two number of
	  pages.  This option selects the largest power of two that the kernel
	  keeps in the memory allocator.  If you need to allocate very large
	  blocks of physically contiguous memory, then you may need to
	  increase this value.

	  This config option is actually maximum order plus one. For example,
	  a value of 11 means that the largest free memory block is 2^10 pages.

	  The page size is not necessarily 4KB.  Keep this in mind
	  when choosing a value for this option.

config CONFIG_METAG_L2C
	bool "Level 2 Cache Support"
	depends on CONFIG_METAG_META21
	help
	  Press y here to enable support for the Meta Level 2 (L2) cache. This
	  will enable the cache at start up if it hasn't already been enabled
	  by the bootloader.

	  If the bootloader enables the L2 you must press y here to ensure the
	  kernel takes the appropriate actions to keep the cache coherent.

config CONFIG_NODES_SHIFT
	int
	default "1"
	depends on CONFIG_NEED_MULTIPLE_NODES

config CONFIG_ARCH_FLATMEM_ENABLE
	def_bool y
	depends on !CONFIG_NUMA

config CONFIG_ARCH_SPARSEMEM_ENABLE
	def_bool y
	select CONFIG_SPARSEMEM_STATIC

config CONFIG_ARCH_SPARSEMEM_DEFAULT
	def_bool y

config CONFIG_ARCH_SELECT_MEMORY_MODEL
	def_bool y

config CONFIG_SYS_SUPPORTS_HUGETLBFS
	def_bool y
	depends on CONFIG_METAG_META21_MMU

choice
	prompt "HugeTLB page size"
	depends on CONFIG_METAG_META21_MMU && CONFIG_HUGETLB_PAGE
	default CONFIG_HUGETLB_PAGE_SIZE_1M

config CONFIG_HUGETLB_PAGE_SIZE_8K
	bool "8kB"
	depends on CONFIG_PAGE_SIZE_4K

config CONFIG_HUGETLB_PAGE_SIZE_16K
	bool "16kB"
	depends on CONFIG_PAGE_SIZE_4K || CONFIG_PAGE_SIZE_8K

config CONFIG_HUGETLB_PAGE_SIZE_32K
	bool "32kB"

config CONFIG_HUGETLB_PAGE_SIZE_64K
	bool "64kB"

config CONFIG_HUGETLB_PAGE_SIZE_128K
	bool "128kB"

config CONFIG_HUGETLB_PAGE_SIZE_256K
	bool "256kB"

config CONFIG_HUGETLB_PAGE_SIZE_512K
	bool "512kB"

config CONFIG_HUGETLB_PAGE_SIZE_1M
	bool "1MB"

config CONFIG_HUGETLB_PAGE_SIZE_2M
	bool "2MB"

config CONFIG_HUGETLB_PAGE_SIZE_4M
	bool "4MB"

endchoice

config CONFIG_METAG_COREMEM
	bool
	default y if CONFIG_SUSPEND

source "mm/Kconfig"