]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - include/configs/tegra-common-post.h
ARM: tegra: rework boot scripts
[karo-tx-uboot.git] / include / configs / tegra-common-post.h
1 /*
2  * (C) Copyright 2010-2012
3  * NVIDIA Corporation <www.nvidia.com>
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 #ifndef __TEGRA_COMMON_POST_H
9 #define __TEGRA_COMMON_POST_H
10
11 #ifdef CONFIG_BOOTCOMMAND
12
13 #define BOOTCMDS_COMMON ""
14
15 #else
16
17 #ifdef CONFIG_CMD_MMC
18 #define BOOTCMDS_MMC \
19         "mmc_boot=" \
20                 "setenv devtype mmc; " \
21                 "if mmc dev ${devnum}; then " \
22                         "run scan_boot; " \
23                 "fi\0" \
24         "bootcmd_mmc0=setenv devnum 0; run mmc_boot;\0" \
25         "bootcmd_mmc1=setenv devnum 1; run mmc_boot;\0"
26 #define BOOT_TARGETS_MMC "mmc1 mmc0"
27 #else
28 #define BOOTCMDS_MMC ""
29 #define BOOT_TARGETS_MMC ""
30 #endif
31
32 #ifdef CONFIG_CMD_USB
33 #define BOOTCMD_INIT_USB "run usb_init; "
34 #define BOOTCMDS_USB \
35         "usb_init=" \
36                 "if ${usb_need_init}; then " \
37                         "set usb_need_init false; " \
38                         "usb start 0; " \
39                 "fi\0" \
40         \
41         "usb_boot=" \
42                 "setenv devtype usb; " \
43                 BOOTCMD_INIT_USB \
44                 "if usb dev ${devnum}; then " \
45                         "run scan_boot; " \
46                 "fi\0" \
47         \
48         "bootcmd_usb0=setenv devnum 0; run usb_boot;\0"
49 #define BOOT_TARGETS_USB "usb0"
50 #else
51 #define BOOTCMD_INIT_USB ""
52 #define BOOTCMDS_USB ""
53 #define BOOT_TARGETS_USB ""
54 #endif
55
56 #ifdef CONFIG_CMD_DHCP
57 #define BOOTCMDS_DHCP \
58         "bootcmd_dhcp=" \
59                 BOOTCMD_INIT_USB \
60                 "if dhcp ${scriptaddr} boot.scr.uimg; then "\
61                         "source ${scriptaddr}; " \
62                 "fi\0"
63 #define BOOT_TARGETS_DHCP "dhcp"
64 #else
65 #define BOOTCMDS_DHCP ""
66 #define BOOT_TARGETS_DHCP ""
67 #endif
68
69 #define BOOTCMDS_COMMON \
70         "rootpart=1\0" \
71         \
72         "do_script_boot="                                                 \
73                 "load ${devtype} ${devnum}:${rootpart} "                  \
74                         "${scriptaddr} ${prefix}${script}; "              \
75                 "source ${scriptaddr}\0"                                  \
76         \
77         "script_boot="                                                    \
78                 "for script in ${boot_scripts}; do "                      \
79                         "if test -e ${devtype} ${devnum}:${rootpart} "    \
80                                         "${prefix}${script}; then "       \
81                                 "echo Found U-Boot script "               \
82                                         "${prefix}${script}; "            \
83                                 "run do_script_boot; "                    \
84                                 "echo SCRIPT FAILED: continuing...; "     \
85                         "fi; "                                            \
86                 "done\0"                                                  \
87         \
88         "do_sysboot_boot="                                                \
89                 "sysboot ${devtype} ${devnum}:${rootpart} any "           \
90                         "${scriptaddr} ${prefix}extlinux.conf\0"          \
91         \
92         "sysboot_boot="                                                   \
93                 "if test -e ${devtype} ${devnum}:${rootpart} "            \
94                                 "${prefix}extlinux.conf; then "           \
95                         "echo Found extlinux config "                     \
96                                 "${prefix}extlinux.conf; "                \
97                         "run do_sysboot_boot; "                           \
98                         "echo SCRIPT FAILED: continuing...; "             \
99                 "fi\0"                                                    \
100         \
101         "scan_boot="                                                      \
102                 "echo Scanning ${devtype} ${devnum}...; "                 \
103                 "for prefix in ${boot_prefixes}; do "                     \
104                         "run sysboot_boot; "                              \
105                         "run script_boot; "                               \
106                 "done\0"                                                  \
107         \
108         "boot_targets=" \
109                 BOOT_TARGETS_MMC " " \
110                 BOOT_TARGETS_USB " " \
111                 BOOT_TARGETS_DHCP " " \
112                 "\0" \
113         \
114         "boot_prefixes=/ /boot/\0" \
115         \
116         "boot_scripts=boot.scr.uimg boot.scr\0" \
117         \
118         BOOTCMDS_MMC \
119         BOOTCMDS_USB \
120         BOOTCMDS_DHCP
121
122 #define CONFIG_BOOTCOMMAND \
123         "set usb_need_init; " \
124         "for target in ${boot_targets}; do run bootcmd_${target}; done"
125
126 #endif
127
128 #ifdef CONFIG_TEGRA_KEYBOARD
129 #define STDIN_KBD_KBC ",tegra-kbc"
130 #else
131 #define STDIN_KBD_KBC ""
132 #endif
133
134 #ifdef CONFIG_USB_KEYBOARD
135 #define STDIN_KBD_USB ",usbkbd"
136 #define CONFIG_SYS_USB_EVENT_POLL
137 #define CONFIG_PREBOOT                  "usb start"
138 #else
139 #define STDIN_KBD_USB ""
140 #endif
141
142 #ifdef CONFIG_VIDEO_TEGRA
143 #define STDOUT_LCD ",lcd"
144 #else
145 #define STDOUT_LCD ""
146 #endif
147
148 #define TEGRA_DEVICE_SETTINGS \
149         "stdin=serial" STDIN_KBD_KBC STDIN_KBD_USB "\0" \
150         "stdout=serial" STDOUT_LCD "\0" \
151         "stderr=serial" STDOUT_LCD "\0" \
152         ""
153
154 #ifndef BOARD_EXTRA_ENV_SETTINGS
155 #define BOARD_EXTRA_ENV_SETTINGS
156 #endif
157
158 #define CONFIG_EXTRA_ENV_SETTINGS \
159         TEGRA_DEVICE_SETTINGS \
160         MEM_LAYOUT_ENV_SETTINGS \
161         BOOTCMDS_COMMON \
162         BOARD_EXTRA_ENV_SETTINGS
163
164 #if defined(CONFIG_TEGRA20_SFLASH) || defined(CONFIG_TEGRA20_SLINK) || defined(CONFIG_TEGRA114_SPI)
165 #define CONFIG_FDT_SPI
166 #endif
167
168 /* overrides for SPL build here */
169 #ifdef CONFIG_SPL_BUILD
170
171 #define CONFIG_SKIP_LOWLEVEL_INIT
172
173 /* remove devicetree support */
174 #ifdef CONFIG_OF_CONTROL
175 #undef CONFIG_OF_CONTROL
176 #endif
177
178 /* remove I2C support */
179 #ifdef CONFIG_SYS_I2C_TEGRA
180 #undef CONFIG_SYS_I2C_TEGRA
181 #endif
182 #ifdef CONFIG_CMD_I2C
183 #undef CONFIG_CMD_I2C
184 #endif
185
186 /* remove MMC support */
187 #ifdef CONFIG_MMC
188 #undef CONFIG_MMC
189 #endif
190 #ifdef CONFIG_GENERIC_MMC
191 #undef CONFIG_GENERIC_MMC
192 #endif
193 #ifdef CONFIG_TEGRA_MMC
194 #undef CONFIG_TEGRA_MMC
195 #endif
196 #ifdef CONFIG_CMD_MMC
197 #undef CONFIG_CMD_MMC
198 #endif
199
200 /* remove partitions/filesystems */
201 #ifdef CONFIG_DOS_PARTITION
202 #undef CONFIG_DOS_PARTITION
203 #endif
204 #ifdef CONFIG_EFI_PARTITION
205 #undef CONFIG_EFI_PARTITION
206 #endif
207 #ifdef CONFIG_CMD_FS_GENERIC
208 #undef CONFIG_CMD_FS_GENERIC
209 #endif
210 #ifdef CONFIG_CMD_EXT4
211 #undef CONFIG_CMD_EXT4
212 #endif
213 #ifdef CONFIG_CMD_EXT2
214 #undef CONFIG_CMD_EXT2
215 #endif
216 #ifdef CONFIG_CMD_FAT
217 #undef CONFIG_CMD_FAT
218 #endif
219 #ifdef CONFIG_FS_EXT4
220 #undef CONFIG_FS_EXT4
221 #endif
222 #ifdef CONFIG_FS_FAT
223 #undef CONFIG_FS_FAT
224 #endif
225
226 /* remove USB */
227 #ifdef CONFIG_USB_EHCI
228 #undef CONFIG_USB_EHCI
229 #endif
230 #ifdef CONFIG_USB_EHCI_TEGRA
231 #undef CONFIG_USB_EHCI_TEGRA
232 #endif
233 #ifdef CONFIG_USB_STORAGE
234 #undef CONFIG_USB_STORAGE
235 #endif
236 #ifdef CONFIG_CMD_USB
237 #undef CONFIG_CMD_USB
238 #endif
239
240 /* remove part command support */
241 #ifdef CONFIG_PARTITION_UUIDS
242 #undef CONFIG_PARTITION_UUIDS
243 #endif
244
245 #ifdef CONFIG_CMD_PART
246 #undef CONFIG_CMD_PART
247 #endif
248
249 #endif /* CONFIG_SPL_BUILD */
250
251 #endif /* __TEGRA_COMMON_POST_H */