xref: /rk3399_rockchip-uboot/arch/arm/mach-tegra/Kconfig (revision 1490eb89f4697b02cfb8f826d2f5eaf37edcbd47)
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"
25140a9eafSStephen Warren	select CLK
2656079eccSTom Warren	select DM
2796350f72SSimon Glass	select DM_ETH
2856079eccSTom Warren	select DM_GPIO
2915bcc62dSStephen Warren	select DM_I2C
30f77f5e9bSSimon Glass	select DM_KEYBOARD
316a474db4STom Warren	select DM_MMC
3291c08afeSSimon Glass	select DM_PWM
33140a9eafSStephen Warren	select DM_RESET
3415bcc62dSStephen Warren	select DM_SERIAL
3515bcc62dSStephen Warren	select DM_SPI
3615bcc62dSStephen Warren	select DM_SPI_FLASH
37140a9eafSStephen Warren	select MISC
38*1490eb89SAdam Ford	select SPI
3915bcc62dSStephen Warren	select OF_CONTROL
40d6ef8a61SSimon Glass	select VIDCONSOLE_AS_LCD if DM_VIDEO
41a5d67547SSimon Glass	select BOARD_EARLY_INIT_F
42221a949eSDaniel Thompson	imply CRC32_VERIFY
4315bcc62dSStephen Warren
44140a9eafSStephen Warrenconfig TEGRA_NO_BPMP
45140a9eafSStephen Warren	bool "Tegra common options for SoCs without BPMP"
46140a9eafSStephen Warren	select TEGRA_CAR
47140a9eafSStephen Warren	select TEGRA_CAR_CLOCK
48140a9eafSStephen Warren	select TEGRA_CAR_RESET
49140a9eafSStephen Warren
5015bcc62dSStephen Warrenconfig TEGRA_ARMV7_COMMON
5115bcc62dSStephen Warren	bool "Tegra 32-bit common options"
5215bcc62dSStephen Warren	select CPU_V7
5315bcc62dSStephen Warren	select SPL
540680f1b1SLey Foon Tan	select SPL_BOARD_INIT if SPL
5515bcc62dSStephen Warren	select SUPPORT_SPL
5615bcc62dSStephen Warren	select TEGRA_COMMON
57601800beSStephen Warren	select TEGRA_GPIO
58140a9eafSStephen Warren	select TEGRA_NO_BPMP
5915bcc62dSStephen Warren
6015bcc62dSStephen Warrenconfig TEGRA_ARMV8_COMMON
6115bcc62dSStephen Warren	bool "Tegra 64-bit common options"
6215bcc62dSStephen Warren	select ARM64
6315bcc62dSStephen Warren	select TEGRA_COMMON
6456079eccSTom Warren
6509f455dcSMasahiro Yamadachoice
6609f455dcSMasahiro Yamada	prompt "Tegra SoC select"
67a26cd049SJoe Hershberger	optional
6809f455dcSMasahiro Yamada
6909f455dcSMasahiro Yamadaconfig TEGRA20
7009f455dcSMasahiro Yamada	bool "Tegra20 family"
718dda2e2fSTom Rini	select ARM_ERRATA_716044
728dda2e2fSTom Rini	select ARM_ERRATA_742230
738dda2e2fSTom Rini	select ARM_ERRATA_751472
7456079eccSTom Warren	select TEGRA_ARMV7_COMMON
7509f455dcSMasahiro Yamada
7609f455dcSMasahiro Yamadaconfig TEGRA30
7709f455dcSMasahiro Yamada	bool "Tegra30 family"
788dda2e2fSTom Rini	select ARM_ERRATA_743622
798dda2e2fSTom Rini	select ARM_ERRATA_751472
8056079eccSTom Warren	select TEGRA_ARMV7_COMMON
8109f455dcSMasahiro Yamada
8209f455dcSMasahiro Yamadaconfig TEGRA114
8309f455dcSMasahiro Yamada	bool "Tegra114 family"
8456079eccSTom Warren	select TEGRA_ARMV7_COMMON
8509f455dcSMasahiro Yamada
8609f455dcSMasahiro Yamadaconfig TEGRA124
8709f455dcSMasahiro Yamada	bool "Tegra124 family"
8856079eccSTom Warren	select TEGRA_ARMV7_COMMON
8966de3eeeSSimon Glass	imply REGMAP
9066de3eeeSSimon Glass	imply SYSCON
9109f455dcSMasahiro Yamada
927aaa5a60STom Warrenconfig TEGRA210
937aaa5a60STom Warren	bool "Tegra210 family"
94601800beSStephen Warren	select TEGRA_GPIO
9515bcc62dSStephen Warren	select TEGRA_ARMV8_COMMON
96140a9eafSStephen Warren	select TEGRA_NO_BPMP
977aaa5a60STom Warren
98c7ba99c8SStephen Warrenconfig TEGRA186
99c7ba99c8SStephen Warren	bool "Tegra186 family"
1000f67e239SStephen Warren	select DM_MAILBOX
10173dd5c4cSStephen Warren	select TEGRA186_BPMP
102d9fd7008SStephen Warren	select TEGRA186_CLOCK
103c7ba99c8SStephen Warren	select TEGRA186_GPIO
1044dd99d14SStephen Warren	select TEGRA186_RESET
105c7ba99c8SStephen Warren	select TEGRA_ARMV8_COMMON
1060f67e239SStephen Warren	select TEGRA_HSP
10749626ea8SStephen Warren	select TEGRA_IVC
108c7ba99c8SStephen Warren
10909f455dcSMasahiro Yamadaendchoice
11009f455dcSMasahiro Yamada
111dd8204deSStephen Warrenconfig TEGRA_DISCONNECT_UDC_ON_BOOT
112dd8204deSStephen Warren	bool "Disconnect USB device mode controller on boot"
113dd8204deSStephen Warren	default y
114dd8204deSStephen Warren	help
115dd8204deSStephen Warren	  When loading U-Boot into RAM over USB protocols using tools such as
116dd8204deSStephen Warren	  tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device
117dd8204deSStephen Warren	  mode controller is initialized and enumerated by the host PC running
118dd8204deSStephen Warren	  the tool. Unfortunately, these tools do not shut down the USB
119dd8204deSStephen Warren	  controller before executing the downloaded code, and so the host PC
120dd8204deSStephen Warren	  does not "de-enumerate" the USB device. This option shuts down the
121dd8204deSStephen Warren	  USB controller when U-Boot boots to avoid leaving a stale USB device
122dd8204deSStephen Warren	  present.
123dd8204deSStephen Warren
12409f455dcSMasahiro Yamadaconfig SYS_MALLOC_F_LEN
12509f455dcSMasahiro Yamada	default 0x1800
12609f455dcSMasahiro Yamada
12709f455dcSMasahiro Yamadasource "arch/arm/mach-tegra/tegra20/Kconfig"
12809f455dcSMasahiro Yamadasource "arch/arm/mach-tegra/tegra30/Kconfig"
12909f455dcSMasahiro Yamadasource "arch/arm/mach-tegra/tegra114/Kconfig"
13009f455dcSMasahiro Yamadasource "arch/arm/mach-tegra/tegra124/Kconfig"
1317aaa5a60STom Warrensource "arch/arm/mach-tegra/tegra210/Kconfig"
132c7ba99c8SStephen Warrensource "arch/arm/mach-tegra/tegra186/Kconfig"
13309f455dcSMasahiro Yamada
13442e6f852SSimon Glassconfig CMD_ENTERRCM
13542e6f852SSimon Glass	bool "Enable 'enterrcm' command"
13642e6f852SSimon Glass	default y
13742e6f852SSimon Glass	help
13842e6f852SSimon Glass	  Tegra's boot ROM supports a mode whereby code may be downloaded and
13942e6f852SSimon Glass	  flash-programmed over a USB connection. On dev boards, this is
14042e6f852SSimon Glass	  typically entered by holding down a "force recovery" button and
14142e6f852SSimon Glass	  resetting the CPU. However, not all boards have such a button (one
14242e6f852SSimon Glass	  example is the Compulab Trimslice), so a method to enter RCM from
14342e6f852SSimon Glass	  software is useful.
14442e6f852SSimon Glass
14542e6f852SSimon Glass	  Even on boards other than Trimslice, controlling this over a UART
14642e6f852SSimon Glass	  may be useful, e.g. to allow simple remote control without the need
14742e6f852SSimon Glass	  for mechanical button actuators, or hooking up relays/... to the
14842e6f852SSimon Glass	  button.
14942e6f852SSimon Glass
15009f455dcSMasahiro Yamadaendif
151