Kconfig 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937
  1. #
  2. # For a description of the syntax of this configuration file,
  3. # see the file kconfig-language.txt in the NuttX tools repository.
  4. #
  5. if ARCH_ARM
  6. comment "ARM Options"
  7. choice
  8. prompt "ARM MCU selection"
  9. default ARCH_CHIP_STM32
  10. config ARCH_CHIP_A1X
  11. bool "Allwinner A1X"
  12. select ARCH_CORTEXA8
  13. select ARCH_HAVE_FPU
  14. select ARCH_HAVE_IRQPRIO
  15. select ARCH_HAVE_LOWVECTORS
  16. select ARCH_HAVE_FETCHADD
  17. select ARCH_HAVE_SDRAM
  18. select BOOT_RUNFROMSDRAM
  19. select ARCH_HAVE_ADDRENV
  20. select ARCH_NEED_ADDRENV_MAPPING
  21. ---help---
  22. Allwinner A1X family: A10, A10S (A12), A13 (ARM Cortex-A8)
  23. config ARCH_CHIP_AM335X
  24. bool "TI AM335X"
  25. select ARCH_CORTEXA8
  26. select ARCH_HAVE_FPU
  27. select ARCH_HAVE_IRQPRIO
  28. select ARCH_HAVE_LOWVECTORS
  29. select ARCH_HAVE_FETCHADD
  30. select ARCH_HAVE_SDRAM
  31. select BOOT_RUNFROMSDRAM
  32. select ARCH_HAVE_ADDRENV
  33. select ARCH_NEED_ADDRENV_MAPPING
  34. ---help---
  35. TI AM335X family: AM3356, AM3357, AM3358, AM3359 (ARM Cortex-A8)
  36. config ARCH_CHIP_C5471
  37. bool "TMS320 C5471"
  38. select ARCH_ARM7TDMI
  39. select ARCH_HAVE_LOWVECTORS
  40. select OTHER_UART_SERIALDRIVER
  41. ---help---
  42. TI TMS320 C5471, A180, or DA180 (ARM7TDMI)
  43. config ARCH_CHIP_DM320
  44. bool "TMS320 DM320"
  45. select ARCH_ARM926EJS
  46. select ARCH_HAVE_LOWVECTORS
  47. ---help---
  48. TI DMS320 DM320 (ARM926EJS)
  49. config ARCH_CHIP_EFM32
  50. bool "Energy Micro EFM32"
  51. select ARCH_HAVE_SPI_BITORDER
  52. select ARCH_HAVE_FETCHADD
  53. ---help---
  54. Energy Micro EFM32 microcontrollers (ARM Cortex-M).
  55. config ARCH_CHIP_IMX1
  56. bool "NXP/Freescale iMX.1"
  57. select ARCH_ARM920T
  58. select ARCH_HAVE_HEAP2
  59. select ARCH_HAVE_LOWVECTORS
  60. ---help---
  61. Freescale iMX.1 architectures (ARM920T)
  62. config ARCH_CHIP_IMX6
  63. bool "NXP/Freescale iMX.6"
  64. select ARCH_CORTEXA9
  65. select ARMV7A_HAVE_L2CC_PL310
  66. select ARCH_HAVE_FPU
  67. select ARCH_HAVE_TRUSTZONE
  68. select ARCH_HAVE_LOWVECTORS
  69. select ARCH_HAVE_FETCHADD
  70. select ARCH_HAVE_SDRAM
  71. select BOOT_RUNFROMSDRAM
  72. select ARCH_HAVE_ADDRENV
  73. select ARCH_NEED_ADDRENV_MAPPING
  74. ---help---
  75. Freescale iMX.6 architectures (Cortex-A9)
  76. config ARCH_CHIP_IMXRT
  77. bool "NXP/Freescale iMX.RT"
  78. select ARCH_CORTEXM7
  79. select ARCH_HAVE_MPU
  80. select ARCH_HAVE_FETCHADD
  81. select ARCH_HAVE_RAMFUNCS
  82. select ARCH_HAVE_TICKLESS
  83. select ARCH_HAVE_I2CRESET
  84. select ARCH_HAVE_SPI_CS_CONTROL
  85. select ARM_HAVE_MPU_UNIFIED
  86. select ARMV7M_HAVE_STACKCHECK
  87. ---help---
  88. NXP i.MX RT (ARM Cortex-M7) architectures
  89. config ARCH_CHIP_KINETIS
  90. bool "NXP/Freescale Kinetis"
  91. select ARCH_CORTEXM4
  92. select ARCH_HAVE_MPU
  93. select ARM_HAVE_MPU_UNIFIED
  94. select ARCH_HAVE_FPU
  95. select ARCH_HAVE_FETCHADD
  96. select ARCH_HAVE_RAMFUNCS
  97. select ARCH_HAVE_I2CRESET
  98. ---help---
  99. Freescale Kinetis Architectures (ARM Cortex-M4)
  100. config ARCH_CHIP_KL
  101. bool "NXP/Freescale Kinetis L"
  102. select ARCH_CORTEXM0
  103. ---help---
  104. Freescale Kinetis L Architectures (ARM Cortex-M0+)
  105. config ARCH_CHIP_LC823450
  106. bool "ON Semiconductor LC823450"
  107. select ARCH_CORTEXM3
  108. select ARCH_HAVE_MPU
  109. select ARCH_HAVE_HEAPCHECK
  110. select ARCH_HAVE_MULTICPU
  111. select ARCH_HAVE_I2CRESET
  112. select ARCH_GLOBAL_IRQDISABLE
  113. ---help---
  114. ON Semiconductor LC823450 architectures (ARM dual Cortex-M3)
  115. config ARCH_CHIP_LM
  116. bool "TI/Luminary Stellaris"
  117. select ARCH_HAVE_MPU
  118. select ARM_HAVE_MPU_UNIFIED
  119. ---help---
  120. TI/Luminary Stellaris LMS3 and LM4F architectures (ARM Cortex-M3/4)
  121. config ARCH_CHIP_LPC11XX
  122. bool "NXP LPC11xx"
  123. select ARCH_CORTEXM0
  124. ---help---
  125. NXP LPC11xx architectures (ARM Cortex-M0)
  126. config ARCH_CHIP_LPC17XX
  127. bool "NXP LPC17xx"
  128. select ARCH_CORTEXM3
  129. select ARCH_HAVE_MPU
  130. select ARM_HAVE_MPU_UNIFIED
  131. select ARCH_HAVE_FETCHADD
  132. select ARMV7M_HAVE_STACKCHECK
  133. ---help---
  134. NXP LPC17xx architectures (ARM Cortex-M3)
  135. config ARCH_CHIP_LPC214X
  136. bool "NXP LPC214x"
  137. select ARCH_ARM7TDMI
  138. select ARCH_HAVE_LOWVECTORS
  139. ---help---
  140. NXP LPC2145x architectures (ARM7TDMI)
  141. config ARCH_CHIP_LPC2378
  142. bool "NXP LPC2378"
  143. select ARCH_ARM7TDMI
  144. select ARCH_HAVE_LOWVECTORS
  145. ---help---
  146. NXP LPC2145x architectures (ARM7TDMI)
  147. config ARCH_CHIP_LPC31XX
  148. bool "NXP LPC31XX"
  149. select ARCH_ARM926EJS
  150. select ARCH_HAVE_LOWVECTORS
  151. ---help---
  152. NPX LPC31XX architectures (ARM926EJS).
  153. config ARCH_CHIP_LPC43XX
  154. bool "NXP LPC43XX"
  155. select ARCH_CORTEXM4
  156. select ARCH_HAVE_MPU
  157. select ARM_HAVE_MPU_UNIFIED
  158. select ARCH_HAVE_FPU
  159. select ARCH_HAVE_FETCHADD
  160. ---help---
  161. NPX LPC43XX architectures (ARM Cortex-M4).
  162. config ARCH_CHIP_LPC54XX
  163. bool "NXP LPC54XX"
  164. select ARCH_CORTEXM4
  165. select ARCH_HAVE_MPU
  166. select ARM_HAVE_MPU_UNIFIED
  167. select ARCH_HAVE_FPU
  168. select ARCH_HAVE_FETCHADD
  169. ---help---
  170. NPX LPC54XX architectures (ARM Cortex-M4).
  171. config ARCH_CHIP_MAX326XX
  172. bool "Maxim Integrated MAX326XX"
  173. select ARCH_HAVE_FETCHADD
  174. ---help---
  175. Maxim Integrated MAX326XX microcontrollers (ARM Cortex-M4F).
  176. config ARCH_CHIP_MOXART
  177. bool "MoxART"
  178. select ARCH_ARM7TDMI
  179. select ARCH_HAVE_RESET
  180. select ARCH_HAVE_SERIAL_TERMIOS
  181. ---help---
  182. MoxART family
  183. config ARCH_CHIP_NRF52
  184. bool "Nordic NRF52"
  185. select ARCH_CORTEXM4
  186. #select ARCH_HAVE_MPU
  187. #select ARM_HAVE_MPU_UNIFIED
  188. select ARCH_HAVE_FPU
  189. ---help---
  190. Nordic NRF52 architectures (ARM Cortex-M4).
  191. config ARCH_CHIP_NUC1XX
  192. bool "Nuvoton NUC100/120"
  193. select ARCH_CORTEXM0
  194. ---help---
  195. Nuvoton NUC100/120 architectures (ARM Cortex-M0).
  196. config ARCH_CHIP_SAMA5
  197. bool "Atmel SAMA5"
  198. select ARCH_CORTEXA5
  199. select ARCH_HAVE_FPU
  200. select ARCH_HAVE_IRQPRIO
  201. select ARCH_HAVE_LOWVECTORS
  202. select ARCH_HAVE_FETCHADD
  203. select ARCH_HAVE_I2CRESET
  204. select ARCH_HAVE_TICKLESS
  205. select ARCH_HAVE_ADDRENV
  206. select ARCH_NEED_ADDRENV_MAPPING
  207. ---help---
  208. Atmel SAMA5 (ARM Cortex-A5)
  209. config ARCH_CHIP_SAMD2X
  210. bool "Microchip/Atmel SAMD2x"
  211. select ARCH_CORTEXM0
  212. ---help---
  213. Microchip (formerly Atmel) SAMD2X (ARM Cortex-M0+)
  214. config ARCH_CHIP_SAML2X
  215. bool "Microchip/Atmel SAML2x"
  216. select ARCH_CORTEXM0
  217. ---help---
  218. Microchip (formerly Atmel) SAML2X (ARM Cortex-M0+)
  219. config ARCH_CHIP_SAMD5X
  220. bool "Microchip SAMD5x"
  221. select ARCH_CORTEXM4
  222. ---help---
  223. Microchip SAMD5X (ARM Cortex-M4)
  224. config ARCH_CHIP_SAME5X
  225. bool "Microchip SAME5x"
  226. select ARCH_CORTEXM4
  227. ---help---
  228. Microchip SAME5x (ARM Cortex-M4)
  229. config ARCH_CHIP_SAM34
  230. bool "Atmel SAM3/SAM4"
  231. select ARCH_HAVE_MPU
  232. select ARM_HAVE_MPU_UNIFIED
  233. select ARCH_HAVE_FETCHADD
  234. select ARCH_HAVE_RAMFUNCS
  235. select ARMV7M_HAVE_STACKCHECK
  236. ---help---
  237. Atmel SAM3 (ARM Cortex-M3) and SAM4 (ARM Cortex-M4) architectures
  238. config ARCH_CHIP_SAMV7
  239. bool "Atmel SAMV7"
  240. select ARCH_CORTEXM7
  241. select ARCH_HAVE_MPU
  242. select ARCH_HAVE_FETCHADD
  243. select ARCH_HAVE_RAMFUNCS
  244. select ARCH_HAVE_TICKLESS
  245. select ARCH_HAVE_I2CRESET
  246. select ARCH_HAVE_SPI_CS_CONTROL
  247. select ARM_HAVE_MPU_UNIFIED
  248. select ARMV7M_HAVE_STACKCHECK
  249. ---help---
  250. Atmel SAMV7 (ARM Cortex-M7) architectures
  251. config ARCH_CHIP_SIMPLELINK
  252. bool "TI SimpleLink"
  253. select ARCH_HAVE_MPU
  254. select ARM_HAVE_MPU_UNIFIED
  255. select ARCH_HAVE_FETCHADD
  256. depends on EXPERIMENTAL
  257. ---help---
  258. TI SimpleLink CCxxx architectures (ARM Cortex-M3 or M4)
  259. config ARCH_CHIP_STM32
  260. bool "STMicro STM32 F1/F2/F3/F4/L1"
  261. select ARCH_HAVE_MPU
  262. select ARCH_HAVE_FETCHADD
  263. select ARCH_HAVE_I2CRESET
  264. select ARCH_HAVE_HEAPCHECK
  265. select ARCH_HAVE_PROGMEM
  266. select ARCH_HAVE_SPI_BITORDER
  267. select ARCH_HAVE_TICKLESS
  268. select ARCH_HAVE_TIMEKEEPING
  269. select ARM_HAVE_MPU_UNIFIED
  270. select ARMV7M_HAVE_STACKCHECK
  271. ---help---
  272. STMicro STM32 architectures (ARM Cortex-M3/4).
  273. config ARCH_CHIP_STM32F0
  274. bool "STMicro STM32 F0"
  275. select ARCH_CORTEXM0
  276. ---help---
  277. STMicro STM32F0 architectures (ARM Cortex-M0).
  278. config ARCH_CHIP_STM32L0
  279. bool "STMicro STM32 L0"
  280. select ARCH_CORTEXM0
  281. ---help---
  282. STMicro STM32L0 architectures (ARM Cortex-M0).
  283. config ARCH_CHIP_STM32F7
  284. bool "STMicro STM32 F7"
  285. select ARCH_CORTEXM7
  286. select ARCH_HAVE_MPU
  287. select ARCH_HAVE_FETCHADD
  288. select ARCH_HAVE_I2CRESET
  289. select ARCH_HAVE_HEAPCHECK
  290. select ARCH_HAVE_PROGMEM
  291. select ARCH_HAVE_SPI_BITORDER
  292. select ARM_HAVE_MPU_UNIFIED
  293. select ARMV7M_HAVE_STACKCHECK
  294. select ARCH_HAVE_TICKLESS
  295. select ARCH_HAVE_TIMEKEEPING
  296. ---help---
  297. STMicro STM32 architectures (ARM Cortex-M7).
  298. config ARCH_CHIP_STM32H7
  299. bool "STMicro STM32 H7"
  300. select ARCH_CORTEXM7
  301. select ARCH_HAVE_MPU
  302. # select ARCH_HAVE_I2CRESET
  303. # select ARCH_HAVE_HEAPCHECK
  304. select ARCH_HAVE_SPI_BITORDER
  305. select ARM_HAVE_MPU_UNIFIED
  306. # select ARMV7M_HAVE_STACKCHECK
  307. ---help---
  308. STMicro STM32H7 architectures (ARM Cortex-M7).
  309. BEWARE: This is a work-in-progress and not yet ready for general
  310. usage. See configs/nucleo-h743zi/README.txt for the current state
  311. of the port.
  312. config ARCH_CHIP_STM32L4
  313. bool "STMicro STM32 L4"
  314. select ARCH_CORTEXM4
  315. select ARCH_HAVE_MPU
  316. select ARCH_HAVE_FETCHADD
  317. select ARCH_HAVE_I2CRESET
  318. select ARCH_HAVE_HEAPCHECK
  319. select ARCH_HAVE_PROGMEM
  320. select ARCH_HAVE_SPI_BITORDER
  321. select ARCH_HAVE_TICKLESS
  322. select ARM_HAVE_MPU_UNIFIED
  323. select ARMV7M_HAVE_STACKCHECK
  324. ---help---
  325. STMicro STM32 architectures (ARM Cortex-M4).
  326. config ARCH_CHIP_STR71X
  327. bool "STMicro STR71x"
  328. select ARCH_ARM7TDMI
  329. select ARCH_HAVE_LOWVECTORS
  330. ---help---
  331. STMicro STR71x architectures (ARM7TDMI).
  332. config ARCH_CHIP_TMS570
  333. bool "TI TMS570"
  334. select ENDIAN_BIG
  335. select ARCH_HAVE_LOWVECTORS
  336. select ARCH_HAVE_FETCHADD
  337. select ARCH_HAVE_RAMFUNCS
  338. select ARMV7R_MEMINIT
  339. select ARMV7R_HAVE_DECODEFIQ
  340. ---help---
  341. TI TMS570 family
  342. config ARCH_CHIP_TIVA
  343. bool "TI Tiva"
  344. select ARCH_HAVE_MPU
  345. select ARM_HAVE_MPU_UNIFIED
  346. select ARCH_HAVE_FETCHADD
  347. ---help---
  348. TI Tiva TM4C architectures (ARM Cortex-M4)
  349. config ARCH_CHIP_XMC4
  350. bool "Infineon XMC4xxx"
  351. select ARCH_CORTEXM4
  352. select ARCH_HAVE_MPU
  353. select ARCH_HAVE_FETCHADD
  354. select ARCH_HAVE_RAMFUNCS
  355. select ARCH_HAVE_I2CRESET
  356. select ARM_HAVE_MPU_UNIFIED
  357. select ARMV7M_HAVE_STACKCHECK
  358. ---help---
  359. Infineon XMC4xxx(ARM Cortex-M4) architectures
  360. config ARCH_CHIP_CXD56XX
  361. bool "Sony CXD56xx"
  362. select ARCH_CORTEXM4
  363. select ARCH_HAVE_MPU
  364. select ARM_HAVE_MPU_UNIFIED
  365. select ARCH_HAVE_FPU
  366. select ARCH_HAVE_HEAPCHECK
  367. select ARCH_HAVE_MULTICPU
  368. select ARCH_HAVE_SDIO if MMCSD
  369. ---help---
  370. Sony CXD56XX (ARM Cortex-M4) architectures
  371. endchoice
  372. config ARCH_ARM7TDMI
  373. bool
  374. default n
  375. select ARCH_DCACHE
  376. select ARCH_ICACHE
  377. ---help---
  378. The Arm7TDMI-S is an excellent workhorse processor capable of a wide
  379. array of applications. Traditionally used in mobile handsets, the
  380. processor is now broadly in many non-mobile applications.
  381. config ARCH_ARM920T
  382. bool
  383. default n
  384. select ARCH_DCACHE
  385. select ARCH_ICACHE
  386. select ARCH_HAVE_MMU
  387. select ARCH_USE_MMU
  388. ---help---
  389. The ARM9 processor family is built around the ARM9TDMI processor and
  390. incorporates the 16-bit Thumb instruction set. The ARM9 Thumb family
  391. includes the ARM920T and ARM922T cached processor macrocells:
  392. - Dual 16k caches for applications running Symbian OS, Palm OS,
  393. Linux and Windows CE,
  394. - Dual 8k caches for applications running Symbian OS, Palm OS, Linux
  395. and Windows CE Applications
  396. config ARCH_ARM926EJS
  397. bool
  398. default n
  399. select ARCH_DCACHE
  400. select ARCH_ICACHE
  401. select ARCH_HAVE_MMU
  402. select ARCH_USE_MMU
  403. ---help---
  404. Arm926EJ-S is the entry point processor capable of supporting full
  405. Operating Systems including Linux, WindowsCE, and Symbian.
  406. The ARM9E processor family enables single processor solutions for
  407. microcontroller, DSP and Java applications. The ARM9E family of
  408. products are DSP-enhanced 32-bit RISC processors, for applications
  409. requiring a mix of DSP and microcontroller performance. The family
  410. includes the ARM926EJ-S, ARM946E-S, ARM966E-S, and ARM968E-S
  411. processor macrocells. They include signal processing extensions to
  412. enhance 16-bit fixed point performance using a single-cycle 32 x 16
  413. multiply-accumulate (MAC) unit, and implement the 16-bit Thumb
  414. instruction set. The ARM926EJ-S processor also includes ARM Jazelle
  415. technology which enables the direct execution of Java bytecodes in
  416. hardware.
  417. config ARCH_ARM1136J
  418. bool
  419. default n
  420. select ARCH_DCACHE
  421. select ARCH_ICACHE
  422. select ARCH_HAVE_MMU
  423. select ARCH_USE_MMU
  424. ---help---
  425. Arm1136J(F)-S is very similar to Arm926EJ-S, but includes an
  426. extended pipeline, basic SIMD (Single Instruction Multiple Data)
  427. instructions, and improved frequency and performance.
  428. config ARCH_ARM1156T2
  429. bool
  430. default n
  431. select ARCH_DCACHE
  432. select ARCH_ICACHE
  433. select ARCH_HAVE_MMU
  434. select ARCH_USE_MMU
  435. ---help---
  436. Arm1156T2(F)-S is the highest-performance processor in the real-time
  437. Classic Arm family.
  438. config ARCH_ARM1176JZ
  439. bool
  440. default n
  441. select ARCH_DCACHE
  442. select ARCH_ICACHE
  443. select ARCH_HAVE_MMU
  444. select ARCH_USE_MMU
  445. ---help---
  446. Arm1176JZ(F)-S is the highest-performance single-core processor in
  447. the Classic Arm family. It also introduced TrustZone technology to
  448. enable secure execution outside of the reach of malicious code.
  449. config ARCH_CORTEXM0
  450. bool
  451. default n
  452. select ARCH_HAVE_IRQPRIO
  453. select ARCH_HAVE_RESET
  454. select ARCH_HAVE_HARDFAULT_DEBUG
  455. config ARCH_CORTEXM23
  456. bool
  457. default n
  458. config ARCH_ARMV7M
  459. bool
  460. default n
  461. config ARCH_CORTEXM3
  462. bool
  463. default n
  464. select ARCH_ARMV7M
  465. select ARCH_HAVE_IRQPRIO
  466. select ARCH_HAVE_IRQTRIGGER
  467. select ARCH_HAVE_RAMVECTORS
  468. select ARCH_HAVE_LAZYFPU
  469. select ARCH_HAVE_HIPRI_INTERRUPT
  470. select ARCH_HAVE_RESET
  471. select ARCH_HAVE_TESTSET
  472. select ARCH_HAVE_HARDFAULT_DEBUG
  473. select ARCH_HAVE_MEMFAULT_DEBUG
  474. config ARCH_CORTEXM33
  475. bool
  476. default n
  477. config ARCH_CORTEXM4
  478. bool
  479. default n
  480. select ARCH_ARMV7M
  481. select ARCH_HAVE_IRQPRIO
  482. select ARCH_HAVE_IRQTRIGGER
  483. select ARCH_HAVE_RAMVECTORS
  484. select ARCH_HAVE_LAZYFPU
  485. select ARCH_HAVE_HIPRI_INTERRUPT
  486. select ARCH_HAVE_RESET
  487. select ARCH_HAVE_TESTSET
  488. select ARCH_HAVE_HARDFAULT_DEBUG
  489. select ARCH_HAVE_MEMFAULT_DEBUG
  490. config ARCH_CORTEXM7
  491. bool
  492. default n
  493. select ARCH_ARMV7M
  494. select ARCH_HAVE_FPU
  495. select ARCH_HAVE_IRQPRIO
  496. select ARCH_HAVE_IRQTRIGGER
  497. select ARCH_HAVE_RAMVECTORS
  498. select ARCH_HAVE_LAZYFPU
  499. select ARCH_HAVE_HIPRI_INTERRUPT
  500. select ARCH_HAVE_RESET
  501. select ARCH_HAVE_TESTSET
  502. select ARCH_HAVE_HARDFAULT_DEBUG
  503. select ARCH_HAVE_MEMFAULT_DEBUG
  504. config ARCH_ARMV7A
  505. bool
  506. default n
  507. config ARCH_CORTEXA5
  508. bool
  509. default n
  510. select ARCH_ARMV7A
  511. select ARCH_DCACHE
  512. select ARCH_ICACHE
  513. select ARCH_HAVE_MMU
  514. select ARCH_USE_MMU
  515. select ARCH_HAVE_TESTSET
  516. config ARCH_CORTEXA7
  517. bool
  518. default n
  519. select ARCH_ARMV7A
  520. select ARCH_DCACHE
  521. select ARCH_ICACHE
  522. select ARCH_HAVE_MMU
  523. select ARCH_USE_MMU
  524. select ARCH_HAVE_TESTSET
  525. config ARCH_CORTEXA8
  526. bool
  527. default n
  528. select ARCH_ARMV7A
  529. select ARCH_DCACHE
  530. select ARCH_ICACHE
  531. select ARCH_HAVE_MMU
  532. select ARCH_USE_MMU
  533. select ARCH_HAVE_TESTSET
  534. config ARCH_CORTEXA9
  535. bool
  536. default n
  537. select ARCH_ARMV7A
  538. select ARCH_DCACHE
  539. select ARCH_ICACHE
  540. select ARCH_HAVE_MMU
  541. select ARCH_USE_MMU
  542. select ARCH_HAVE_TESTSET
  543. config ARCH_ARMV7R
  544. bool
  545. default n
  546. config ARCH_CORTEXR4
  547. bool
  548. default n
  549. select ARCH_ARMV7R
  550. select ARCH_DCACHE
  551. select ARCH_ICACHE
  552. select ARCH_HAVE_MPU
  553. select ARCH_HAVE_TESTSET
  554. config ARCH_CORTEXR5
  555. bool
  556. default n
  557. select ARCH_ARMV7R
  558. select ARCH_DCACHE
  559. select ARCH_ICACHE
  560. select ARCH_HAVE_MPU
  561. select ARCH_HAVE_TESTSET
  562. config ARCH_CORTEXR7
  563. bool
  564. default n
  565. select ARCH_ARMV7R
  566. select ARCH_DCACHE
  567. select ARCH_ICACHE
  568. select ARCH_HAVE_MPU
  569. select ARCH_HAVE_TESTSET
  570. config ARCH_FAMILY
  571. string
  572. default "arm" if ARCH_ARM7TDMI || ARCH_ARM926EJS || ARCH_ARM920T
  573. default "armv6-m" if ARCH_CORTEXM0
  574. default "armv7-a" if ARCH_ARMV7A
  575. default "armv7-m" if ARCH_ARMV7M
  576. default "armv7-r" if ARCH_ARMV7R
  577. config ARCH_CHIP
  578. string
  579. default "a1x" if ARCH_CHIP_A1X
  580. default "am335x" if ARCH_CHIP_AM335X
  581. default "c5471" if ARCH_CHIP_C5471
  582. default "dm320" if ARCH_CHIP_DM320
  583. default "efm32" if ARCH_CHIP_EFM32
  584. default "imx1" if ARCH_CHIP_IMX1
  585. default "imx6" if ARCH_CHIP_IMX6
  586. default "imxrt" if ARCH_CHIP_IMXRT
  587. default "kinetis" if ARCH_CHIP_KINETIS
  588. default "kl" if ARCH_CHIP_KL
  589. default "lc823450" if ARCH_CHIP_LC823450
  590. default "tiva" if ARCH_CHIP_LM || ARCH_CHIP_TIVA ||ARCH_CHIP_SIMPLELINK
  591. default "lpc11xx" if ARCH_CHIP_LPC11XX
  592. default "lpc17xx" if ARCH_CHIP_LPC17XX
  593. default "lpc214x" if ARCH_CHIP_LPC214X
  594. default "lpc2378" if ARCH_CHIP_LPC2378
  595. default "lpc31xx" if ARCH_CHIP_LPC31XX
  596. default "lpc43xx" if ARCH_CHIP_LPC43XX
  597. default "lpc54xx" if ARCH_CHIP_LPC54XX
  598. default "max326xx" if ARCH_CHIP_MAX326XX
  599. default "moxart" if ARCH_CHIP_MOXART
  600. default "nrf52" if ARCH_CHIP_NRF52
  601. default "nuc1xx" if ARCH_CHIP_NUC1XX
  602. default "sama5" if ARCH_CHIP_SAMA5
  603. default "samd2l2" if ARCH_CHIP_SAMD2X || ARCH_CHIP_SAML2X
  604. default "samd5e5" if ARCH_CHIP_SAMD5X || ARCH_CHIP_SAME5X
  605. default "sam34" if ARCH_CHIP_SAM34
  606. default "samv7" if ARCH_CHIP_SAMV7
  607. default "stm32" if ARCH_CHIP_STM32
  608. default "stm32f0l0" if ARCH_CHIP_STM32F0 || ARCH_CHIP_STM32L0
  609. default "stm32f7" if ARCH_CHIP_STM32F7
  610. default "stm32h7" if ARCH_CHIP_STM32H7
  611. default "stm32l4" if ARCH_CHIP_STM32L4
  612. default "str71x" if ARCH_CHIP_STR71X
  613. default "tms570" if ARCH_CHIP_TMS570
  614. default "xmc4" if ARCH_CHIP_XMC4
  615. default "cxd56xx" if ARCH_CHIP_CXD56XX
  616. config ARCH_HAVE_TRUSTZONE
  617. bool
  618. default n
  619. ---help---
  620. Automatically selected to indicate that the ARM CPU supports
  621. TrustZone.
  622. choice
  623. prompt "TrustZone Configuration"
  624. default ARCH_TRUSTZONE_SECURE
  625. depends on ARCH_HAVE_TRUSTZONE
  626. config ARCH_TRUSTZONE_SECURE
  627. bool "All CPUs operate secure state"
  628. config ARCH_TRUSTZONE_NONSECURE
  629. bool "All CPUs operate non-secure state"
  630. depends on EXPERIMENTAL
  631. config ARCH_TRUSTZONE_BOTH
  632. bool "CPUs operate in both secure and non-secure states"
  633. depends on EXPERIMENTAL
  634. endchoice # TrustZone Configuration
  635. config ARM_THUMB
  636. bool
  637. default n
  638. depends on ARCH_ARMV7A
  639. config ARM_HAVE_MPU_UNIFIED
  640. bool
  641. default n
  642. ---help---
  643. Automatically selected to indicate that the CPU supports a
  644. unified MPU for both instruction and data addresses.
  645. config ARM_MPU
  646. bool "MPU support"
  647. default n
  648. depends on ARCH_HAVE_MPU
  649. select ARCH_USE_MPU
  650. ---help---
  651. Build in support for the ARM Cortex-M3/4/7 Memory Protection Unit (MPU).
  652. Check your chip specifications first; not all Cortex-M3/4/7 chips
  653. support the MPU.
  654. config ARM_MPU_NREGIONS
  655. int "Number of MPU regions"
  656. default 16 if ARCH_CORTEXM7
  657. default 8 if !ARCH_CORTEXM7
  658. depends on ARM_MPU
  659. ---help---
  660. This is the number of protection regions supported by the MPU.
  661. config ARCH_HAVE_LOWVECTORS
  662. bool
  663. config ARCH_LOWVECTORS
  664. bool "Vectors in low memory"
  665. default n
  666. depends on ARCH_HAVE_LOWVECTORS
  667. ---help---
  668. Support ARM vectors in low memory.
  669. config ARCH_ROMPGTABLE
  670. bool "ROM page table"
  671. default n
  672. depends on ARCH_USE_MMU
  673. ---help---
  674. Support a fixed memory mapping use a (read-only) page table in
  675. ROM/FLASH.
  676. config ARCH_HAVE_HARDFAULT_DEBUG
  677. bool
  678. default n
  679. config DEBUG_HARDFAULT_ALERT
  680. bool "Hard-Fault Alert Debug"
  681. default n
  682. depends on ARCH_HAVE_HARDFAULT_DEBUG && DEBUG_ALERT
  683. ---help---
  684. Enables debug alert output to the SYSLOG when a hard fault
  685. occurs. This output is sometimes helpful when debugging difficult
  686. hard fault problems.
  687. config DEBUG_HARDFAULT_INFO
  688. bool "Hard-Fault Informational Output"
  689. default n
  690. depends on ARCH_HAVE_HARDFAULT_DEBUG && DEBUG_INFO
  691. ---help---
  692. Enables informational alert output to the SYSLOG when a hard fault
  693. occurs. This output is sometimes helpful when debugging difficult
  694. hard fault problems but may be more than you want to see in some
  695. cases.
  696. config ARCH_HAVE_MEMFAULT_DEBUG
  697. bool
  698. default n
  699. config DEBUG_MEMFAULT
  700. bool "Verbose Mem-Fault Debug"
  701. default n
  702. depends on ARCH_HAVE_MEMFAULT_DEBUG && DEBUG_ALERT && ARCH_USE_MPU
  703. ---help---
  704. Enables verbose debug output when a mem fault is occurs. This verbose
  705. output is sometimes helpful when debugging difficult mem fault problems,
  706. but may be more than you typically want to see.
  707. config ARM_SEMIHOSTING_SYSLOG
  708. bool "Semihosting SYSLOG support"
  709. select ARCH_SYSLOG
  710. ---help---
  711. Enable hooks to support semihosting syslog output.
  712. config ARM_SEMIHOSTING_HOSTFS
  713. bool "Semihosting HostFS"
  714. depends on FS_HOSTFS
  715. ---help---
  716. Mount HostFS through semihosting.
  717. if ARCH_CORTEXM0
  718. source arch/arm/src/armv6-m/Kconfig
  719. endif
  720. if ARCH_ARMV7A
  721. source arch/arm/src/armv7-a/Kconfig
  722. endif
  723. if ARCH_ARMV7M
  724. source arch/arm/src/armv7-m/Kconfig
  725. endif
  726. if ARCH_ARMV7R
  727. source arch/arm/src/armv7-r/Kconfig
  728. endif
  729. if ARCH_ARM7TDMI || ARCH_ARM920T || ARCH_ARM926EJS || ARCH_ARM1136J || ARCH_ARM1156T2 || ARCH_ARM1176JZ
  730. source arch/arm/src/arm/Kconfig
  731. endif
  732. if ARCH_CHIP_A1X
  733. source arch/arm/src/a1x/Kconfig
  734. endif
  735. if ARCH_CHIP_AM335X
  736. source arch/arm/src/am335x/Kconfig
  737. endif
  738. if ARCH_CHIP_C5471
  739. source arch/arm/src/c5471/Kconfig
  740. endif
  741. if ARCH_CHIP_DM320
  742. source arch/arm/src/dm320/Kconfig
  743. endif
  744. if ARCH_CHIP_EFM32
  745. source arch/arm/src/efm32/Kconfig
  746. endif
  747. if ARCH_CHIP_IMX1
  748. source arch/arm/src/imx1/Kconfig
  749. endif
  750. if ARCH_CHIP_IMX6
  751. source arch/arm/src/imx6/Kconfig
  752. endif
  753. if ARCH_CHIP_IMXRT
  754. source arch/arm/src/imxrt/Kconfig
  755. endif
  756. if ARCH_CHIP_KINETIS
  757. source arch/arm/src/kinetis/Kconfig
  758. endif
  759. if ARCH_CHIP_KL
  760. source arch/arm/src/kl/Kconfig
  761. endif
  762. if ARCH_CHIP_LC823450
  763. source arch/arm/src/lc823450/Kconfig
  764. endif
  765. if ARCH_CHIP_LM || ARCH_CHIP_TIVA || ARCH_CHIP_SIMPLELINK
  766. source arch/arm/src/tiva/Kconfig
  767. endif
  768. if ARCH_CHIP_LPC11XX
  769. source arch/arm/src/lpc11xx/Kconfig
  770. endif
  771. if ARCH_CHIP_LPC17XX
  772. source arch/arm/src/lpc17xx/Kconfig
  773. endif
  774. if ARCH_CHIP_LPC214X
  775. source arch/arm/src/lpc214x/Kconfig
  776. endif
  777. if ARCH_CHIP_LPC2378
  778. source arch/arm/src/lpc2378/Kconfig
  779. endif
  780. if ARCH_CHIP_LPC31XX
  781. source arch/arm/src/lpc31xx/Kconfig
  782. endif
  783. if ARCH_CHIP_LPC43XX
  784. source arch/arm/src/lpc43xx/Kconfig
  785. endif
  786. if ARCH_CHIP_LPC54XX
  787. source arch/arm/src/lpc54xx/Kconfig
  788. endif
  789. if ARCH_CHIP_MAX326XX
  790. source arch/arm/src/max326xx/Kconfig
  791. endif
  792. if ARCH_CHIP_MOXART
  793. source arch/arm/src/moxart/Kconfig
  794. endif
  795. if ARCH_CHIP_NRF52
  796. source arch/arm/src/nrf52/Kconfig
  797. endif
  798. if ARCH_CHIP_NUC1XX
  799. source arch/arm/src/nuc1xx/Kconfig
  800. endif
  801. if ARCH_CHIP_SAMA5
  802. source arch/arm/src/sama5/Kconfig
  803. endif
  804. if ARCH_CHIP_SAMD2X || ARCH_CHIP_SAML2X
  805. source arch/arm/src/samd2l2/Kconfig
  806. endif
  807. if ARCH_CHIP_SAMD5X || ARCH_CHIP_SAME5X
  808. source arch/arm/src/samd5e5/Kconfig
  809. endif
  810. if ARCH_CHIP_SAM34
  811. source arch/arm/src/sam34/Kconfig
  812. endif
  813. if ARCH_CHIP_SAMV7
  814. source arch/arm/src/samv7/Kconfig
  815. endif
  816. if ARCH_CHIP_STM32
  817. source arch/arm/src/stm32/Kconfig
  818. endif
  819. if ARCH_CHIP_STM32F0 || ARCH_CHIP_STM32L0
  820. source arch/arm/src/stm32f0l0/Kconfig
  821. endif
  822. if ARCH_CHIP_STM32F7
  823. source arch/arm/src/stm32f7/Kconfig
  824. endif
  825. if ARCH_CHIP_STM32H7
  826. source arch/arm/src/stm32h7/Kconfig
  827. endif
  828. if ARCH_CHIP_STM32L4
  829. source arch/arm/src/stm32l4/Kconfig
  830. endif
  831. if ARCH_CHIP_STR71X
  832. source arch/arm/src/str71x/Kconfig
  833. endif
  834. if ARCH_CHIP_TMS570
  835. source arch/arm/src/tms570/Kconfig
  836. endif
  837. if ARCH_CHIP_XMC4
  838. source arch/arm/src/xmc4/Kconfig
  839. endif
  840. if ARCH_CHIP_CXD56XX
  841. source arch/arm/src/cxd56xx/Kconfig
  842. endif
  843. endif # ARCH_ARM