Merge https://gitlab.denx.de/u-boot/custodians/u-boot-mpc85xx
[oweals/u-boot.git] / arch / arm / mach-tegra / Kconfig
index 316feba29d60c3b19b19d0a6f0985480c1338f26..ff9f29f2d5d0070adc59b61d36b87b157137edd8 100644 (file)
@@ -12,6 +12,12 @@ config SPL_LIBGENERIC_SUPPORT
 config SPL_SERIAL_SUPPORT
        default y
 
+config TEGRA_CLKRST
+       bool
+
+config TEGRA_GP_PADCTRL
+       bool
+
 config TEGRA_IVC
        bool "Tegra IVC protocol"
        help
@@ -20,8 +26,23 @@ config TEGRA_IVC
          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
@@ -29,8 +50,6 @@ config TEGRA_COMMON
        select DM_I2C
        select DM_KEYBOARD
        select DM_MMC
-       select DM_PCI
-       select DM_PCI_COMPAT
        select DM_PWM
        select DM_RESET
        select DM_SERIAL
@@ -38,7 +57,10 @@ config TEGRA_COMMON
        select DM_SPI_FLASH
        select MISC
        select OF_CONTROL
+       select SPI
        select VIDCONSOLE_AS_LCD if DM_VIDEO
+       imply CMD_DM
+       imply CRC32_VERIFY
 
 config TEGRA_NO_BPMP
        bool "Tegra common options for SoCs without BPMP"
@@ -48,28 +70,47 @@ config TEGRA_NO_BPMP
 
 config TEGRA_ARMV7_COMMON
        bool "Tegra 32-bit common options"
-       select CPU_V7
+       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
@@ -79,12 +120,20 @@ config TEGRA114
 config TEGRA124
        bool "Tegra124 family"
        select TEGRA_ARMV7_COMMON
+       imply REGMAP
+       imply SYSCON
 
 config TEGRA210
        bool "Tegra210 family"
-       select TEGRA_GPIO
        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"
@@ -101,6 +150,7 @@ 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
@@ -122,4 +172,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