if ARCH_TEGRA config SPL_GPIO default y config SPL_LIBCOMMON_SUPPORT default y config SPL_LIBGENERIC_SUPPORT default y config SPL_SERIAL default y config TEGRA_CLKRST bool config TEGRA_GP_PADCTRL bool config TEGRA_IVC bool "Tegra IVC protocol" help IVC (Inter-VM Communication) protocol is a Tegra-specific IPC (Inter Processor Communication) framework. Within the context of U-Boot, it is typically used for communication between the main CPU and various auxiliary processors. config TEGRA_MC bool config TEGRA_PINCTRL bool config TEGRA_PMC bool config TEGRA_PMC_SECURE bool depends on TEGRA_PMC config TEGRA_COMMON bool "Tegra common options" select BOARD_EARLY_INIT_F select CLK select DM select DM_GPIO select DM_I2C select DM_KEYBOARD select DM_MMC select DM_PWM select DM_RESET select DM_SERIAL select DM_SPI select DM_SPI_FLASH select MISC select OF_CONTROL select SPI imply CMD_DM imply CRC32_VERIFY config TEGRA_NO_BPMP bool "Tegra common options for SoCs without BPMP" select TEGRA_CAR select TEGRA_CAR_CLOCK select TEGRA_CAR_RESET config TEGRA_ARMV7_COMMON bool "Tegra 32-bit common options" select BINMAN select CPU_V7A select SPL select SPL_BOARD_INIT if SPL select SPL_SKIP_LOWLEVEL_INIT_ONLY if SPL select SUPPORT_SPL select TEGRA_CLKRST select TEGRA_COMMON select TEGRA_GPIO select TEGRA_GP_PADCTRL select TEGRA_MC select TEGRA_NO_BPMP select TEGRA_PINCTRL select TEGRA_PMC config TEGRA_ARMV8_COMMON bool "Tegra 64-bit common options" select ARM64 select INIT_SP_RELATIVE select LINUX_KERNEL_IMAGE_HEADER select POSITION_INDEPENDENT select TEGRA_COMMON if TEGRA_ARMV8_COMMON config LNX_KRNL_IMG_TEXT_OFFSET_BASE default 0x80000000 endif choice prompt "Tegra SoC select" optional config TEGRA20 bool "Tegra20 family" select ARM_ERRATA_716044 select ARM_ERRATA_742230 select ARM_ERRATA_751472 select TEGRA_ARMV7_COMMON config TEGRA30 bool "Tegra30 family" select ARM_ERRATA_743622 select ARM_ERRATA_751472 select TEGRA_ARMV7_COMMON config TEGRA114 bool "Tegra114 family" select TEGRA_ARMV7_COMMON config TEGRA124 bool "Tegra124 family" select TEGRA_ARMV7_COMMON imply REGMAP imply SYSCON config TEGRA210 bool "Tegra210 family" select GICV2 select TEGRA_ARMV8_COMMON select TEGRA_CLKRST select TEGRA_GPIO select TEGRA_GP_PADCTRL select TEGRA_MC select TEGRA_NO_BPMP select TEGRA_PINCTRL select TEGRA_PMC select TEGRA_PMC_SECURE config TEGRA186 bool "Tegra186 family" select DM_MAILBOX select GICV2 select TEGRA186_BPMP select TEGRA186_CLOCK select TEGRA186_GPIO select TEGRA186_RESET select TEGRA_ARMV8_COMMON select TEGRA_HSP select TEGRA_IVC endchoice config TEGRA_DISCONNECT_UDC_ON_BOOT bool "Disconnect USB device mode controller on boot" depends on CI_UDC default y help When loading U-Boot into RAM over USB protocols using tools such as tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device mode controller is initialized and enumerated by the host PC running the tool. Unfortunately, these tools do not shut down the USB controller before executing the downloaded code, and so the host PC does not "de-enumerate" the USB device. This option shuts down the USB controller when U-Boot boots to avoid leaving a stale USB device present. config CI_UDC_HAS_HOSTPC def_bool y depends on CI_UDC && !TEGRA20 config SYS_MALLOC_F_LEN default 0x1800 source "arch/arm/mach-tegra/tegra20/Kconfig" source "arch/arm/mach-tegra/tegra30/Kconfig" source "arch/arm/mach-tegra/tegra114/Kconfig" source "arch/arm/mach-tegra/tegra124/Kconfig" source "arch/arm/mach-tegra/tegra210/Kconfig" source "arch/arm/mach-tegra/tegra186/Kconfig" config TEGRA_SPI def_bool y depends on TEGRA20_SFLASH || TEGRA20_SLINK || TEGRA114_SPI choice prompt "UART to use for console" depends on TEGRA_PINCTRL default TEGRA_ENABLE_UARTA config TEGRA_ENABLE_UARTA bool "Use UARTA" config TEGRA_ENABLE_UARTB bool "Use UARTB" config TEGRA_ENABLE_UARTC bool "Use UARTC" config TEGRA_ENABLE_UARTD bool "Use UARTD" endchoice config TEGRA_GPU bool "Enable setting up the GPU" depends on TEGRA124 || TEGRA210 config CMD_ENTERRCM bool "Enable 'enterrcm' command" default y help Tegra's boot ROM supports a mode whereby code may be downloaded and flash-programmed over a USB connection. On dev boards, this is typically entered by holding down a "force recovery" button and resetting the CPU. However, not all boards have such a button (one example is the Compulab Trimslice), so a method to enter RCM from software is useful. Even on boards other than Trimslice, controlling this over a UART may be useful, e.g. to allow simple remote control without the need for mechanical button actuators, or hooking up relays/... to the button. endif