Merge branch 'rmobile' of git://git.denx.de/u-boot-sh
[oweals/u-boot.git] / arch / arm / mach-tegra / Kconfig
index f4affa5512bcf8c5f78a75a8e0c7b020d1674821..940257b5ecfbe724342440cb8e4c6d789da01fb0 100644 (file)
@@ -1,28 +1,59 @@
 if 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_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_COMMON
        bool "Tegra common options"
+       select CLK
        select DM
        select DM_ETH
        select DM_GPIO
        select DM_I2C
        select DM_KEYBOARD
-       select DM_PCI
-       select DM_PCI_COMPAT
+       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 VIDCONSOLE_AS_LCD if DM_VIDEO
+       select BOARD_EARLY_INIT_F
+
+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_V7
        select SPL
+       select SPL_BOARD_INIT if SPL
        select SUPPORT_SPL
        select TEGRA_COMMON
        select TEGRA_GPIO
+       select TEGRA_NO_BPMP
 
 config TEGRA_ARMV8_COMMON
        bool "Tegra 64-bit common options"
@@ -35,10 +66,15 @@ choice
 
 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
@@ -53,13 +89,18 @@ config TEGRA210
        bool "Tegra210 family"
        select TEGRA_GPIO
        select TEGRA_ARMV8_COMMON
+       select TEGRA_NO_BPMP
 
 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
 
@@ -86,4 +127,20 @@ 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