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