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