2020-05-06 12:02:41 +00:00
|
|
|
if ARCH_TEGRA
|
2014-08-30 22:10:56 +00:00
|
|
|
|
2021-07-11 03:14:30 +00:00
|
|
|
config SPL_GPIO
|
2016-09-13 05:18:39 +00:00
|
|
|
default y
|
|
|
|
|
2016-09-13 05:18:41 +00:00
|
|
|
config SPL_LIBCOMMON_SUPPORT
|
|
|
|
default y
|
|
|
|
|
2016-09-13 05:18:43 +00:00
|
|
|
config SPL_LIBGENERIC_SUPPORT
|
|
|
|
default y
|
|
|
|
|
2021-08-08 18:20:12 +00:00
|
|
|
config SPL_SERIAL
|
2016-09-13 05:18:56 +00:00
|
|
|
default y
|
|
|
|
|
2019-04-15 09:32:18 +00:00
|
|
|
config TEGRA_CLKRST
|
|
|
|
bool
|
|
|
|
|
2019-04-15 09:32:19 +00:00
|
|
|
config TEGRA_GP_PADCTRL
|
|
|
|
bool
|
|
|
|
|
2016-07-18 18:17:11 +00:00
|
|
|
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.
|
|
|
|
|
2019-04-15 09:32:20 +00:00
|
|
|
config TEGRA_MC
|
|
|
|
bool
|
|
|
|
|
2019-04-15 09:32:21 +00:00
|
|
|
config TEGRA_PINCTRL
|
|
|
|
bool
|
|
|
|
|
2019-04-15 09:32:22 +00:00
|
|
|
config TEGRA_PMC
|
|
|
|
bool
|
|
|
|
|
2019-04-15 09:32:25 +00:00
|
|
|
config TEGRA_PMC_SECURE
|
|
|
|
bool
|
|
|
|
depends on TEGRA_PMC
|
|
|
|
|
2015-11-23 17:32:01 +00:00
|
|
|
config TEGRA_COMMON
|
|
|
|
bool "Tegra common options"
|
2018-07-23 13:55:13 +00:00
|
|
|
select BOARD_EARLY_INIT_F
|
2016-09-13 16:46:00 +00:00
|
|
|
select CLK
|
2015-07-17 15:12:51 +00:00
|
|
|
select DM
|
2015-11-29 20:18:01 +00:00
|
|
|
select DM_ETH
|
2015-07-17 15:12:51 +00:00
|
|
|
select DM_GPIO
|
2015-11-23 17:32:01 +00:00
|
|
|
select DM_I2C
|
2015-10-19 03:17:16 +00:00
|
|
|
select DM_KEYBOARD
|
2016-09-13 16:45:48 +00:00
|
|
|
select DM_MMC
|
2016-01-30 23:38:01 +00:00
|
|
|
select DM_PWM
|
2016-09-13 16:46:00 +00:00
|
|
|
select DM_RESET
|
2015-11-23 17:32:01 +00:00
|
|
|
select DM_SERIAL
|
|
|
|
select DM_SPI
|
|
|
|
select DM_SPI_FLASH
|
2016-09-13 16:46:00 +00:00
|
|
|
select MISC
|
2015-11-23 17:32:01 +00:00
|
|
|
select OF_CONTROL
|
2018-07-23 13:55:13 +00:00
|
|
|
select SPI
|
2018-07-23 13:55:14 +00:00
|
|
|
imply CMD_DM
|
2017-05-19 16:26:58 +00:00
|
|
|
imply CRC32_VERIFY
|
2015-11-23 17:32:01 +00:00
|
|
|
|
2016-09-13 16:46:00 +00:00
|
|
|
config TEGRA_NO_BPMP
|
|
|
|
bool "Tegra common options for SoCs without BPMP"
|
|
|
|
select TEGRA_CAR
|
|
|
|
select TEGRA_CAR_CLOCK
|
|
|
|
select TEGRA_CAR_RESET
|
|
|
|
|
2015-11-23 17:32:01 +00:00
|
|
|
config TEGRA_ARMV7_COMMON
|
|
|
|
bool "Tegra 32-bit common options"
|
2020-07-19 19:56:00 +00:00
|
|
|
select BINMAN
|
2018-04-26 12:51:26 +00:00
|
|
|
select CPU_V7A
|
2015-11-23 17:32:01 +00:00
|
|
|
select SPL
|
2017-05-03 09:13:32 +00:00
|
|
|
select SPL_BOARD_INIT if SPL
|
2021-08-28 01:18:30 +00:00
|
|
|
select SPL_SKIP_LOWLEVEL_INIT_ONLY if SPL
|
2015-11-23 17:32:01 +00:00
|
|
|
select SUPPORT_SPL
|
2019-04-15 09:32:18 +00:00
|
|
|
select TEGRA_CLKRST
|
2015-11-23 17:32:01 +00:00
|
|
|
select TEGRA_COMMON
|
2016-05-12 18:07:41 +00:00
|
|
|
select TEGRA_GPIO
|
2019-04-15 09:32:19 +00:00
|
|
|
select TEGRA_GP_PADCTRL
|
2019-04-15 09:32:20 +00:00
|
|
|
select TEGRA_MC
|
2016-09-13 16:46:00 +00:00
|
|
|
select TEGRA_NO_BPMP
|
2019-04-15 09:32:21 +00:00
|
|
|
select TEGRA_PINCTRL
|
2019-04-15 09:32:22 +00:00
|
|
|
select TEGRA_PMC
|
2015-11-23 17:32:01 +00:00
|
|
|
|
|
|
|
config TEGRA_ARMV8_COMMON
|
|
|
|
bool "Tegra 64-bit common options"
|
|
|
|
select ARM64
|
2019-06-26 04:51:46 +00:00
|
|
|
select INIT_SP_RELATIVE
|
2018-01-03 21:31:52 +00:00
|
|
|
select LINUX_KERNEL_IMAGE_HEADER
|
2019-04-15 09:32:32 +00:00
|
|
|
select POSITION_INDEPENDENT
|
2015-11-23 17:32:01 +00:00
|
|
|
select TEGRA_COMMON
|
2015-07-17 15:12:51 +00:00
|
|
|
|
2018-01-03 21:31:52 +00:00
|
|
|
if TEGRA_ARMV8_COMMON
|
|
|
|
config LNX_KRNL_IMG_TEXT_OFFSET_BASE
|
|
|
|
default 0x80000000
|
|
|
|
endif
|
|
|
|
|
2014-08-30 22:10:56 +00:00
|
|
|
choice
|
|
|
|
prompt "Tegra SoC select"
|
2015-05-12 19:46:23 +00:00
|
|
|
optional
|
2014-08-30 22:10:56 +00:00
|
|
|
|
|
|
|
config TEGRA20
|
|
|
|
bool "Tegra20 family"
|
2017-03-07 12:13:42 +00:00
|
|
|
select ARM_ERRATA_716044
|
|
|
|
select ARM_ERRATA_742230
|
|
|
|
select ARM_ERRATA_751472
|
2015-07-17 15:12:51 +00:00
|
|
|
select TEGRA_ARMV7_COMMON
|
2014-08-30 22:10:56 +00:00
|
|
|
|
|
|
|
config TEGRA30
|
|
|
|
bool "Tegra30 family"
|
2017-03-07 12:13:42 +00:00
|
|
|
select ARM_ERRATA_743622
|
|
|
|
select ARM_ERRATA_751472
|
2015-07-17 15:12:51 +00:00
|
|
|
select TEGRA_ARMV7_COMMON
|
2014-08-30 22:10:56 +00:00
|
|
|
|
|
|
|
config TEGRA114
|
|
|
|
bool "Tegra114 family"
|
2015-07-17 15:12:51 +00:00
|
|
|
select TEGRA_ARMV7_COMMON
|
2014-08-30 22:10:56 +00:00
|
|
|
|
|
|
|
config TEGRA124
|
|
|
|
bool "Tegra124 family"
|
2015-07-17 15:12:51 +00:00
|
|
|
select TEGRA_ARMV7_COMMON
|
2017-07-25 14:29:58 +00:00
|
|
|
imply REGMAP
|
|
|
|
imply SYSCON
|
2014-08-30 22:10:56 +00:00
|
|
|
|
2015-03-04 23:36:00 +00:00
|
|
|
config TEGRA210
|
|
|
|
bool "Tegra210 family"
|
2021-08-19 18:19:39 +00:00
|
|
|
select GICV2
|
2015-11-23 17:32:01 +00:00
|
|
|
select TEGRA_ARMV8_COMMON
|
2019-04-15 09:32:18 +00:00
|
|
|
select TEGRA_CLKRST
|
2018-07-23 13:55:13 +00:00
|
|
|
select TEGRA_GPIO
|
2019-04-15 09:32:19 +00:00
|
|
|
select TEGRA_GP_PADCTRL
|
2019-04-15 09:32:20 +00:00
|
|
|
select TEGRA_MC
|
2016-09-13 16:46:00 +00:00
|
|
|
select TEGRA_NO_BPMP
|
2019-04-15 09:32:21 +00:00
|
|
|
select TEGRA_PINCTRL
|
2019-04-15 09:32:22 +00:00
|
|
|
select TEGRA_PMC
|
2019-04-15 09:32:25 +00:00
|
|
|
select TEGRA_PMC_SECURE
|
2015-03-04 23:36:00 +00:00
|
|
|
|
2016-05-12 19:32:55 +00:00
|
|
|
config TEGRA186
|
|
|
|
bool "Tegra186 family"
|
2016-06-17 15:43:57 +00:00
|
|
|
select DM_MAILBOX
|
2021-08-19 18:19:39 +00:00
|
|
|
select GICV2
|
2016-08-08 15:41:34 +00:00
|
|
|
select TEGRA186_BPMP
|
2016-08-08 17:28:24 +00:00
|
|
|
select TEGRA186_CLOCK
|
2016-05-12 19:32:55 +00:00
|
|
|
select TEGRA186_GPIO
|
2016-08-08 17:28:25 +00:00
|
|
|
select TEGRA186_RESET
|
2016-05-12 19:32:55 +00:00
|
|
|
select TEGRA_ARMV8_COMMON
|
2016-06-17 15:43:57 +00:00
|
|
|
select TEGRA_HSP
|
2016-07-18 18:17:11 +00:00
|
|
|
select TEGRA_IVC
|
2016-05-12 19:32:55 +00:00
|
|
|
|
2014-08-30 22:10:56 +00:00
|
|
|
endchoice
|
|
|
|
|
2016-01-26 17:59:42 +00:00
|
|
|
config TEGRA_DISCONNECT_UDC_ON_BOOT
|
|
|
|
bool "Disconnect USB device mode controller on boot"
|
2019-04-15 09:32:26 +00:00
|
|
|
depends on CI_UDC
|
2016-01-26 17:59:42 +00:00
|
|
|
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.
|
|
|
|
|
2022-03-30 22:07:13 +00:00
|
|
|
config CI_UDC_HAS_HOSTPC
|
|
|
|
def_bool y
|
|
|
|
depends on CI_UDC && !TEGRA20
|
|
|
|
|
2015-02-11 23:32:59 +00:00
|
|
|
config SYS_MALLOC_F_LEN
|
|
|
|
default 0x1800
|
|
|
|
|
2015-02-20 08:04:04 +00:00
|
|
|
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"
|
2015-03-04 23:36:00 +00:00
|
|
|
source "arch/arm/mach-tegra/tegra210/Kconfig"
|
2016-05-12 19:32:55 +00:00
|
|
|
source "arch/arm/mach-tegra/tegra186/Kconfig"
|
2014-08-30 22:10:56 +00:00
|
|
|
|
2017-05-17 09:25:11 +00:00
|
|
|
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.
|
|
|
|
|
2014-08-30 22:10:56 +00:00
|
|
|
endif
|