1cad82448SPaul Mundtmenu "Memory management options" 2cad82448SPaul Mundt 35f8c9908SPaul Mundtconfig QUICKLIST 45f8c9908SPaul Mundt def_bool y 55f8c9908SPaul Mundt 6cad82448SPaul Mundtconfig MMU 7cad82448SPaul Mundt bool "Support for memory management hardware" 8cad82448SPaul Mundt depends on !CPU_SH2 9cad82448SPaul Mundt default y 10cad82448SPaul Mundt help 11cad82448SPaul Mundt Some SH processors (such as SH-2/SH-2A) lack an MMU. In order to 12cad82448SPaul Mundt boot on these systems, this option must not be set. 13cad82448SPaul Mundt 14cad82448SPaul Mundt On other systems (such as the SH-3 and 4) where an MMU exists, 15cad82448SPaul Mundt turning this off will boot the kernel on these machines with the 16cad82448SPaul Mundt MMU implicitly switched off. 17cad82448SPaul Mundt 18e7f93a35SPaul Mundtconfig PAGE_OFFSET 19e7f93a35SPaul Mundt hex 2036763b22SPaul Mundt default "0x80000000" if MMU && SUPERH32 2136763b22SPaul Mundt default "0x20000000" if MMU && SUPERH64 22e7f93a35SPaul Mundt default "0x00000000" 23e7f93a35SPaul Mundt 24ad3256e3SPaul Mundtconfig FORCE_MAX_ZONEORDER 25ad3256e3SPaul Mundt int "Maximum zone order" 26ad3256e3SPaul Mundt range 9 64 if PAGE_SIZE_16KB 27ad3256e3SPaul Mundt default "9" if PAGE_SIZE_16KB 28ad3256e3SPaul Mundt range 7 64 if PAGE_SIZE_64KB 29ad3256e3SPaul Mundt default "7" if PAGE_SIZE_64KB 30ad3256e3SPaul Mundt range 11 64 31ad3256e3SPaul Mundt default "14" if !MMU 32ad3256e3SPaul Mundt default "11" 33ad3256e3SPaul Mundt help 34ad3256e3SPaul Mundt The kernel memory allocator divides physically contiguous memory 35ad3256e3SPaul Mundt blocks into "zones", where each zone is a power of two number of 36ad3256e3SPaul Mundt pages. This option selects the largest power of two that the kernel 37ad3256e3SPaul Mundt keeps in the memory allocator. If you need to allocate very large 38ad3256e3SPaul Mundt blocks of physically contiguous memory, then you may need to 39ad3256e3SPaul Mundt increase this value. 40ad3256e3SPaul Mundt 41ad3256e3SPaul Mundt This config option is actually maximum order plus one. For example, 42ad3256e3SPaul Mundt a value of 11 means that the largest free memory block is 2^10 pages. 43ad3256e3SPaul Mundt 44ad3256e3SPaul Mundt The page size is not necessarily 4KB. Keep this in mind when 45ad3256e3SPaul Mundt choosing a value for this option. 46ad3256e3SPaul Mundt 47e7f93a35SPaul Mundtconfig MEMORY_START 48e7f93a35SPaul Mundt hex "Physical memory start address" 49e7f93a35SPaul Mundt default "0x08000000" 50e7f93a35SPaul Mundt ---help--- 51e7f93a35SPaul Mundt Computers built with Hitachi SuperH processors always 52e7f93a35SPaul Mundt map the ROM starting at address zero. But the processor 53e7f93a35SPaul Mundt does not specify the range that RAM takes. 54e7f93a35SPaul Mundt 55e7f93a35SPaul Mundt The physical memory (RAM) start address will be automatically 56e7f93a35SPaul Mundt set to 08000000. Other platforms, such as the Solution Engine 57e7f93a35SPaul Mundt boards typically map RAM at 0C000000. 58e7f93a35SPaul Mundt 59e7f93a35SPaul Mundt Tweak this only when porting to a new machine which does not 60e7f93a35SPaul Mundt already have a defconfig. Changing it from the known correct 61e7f93a35SPaul Mundt value on any of the known systems will only lead to disaster. 62e7f93a35SPaul Mundt 63e7f93a35SPaul Mundtconfig MEMORY_SIZE 64e7f93a35SPaul Mundt hex "Physical memory size" 65711fe436SPaul Mundt default "0x04000000" 66e7f93a35SPaul Mundt help 67e7f93a35SPaul Mundt This sets the default memory size assumed by your SH kernel. It can 68e7f93a35SPaul Mundt be overridden as normal by the 'mem=' argument on the kernel command 69e7f93a35SPaul Mundt line. If unsure, consult your board specifications or just leave it 70711fe436SPaul Mundt as 0x04000000 which was the default value before this became 71e7f93a35SPaul Mundt configurable. 72e7f93a35SPaul Mundt 7336bcd39dSPaul Mundt# Physical addressing modes 7436bcd39dSPaul Mundt 7536bcd39dSPaul Mundtconfig 29BIT 7636bcd39dSPaul Mundt def_bool !32BIT 7736bcd39dSPaul Mundt depends on SUPERH32 7836bcd39dSPaul Mundt 79cad82448SPaul Mundtconfig 32BIT 8036bcd39dSPaul Mundt bool 8136bcd39dSPaul Mundt default y if CPU_SH5 8236bcd39dSPaul Mundt 832f47f447SYoshihiro Shimodaconfig PMB_ENABLE 84cad82448SPaul Mundt bool "Support 32-bit physical addressing through PMB" 85c01f0f1aSYoshihiro Shimoda depends on MMU && EXPERIMENTAL && (CPU_SUBTYPE_SH7757 || CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785) 86cad82448SPaul Mundt default y 87cad82448SPaul Mundt help 88cad82448SPaul Mundt If you say Y here, physical addressing will be extended to 89cad82448SPaul Mundt 32-bits through the SH-4A PMB. If this is not set, legacy 90cad82448SPaul Mundt 29-bit physical addressing will be used. 91cad82448SPaul Mundt 922f47f447SYoshihiro Shimodachoice 932f47f447SYoshihiro Shimoda prompt "PMB handling type" 942f47f447SYoshihiro Shimoda depends on PMB_ENABLE 952f47f447SYoshihiro Shimoda default PMB_FIXED 962f47f447SYoshihiro Shimoda 972f47f447SYoshihiro Shimodaconfig PMB 982f47f447SYoshihiro Shimoda bool "PMB" 99c01f0f1aSYoshihiro Shimoda depends on MMU && EXPERIMENTAL && (CPU_SUBTYPE_SH7757 || CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785) 1002f47f447SYoshihiro Shimoda help 1012f47f447SYoshihiro Shimoda If you say Y here, physical addressing will be extended to 1022f47f447SYoshihiro Shimoda 32-bits through the SH-4A PMB. If this is not set, legacy 1032f47f447SYoshihiro Shimoda 29-bit physical addressing will be used. 1042f47f447SYoshihiro Shimoda 1052f47f447SYoshihiro Shimodaconfig PMB_FIXED 1062f47f447SYoshihiro Shimoda bool "fixed PMB" 107c01f0f1aSYoshihiro Shimoda depends on MMU && EXPERIMENTAL && (CPU_SUBTYPE_SH7757 || \ 108c01f0f1aSYoshihiro Shimoda CPU_SUBTYPE_SH7780 || \ 1092f47f447SYoshihiro Shimoda CPU_SUBTYPE_SH7785) 1102f47f447SYoshihiro Shimoda select 32BIT 1112f47f447SYoshihiro Shimoda help 1122f47f447SYoshihiro Shimoda If this option is enabled, fixed PMB mappings are inherited 1132f47f447SYoshihiro Shimoda from the boot loader, and the kernel does not attempt dynamic 1142f47f447SYoshihiro Shimoda management. This is the closest to legacy 29-bit physical mode, 1152f47f447SYoshihiro Shimoda and allows systems to support up to 512MiB of system memory. 1162f47f447SYoshihiro Shimoda 1172f47f447SYoshihiro Shimodaendchoice 1182f47f447SYoshihiro Shimoda 11921440cf0SPaul Mundtconfig X2TLB 12021440cf0SPaul Mundt bool "Enable extended TLB mode" 121c3af3975SPaul Mundt depends on (CPU_SHX2 || CPU_SHX3) && MMU && EXPERIMENTAL 12221440cf0SPaul Mundt help 12321440cf0SPaul Mundt Selecting this option will enable the extended mode of the SH-X2 12421440cf0SPaul Mundt TLB. For legacy SH-X behaviour and interoperability, say N. For 12521440cf0SPaul Mundt all of the fun new features and a willingless to submit bug reports, 12621440cf0SPaul Mundt say Y. 12721440cf0SPaul Mundt 12819f9a34fSPaul Mundtconfig VSYSCALL 12919f9a34fSPaul Mundt bool "Support vsyscall page" 130a09063daSPaul Mundt depends on MMU && (CPU_SH3 || CPU_SH4) 13119f9a34fSPaul Mundt default y 13219f9a34fSPaul Mundt help 13319f9a34fSPaul Mundt This will enable support for the kernel mapping a vDSO page 13419f9a34fSPaul Mundt in process space, and subsequently handing down the entry point 13519f9a34fSPaul Mundt to the libc through the ELF auxiliary vector. 13619f9a34fSPaul Mundt 13719f9a34fSPaul Mundt From the kernel side this is used for the signal trampoline. 13819f9a34fSPaul Mundt For systems with an MMU that can afford to give up a page, 13919f9a34fSPaul Mundt (the default value) say Y. 14019f9a34fSPaul Mundt 141b241cb0cSPaul Mundtconfig NUMA 142b241cb0cSPaul Mundt bool "Non Uniform Memory Access (NUMA) Support" 143357d5946SPaul Mundt depends on MMU && SYS_SUPPORTS_NUMA && EXPERIMENTAL 144b241cb0cSPaul Mundt default n 145b241cb0cSPaul Mundt help 146b241cb0cSPaul Mundt Some SH systems have many various memories scattered around 147b241cb0cSPaul Mundt the address space, each with varying latencies. This enables 148b241cb0cSPaul Mundt support for these blocks by binding them to nodes and allowing 149b241cb0cSPaul Mundt memory policies to be used for prioritizing and controlling 150b241cb0cSPaul Mundt allocation behaviour. 151b241cb0cSPaul Mundt 15201066625SPaul Mundtconfig NODES_SHIFT 15301066625SPaul Mundt int 1549904494dSPaul Mundt default "3" if CPU_SUBTYPE_SHX3 15501066625SPaul Mundt default "1" 15601066625SPaul Mundt depends on NEED_MULTIPLE_NODES 15701066625SPaul Mundt 15801066625SPaul Mundtconfig ARCH_FLATMEM_ENABLE 15901066625SPaul Mundt def_bool y 160357d5946SPaul Mundt depends on !NUMA 16101066625SPaul Mundt 162dfbb9042SPaul Mundtconfig ARCH_SPARSEMEM_ENABLE 163dfbb9042SPaul Mundt def_bool y 164dfbb9042SPaul Mundt select SPARSEMEM_STATIC 165dfbb9042SPaul Mundt 166dfbb9042SPaul Mundtconfig ARCH_SPARSEMEM_DEFAULT 167dfbb9042SPaul Mundt def_bool y 168dfbb9042SPaul Mundt 1691ce7ddd5SPaul Mundtconfig MAX_ACTIVE_REGIONS 1701ce7ddd5SPaul Mundt int 1717da3b8efSPaul Mundt default "6" if (CPU_SUBTYPE_SHX3 && SPARSEMEM) 172dc47e9ddSPaul Mundt default "2" if SPARSEMEM && (CPU_SUBTYPE_SH7722 || \ 173dc47e9ddSPaul Mundt CPU_SUBTYPE_SH7785) 1741ce7ddd5SPaul Mundt default "1" 1751ce7ddd5SPaul Mundt 17601066625SPaul Mundtconfig ARCH_POPULATES_NODE_MAP 17701066625SPaul Mundt def_bool y 17801066625SPaul Mundt 179dfbb9042SPaul Mundtconfig ARCH_SELECT_MEMORY_MODEL 180dfbb9042SPaul Mundt def_bool y 181dfbb9042SPaul Mundt 18233d63bd8SPaul Mundtconfig ARCH_ENABLE_MEMORY_HOTPLUG 18333d63bd8SPaul Mundt def_bool y 184b85641bdSPaul Mundt depends on SPARSEMEM && MMU 18533d63bd8SPaul Mundt 1863159e7d6SPaul Mundtconfig ARCH_ENABLE_MEMORY_HOTREMOVE 1873159e7d6SPaul Mundt def_bool y 188b85641bdSPaul Mundt depends on SPARSEMEM && MMU 1893159e7d6SPaul Mundt 19033d63bd8SPaul Mundtconfig ARCH_MEMORY_PROBE 19133d63bd8SPaul Mundt def_bool y 19233d63bd8SPaul Mundt depends on MEMORY_HOTPLUG 19333d63bd8SPaul Mundt 194cad82448SPaul Mundtchoice 19521440cf0SPaul Mundt prompt "Kernel page size" 1964d2cab7cSPaul Mundt default PAGE_SIZE_8KB if X2TLB 19721440cf0SPaul Mundt default PAGE_SIZE_4KB 19821440cf0SPaul Mundt 19921440cf0SPaul Mundtconfig PAGE_SIZE_4KB 20021440cf0SPaul Mundt bool "4kB" 20174fcc779SPaul Mundt depends on !MMU || !X2TLB 20221440cf0SPaul Mundt help 20321440cf0SPaul Mundt This is the default page size used by all SuperH CPUs. 20421440cf0SPaul Mundt 20521440cf0SPaul Mundtconfig PAGE_SIZE_8KB 20621440cf0SPaul Mundt bool "8kB" 20774fcc779SPaul Mundt depends on !MMU || X2TLB 20821440cf0SPaul Mundt help 20921440cf0SPaul Mundt This enables 8kB pages as supported by SH-X2 and later MMUs. 21021440cf0SPaul Mundt 21166dfe181SPaul Mundtconfig PAGE_SIZE_16KB 21266dfe181SPaul Mundt bool "16kB" 21366dfe181SPaul Mundt depends on !MMU 21466dfe181SPaul Mundt help 21566dfe181SPaul Mundt This enables 16kB pages on MMU-less SH systems. 21666dfe181SPaul Mundt 21721440cf0SPaul Mundtconfig PAGE_SIZE_64KB 21821440cf0SPaul Mundt bool "64kB" 21974fcc779SPaul Mundt depends on !MMU || CPU_SH4 || CPU_SH5 22021440cf0SPaul Mundt help 22121440cf0SPaul Mundt This enables support for 64kB pages, possible on all SH-4 2224d2cab7cSPaul Mundt CPUs and later. 22321440cf0SPaul Mundt 22421440cf0SPaul Mundtendchoice 22521440cf0SPaul Mundt 22621440cf0SPaul Mundtchoice 227cad82448SPaul Mundt prompt "HugeTLB page size" 228079060c6SPaul Mundt depends on HUGETLB_PAGE && (CPU_SH4 || CPU_SH5) && MMU 22968b7c24cSPaul Mundt default HUGETLB_PAGE_SIZE_1MB if PAGE_SIZE_64KB 230cad82448SPaul Mundt default HUGETLB_PAGE_SIZE_64K 231cad82448SPaul Mundt 232cad82448SPaul Mundtconfig HUGETLB_PAGE_SIZE_64K 23321440cf0SPaul Mundt bool "64kB" 23468b7c24cSPaul Mundt depends on !PAGE_SIZE_64KB 23521440cf0SPaul Mundt 23621440cf0SPaul Mundtconfig HUGETLB_PAGE_SIZE_256K 23721440cf0SPaul Mundt bool "256kB" 23821440cf0SPaul Mundt depends on X2TLB 239cad82448SPaul Mundt 240cad82448SPaul Mundtconfig HUGETLB_PAGE_SIZE_1MB 241cad82448SPaul Mundt bool "1MB" 242cad82448SPaul Mundt 24321440cf0SPaul Mundtconfig HUGETLB_PAGE_SIZE_4MB 24421440cf0SPaul Mundt bool "4MB" 24521440cf0SPaul Mundt depends on X2TLB 24621440cf0SPaul Mundt 24721440cf0SPaul Mundtconfig HUGETLB_PAGE_SIZE_64MB 24821440cf0SPaul Mundt bool "64MB" 24921440cf0SPaul Mundt depends on X2TLB 25021440cf0SPaul Mundt 251a09063daSPaul Mundtconfig HUGETLB_PAGE_SIZE_512MB 252a09063daSPaul Mundt bool "512MB" 253a09063daSPaul Mundt depends on CPU_SH5 254a09063daSPaul Mundt 255cad82448SPaul Mundtendchoice 256cad82448SPaul Mundt 257cad82448SPaul Mundtsource "mm/Kconfig" 258cad82448SPaul Mundt 259*896f0c0eSPaul Mundtconfig SCHED_MC 260*896f0c0eSPaul Mundt bool "Multi-core scheduler support" 261*896f0c0eSPaul Mundt depends on SMP 262*896f0c0eSPaul Mundt default y 263*896f0c0eSPaul Mundt help 264*896f0c0eSPaul Mundt Multi-core scheduler support improves the CPU scheduler's decision 265*896f0c0eSPaul Mundt making when dealing with multi-core CPU chips at a cost of slightly 266*896f0c0eSPaul Mundt increased overhead in some places. If unsure say N here. 267*896f0c0eSPaul Mundt 268cad82448SPaul Mundtendmenu 269cad82448SPaul Mundt 270cad82448SPaul Mundtmenu "Cache configuration" 271cad82448SPaul Mundt 272cad82448SPaul Mundtconfig SH7705_CACHE_32KB 273cad82448SPaul Mundt bool "Enable 32KB cache size for SH7705" 274cad82448SPaul Mundt depends on CPU_SUBTYPE_SH7705 275cad82448SPaul Mundt default y 276cad82448SPaul Mundt 277e7bd34a1SPaul Mundtchoice 278e7bd34a1SPaul Mundt prompt "Cache mode" 279a09063daSPaul Mundt default CACHE_WRITEBACK if CPU_SH2A || CPU_SH3 || CPU_SH4 || CPU_SH5 280e7bd34a1SPaul Mundt default CACHE_WRITETHROUGH if (CPU_SH2 && !CPU_SH2A) 281e7bd34a1SPaul Mundt 282e7bd34a1SPaul Mundtconfig CACHE_WRITEBACK 283e7bd34a1SPaul Mundt bool "Write-back" 284e7bd34a1SPaul Mundt 285e7bd34a1SPaul Mundtconfig CACHE_WRITETHROUGH 286e7bd34a1SPaul Mundt bool "Write-through" 287cad82448SPaul Mundt help 288cad82448SPaul Mundt Selecting this option will configure the caches in write-through 289cad82448SPaul Mundt mode, as opposed to the default write-back configuration. 290cad82448SPaul Mundt 291cad82448SPaul Mundt Since there's sill some aliasing issues on SH-4, this option will 292cad82448SPaul Mundt unfortunately still require the majority of flushing functions to 293cad82448SPaul Mundt be implemented to deal with aliasing. 294cad82448SPaul Mundt 295cad82448SPaul Mundt If unsure, say N. 296cad82448SPaul Mundt 297e7bd34a1SPaul Mundtconfig CACHE_OFF 298e7bd34a1SPaul Mundt bool "Off" 299e7bd34a1SPaul Mundt 300e7bd34a1SPaul Mundtendchoice 301e7bd34a1SPaul Mundt 302cad82448SPaul Mundtendmenu 303