123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- if ARCH_TEGRA
- config SPL_GPIO_SUPPORT
- default y
- config SPL_LIBCOMMON_SUPPORT
- default y
- config SPL_LIBGENERIC_SUPPORT
- default y
- config SPL_SERIAL_SUPPORT
- 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 BINMAN
- select BOARD_EARLY_INIT_F
- select CLK
- select DM
- select DM_ETH
- 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 CPU_V7A
- select SPL
- select SPL_BOARD_INIT 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 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 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 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 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
|