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