blob: 9d4b2c67dcc1e13100266aaefab2f814b5f5286a [file] [log] [blame]
# SPDX-License-Identifier: GPL-2.0
menu "Memory management options"
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 KERNEL_4M_PAGES
bool "Map kernel with 4MB pages"
depends on METAG_META21_MMU
default y
help
Map the kernel with large pages to reduce TLB pressure.
choice
prompt "User page size"
default PAGE_SIZE_4K
config PAGE_SIZE_4K
bool "4kB"
help
This is the default page size used by all Meta cores.
config PAGE_SIZE_8K
bool "8kB"
depends on METAG_META21_MMU
help
This enables 8kB pages as supported by Meta 2.x and later MMUs.
config PAGE_SIZE_16K
bool "16kB"
depends on METAG_META21_MMU
help
This enables 16kB pages as supported by Meta 2.x and later MMUs.
endchoice
config NUMA
bool "Non Uniform Memory Access (NUMA) Support"
select ARCH_WANT_NUMA_VARIABLE_LOCALITY
help
Some Meta systems have 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 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 METAG_L2C
bool "Level 2 Cache Support"
depends on 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 NODES_SHIFT
int
default "1"
depends on NEED_MULTIPLE_NODES
config ARCH_FLATMEM_ENABLE
def_bool y
depends on !NUMA
config ARCH_SPARSEMEM_ENABLE
def_bool y
select SPARSEMEM_STATIC
config ARCH_SPARSEMEM_DEFAULT
def_bool y
config ARCH_SELECT_MEMORY_MODEL
def_bool y
config SYS_SUPPORTS_HUGETLBFS
def_bool y
depends on METAG_META21_MMU
choice
prompt "HugeTLB page size"
depends on METAG_META21_MMU && HUGETLB_PAGE
default HUGETLB_PAGE_SIZE_1M
config HUGETLB_PAGE_SIZE_8K
bool "8kB"
depends on PAGE_SIZE_4K
config HUGETLB_PAGE_SIZE_16K
bool "16kB"
depends on PAGE_SIZE_4K || PAGE_SIZE_8K
config HUGETLB_PAGE_SIZE_32K
bool "32kB"
config HUGETLB_PAGE_SIZE_64K
bool "64kB"
config HUGETLB_PAGE_SIZE_128K
bool "128kB"
config HUGETLB_PAGE_SIZE_256K
bool "256kB"
config HUGETLB_PAGE_SIZE_512K
bool "512kB"
config HUGETLB_PAGE_SIZE_1M
bool "1MB"
config HUGETLB_PAGE_SIZE_2M
bool "2MB"
config HUGETLB_PAGE_SIZE_4M
bool "4MB"
endchoice
config METAG_COREMEM
bool
default y if SUSPEND
source "mm/Kconfig"