Home | History | Annotate | Download | only in mach-tegra
      1 if TEGRA
      2 
      3 config SPL_GPIO_SUPPORT
      4 	default y
      5 
      6 config SPL_LIBCOMMON_SUPPORT
      7 	default y
      8 
      9 config SPL_LIBGENERIC_SUPPORT
     10 	default y
     11 
     12 config SPL_SERIAL_SUPPORT
     13 	default y
     14 
     15 config TEGRA_IVC
     16 	bool "Tegra IVC protocol"
     17 	help
     18 	  IVC (Inter-VM Communication) protocol is a Tegra-specific IPC
     19 	  (Inter Processor Communication) framework. Within the context of
     20 	  U-Boot, it is typically used for communication between the main CPU
     21 	  and various auxiliary processors.
     22 
     23 config TEGRA_COMMON
     24 	bool "Tegra common options"
     25 	select CLK
     26 	select DM
     27 	select DM_ETH
     28 	select DM_GPIO
     29 	select DM_I2C
     30 	select DM_KEYBOARD
     31 	select DM_MMC
     32 	select DM_PWM
     33 	select DM_RESET
     34 	select DM_SERIAL
     35 	select DM_SPI
     36 	select DM_SPI_FLASH
     37 	select MISC
     38 	select SPI
     39 	select OF_CONTROL
     40 	select VIDCONSOLE_AS_LCD if DM_VIDEO
     41 	select BOARD_EARLY_INIT_F
     42 	select BINMAN
     43 	imply CRC32_VERIFY
     44 
     45 config TEGRA_NO_BPMP
     46 	bool "Tegra common options for SoCs without BPMP"
     47 	select TEGRA_CAR
     48 	select TEGRA_CAR_CLOCK
     49 	select TEGRA_CAR_RESET
     50 
     51 config TEGRA_ARMV7_COMMON
     52 	bool "Tegra 32-bit common options"
     53 	select CPU_V7A
     54 	select SPL
     55 	select SPL_BOARD_INIT if SPL
     56 	select SUPPORT_SPL
     57 	select TEGRA_COMMON
     58 	select TEGRA_GPIO
     59 	select TEGRA_NO_BPMP
     60 
     61 config TEGRA_ARMV8_COMMON
     62 	bool "Tegra 64-bit common options"
     63 	select ARM64
     64 	select LINUX_KERNEL_IMAGE_HEADER
     65 	select TEGRA_COMMON
     66 
     67 if TEGRA_ARMV8_COMMON
     68 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
     69 	default 0x80000000
     70 endif
     71 
     72 choice
     73 	prompt "Tegra SoC select"
     74 	optional
     75 
     76 config TEGRA20
     77 	bool "Tegra20 family"
     78 	select ARM_ERRATA_716044
     79 	select ARM_ERRATA_742230
     80 	select ARM_ERRATA_751472
     81 	select TEGRA_ARMV7_COMMON
     82 
     83 config TEGRA30
     84 	bool "Tegra30 family"
     85 	select ARM_ERRATA_743622
     86 	select ARM_ERRATA_751472
     87 	select TEGRA_ARMV7_COMMON
     88 
     89 config TEGRA114
     90 	bool "Tegra114 family"
     91 	select TEGRA_ARMV7_COMMON
     92 
     93 config TEGRA124
     94 	bool "Tegra124 family"
     95 	select TEGRA_ARMV7_COMMON
     96 	imply REGMAP
     97 	imply SYSCON
     98 
     99 config TEGRA210
    100 	bool "Tegra210 family"
    101 	select TEGRA_GPIO
    102 	select TEGRA_ARMV8_COMMON
    103 	select TEGRA_NO_BPMP
    104 
    105 config TEGRA186
    106 	bool "Tegra186 family"
    107 	select DM_MAILBOX
    108 	select TEGRA186_BPMP
    109 	select TEGRA186_CLOCK
    110 	select TEGRA186_GPIO
    111 	select TEGRA186_RESET
    112 	select TEGRA_ARMV8_COMMON
    113 	select TEGRA_HSP
    114 	select TEGRA_IVC
    115 
    116 endchoice
    117 
    118 config TEGRA_DISCONNECT_UDC_ON_BOOT
    119 	bool "Disconnect USB device mode controller on boot"
    120 	default y
    121 	help
    122 	  When loading U-Boot into RAM over USB protocols using tools such as
    123 	  tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device
    124 	  mode controller is initialized and enumerated by the host PC running
    125 	  the tool. Unfortunately, these tools do not shut down the USB
    126 	  controller before executing the downloaded code, and so the host PC
    127 	  does not "de-enumerate" the USB device. This option shuts down the
    128 	  USB controller when U-Boot boots to avoid leaving a stale USB device
    129 	  present.
    130 
    131 config SYS_MALLOC_F_LEN
    132 	default 0x1800
    133 
    134 source "arch/arm/mach-tegra/tegra20/Kconfig"
    135 source "arch/arm/mach-tegra/tegra30/Kconfig"
    136 source "arch/arm/mach-tegra/tegra114/Kconfig"
    137 source "arch/arm/mach-tegra/tegra124/Kconfig"
    138 source "arch/arm/mach-tegra/tegra210/Kconfig"
    139 source "arch/arm/mach-tegra/tegra186/Kconfig"
    140 
    141 config CMD_ENTERRCM
    142 	bool "Enable 'enterrcm' command"
    143 	default y
    144 	help
    145 	  Tegra's boot ROM supports a mode whereby code may be downloaded and
    146 	  flash-programmed over a USB connection. On dev boards, this is
    147 	  typically entered by holding down a "force recovery" button and
    148 	  resetting the CPU. However, not all boards have such a button (one
    149 	  example is the Compulab Trimslice), so a method to enter RCM from
    150 	  software is useful.
    151 
    152 	  Even on boards other than Trimslice, controlling this over a UART
    153 	  may be useful, e.g. to allow simple remote control without the need
    154 	  for mechanical button actuators, or hooking up relays/... to the
    155 	  button.
    156 
    157 endif
    158