Kconfig.cpu 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. comment "Processor Features"
  2. config CPU_BIG_ENDIAN
  3. def_bool !CPU_LITTLE_ENDIAN
  4. config CPU_LITTLE_ENDIAN
  5. bool "Little endian"
  6. default y
  7. config HWZOL
  8. bool "hardware zero overhead loop support"
  9. depends on CPU_D10 || CPU_D15
  10. default n
  11. help
  12. A set of Zero-Overhead Loop mechanism is provided to reduce the
  13. instruction fetch and execution overhead of loop-control instructions.
  14. It will save 3 registers($LB, $LC, $LE) for context saving if say Y.
  15. You don't need to save these registers if you can make sure your user
  16. program doesn't use these registers.
  17. If unsure, say N.
  18. config CPU_CACHE_ALIASING
  19. bool "Aliasing cache"
  20. depends on CPU_N10 || CPU_D10 || CPU_N13 || CPU_V3
  21. default y
  22. help
  23. If this CPU is using VIPT data cache and its cache way size is larger
  24. than page size, say Y. If it is using PIPT data cache, say N.
  25. If unsure, say Y.
  26. choice
  27. prompt "minimum CPU type"
  28. default CPU_V3
  29. help
  30. The data cache of N15/D15 is implemented as PIPT and it will not cause
  31. the cache aliasing issue. The rest cpus(N13, N10 and D10) are
  32. implemented as VIPT data cache. It may cause the cache aliasing issue
  33. if its cache way size is larger than page size. You can specify the
  34. CPU type direcly or choose CPU_V3 if unsure.
  35. A kernel built for N10 is able to run on N15, D15, N13, N10 or D10.
  36. A kernel built for N15 is able to run on N15 or D15.
  37. A kernel built for D10 is able to run on D10 or D15.
  38. A kernel built for D15 is able to run on D15.
  39. A kernel built for N13 is able to run on N15, N13 or D15.
  40. config CPU_N15
  41. bool "AndesCore N15"
  42. config CPU_N13
  43. bool "AndesCore N13"
  44. select CPU_CACHE_ALIASING if ANDES_PAGE_SIZE_4KB
  45. config CPU_N10
  46. bool "AndesCore N10"
  47. select CPU_CACHE_ALIASING
  48. config CPU_D15
  49. bool "AndesCore D15"
  50. config CPU_D10
  51. bool "AndesCore D10"
  52. select CPU_CACHE_ALIASING
  53. config CPU_V3
  54. bool "AndesCore v3 compatible"
  55. select CPU_CACHE_ALIASING
  56. endchoice
  57. choice
  58. prompt "Paging -- page size "
  59. default ANDES_PAGE_SIZE_4KB
  60. config ANDES_PAGE_SIZE_4KB
  61. bool "use 4KB page size"
  62. config ANDES_PAGE_SIZE_8KB
  63. bool "use 8KB page size"
  64. endchoice
  65. config CPU_ICACHE_DISABLE
  66. bool "Disable I-Cache"
  67. help
  68. Say Y here to disable the processor instruction cache. Unless
  69. you have a reason not to or are unsure, say N.
  70. config CPU_DCACHE_DISABLE
  71. bool "Disable D-Cache"
  72. help
  73. Say Y here to disable the processor data cache. Unless
  74. you have a reason not to or are unsure, say N.
  75. config CPU_DCACHE_WRITETHROUGH
  76. bool "Force write through D-cache"
  77. depends on !CPU_DCACHE_DISABLE
  78. help
  79. Say Y here to use the data cache in writethrough mode. Unless you
  80. specifically require this or are unsure, say N.
  81. config WBNA
  82. bool "WBNA"
  83. default n
  84. help
  85. Say Y here to enable write-back memory with no-write-allocation policy.
  86. config ALIGNMENT_TRAP
  87. bool "Kernel support unaligned access handling by sw"
  88. depends on PROC_FS
  89. default n
  90. help
  91. Andes processors cannot load/store information which is not
  92. naturally aligned on the bus, i.e., a 4 byte load must start at an
  93. address divisible by 4. On 32-bit Andes processors, these non-aligned
  94. load/store instructions will be emulated in software if you say Y
  95. here, which has a severe performance impact. With an IP-only
  96. configuration it is safe to say N, otherwise say Y.
  97. config HW_SUPPORT_UNALIGNMENT_ACCESS
  98. bool "Kernel support unaligned access handling by hw"
  99. depends on !ALIGNMENT_TRAP
  100. default n
  101. help
  102. Andes processors load/store world/half-word instructions can access
  103. unaligned memory locations without generating the Data Alignment
  104. Check exceptions. With an IP-only configuration it is safe to say N,
  105. otherwise say Y.
  106. config HIGHMEM
  107. bool "High Memory Support"
  108. depends on MMU && !CPU_CACHE_ALIASING
  109. help
  110. The address space of Andes processors is only 4 Gigabytes large
  111. and it has to accommodate user address space, kernel address
  112. space as well as some memory mapped IO. That means that, if you
  113. have a large amount of physical memory and/or IO, not all of the
  114. memory can be "permanently mapped" by the kernel. The physical
  115. memory that is not permanently mapped is called "high memory".
  116. Depending on the selected kernel/user memory split, minimum
  117. vmalloc space and actual amount of RAM, you may not need this
  118. option which should result in a slightly faster kernel.
  119. If unsure, say N.
  120. config CACHE_L2
  121. bool "Support L2 cache"
  122. default y
  123. help
  124. Say Y here to enable L2 cache if your SoC are integrated with L2CC.
  125. If unsure, say N.
  126. menu "Memory configuration"
  127. choice
  128. prompt "Memory split"
  129. depends on MMU
  130. default VMSPLIT_3G_OPT
  131. help
  132. Select the desired split between kernel and user memory.
  133. If you are not absolutely sure what you are doing, leave this
  134. option alone!
  135. config VMSPLIT_3G
  136. bool "3G/1G user/kernel split"
  137. config VMSPLIT_3G_OPT
  138. bool "3G/1G user/kernel split (for full 1G low memory)"
  139. config VMSPLIT_2G
  140. bool "2G/2G user/kernel split"
  141. config VMSPLIT_1G
  142. bool "1G/3G user/kernel split"
  143. endchoice
  144. config PAGE_OFFSET
  145. hex
  146. default 0x40000000 if VMSPLIT_1G
  147. default 0x80000000 if VMSPLIT_2G
  148. default 0xB0000000 if VMSPLIT_3G_OPT
  149. default 0xC0000000
  150. endmenu