Kconfig 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. menu "Timer Support"
  2. config TIMER
  3. bool "Enable driver model for timer drivers"
  4. depends on DM
  5. help
  6. Enable driver model for timer access. It uses the same API as
  7. lib/time.c, but now implemented by the uclass. The first timer
  8. will be used. The timer is usually a 32 bits free-running up
  9. counter. There may be no real tick, and no timer interrupt.
  10. config SPL_TIMER
  11. bool "Enable driver model for timer drivers in SPL"
  12. depends on TIMER && SPL
  13. help
  14. Enable support for timer drivers in SPL. These can be used to get
  15. a timer value when in SPL, or perhaps for implementing a delay
  16. function. This enables the drivers in drivers/timer as part of an
  17. SPL build.
  18. config TPL_TIMER
  19. bool "Enable driver model for timer drivers in TPL"
  20. depends on TIMER && TPL
  21. help
  22. Enable support for timer drivers in TPL. These can be used to get
  23. a timer value when in TPL, or perhaps for implementing a delay
  24. function. This enables the drivers in drivers/timer as part of an
  25. TPL build.
  26. config VPL_TIMER
  27. bool "Enable driver model for timer drivers in VPL"
  28. depends on TIMER && VPL
  29. default y if TPL_TIMER
  30. help
  31. Enable support for timer drivers in VPL. These can be used to get
  32. a timer value when in VPL, or perhaps for implementing a delay
  33. function. This enables the drivers in drivers/timer as part of an
  34. TPL build.
  35. config TIMER_EARLY
  36. bool "Allow timer to be used early in U-Boot"
  37. depends on TIMER
  38. # initr_bootstage() requires a timer and is called before initr_dm()
  39. # so only the early timer is available
  40. default y if X86 && BOOTSTAGE
  41. help
  42. In some cases the timer must be accessible before driver model is
  43. active. Examples include when using CONFIG_TRACE to trace U-Boot's
  44. execution before driver model is set up. Enable this option to
  45. use an early timer. These functions must be supported by your timer
  46. driver: timer_early_get_count() and timer_early_get_rate().
  47. config ALTERA_TIMER
  48. bool "Altera timer support"
  49. depends on TIMER
  50. help
  51. Select this to enable a timer for Altera devices. Please find
  52. details on the "Embedded Peripherals IP User Guide" of Altera.
  53. config ANDES_PLMT_TIMER
  54. bool
  55. depends on RISCV_MMODE || SPL_RISCV_MMODE
  56. help
  57. The Andes PLMT block holds memory-mapped mtime register
  58. associated with timer tick.
  59. config ARC_TIMER
  60. bool "ARC timer support"
  61. depends on TIMER && ARC && CLK
  62. help
  63. Select this to enable built-in ARC timers.
  64. ARC cores may have up to 2 built-in timers: timer0 and timer1,
  65. usually at least one of them exists. Either of them is supported
  66. in U-Boot.
  67. config ARM_TWD_TIMER
  68. bool "ARM timer watchdog (TWD) timer support"
  69. depends on TIMER && CLK
  70. help
  71. Select this to enable support for the ARM global timer watchdog timer.
  72. config AST_TIMER
  73. bool "Aspeed ast2400/ast2500 timer support"
  74. depends on TIMER
  75. default y if ARCH_ASPEED
  76. help
  77. Select this to enable timer for Aspeed ast2400/ast2500 devices.
  78. This is a simple sys timer driver, it is compatible with lib/time.c,
  79. but does not support any interrupts. Even though SoC has 8 hardware
  80. counters, they are all treated as a single device by this driver.
  81. This is mostly because they all share several registers which
  82. makes it difficult to completely separate them.
  83. config ATCPIT100_TIMER
  84. bool "ATCPIT100 timer support"
  85. depends on TIMER
  86. help
  87. Select this to enable a ATCPIT100 timer which will be embedded
  88. in AE3XX, AE250 boards.
  89. config ATMEL_PIT_TIMER
  90. bool "Atmel periodic interval timer support"
  91. depends on TIMER
  92. help
  93. Select this to enable a periodic interval timer for Atmel devices,
  94. it is designed to offer maximum accuracy and efficient management,
  95. even for systems with long response time.
  96. config SPL_ATMEL_PIT_TIMER
  97. bool "Atmel periodic interval timer support in SPL"
  98. depends on SPL_TIMER
  99. help
  100. Select this to enable a periodic interval timer for Atmel devices,
  101. it is designed to offer maximum accuracy and efficient management,
  102. even for systems with long response time.
  103. Select this to be available in SPL.
  104. config ATMEL_TCB_TIMER
  105. bool "Atmel timer counter support"
  106. depends on TIMER
  107. depends on ARCH_AT91
  108. help
  109. Select this to enable the use of the timer counter as a monotonic
  110. counter.
  111. config SPL_ATMEL_TCB_TIMER
  112. bool "Atmel timer counter support in SPL"
  113. depends on SPL_TIMER
  114. depends on ARCH_AT91
  115. help
  116. Select this to enable the use of the timer counter as a monotonic
  117. counter in SPL.
  118. config CADENCE_TTC_TIMER
  119. bool "Cadence TTC (Triple Timer Counter)"
  120. depends on TIMER
  121. help
  122. Enables support for the cadence ttc driver. This driver is present
  123. on Xilinx Zynq and ZynqMP SoCs.
  124. config DESIGNWARE_APB_TIMER
  125. bool "Designware APB Timer"
  126. depends on TIMER
  127. help
  128. Enables support for the Designware APB Timer driver. This timer is
  129. present on Altera SoCFPGA SoCs.
  130. config FTTMR010_TIMER
  131. bool "Faraday Technology timer support"
  132. depends on TIMER
  133. help
  134. Select this to enable support for the timer found on
  135. devices using Faraday Technology's IP.
  136. config GXP_TIMER
  137. bool "HPE GXP Timer"
  138. depends on TIMER
  139. help
  140. Enables support for the GXP Timer driver. This timer is
  141. present on HPE GXP SoCs.
  142. config MPC83XX_TIMER
  143. bool "MPC83xx timer support"
  144. depends on TIMER
  145. help
  146. Select this to enable support for the timer found on
  147. devices based on the MPC83xx family of SoCs.
  148. config RENESAS_OSTM_TIMER
  149. bool "Renesas RZ/A1 R7S72100 OSTM Timer"
  150. depends on TIMER
  151. help
  152. Enables support for the Renesas OSTM Timer driver.
  153. This timer is present on Renesas RZ/A1 R7S72100 SoCs.
  154. config X86_TSC_TIMER_FREQ
  155. int "x86 TSC timer frequency in Hz"
  156. depends on X86_TSC_TIMER
  157. default 1000000000
  158. help
  159. Sets the estimated CPU frequency in Hz when TSC is used as the
  160. early timer and the frequency can neither be calibrated via some
  161. hardware ways, nor got from device tree at the time when device
  162. tree is not available yet.
  163. config NOMADIK_MTU_TIMER
  164. bool "Nomadik MTU Timer"
  165. depends on TIMER
  166. help
  167. Enables support for the Nomadik Multi Timer Unit (MTU),
  168. used in ST-Ericsson Ux500 SoCs.
  169. The MTU provides 4 decrementing free-running timers.
  170. At the moment, only the first timer is used by the driver.
  171. config NPCM_TIMER
  172. bool "Nuvoton NPCM timer support"
  173. depends on TIMER
  174. help
  175. Select this to enable a timer on Nuvoton NPCM SoCs.
  176. NPCM timer module has 5 down-counting timers, only the first timer
  177. is used to implement timer ops. No support for early timer and
  178. boot timer.
  179. config OMAP_TIMER
  180. bool "Omap timer support"
  181. depends on TIMER
  182. help
  183. Select this to enable an timer for Omap devices.
  184. config ORION_TIMER
  185. bool "Orion timer support"
  186. depends on TIMER
  187. default y if ARCH_KIRKWOOD || (ARCH_MVEBU && ARMADA_32BIT)
  188. select TIMER_EARLY if ARCH_MVEBU
  189. help
  190. Select this to enable an timer for Orion and Armada devices
  191. like Armada XP etc.
  192. config RISCV_TIMER
  193. bool "RISC-V timer support"
  194. depends on TIMER && RISCV
  195. help
  196. Select this to enable support for a generic RISC-V S-Mode timer
  197. driver.
  198. config ROCKCHIP_TIMER
  199. bool "Rockchip timer support"
  200. depends on TIMER
  201. help
  202. Select this to enable support for the timer found on
  203. Rockchip devices.
  204. config SANDBOX_TIMER
  205. bool "Sandbox timer support"
  206. depends on SANDBOX && TIMER
  207. help
  208. Select this to enable an emulated timer for sandbox. It gets
  209. time from host os.
  210. config ARM_GLOBAL_TIMER
  211. bool "ARM Cortex A9 global timer support"
  212. depends on TIMER
  213. depends on ARM
  214. default y if ARCH_STI
  215. help
  216. Select this to enable global timer found on ARM Cortex A9
  217. based devices.
  218. config SP804_TIMER
  219. bool "ARM SP804 timer support"
  220. depends on TIMER
  221. help
  222. ARM SP804 dual timer IP support
  223. config STM32_TIMER
  224. bool "STM32 timer support"
  225. depends on TIMER
  226. help
  227. Select this to enable support for the timer found on
  228. STM32 devices.
  229. config TEGRA_TIMER
  230. bool "Tegra timer support"
  231. depends on TIMER
  232. select TIMER_EARLY
  233. help
  234. Select this to enable support for the timer found on
  235. Tegra devices.
  236. config X86_TSC_TIMER
  237. bool "x86 Time-Stamp Counter (TSC) timer support"
  238. depends on TIMER && X86
  239. help
  240. Select this to enable Time-Stamp Counter (TSC) timer for x86.
  241. config X86_TSC_READ_BASE
  242. bool "Read the TSC timer base on start-up"
  243. depends on X86_TSC_TIMER
  244. help
  245. On x86 platforms the TSC timer tick starts at the value 0 on reset.
  246. This it makes no sense to read the timer on boot and use that as the
  247. base, since we will miss some time taken to load U-Boot, etc. This
  248. delay is controlled by the SoC and we cannot reduce it, but for
  249. bootstage we want to record the time since reset as accurately as
  250. possible.
  251. The only exception is when U-Boot is used as a secondary bootloader,
  252. where this option should be enabled.
  253. config TPL_X86_TSC_TIMER_NATIVE
  254. bool "x86 TSC timer uses native calibration"
  255. depends on TPL && X86_TSC_TIMER
  256. help
  257. Selects native timer calibration for TPL and don't include the other
  258. methods in the code. This helps to reduce code size in TPL and works
  259. on fairly modern Intel chips. Code-size reductions is about 700
  260. bytes.
  261. config MTK_TIMER
  262. bool "MediaTek timer support"
  263. depends on TIMER
  264. help
  265. Select this to enable support for the timer found on
  266. MediaTek devices.
  267. config MCHP_PIT64B_TIMER
  268. bool "Microchip 64-bit periodic interval timer support"
  269. depends on TIMER
  270. help
  271. Select this to enable support for Microchip 64-bit periodic
  272. interval timer.
  273. config IMX_GPT_TIMER
  274. bool "NXP i.MX GPT timer support"
  275. depends on TIMER
  276. help
  277. Select this to enable support for the timer found on
  278. NXP i.MX devices.
  279. config XILINX_TIMER
  280. bool "Xilinx timer support"
  281. depends on TIMER
  282. select REGMAP
  283. select SPL_REGMAP if SPL
  284. help
  285. Select this to enable support for the timer found on
  286. any Xilinx boards (axi timer).
  287. endmenu