Config.in.mips 5.9 KB

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