| # 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" |