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