| 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 |