Kconfig 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. if ARCH_TEGRA
  2. config SPL_GPIO_SUPPORT
  3. default y
  4. config SPL_LIBCOMMON_SUPPORT
  5. default y
  6. config SPL_LIBGENERIC_SUPPORT
  7. default y
  8. config SPL_SERIAL_SUPPORT
  9. default y
  10. config TEGRA_CLKRST
  11. bool
  12. config TEGRA_GP_PADCTRL
  13. bool
  14. config TEGRA_IVC
  15. bool "Tegra IVC protocol"
  16. help
  17. IVC (Inter-VM Communication) protocol is a Tegra-specific IPC
  18. (Inter Processor Communication) framework. Within the context of
  19. U-Boot, it is typically used for communication between the main CPU
  20. and various auxiliary processors.
  21. config TEGRA_MC
  22. bool
  23. config TEGRA_PINCTRL
  24. bool
  25. config TEGRA_PMC
  26. bool
  27. config TEGRA_PMC_SECURE
  28. bool
  29. depends on TEGRA_PMC
  30. config TEGRA_COMMON
  31. bool "Tegra common options"
  32. select BINMAN
  33. select BOARD_EARLY_INIT_F
  34. select CLK
  35. select DM
  36. select DM_ETH
  37. select DM_GPIO
  38. select DM_I2C
  39. select DM_KEYBOARD
  40. select DM_MMC
  41. select DM_PWM
  42. select DM_RESET
  43. select DM_SERIAL
  44. select DM_SPI
  45. select DM_SPI_FLASH
  46. select MISC
  47. select OF_CONTROL
  48. select SPI
  49. select VIDCONSOLE_AS_LCD if DM_VIDEO
  50. imply CMD_DM
  51. imply CRC32_VERIFY
  52. config TEGRA_NO_BPMP
  53. bool "Tegra common options for SoCs without BPMP"
  54. select TEGRA_CAR
  55. select TEGRA_CAR_CLOCK
  56. select TEGRA_CAR_RESET
  57. config TEGRA_ARMV7_COMMON
  58. bool "Tegra 32-bit common options"
  59. select CPU_V7A
  60. select SPL
  61. select SPL_BOARD_INIT if SPL
  62. select SUPPORT_SPL
  63. select TEGRA_CLKRST
  64. select TEGRA_COMMON
  65. select TEGRA_GPIO
  66. select TEGRA_GP_PADCTRL
  67. select TEGRA_MC
  68. select TEGRA_NO_BPMP
  69. select TEGRA_PINCTRL
  70. select TEGRA_PMC
  71. config TEGRA_ARMV8_COMMON
  72. bool "Tegra 64-bit common options"
  73. select ARM64
  74. select INIT_SP_RELATIVE
  75. select LINUX_KERNEL_IMAGE_HEADER
  76. select POSITION_INDEPENDENT
  77. select TEGRA_COMMON
  78. if TEGRA_ARMV8_COMMON
  79. config LNX_KRNL_IMG_TEXT_OFFSET_BASE
  80. default 0x80000000
  81. endif
  82. choice
  83. prompt "Tegra SoC select"
  84. optional
  85. config TEGRA20
  86. bool "Tegra20 family"
  87. select ARM_ERRATA_716044
  88. select ARM_ERRATA_742230
  89. select ARM_ERRATA_751472
  90. select TEGRA_ARMV7_COMMON
  91. config TEGRA30
  92. bool "Tegra30 family"
  93. select ARM_ERRATA_743622
  94. select ARM_ERRATA_751472
  95. select TEGRA_ARMV7_COMMON
  96. config TEGRA114
  97. bool "Tegra114 family"
  98. select TEGRA_ARMV7_COMMON
  99. config TEGRA124
  100. bool "Tegra124 family"
  101. select TEGRA_ARMV7_COMMON
  102. imply REGMAP
  103. imply SYSCON
  104. config TEGRA210
  105. bool "Tegra210 family"
  106. select TEGRA_ARMV8_COMMON
  107. select TEGRA_CLKRST
  108. select TEGRA_GPIO
  109. select TEGRA_GP_PADCTRL
  110. select TEGRA_MC
  111. select TEGRA_NO_BPMP
  112. select TEGRA_PINCTRL
  113. select TEGRA_PMC
  114. select TEGRA_PMC_SECURE
  115. config TEGRA186
  116. bool "Tegra186 family"
  117. select DM_MAILBOX
  118. select TEGRA186_BPMP
  119. select TEGRA186_CLOCK
  120. select TEGRA186_GPIO
  121. select TEGRA186_RESET
  122. select TEGRA_ARMV8_COMMON
  123. select TEGRA_HSP
  124. select TEGRA_IVC
  125. endchoice
  126. config TEGRA_DISCONNECT_UDC_ON_BOOT
  127. bool "Disconnect USB device mode controller on boot"
  128. depends on CI_UDC
  129. default y
  130. help
  131. When loading U-Boot into RAM over USB protocols using tools such as
  132. tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device
  133. mode controller is initialized and enumerated by the host PC running
  134. the tool. Unfortunately, these tools do not shut down the USB
  135. controller before executing the downloaded code, and so the host PC
  136. does not "de-enumerate" the USB device. This option shuts down the
  137. USB controller when U-Boot boots to avoid leaving a stale USB device
  138. present.
  139. config SYS_MALLOC_F_LEN
  140. default 0x1800
  141. source "arch/arm/mach-tegra/tegra20/Kconfig"
  142. source "arch/arm/mach-tegra/tegra30/Kconfig"
  143. source "arch/arm/mach-tegra/tegra114/Kconfig"
  144. source "arch/arm/mach-tegra/tegra124/Kconfig"
  145. source "arch/arm/mach-tegra/tegra210/Kconfig"
  146. source "arch/arm/mach-tegra/tegra186/Kconfig"
  147. config CMD_ENTERRCM
  148. bool "Enable 'enterrcm' command"
  149. default y
  150. help
  151. Tegra's boot ROM supports a mode whereby code may be downloaded and
  152. flash-programmed over a USB connection. On dev boards, this is
  153. typically entered by holding down a "force recovery" button and
  154. resetting the CPU. However, not all boards have such a button (one
  155. example is the Compulab Trimslice), so a method to enter RCM from
  156. software is useful.
  157. Even on boards other than Trimslice, controlling this over a UART
  158. may be useful, e.g. to allow simple remote control without the need
  159. for mechanical button actuators, or hooking up relays/... to the
  160. button.
  161. endif