xref: /openbmc/u-boot/arch/arm/mach-tegra/Kconfig (revision fc843a02)
1if TEGRA
2
3config SPL_GPIO_SUPPORT
4	default y
5
6config SPL_LIBCOMMON_SUPPORT
7	default y
8
9config SPL_LIBGENERIC_SUPPORT
10	default y
11
12config SPL_SERIAL_SUPPORT
13	default y
14
15config 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
23config 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 OF_CONTROL
39	select VIDCONSOLE_AS_LCD if DM_VIDEO
40	select BOARD_EARLY_INIT_F
41
42config TEGRA_NO_BPMP
43	bool "Tegra common options for SoCs without BPMP"
44	select TEGRA_CAR
45	select TEGRA_CAR_CLOCK
46	select TEGRA_CAR_RESET
47
48config TEGRA_ARMV7_COMMON
49	bool "Tegra 32-bit common options"
50	select CPU_V7
51	select SPL
52	select SPL_BOARD_INIT if SPL
53	select SUPPORT_SPL
54	select TEGRA_COMMON
55	select TEGRA_GPIO
56	select TEGRA_NO_BPMP
57
58config TEGRA_ARMV8_COMMON
59	bool "Tegra 64-bit common options"
60	select ARM64
61	select TEGRA_COMMON
62
63choice
64	prompt "Tegra SoC select"
65	optional
66
67config TEGRA20
68	bool "Tegra20 family"
69	select ARM_ERRATA_716044
70	select ARM_ERRATA_742230
71	select ARM_ERRATA_751472
72	select TEGRA_ARMV7_COMMON
73
74config TEGRA30
75	bool "Tegra30 family"
76	select ARM_ERRATA_743622
77	select ARM_ERRATA_751472
78	select TEGRA_ARMV7_COMMON
79
80config TEGRA114
81	bool "Tegra114 family"
82	select TEGRA_ARMV7_COMMON
83
84config TEGRA124
85	bool "Tegra124 family"
86	select TEGRA_ARMV7_COMMON
87
88config TEGRA210
89	bool "Tegra210 family"
90	select TEGRA_GPIO
91	select TEGRA_ARMV8_COMMON
92	select TEGRA_NO_BPMP
93
94config TEGRA186
95	bool "Tegra186 family"
96	select DM_MAILBOX
97	select TEGRA186_BPMP
98	select TEGRA186_CLOCK
99	select TEGRA186_GPIO
100	select TEGRA186_RESET
101	select TEGRA_ARMV8_COMMON
102	select TEGRA_HSP
103	select TEGRA_IVC
104
105endchoice
106
107config TEGRA_DISCONNECT_UDC_ON_BOOT
108	bool "Disconnect USB device mode controller on boot"
109	default y
110	help
111	  When loading U-Boot into RAM over USB protocols using tools such as
112	  tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device
113	  mode controller is initialized and enumerated by the host PC running
114	  the tool. Unfortunately, these tools do not shut down the USB
115	  controller before executing the downloaded code, and so the host PC
116	  does not "de-enumerate" the USB device. This option shuts down the
117	  USB controller when U-Boot boots to avoid leaving a stale USB device
118	  present.
119
120config SYS_MALLOC_F_LEN
121	default 0x1800
122
123source "arch/arm/mach-tegra/tegra20/Kconfig"
124source "arch/arm/mach-tegra/tegra30/Kconfig"
125source "arch/arm/mach-tegra/tegra114/Kconfig"
126source "arch/arm/mach-tegra/tegra124/Kconfig"
127source "arch/arm/mach-tegra/tegra210/Kconfig"
128source "arch/arm/mach-tegra/tegra186/Kconfig"
129
130config CMD_ENTERRCM
131	bool "Enable 'enterrcm' command"
132	default y
133	help
134	  Tegra's boot ROM supports a mode whereby code may be downloaded and
135	  flash-programmed over a USB connection. On dev boards, this is
136	  typically entered by holding down a "force recovery" button and
137	  resetting the CPU. However, not all boards have such a button (one
138	  example is the Compulab Trimslice), so a method to enter RCM from
139	  software is useful.
140
141	  Even on boards other than Trimslice, controlling this over a UART
142	  may be useful, e.g. to allow simple remote control without the need
143	  for mechanical button actuators, or hooking up relays/... to the
144	  button.
145
146endif
147