Kconfig 3.7 KB

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