xref: /openbmc/u-boot/arch/arm/mach-tegra/Kconfig (revision 5ed063d10f647b7cdbd048c8acdf7d030f1a94e6)
109f455dcSMasahiro Yamadaif TEGRA
209f455dcSMasahiro Yamada
353b5bf3cSSimon Glassconfig SPL_GPIO_SUPPORT
453b5bf3cSSimon Glass	default y
553b5bf3cSSimon Glass
677d2f7f5SSimon Glassconfig SPL_LIBCOMMON_SUPPORT
777d2f7f5SSimon Glass	default y
877d2f7f5SSimon Glass
9cc4288efSSimon Glassconfig SPL_LIBGENERIC_SUPPORT
10cc4288efSSimon Glass	default y
11cc4288efSSimon Glass
12e00f76ceSSimon Glassconfig SPL_SERIAL_SUPPORT
13e00f76ceSSimon Glass	default y
14e00f76ceSSimon Glass
1549626ea8SStephen Warrenconfig TEGRA_IVC
1649626ea8SStephen Warren	bool "Tegra IVC protocol"
1749626ea8SStephen Warren	help
1849626ea8SStephen Warren	  IVC (Inter-VM Communication) protocol is a Tegra-specific IPC
1949626ea8SStephen Warren	  (Inter Processor Communication) framework. Within the context of
2049626ea8SStephen Warren	  U-Boot, it is typically used for communication between the main CPU
2149626ea8SStephen Warren	  and various auxiliary processors.
2249626ea8SStephen Warren
2315bcc62dSStephen Warrenconfig TEGRA_COMMON
2415bcc62dSStephen Warren	bool "Tegra common options"
25*5ed063d1SMichal Simek	select BINMAN
26*5ed063d1SMichal Simek	select BOARD_EARLY_INIT_F
27140a9eafSStephen Warren	select CLK
2856079eccSTom Warren	select DM
2996350f72SSimon Glass	select DM_ETH
3056079eccSTom Warren	select DM_GPIO
3115bcc62dSStephen Warren	select DM_I2C
32f77f5e9bSSimon Glass	select DM_KEYBOARD
336a474db4STom Warren	select DM_MMC
3491c08afeSSimon Glass	select DM_PWM
35140a9eafSStephen Warren	select DM_RESET
3615bcc62dSStephen Warren	select DM_SERIAL
3715bcc62dSStephen Warren	select DM_SPI
3815bcc62dSStephen Warren	select DM_SPI_FLASH
39140a9eafSStephen Warren	select MISC
4015bcc62dSStephen Warren	select OF_CONTROL
41*5ed063d1SMichal Simek	select SPI
42d6ef8a61SSimon Glass	select VIDCONSOLE_AS_LCD if DM_VIDEO
43221a949eSDaniel Thompson	imply CRC32_VERIFY
4415bcc62dSStephen Warren
45140a9eafSStephen Warrenconfig TEGRA_NO_BPMP
46140a9eafSStephen Warren	bool "Tegra common options for SoCs without BPMP"
47140a9eafSStephen Warren	select TEGRA_CAR
48140a9eafSStephen Warren	select TEGRA_CAR_CLOCK
49140a9eafSStephen Warren	select TEGRA_CAR_RESET
50140a9eafSStephen Warren
5115bcc62dSStephen Warrenconfig TEGRA_ARMV7_COMMON
5215bcc62dSStephen Warren	bool "Tegra 32-bit common options"
53acf15001SLokesh Vutla	select CPU_V7A
5415bcc62dSStephen Warren	select SPL
550680f1b1SLey Foon Tan	select SPL_BOARD_INIT if SPL
5615bcc62dSStephen Warren	select SUPPORT_SPL
5715bcc62dSStephen Warren	select TEGRA_COMMON
58601800beSStephen Warren	select TEGRA_GPIO
59140a9eafSStephen Warren	select TEGRA_NO_BPMP
6015bcc62dSStephen Warren
6115bcc62dSStephen Warrenconfig TEGRA_ARMV8_COMMON
6215bcc62dSStephen Warren	bool "Tegra 64-bit common options"
6315bcc62dSStephen Warren	select ARM64
64ddecaaf3SStephen Warren	select LINUX_KERNEL_IMAGE_HEADER
6515bcc62dSStephen Warren	select TEGRA_COMMON
6656079eccSTom Warren
67ddecaaf3SStephen Warrenif TEGRA_ARMV8_COMMON
68ddecaaf3SStephen Warrenconfig LNX_KRNL_IMG_TEXT_OFFSET_BASE
69ddecaaf3SStephen Warren	default 0x80000000
70ddecaaf3SStephen Warrenendif
71ddecaaf3SStephen Warren
7209f455dcSMasahiro Yamadachoice
7309f455dcSMasahiro Yamada	prompt "Tegra SoC select"
74a26cd049SJoe Hershberger	optional
7509f455dcSMasahiro Yamada
7609f455dcSMasahiro Yamadaconfig TEGRA20
7709f455dcSMasahiro Yamada	bool "Tegra20 family"
788dda2e2fSTom Rini	select ARM_ERRATA_716044
798dda2e2fSTom Rini	select ARM_ERRATA_742230
808dda2e2fSTom Rini	select ARM_ERRATA_751472
8156079eccSTom Warren	select TEGRA_ARMV7_COMMON
8209f455dcSMasahiro Yamada
8309f455dcSMasahiro Yamadaconfig TEGRA30
8409f455dcSMasahiro Yamada	bool "Tegra30 family"
858dda2e2fSTom Rini	select ARM_ERRATA_743622
868dda2e2fSTom Rini	select ARM_ERRATA_751472
8756079eccSTom Warren	select TEGRA_ARMV7_COMMON
8809f455dcSMasahiro Yamada
8909f455dcSMasahiro Yamadaconfig TEGRA114
9009f455dcSMasahiro Yamada	bool "Tegra114 family"
9156079eccSTom Warren	select TEGRA_ARMV7_COMMON
9209f455dcSMasahiro Yamada
9309f455dcSMasahiro Yamadaconfig TEGRA124
9409f455dcSMasahiro Yamada	bool "Tegra124 family"
9556079eccSTom Warren	select TEGRA_ARMV7_COMMON
9666de3eeeSSimon Glass	imply REGMAP
9766de3eeeSSimon Glass	imply SYSCON
9809f455dcSMasahiro Yamada
997aaa5a60STom Warrenconfig TEGRA210
1007aaa5a60STom Warren	bool "Tegra210 family"
10115bcc62dSStephen Warren	select TEGRA_ARMV8_COMMON
102*5ed063d1SMichal Simek	select TEGRA_GPIO
103140a9eafSStephen Warren	select TEGRA_NO_BPMP
1047aaa5a60STom Warren
105c7ba99c8SStephen Warrenconfig TEGRA186
106c7ba99c8SStephen Warren	bool "Tegra186 family"
1070f67e239SStephen Warren	select DM_MAILBOX
10873dd5c4cSStephen Warren	select TEGRA186_BPMP
109d9fd7008SStephen Warren	select TEGRA186_CLOCK
110c7ba99c8SStephen Warren	select TEGRA186_GPIO
1114dd99d14SStephen Warren	select TEGRA186_RESET
112c7ba99c8SStephen Warren	select TEGRA_ARMV8_COMMON
1130f67e239SStephen Warren	select TEGRA_HSP
11449626ea8SStephen Warren	select TEGRA_IVC
115c7ba99c8SStephen Warren
11609f455dcSMasahiro Yamadaendchoice
11709f455dcSMasahiro Yamada
118dd8204deSStephen Warrenconfig TEGRA_DISCONNECT_UDC_ON_BOOT
119dd8204deSStephen Warren	bool "Disconnect USB device mode controller on boot"
120dd8204deSStephen Warren	default y
121dd8204deSStephen Warren	help
122dd8204deSStephen Warren	  When loading U-Boot into RAM over USB protocols using tools such as
123dd8204deSStephen Warren	  tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device
124dd8204deSStephen Warren	  mode controller is initialized and enumerated by the host PC running
125dd8204deSStephen Warren	  the tool. Unfortunately, these tools do not shut down the USB
126dd8204deSStephen Warren	  controller before executing the downloaded code, and so the host PC
127dd8204deSStephen Warren	  does not "de-enumerate" the USB device. This option shuts down the
128dd8204deSStephen Warren	  USB controller when U-Boot boots to avoid leaving a stale USB device
129dd8204deSStephen Warren	  present.
130dd8204deSStephen Warren
13109f455dcSMasahiro Yamadaconfig SYS_MALLOC_F_LEN
13209f455dcSMasahiro Yamada	default 0x1800
13309f455dcSMasahiro Yamada
13409f455dcSMasahiro Yamadasource "arch/arm/mach-tegra/tegra20/Kconfig"
13509f455dcSMasahiro Yamadasource "arch/arm/mach-tegra/tegra30/Kconfig"
13609f455dcSMasahiro Yamadasource "arch/arm/mach-tegra/tegra114/Kconfig"
13709f455dcSMasahiro Yamadasource "arch/arm/mach-tegra/tegra124/Kconfig"
1387aaa5a60STom Warrensource "arch/arm/mach-tegra/tegra210/Kconfig"
139c7ba99c8SStephen Warrensource "arch/arm/mach-tegra/tegra186/Kconfig"
14009f455dcSMasahiro Yamada
14142e6f852SSimon Glassconfig CMD_ENTERRCM
14242e6f852SSimon Glass	bool "Enable 'enterrcm' command"
14342e6f852SSimon Glass	default y
14442e6f852SSimon Glass	help
14542e6f852SSimon Glass	  Tegra's boot ROM supports a mode whereby code may be downloaded and
14642e6f852SSimon Glass	  flash-programmed over a USB connection. On dev boards, this is
14742e6f852SSimon Glass	  typically entered by holding down a "force recovery" button and
14842e6f852SSimon Glass	  resetting the CPU. However, not all boards have such a button (one
14942e6f852SSimon Glass	  example is the Compulab Trimslice), so a method to enter RCM from
15042e6f852SSimon Glass	  software is useful.
15142e6f852SSimon Glass
15242e6f852SSimon Glass	  Even on boards other than Trimslice, controlling this over a UART
15342e6f852SSimon Glass	  may be useful, e.g. to allow simple remote control without the need
15442e6f852SSimon Glass	  for mechanical button actuators, or hooking up relays/... to the
15542e6f852SSimon Glass	  button.
15642e6f852SSimon Glass
15709f455dcSMasahiro Yamadaendif
158