Kconfig 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. menu "MIPS architecture"
  2. depends on MIPS
  3. config SYS_ARCH
  4. default "mips"
  5. config SYS_CPU
  6. default "mips32" if CPU_MIPS32
  7. default "mips64" if CPU_MIPS64
  8. choice
  9. prompt "Target select"
  10. optional
  11. config TARGET_QEMU_MIPS
  12. bool "Support qemu-mips"
  13. select ROM_EXCEPTION_VECTORS
  14. select SUPPORTS_BIG_ENDIAN
  15. select SUPPORTS_CPU_MIPS32_R1
  16. select SUPPORTS_CPU_MIPS32_R2
  17. select SUPPORTS_CPU_MIPS64_R1
  18. select SUPPORTS_CPU_MIPS64_R2
  19. select SUPPORTS_LITTLE_ENDIAN
  20. config TARGET_MALTA
  21. bool "Support malta"
  22. select DM
  23. select DM_SERIAL
  24. select DYNAMIC_IO_PORT_BASE
  25. select MIPS_CM
  26. select MIPS_INSERT_BOOT_CONFIG
  27. select MIPS_L1_CACHE_SHIFT_6
  28. select MIPS_L2_CACHE
  29. select OF_CONTROL
  30. select OF_ISA_BUS
  31. select ROM_EXCEPTION_VECTORS
  32. select SUPPORTS_BIG_ENDIAN
  33. select SUPPORTS_CPU_MIPS32_R1
  34. select SUPPORTS_CPU_MIPS32_R2
  35. select SUPPORTS_CPU_MIPS32_R6
  36. select SUPPORTS_CPU_MIPS64_R1
  37. select SUPPORTS_CPU_MIPS64_R2
  38. select SUPPORTS_CPU_MIPS64_R6
  39. select SUPPORTS_LITTLE_ENDIAN
  40. select SWAP_IO_SPACE
  41. imply CMD_DM
  42. config TARGET_VCT
  43. bool "Support vct"
  44. select ROM_EXCEPTION_VECTORS
  45. select SUPPORTS_BIG_ENDIAN
  46. select SUPPORTS_CPU_MIPS32_R1
  47. select SUPPORTS_CPU_MIPS32_R2
  48. select SYS_MIPS_CACHE_INIT_RAM_LOAD
  49. config ARCH_ATH79
  50. bool "Support QCA/Atheros ath79"
  51. select DM
  52. select OF_CONTROL
  53. imply CMD_DM
  54. config ARCH_BMIPS
  55. bool "Support BMIPS SoCs"
  56. select CLK
  57. select CPU
  58. select DM
  59. select OF_CONTROL
  60. select RAM
  61. select SYSRESET
  62. imply CMD_DM
  63. config ARCH_MT7620
  64. bool "Support MT7620/7688 SoCs"
  65. imply CMD_DM
  66. select DISPLAY_CPUINFO
  67. select DM
  68. imply DM_ETH
  69. imply DM_GPIO
  70. select DM_SERIAL
  71. imply DM_SPI
  72. imply DM_SPI_FLASH
  73. select ARCH_MISC_INIT if WATCHDOG
  74. select MIPS_TUNE_24KC
  75. select OF_CONTROL
  76. select ROM_EXCEPTION_VECTORS
  77. select SUPPORTS_CPU_MIPS32_R1
  78. select SUPPORTS_CPU_MIPS32_R2
  79. select SUPPORTS_LITTLE_ENDIAN
  80. select SYSRESET
  81. config MACH_PIC32
  82. bool "Support Microchip PIC32"
  83. select DM
  84. select OF_CONTROL
  85. imply CMD_DM
  86. config TARGET_BOSTON
  87. bool "Support Boston"
  88. select DM
  89. select DM_SERIAL
  90. select MIPS_CM
  91. select MIPS_L1_CACHE_SHIFT_6
  92. select MIPS_L2_CACHE
  93. select OF_BOARD_SETUP
  94. select OF_CONTROL
  95. select ROM_EXCEPTION_VECTORS
  96. select SUPPORTS_BIG_ENDIAN
  97. select SUPPORTS_CPU_MIPS32_R1
  98. select SUPPORTS_CPU_MIPS32_R2
  99. select SUPPORTS_CPU_MIPS32_R6
  100. select SUPPORTS_CPU_MIPS64_R1
  101. select SUPPORTS_CPU_MIPS64_R2
  102. select SUPPORTS_CPU_MIPS64_R6
  103. select SUPPORTS_LITTLE_ENDIAN
  104. imply CMD_DM
  105. config TARGET_XILFPGA
  106. bool "Support Imagination Xilfpga"
  107. select DM
  108. select DM_ETH
  109. select DM_GPIO
  110. select DM_SERIAL
  111. select MIPS_L1_CACHE_SHIFT_4
  112. select OF_CONTROL
  113. select ROM_EXCEPTION_VECTORS
  114. select SUPPORTS_CPU_MIPS32_R1
  115. select SUPPORTS_CPU_MIPS32_R2
  116. select SUPPORTS_LITTLE_ENDIAN
  117. imply CMD_DM
  118. help
  119. This supports IMGTEC MIPSfpga platform
  120. endchoice
  121. source "board/imgtec/boston/Kconfig"
  122. source "board/imgtec/malta/Kconfig"
  123. source "board/imgtec/xilfpga/Kconfig"
  124. source "board/micronas/vct/Kconfig"
  125. source "board/qemu-mips/Kconfig"
  126. source "arch/mips/mach-ath79/Kconfig"
  127. source "arch/mips/mach-bmips/Kconfig"
  128. source "arch/mips/mach-pic32/Kconfig"
  129. source "arch/mips/mach-mt7620/Kconfig"
  130. if MIPS
  131. choice
  132. prompt "Endianness selection"
  133. help
  134. Some MIPS boards can be configured for either little or big endian
  135. byte order. These modes require different U-Boot images. In general there
  136. is one preferred byteorder for a particular system but some systems are
  137. just as commonly used in the one or the other endianness.
  138. config SYS_BIG_ENDIAN
  139. bool "Big endian"
  140. depends on SUPPORTS_BIG_ENDIAN
  141. config SYS_LITTLE_ENDIAN
  142. bool "Little endian"
  143. depends on SUPPORTS_LITTLE_ENDIAN
  144. endchoice
  145. choice
  146. prompt "CPU selection"
  147. default CPU_MIPS32_R2
  148. config CPU_MIPS32_R1
  149. bool "MIPS32 Release 1"
  150. depends on SUPPORTS_CPU_MIPS32_R1
  151. select 32BIT
  152. help
  153. Choose this option to build an U-Boot for release 1 through 5 of the
  154. MIPS32 architecture.
  155. config CPU_MIPS32_R2
  156. bool "MIPS32 Release 2"
  157. depends on SUPPORTS_CPU_MIPS32_R2
  158. select 32BIT
  159. help
  160. Choose this option to build an U-Boot for release 2 through 5 of the
  161. MIPS32 architecture.
  162. config CPU_MIPS32_R6
  163. bool "MIPS32 Release 6"
  164. depends on SUPPORTS_CPU_MIPS32_R6
  165. select 32BIT
  166. help
  167. Choose this option to build an U-Boot for release 6 or later of the
  168. MIPS32 architecture.
  169. config CPU_MIPS64_R1
  170. bool "MIPS64 Release 1"
  171. depends on SUPPORTS_CPU_MIPS64_R1
  172. select 64BIT
  173. help
  174. Choose this option to build a kernel for release 1 through 5 of the
  175. MIPS64 architecture.
  176. config CPU_MIPS64_R2
  177. bool "MIPS64 Release 2"
  178. depends on SUPPORTS_CPU_MIPS64_R2
  179. select 64BIT
  180. help
  181. Choose this option to build a kernel for release 2 through 5 of the
  182. MIPS64 architecture.
  183. config CPU_MIPS64_R6
  184. bool "MIPS64 Release 6"
  185. depends on SUPPORTS_CPU_MIPS64_R6
  186. select 64BIT
  187. help
  188. Choose this option to build a kernel for release 6 or later of the
  189. MIPS64 architecture.
  190. endchoice
  191. menu "General setup"
  192. config ROM_EXCEPTION_VECTORS
  193. bool "Build U-Boot image with exception vectors"
  194. help
  195. Enable this to include exception vectors in the U-Boot image. This is
  196. required if the U-Boot entry point is equal to the address of the
  197. CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
  198. U-Boot booted from parallel NOR flash).
  199. Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
  200. In that case the image size will be reduced by 0x500 bytes.
  201. config MIPS_CM_BASE
  202. hex "MIPS CM GCR Base Address"
  203. depends on MIPS_CM
  204. default 0x16100000 if TARGET_BOSTON
  205. default 0x1fbf8000
  206. help
  207. The physical base address at which to map the MIPS Coherence Manager
  208. Global Configuration Registers (GCRs). This should be set such that
  209. the GCRs occupy a region of the physical address space which is
  210. otherwise unused, or at minimum that software doesn't need to access.
  211. config MIPS_CACHE_INDEX_BASE
  212. hex "Index base address for cache initialisation"
  213. default 0x80000000 if CPU_MIPS32
  214. default 0xffffffff80000000 if CPU_MIPS64
  215. help
  216. This is the base address for a memory block, which is used for
  217. initialising the cache lines. This is also the base address of a memory
  218. block which is used for loading and filling cache lines when
  219. SYS_MIPS_CACHE_INIT_RAM_LOAD is selected.
  220. Normally this is CKSEG0. If the MIPS system needs to move this block
  221. to some SRAM or ScratchPad RAM, adapt this option accordingly.
  222. config MIPS_RELOCATION_TABLE_SIZE
  223. hex "Relocation table size"
  224. range 0x100 0x10000
  225. default "0x8000"
  226. ---help---
  227. A table of relocation data will be appended to the U-Boot binary
  228. and parsed in relocate_code() to fix up all offsets in the relocated
  229. U-Boot.
  230. This option allows the amount of space reserved for the table to be
  231. adjusted in a range from 256 up to 64k. The default is 32k and should
  232. be ok in most cases. Reduce this value to shrink the size of U-Boot
  233. binary.
  234. The build will fail and a valid size suggested if this is too small.
  235. If unsure, leave at the default value.
  236. endmenu
  237. menu "OS boot interface"
  238. config MIPS_BOOT_CMDLINE_LEGACY
  239. bool "Hand over legacy command line to Linux kernel"
  240. default y
  241. help
  242. Enable this option if you want U-Boot to hand over the Yamon-style
  243. command line to the kernel. All bootargs will be prepared as argc/argv
  244. compatible list. The argument count (argc) is stored in register $a0.
  245. The address of the argument list (argv) is stored in register $a1.
  246. config MIPS_BOOT_ENV_LEGACY
  247. bool "Hand over legacy environment to Linux kernel"
  248. default y
  249. help
  250. Enable this option if you want U-Boot to hand over the Yamon-style
  251. environment to the kernel. Information like memory size, initrd
  252. address and size will be prepared as zero-terminated key/value list.
  253. The address of the environment is stored in register $a2.
  254. config MIPS_BOOT_FDT
  255. bool "Hand over a flattened device tree to Linux kernel"
  256. default n
  257. help
  258. Enable this option if you want U-Boot to hand over a flattened
  259. device tree to the kernel. According to UHI register $a0 will be set
  260. to -2 and the FDT address is stored in $a1.
  261. endmenu
  262. config SUPPORTS_BIG_ENDIAN
  263. bool
  264. config SUPPORTS_LITTLE_ENDIAN
  265. bool
  266. config SUPPORTS_CPU_MIPS32_R1
  267. bool
  268. config SUPPORTS_CPU_MIPS32_R2
  269. bool
  270. config SUPPORTS_CPU_MIPS32_R6
  271. bool
  272. config SUPPORTS_CPU_MIPS64_R1
  273. bool
  274. config SUPPORTS_CPU_MIPS64_R2
  275. bool
  276. config SUPPORTS_CPU_MIPS64_R6
  277. bool
  278. config CPU_MIPS32
  279. bool
  280. default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
  281. config CPU_MIPS64
  282. bool
  283. default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
  284. config MIPS_TUNE_4KC
  285. bool
  286. config MIPS_TUNE_14KC
  287. bool
  288. config MIPS_TUNE_24KC
  289. bool
  290. config MIPS_TUNE_34KC
  291. bool
  292. config MIPS_TUNE_74KC
  293. bool
  294. config 32BIT
  295. bool
  296. config 64BIT
  297. bool
  298. config SWAP_IO_SPACE
  299. bool
  300. config SYS_MIPS_CACHE_INIT_RAM_LOAD
  301. bool
  302. config MIPS_INIT_STACK_IN_SRAM
  303. bool
  304. default n
  305. help
  306. Select this if the initial stack frame could be setup in SRAM.
  307. Normally the initial stack frame is set up in DRAM which is often
  308. only available after lowlevel_init. With this option the initial
  309. stack frame and the early C environment is set up before
  310. lowlevel_init. Thus lowlevel_init does not need to be implemented
  311. in assembler.
  312. config SYS_DCACHE_SIZE
  313. int
  314. default 0
  315. help
  316. The total size of the L1 Dcache, if known at compile time.
  317. config SYS_DCACHE_LINE_SIZE
  318. int
  319. default 0
  320. help
  321. The size of L1 Dcache lines, if known at compile time.
  322. config SYS_ICACHE_SIZE
  323. int
  324. default 0
  325. help
  326. The total size of the L1 ICache, if known at compile time.
  327. config SYS_ICACHE_LINE_SIZE
  328. int
  329. default 0
  330. help
  331. The size of L1 Icache lines, if known at compile time.
  332. config SYS_CACHE_SIZE_AUTO
  333. def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
  334. SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
  335. help
  336. Select this (or let it be auto-selected by not defining any cache
  337. sizes) in order to allow U-Boot to automatically detect the sizes
  338. of caches at runtime. This has a small cost in code size & runtime
  339. so if you know the cache configuration for your system at compile
  340. time it would be beneficial to configure it.
  341. config MIPS_L1_CACHE_SHIFT_4
  342. bool
  343. config MIPS_L1_CACHE_SHIFT_5
  344. bool
  345. config MIPS_L1_CACHE_SHIFT_6
  346. bool
  347. config MIPS_L1_CACHE_SHIFT_7
  348. bool
  349. config MIPS_L1_CACHE_SHIFT
  350. int
  351. default "7" if MIPS_L1_CACHE_SHIFT_7
  352. default "6" if MIPS_L1_CACHE_SHIFT_6
  353. default "5" if MIPS_L1_CACHE_SHIFT_5
  354. default "4" if MIPS_L1_CACHE_SHIFT_4
  355. default "5"
  356. config MIPS_L2_CACHE
  357. bool
  358. help
  359. Select this if your system includes an L2 cache and you want U-Boot
  360. to initialise & maintain it.
  361. config DYNAMIC_IO_PORT_BASE
  362. bool
  363. config MIPS_CM
  364. bool
  365. help
  366. Select this if your system contains a MIPS Coherence Manager and you
  367. wish U-Boot to configure it or make use of it to retrieve system
  368. information such as cache configuration.
  369. config MIPS_INSERT_BOOT_CONFIG
  370. bool
  371. default n
  372. help
  373. Enable this to insert some board-specific boot configuration in
  374. the U-Boot binary at offset 0x10.
  375. config MIPS_BOOT_CONFIG_WORD0
  376. hex
  377. depends on MIPS_INSERT_BOOT_CONFIG
  378. default 0x420 if TARGET_MALTA
  379. default 0x0
  380. help
  381. Value which is inserted as boot config word 0.
  382. config MIPS_BOOT_CONFIG_WORD1
  383. hex
  384. depends on MIPS_INSERT_BOOT_CONFIG
  385. default 0x0
  386. help
  387. Value which is inserted as boot config word 1.
  388. endif
  389. endmenu