Config.in.mips 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. # mips default CPU ISAs
  2. config BR2_MIPS_CPU_MIPS32
  3. bool
  4. select BR2_MIPS_NAN_LEGACY
  5. config BR2_MIPS_CPU_MIPS32R2
  6. bool
  7. select BR2_MIPS_NAN_LEGACY
  8. config BR2_MIPS_CPU_MIPS32R5
  9. bool
  10. select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
  11. config BR2_MIPS_CPU_MIPS32R6
  12. bool
  13. select BR2_MIPS_NAN_2008
  14. select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
  15. config BR2_MIPS_CPU_MIPS64
  16. bool
  17. select BR2_MIPS_NAN_LEGACY
  18. config BR2_MIPS_CPU_MIPS64R2
  19. bool
  20. select BR2_MIPS_NAN_LEGACY
  21. config BR2_MIPS_CPU_MIPS64R5
  22. bool
  23. select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
  24. config BR2_MIPS_CPU_MIPS64R6
  25. bool
  26. select BR2_MIPS_NAN_2008
  27. select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
  28. choice
  29. prompt "Target Architecture Variant"
  30. default BR2_mips_32 if BR2_mips || BR2_mipsel
  31. default BR2_mips_64 if BR2_mips64 || BR2_mips64el
  32. depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
  33. help
  34. Specific CPU variant to use
  35. 64bit cabable: 64, 64r2, 64r5, 64r6
  36. non-64bit capable: 32, 32r2, 32r5, 32r6
  37. config BR2_mips_32
  38. bool "Generic MIPS32"
  39. depends on !BR2_ARCH_IS_64
  40. select BR2_MIPS_CPU_MIPS32
  41. config BR2_mips_32r2
  42. bool "Generic MIPS32R2"
  43. depends on !BR2_ARCH_IS_64
  44. select BR2_MIPS_CPU_MIPS32R2
  45. config BR2_mips_32r5
  46. bool "Generic MIPS32R5"
  47. depends on !BR2_ARCH_IS_64
  48. select BR2_MIPS_CPU_MIPS32R5
  49. config BR2_mips_32r6
  50. bool "Generic MIPS32R6"
  51. depends on !BR2_ARCH_IS_64
  52. select BR2_MIPS_CPU_MIPS32R6
  53. config BR2_mips_interaptiv
  54. bool "interAptiv"
  55. depends on !BR2_ARCH_IS_64
  56. select BR2_MIPS_CPU_MIPS32R2
  57. select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
  58. config BR2_mips_m5150
  59. bool "M5150"
  60. depends on !BR2_ARCH_IS_64
  61. select BR2_MIPS_CPU_MIPS32R5
  62. select BR2_MIPS_NAN_2008
  63. select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
  64. config BR2_mips_m6250
  65. bool "M6250"
  66. depends on !BR2_ARCH_IS_64
  67. select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
  68. select BR2_MIPS_CPU_MIPS32R6
  69. config BR2_mips_p5600
  70. bool "P5600"
  71. depends on !BR2_ARCH_IS_64
  72. select BR2_MIPS_CPU_MIPS32R5
  73. select BR2_MIPS_NAN_2008
  74. config BR2_mips_xburst
  75. bool "XBurst"
  76. depends on !BR2_ARCH_IS_64
  77. select BR2_MIPS_CPU_MIPS32R2
  78. help
  79. The Ingenic XBurst is a MIPS32R2 microprocessor. It has a
  80. bug in the FPU that can generate incorrect results in
  81. certain cases. The problem shows up when you have several
  82. fused madd instructions in sequence with dependant
  83. operands. This requires the -mno-fused-madd compiler option
  84. to be used in order to prevent emitting these instructions.
  85. See http://www.ingenic.com/en/?xburst.html
  86. config BR2_mips_64
  87. bool "Generic MIPS64"
  88. depends on BR2_ARCH_IS_64
  89. select BR2_MIPS_CPU_MIPS64
  90. config BR2_mips_64r2
  91. bool "Generic MIPS64R2"
  92. depends on BR2_ARCH_IS_64
  93. select BR2_MIPS_CPU_MIPS64R2
  94. config BR2_mips_64r5
  95. bool "Generic MIPS64R5"
  96. depends on BR2_ARCH_IS_64
  97. select BR2_MIPS_CPU_MIPS64R5
  98. config BR2_mips_64r6
  99. bool "Generic MIPS64R6"
  100. depends on BR2_ARCH_IS_64
  101. select BR2_MIPS_CPU_MIPS64R6
  102. config BR2_mips_i6400
  103. bool "I6400"
  104. depends on BR2_ARCH_IS_64
  105. select BR2_MIPS_CPU_MIPS64R6
  106. select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
  107. config BR2_mips_p6600
  108. bool "P6600"
  109. depends on BR2_ARCH_IS_64
  110. select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
  111. select BR2_MIPS_CPU_MIPS64R6
  112. endchoice
  113. choice
  114. prompt "Target ABI"
  115. default BR2_MIPS_NABI32
  116. depends on BR2_mips64 || BR2_mips64el
  117. help
  118. Application Binary Interface to use
  119. config BR2_MIPS_NABI32
  120. bool "n32"
  121. depends on BR2_ARCH_IS_64
  122. select BR2_KERNEL_64_USERLAND_32
  123. config BR2_MIPS_NABI64
  124. bool "n64"
  125. depends on BR2_ARCH_IS_64
  126. endchoice
  127. config BR2_MIPS_SOFT_FLOAT
  128. bool "Use soft-float"
  129. default y
  130. select BR2_SOFT_FLOAT
  131. help
  132. If your target CPU does not have a Floating Point Unit (FPU)
  133. or a kernel FPU emulator, but you still wish to support
  134. floating point functions, then everything will need to be
  135. compiled with soft floating point support (-msoft-float).
  136. choice
  137. prompt "FP mode"
  138. default BR2_MIPS_FP32_MODE_XX
  139. depends on !BR2_ARCH_IS_64 && !BR2_MIPS_SOFT_FLOAT
  140. help
  141. MIPS32 supports different FP modes (32,xx,64). Information
  142. about FP modes can be found here:
  143. https://sourceware.org/binutils/docs/as/MIPS-Options.html
  144. https://dmz-portal.imgtec.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking#5._Generating_modeless_code
  145. config BR2_MIPS_FP32_MODE_32
  146. bool "32"
  147. depends on !BR2_MIPS_CPU_MIPS32R6
  148. config BR2_MIPS_FP32_MODE_XX
  149. bool "xx"
  150. select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
  151. config BR2_MIPS_FP32_MODE_64
  152. bool "64"
  153. depends on !BR2_MIPS_CPU_MIPS32
  154. endchoice
  155. config BR2_GCC_TARGET_FP32_MODE
  156. default "32" if BR2_MIPS_FP32_MODE_32
  157. default "xx" if BR2_MIPS_FP32_MODE_XX
  158. default "64" if BR2_MIPS_FP32_MODE_64
  159. config BR2_MIPS_NAN_LEGACY
  160. bool
  161. config BR2_MIPS_NAN_2008
  162. bool
  163. select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
  164. choice
  165. prompt "Target NaN"
  166. default BR2_MIPS_ENABLE_NAN_2008
  167. depends on BR2_mips_32r5 || BR2_mips_64r5
  168. help
  169. MIPS supports two different NaN encodings, legacy and 2008.
  170. Information about MIPS NaN encodings can be found here:
  171. https://sourceware.org/binutils/docs/as/MIPS-NaN-Encodings.html
  172. config BR2_MIPS_ENABLE_NAN_LEGACY
  173. bool "legacy"
  174. select BR2_MIPS_NAN_LEGACY
  175. config BR2_MIPS_ENABLE_NAN_2008
  176. bool "2008"
  177. depends on !BR2_MIPS_SOFT_FLOAT
  178. select BR2_MIPS_NAN_2008
  179. endchoice
  180. config BR2_GCC_TARGET_NAN
  181. default "legacy" if BR2_MIPS_NAN_LEGACY
  182. default "2008" if BR2_MIPS_NAN_2008
  183. config BR2_ARCH
  184. default "mips" if BR2_mips
  185. default "mipsel" if BR2_mipsel
  186. default "mips64" if BR2_mips64
  187. default "mips64el" if BR2_mips64el
  188. config BR2_ENDIAN
  189. default "LITTLE" if BR2_mipsel || BR2_mips64el
  190. default "BIG" if BR2_mips || BR2_mips64
  191. config BR2_GCC_TARGET_ARCH
  192. default "mips32" if BR2_mips_32
  193. default "mips32r2" if BR2_mips_32r2
  194. default "mips32r5" if BR2_mips_32r5
  195. default "mips32r6" if BR2_mips_32r6
  196. default "interaptiv" if BR2_mips_interaptiv
  197. default "m5101" if BR2_mips_m5150
  198. default "m6201" if BR2_mips_m6250
  199. default "p5600" if BR2_mips_p5600
  200. default "mips32r2" if BR2_mips_xburst
  201. default "mips64" if BR2_mips_64
  202. default "mips64r2" if BR2_mips_64r2
  203. default "mips64r5" if BR2_mips_64r5
  204. default "mips64r6" if BR2_mips_64r6
  205. default "i6400" if BR2_mips_i6400
  206. default "p6600" if BR2_mips_p6600
  207. config BR2_MIPS_OABI32
  208. bool
  209. default y if BR2_mips || BR2_mipsel
  210. config BR2_GCC_TARGET_ABI
  211. default "32" if BR2_MIPS_OABI32
  212. default "n32" if BR2_MIPS_NABI32
  213. default "64" if BR2_MIPS_NABI64
  214. config BR2_READELF_ARCH_NAME
  215. default "MIPS R3000"