Merge branch 'rmobile' of git://git.denx.de/u-boot-sh
[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 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
42 config 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
48 config 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
58 config TEGRA_ARMV8_COMMON
59         bool "Tegra 64-bit common options"
60         select ARM64
61         select TEGRA_COMMON
62
63 choice
64         prompt "Tegra SoC select"
65         optional
66
67 config 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
74 config TEGRA30
75         bool "Tegra30 family"
76         select ARM_ERRATA_743622
77         select ARM_ERRATA_751472
78         select TEGRA_ARMV7_COMMON
79
80 config TEGRA114
81         bool "Tegra114 family"
82         select TEGRA_ARMV7_COMMON
83
84 config TEGRA124
85         bool "Tegra124 family"
86         select TEGRA_ARMV7_COMMON
87
88 config TEGRA210
89         bool "Tegra210 family"
90         select TEGRA_GPIO
91         select TEGRA_ARMV8_COMMON
92         select TEGRA_NO_BPMP
93
94 config 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
105 endchoice
106
107 config 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
120 config SYS_MALLOC_F_LEN
121         default 0x1800
122
123 source "arch/arm/mach-tegra/tegra20/Kconfig"
124 source "arch/arm/mach-tegra/tegra30/Kconfig"
125 source "arch/arm/mach-tegra/tegra114/Kconfig"
126 source "arch/arm/mach-tegra/tegra124/Kconfig"
127 source "arch/arm/mach-tegra/tegra210/Kconfig"
128 source "arch/arm/mach-tegra/tegra186/Kconfig"
129
130 config 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
146 endif