1if 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 BINMAN 45 select BOARD_EARLY_INIT_F 46 select CLK 47 select DM 48 select DM_ETH 49 select DM_GPIO 50 select DM_I2C 51 select DM_KEYBOARD 52 select DM_MMC 53 select DM_PWM 54 select DM_RESET 55 select DM_SERIAL 56 select DM_SPI 57 select DM_SPI_FLASH 58 select MISC 59 select OF_CONTROL 60 select SPI 61 select VIDCONSOLE_AS_LCD if DM_VIDEO 62 imply CMD_DM 63 imply CRC32_VERIFY 64 65config TEGRA_NO_BPMP 66 bool "Tegra common options for SoCs without BPMP" 67 select TEGRA_CAR 68 select TEGRA_CAR_CLOCK 69 select TEGRA_CAR_RESET 70 71config TEGRA_ARMV7_COMMON 72 bool "Tegra 32-bit common options" 73 select CPU_V7A 74 select SPL 75 select SPL_BOARD_INIT 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 TEGRA_ARMV8_COMMON 129 select TEGRA_CLKRST 130 select TEGRA_GPIO 131 select TEGRA_GP_PADCTRL 132 select TEGRA_MC 133 select TEGRA_NO_BPMP 134 select TEGRA_PINCTRL 135 select TEGRA_PMC 136 select TEGRA_PMC_SECURE 137 138config TEGRA186 139 bool "Tegra186 family" 140 select DM_MAILBOX 141 select TEGRA186_BPMP 142 select TEGRA186_CLOCK 143 select TEGRA186_GPIO 144 select TEGRA186_RESET 145 select TEGRA_ARMV8_COMMON 146 select TEGRA_HSP 147 select TEGRA_IVC 148 149endchoice 150 151config TEGRA_DISCONNECT_UDC_ON_BOOT 152 bool "Disconnect USB device mode controller on boot" 153 depends on CI_UDC 154 default y 155 help 156 When loading U-Boot into RAM over USB protocols using tools such as 157 tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device 158 mode controller is initialized and enumerated by the host PC running 159 the tool. Unfortunately, these tools do not shut down the USB 160 controller before executing the downloaded code, and so the host PC 161 does not "de-enumerate" the USB device. This option shuts down the 162 USB controller when U-Boot boots to avoid leaving a stale USB device 163 present. 164 165config SYS_MALLOC_F_LEN 166 default 0x1800 167 168source "arch/arm/mach-tegra/tegra20/Kconfig" 169source "arch/arm/mach-tegra/tegra30/Kconfig" 170source "arch/arm/mach-tegra/tegra114/Kconfig" 171source "arch/arm/mach-tegra/tegra124/Kconfig" 172source "arch/arm/mach-tegra/tegra210/Kconfig" 173source "arch/arm/mach-tegra/tegra186/Kconfig" 174 175config CMD_ENTERRCM 176 bool "Enable 'enterrcm' command" 177 default y 178 help 179 Tegra's boot ROM supports a mode whereby code may be downloaded and 180 flash-programmed over a USB connection. On dev boards, this is 181 typically entered by holding down a "force recovery" button and 182 resetting the CPU. However, not all boards have such a button (one 183 example is the Compulab Trimslice), so a method to enter RCM from 184 software is useful. 185 186 Even on boards other than Trimslice, controlling this over a UART 187 may be useful, e.g. to allow simple remote control without the need 188 for mechanical button actuators, or hooking up relays/... to the 189 button. 190 191endif 192