Kconfig 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  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. imply CMD_DM
  50. imply CRC32_VERIFY
  51. config TEGRA_NO_BPMP
  52. bool "Tegra common options for SoCs without BPMP"
  53. select TEGRA_CAR
  54. select TEGRA_CAR_CLOCK
  55. select TEGRA_CAR_RESET
  56. config TEGRA_ARMV7_COMMON
  57. bool "Tegra 32-bit common options"
  58. select CPU_V7A
  59. select SPL
  60. select SPL_BOARD_INIT if SPL
  61. select SUPPORT_SPL
  62. select TEGRA_CLKRST
  63. select TEGRA_COMMON
  64. select TEGRA_GPIO
  65. select TEGRA_GP_PADCTRL
  66. select TEGRA_MC
  67. select TEGRA_NO_BPMP
  68. select TEGRA_PINCTRL
  69. select TEGRA_PMC
  70. config TEGRA_ARMV8_COMMON
  71. bool "Tegra 64-bit common options"
  72. select ARM64
  73. select INIT_SP_RELATIVE
  74. select LINUX_KERNEL_IMAGE_HEADER
  75. select POSITION_INDEPENDENT
  76. select TEGRA_COMMON
  77. if TEGRA_ARMV8_COMMON
  78. config LNX_KRNL_IMG_TEXT_OFFSET_BASE
  79. default 0x80000000
  80. endif
  81. choice
  82. prompt "Tegra SoC select"
  83. optional
  84. config TEGRA20
  85. bool "Tegra20 family"
  86. select ARM_ERRATA_716044
  87. select ARM_ERRATA_742230
  88. select ARM_ERRATA_751472
  89. select TEGRA_ARMV7_COMMON
  90. config TEGRA30
  91. bool "Tegra30 family"
  92. select ARM_ERRATA_743622
  93. select ARM_ERRATA_751472
  94. select TEGRA_ARMV7_COMMON
  95. config TEGRA114
  96. bool "Tegra114 family"
  97. select TEGRA_ARMV7_COMMON
  98. config TEGRA124
  99. bool "Tegra124 family"
  100. select TEGRA_ARMV7_COMMON
  101. imply REGMAP
  102. imply SYSCON
  103. config TEGRA210
  104. bool "Tegra210 family"
  105. select TEGRA_ARMV8_COMMON
  106. select TEGRA_CLKRST
  107. select TEGRA_GPIO
  108. select TEGRA_GP_PADCTRL
  109. select TEGRA_MC
  110. select TEGRA_NO_BPMP
  111. select TEGRA_PINCTRL
  112. select TEGRA_PMC
  113. select TEGRA_PMC_SECURE
  114. config TEGRA186
  115. bool "Tegra186 family"
  116. select DM_MAILBOX
  117. select TEGRA186_BPMP
  118. select TEGRA186_CLOCK
  119. select TEGRA186_GPIO
  120. select TEGRA186_RESET
  121. select TEGRA_ARMV8_COMMON
  122. select TEGRA_HSP
  123. select TEGRA_IVC
  124. endchoice
  125. config TEGRA_DISCONNECT_UDC_ON_BOOT
  126. bool "Disconnect USB device mode controller on boot"
  127. depends on CI_UDC
  128. default y
  129. help
  130. When loading U-Boot into RAM over USB protocols using tools such as
  131. tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device
  132. mode controller is initialized and enumerated by the host PC running
  133. the tool. Unfortunately, these tools do not shut down the USB
  134. controller before executing the downloaded code, and so the host PC
  135. does not "de-enumerate" the USB device. This option shuts down the
  136. USB controller when U-Boot boots to avoid leaving a stale USB device
  137. present.
  138. config SYS_MALLOC_F_LEN
  139. default 0x1800
  140. source "arch/arm/mach-tegra/tegra20/Kconfig"
  141. source "arch/arm/mach-tegra/tegra30/Kconfig"
  142. source "arch/arm/mach-tegra/tegra114/Kconfig"
  143. source "arch/arm/mach-tegra/tegra124/Kconfig"
  144. source "arch/arm/mach-tegra/tegra210/Kconfig"
  145. source "arch/arm/mach-tegra/tegra186/Kconfig"
  146. config CMD_ENTERRCM
  147. bool "Enable 'enterrcm' command"
  148. default y
  149. help
  150. Tegra's boot ROM supports a mode whereby code may be downloaded and
  151. flash-programmed over a USB connection. On dev boards, this is
  152. typically entered by holding down a "force recovery" button and
  153. resetting the CPU. However, not all boards have such a button (one
  154. example is the Compulab Trimslice), so a method to enter RCM from
  155. software is useful.
  156. Even on boards other than Trimslice, controlling this over a UART
  157. may be useful, e.g. to allow simple remote control without the need
  158. for mechanical button actuators, or hooking up relays/... to the
  159. button.
  160. endif