1if ARCH_TEGRA 2 3config SPL_GPIO 4 default y 5 6config SPL_LIBCOMMON_SUPPORT 7 default y 8 9config SPL_LIBGENERIC_SUPPORT 10 default y 11 12config SPL_SERIAL 13 default y 14 15config TEGRA_CLKRST 16 bool 17 18config TEGRA_CRYPTO 19 bool "Tegra AES128 crypto module" 20 select AES 21 default n 22 23config TEGRA_GP_PADCTRL 24 bool 25 26config TEGRA_IVC 27 bool "Tegra IVC protocol" 28 help 29 IVC (Inter-VM Communication) protocol is a Tegra-specific IPC 30 (Inter Processor Communication) framework. Within the context of 31 U-Boot, it is typically used for communication between the main CPU 32 and various auxiliary processors. 33 34config TEGRA_MC 35 bool 36 37config TEGRA_PINCTRL 38 bool 39 40config TEGRA_PMC 41 bool 42 43config TEGRA_PMC_SECURE 44 bool 45 depends on TEGRA_PMC 46 47config TEGRA_COMMON 48 bool "Tegra common options" 49 select BOARD_EARLY_INIT_F 50 select CLK 51 select DM 52 select DM_GPIO 53 select DM_I2C 54 select DM_KEYBOARD 55 select DM_MMC 56 select DM_PWM 57 select DM_RESET 58 select DM_SERIAL 59 select DM_SPI 60 select DM_SPI_FLASH 61 select MISC 62 select OF_CONTROL 63 select SPI 64 imply CMD_DM 65 imply CRC32_VERIFY 66 67config TEGRA_NO_BPMP 68 bool "Tegra common options for SoCs without BPMP" 69 select TEGRA_CAR 70 select TEGRA_CAR_CLOCK 71 select TEGRA_CAR_RESET 72 73config TEGRA_ARMV7_COMMON 74 bool "Tegra 32-bit common options" 75 select BINMAN 76 select CPU_V7A 77 select SPL 78 select SPL_BOARD_INIT if SPL 79 select SPL_SKIP_LOWLEVEL_INIT_ONLY if SPL 80 select SUPPORT_SPL 81 select TIMER 82 select TEGRA_CLKRST 83 select TEGRA_COMMON 84 select TEGRA_GPIO 85 select TEGRA_GP_PADCTRL 86 select TEGRA_MC 87 select TEGRA_NO_BPMP 88 select TEGRA_PINCTRL 89 select TEGRA_PMC 90 select TEGRA_TIMER 91 92config TEGRA_ARMV8_COMMON 93 bool "Tegra 64-bit common options" 94 select ARM64 95 select INIT_SP_RELATIVE 96 select LINUX_KERNEL_IMAGE_HEADER 97 select POSITION_INDEPENDENT 98 select TEGRA_COMMON 99 100if TEGRA_ARMV8_COMMON 101config LNX_KRNL_IMG_TEXT_OFFSET_BASE 102 default 0x80000000 103endif 104 105choice 106 prompt "Tegra SoC select" 107 optional 108 109config TEGRA20 110 bool "Tegra20 family" 111 select ARM_ERRATA_716044 112 select ARM_ERRATA_742230 113 select ARM_ERRATA_751472 114 select TEGRA_ARMV7_COMMON 115 116config TEGRA30 117 bool "Tegra30 family" 118 select ARM_ERRATA_743622 119 select ARM_ERRATA_751472 120 select TEGRA_ARMV7_COMMON 121 122config TEGRA114 123 bool "Tegra114 family" 124 select TEGRA_ARMV7_COMMON 125 126config TEGRA124 127 bool "Tegra124 family" 128 select TEGRA_ARMV7_COMMON 129 imply REGMAP 130 imply SYSCON 131 132config TEGRA210 133 bool "Tegra210 family" 134 select GICV2 135 select TIMER 136 select TEGRA_ARMV8_COMMON 137 select TEGRA_CLKRST 138 select TEGRA_GPIO 139 select TEGRA_GP_PADCTRL 140 select TEGRA_MC 141 select TEGRA_NO_BPMP 142 select TEGRA_PINCTRL 143 select TEGRA_PMC 144 select TEGRA_PMC_SECURE 145 select TEGRA_TIMER 146 147config TEGRA186 148 bool "Tegra186 family" 149 select DM_MAILBOX 150 select GICV2 151 select TEGRA186_BPMP 152 select TEGRA186_CLOCK 153 select TEGRA186_GPIO 154 select TEGRA186_RESET 155 select TEGRA_ARMV8_COMMON 156 select TEGRA_HSP 157 select TEGRA_IVC 158 159endchoice 160 161config TEGRA_DISCONNECT_UDC_ON_BOOT 162 bool "Disconnect USB device mode controller on boot" 163 depends on CI_UDC 164 default y 165 help 166 When loading U-Boot into RAM over USB protocols using tools such as 167 tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device 168 mode controller is initialized and enumerated by the host PC running 169 the tool. Unfortunately, these tools do not shut down the USB 170 controller before executing the downloaded code, and so the host PC 171 does not "de-enumerate" the USB device. This option shuts down the 172 USB controller when U-Boot boots to avoid leaving a stale USB device 173 present. 174 175config CI_UDC_HAS_HOSTPC 176 def_bool y 177 depends on CI_UDC && !TEGRA20 178 179config SYS_MALLOC_F_LEN 180 default 0x1800 181 182source "arch/arm/mach-tegra/tegra20/Kconfig" 183source "arch/arm/mach-tegra/tegra30/Kconfig" 184source "arch/arm/mach-tegra/tegra114/Kconfig" 185source "arch/arm/mach-tegra/tegra124/Kconfig" 186source "arch/arm/mach-tegra/tegra210/Kconfig" 187source "arch/arm/mach-tegra/tegra186/Kconfig" 188 189config TEGRA_SPI 190 def_bool y 191 depends on TEGRA20_SFLASH || TEGRA20_SLINK || TEGRA114_SPI 192 193choice 194 prompt "UART to use for console" 195 depends on TEGRA_PINCTRL 196 default TEGRA_ENABLE_UARTA 197 198config TEGRA_ENABLE_UARTA 199 bool "Use UARTA" 200 201config TEGRA_ENABLE_UARTB 202 bool "Use UARTB" 203 204config TEGRA_ENABLE_UARTC 205 bool "Use UARTC" 206 207config TEGRA_ENABLE_UARTD 208 bool "Use UARTD" 209 210endchoice 211 212config TEGRA_GPU 213 bool "Enable setting up the GPU" 214 depends on TEGRA124 || TEGRA210 215 216config CMD_ENTERRCM 217 bool "Enable 'enterrcm' command" 218 default y 219 help 220 Tegra's boot ROM supports a mode whereby code may be downloaded and 221 flash-programmed over a USB connection. On dev boards, this is 222 typically entered by holding down a "force recovery" button and 223 resetting the CPU. However, not all boards have such a button (one 224 example is the Compulab Trimslice), so a method to enter RCM from 225 software is useful. 226 227 Even on boards other than Trimslice, controlling this over a UART 228 may be useful, e.g. to allow simple remote control without the need 229 for mechanical button actuators, or hooking up relays/... to the 230 button. 231 232config CMD_EBTUPDATE 233 bool "Enable 'ebtupdate' command" 234 depends on TEGRA20 || TEGRA30 235 select TEGRA_CRYPTO 236 help 237 Updating u-boot from within u-boot in rather complex or even 238 impossible on production devices. To make it easier procedure of 239 re-cryption was created. If your device was re-crypted choose Y. 240 241endif 242