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