Merge tag 'xilinx-for-v2018.09-rc2' of git://git.denx.de/u-boot-microblaze
[oweals/u-boot.git] / arch / arm / mach-tegra / Kconfig
1 if TEGRA
2
3 config SPL_GPIO_SUPPORT
4         default y
5
6 config SPL_LIBCOMMON_SUPPORT
7         default y
8
9 config SPL_LIBGENERIC_SUPPORT
10         default y
11
12 config SPL_SERIAL_SUPPORT
13         default y
14
15 config 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
23 config 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
46 config 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
52 config 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
62 config TEGRA_ARMV8_COMMON
63         bool "Tegra 64-bit common options"
64         select ARM64
65         select LINUX_KERNEL_IMAGE_HEADER
66         select TEGRA_COMMON
67
68 if TEGRA_ARMV8_COMMON
69 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
70         default 0x80000000
71 endif
72
73 choice
74         prompt "Tegra SoC select"
75         optional
76
77 config 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
84 config TEGRA30
85         bool "Tegra30 family"
86         select ARM_ERRATA_743622
87         select ARM_ERRATA_751472
88         select TEGRA_ARMV7_COMMON
89
90 config TEGRA114
91         bool "Tegra114 family"
92         select TEGRA_ARMV7_COMMON
93
94 config TEGRA124
95         bool "Tegra124 family"
96         select TEGRA_ARMV7_COMMON
97         imply REGMAP
98         imply SYSCON
99
100 config TEGRA210
101         bool "Tegra210 family"
102         select TEGRA_ARMV8_COMMON
103         select TEGRA_GPIO
104         select TEGRA_NO_BPMP
105
106 config 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
117 endchoice
118
119 config 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
132 config SYS_MALLOC_F_LEN
133         default 0x1800
134
135 source "arch/arm/mach-tegra/tegra20/Kconfig"
136 source "arch/arm/mach-tegra/tegra30/Kconfig"
137 source "arch/arm/mach-tegra/tegra114/Kconfig"
138 source "arch/arm/mach-tegra/tegra124/Kconfig"
139 source "arch/arm/mach-tegra/tegra210/Kconfig"
140 source "arch/arm/mach-tegra/tegra186/Kconfig"
141
142 config 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
158 endif