]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - arch/arm/mach-tegra/Kconfig
drivers/pci/Kconfig: Add PCI
[people/ms/u-boot.git] / arch / arm / mach-tegra / Kconfig
index fccfd79648ac19139c2f6c46db50b5fbdd0b50ff..5bdbc700a4b368d8e2a216601f5c742ea686ef74 100644 (file)
 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_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
+
+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 SUPPORT_SPL
+       select TEGRA_COMMON
+       select TEGRA_GPIO
+       select TEGRA_NO_BPMP
+
+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
+       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
 
-config SYS_MALLOC_F
+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
 
-config USE_PRIVATE_LIBGCC
-       default y
-
-config DM
-       default y
-
-config SPL_DM
-       default y
-
-config DM_SERIAL
-       default y
-
-config DM_SPI
-       default y
-
-config DM_SPI_FLASH
-       default y
-
-config DM_I2C
-       default y
-
-config DM_GPIO
-       default y
-
 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