u-boot/arch/arm/mach-tegra/Kconfig
Stephen Warren c7ba99c8c1 ARM: tegra: add core Tegra186 support
This adds the bare minimum code to support Tegra186, with UART and eMMC
working.

The empty gpio.h is required because <asm/gpio.h> includes it. A future
cleanup round may be able to solve this for all Tegra generations at once.

mach-tegra/Makefile is adjusted not to compile anything for Tegra186, but
instead to defer everything to mach-tegra/tegra186/Makefile. This allows
the SoC code to pick-and-choose which of the C files in the "common"
mach-tegra/ directory to compile in based on the SoC's needs. Most of the
code is not valid for Tegra186, and this approach removes the need for
mach-tegra/Makefile to contain many SoC-specific ifdefs. This approach
may be applied to all other Tegra SoCs in a future cleanup round.

board186.c is introduced to replace board.c and board2.c. These files
currently contain a slew of SoC- and board-specific code that is not
valid for Tegra186. This approach avoids adding yet more ifdefs to those
files. A future cleanup round may refactor most of board*.c into board-/
SoC-specific functions files thus allowing the top-level functions like
board_init_early_f to be shared again.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
2016-05-31 11:22:59 -07:00

87 lines
1.9 KiB
Text

if TEGRA
config TEGRA_COMMON
bool "Tegra common options"
select DM
select DM_ETH
select DM_GPIO
select DM_I2C
select DM_KEYBOARD
select DM_PCI
select DM_PCI_COMPAT
select DM_PWM
select DM_SERIAL
select DM_SPI
select DM_SPI_FLASH
select OF_CONTROL
select VIDCONSOLE_AS_LCD if DM_VIDEO
config TEGRA_ARMV7_COMMON
bool "Tegra 32-bit common options"
select CPU_V7
select SPL
select SUPPORT_SPL
select TEGRA_COMMON
select TEGRA_GPIO
config TEGRA_ARMV8_COMMON
bool "Tegra 64-bit common options"
select ARM64
select TEGRA_COMMON
choice
prompt "Tegra SoC select"
optional
config TEGRA20
bool "Tegra20 family"
select TEGRA_ARMV7_COMMON
config TEGRA30
bool "Tegra30 family"
select TEGRA_ARMV7_COMMON
config TEGRA114
bool "Tegra114 family"
select TEGRA_ARMV7_COMMON
config TEGRA124
bool "Tegra124 family"
select TEGRA_ARMV7_COMMON
config TEGRA210
bool "Tegra210 family"
select TEGRA_GPIO
select TEGRA_ARMV8_COMMON
config TEGRA186
bool "Tegra186 family"
select TEGRA186_GPIO
select TEGRA_ARMV8_COMMON
endchoice
config TEGRA_DISCONNECT_UDC_ON_BOOT
bool "Disconnect USB device mode controller on boot"
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"
endif