blob: e1a3bbc6263662f87e3b34ee8f5fd85baced9ab9 [file] [log] [blame]
Stephen Warrende17c292012-05-16 06:21:00 +00001/*
2 * (C) Copyright 2010-2012
3 * NVIDIA Corporation <www.nvidia.com>
4 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
Stephen Warrende17c292012-05-16 06:21:00 +00006 */
7
Tom Warren22562a42012-09-04 17:00:24 -07008#ifndef __TEGRA_COMMON_POST_H
9#define __TEGRA_COMMON_POST_H
Stephen Warrende17c292012-05-16 06:21:00 +000010
11#ifdef CONFIG_BOOTCOMMAND
12
13#define BOOTCMDS_COMMON ""
14
15#else
16
Stephen Warrende17c292012-05-16 06:21:00 +000017#ifdef CONFIG_CMD_MMC
18#define BOOTCMDS_MMC \
19 "mmc_boot=" \
20 "setenv devtype mmc; " \
21 "if mmc dev ${devnum}; then " \
Stephen Warren6bb63c62012-06-04 10:59:22 +000022 "run scan_boot; " \
Stephen Warrende17c292012-05-16 06:21:00 +000023 "fi\0" \
Stephen Warren6bb63c62012-06-04 10:59:22 +000024 "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"
Stephen Warrende17c292012-05-16 06:21:00 +000027#else
28#define BOOTCMDS_MMC ""
Stephen Warren6bb63c62012-06-04 10:59:22 +000029#define BOOT_TARGETS_MMC ""
Stephen Warrende17c292012-05-16 06:21:00 +000030#endif
31
32#ifdef CONFIG_CMD_USB
Stephen Warren86437a12012-06-04 10:59:23 +000033#define BOOTCMD_INIT_USB "run usb_init; "
Stephen Warrende17c292012-05-16 06:21:00 +000034#define BOOTCMDS_USB \
Stephen Warren86437a12012-06-04 10:59:23 +000035 "usb_init=" \
36 "if ${usb_need_init}; then " \
37 "set usb_need_init false; " \
38 "usb start 0; " \
39 "fi\0" \
40 \
Stephen Warrende17c292012-05-16 06:21:00 +000041 "usb_boot=" \
42 "setenv devtype usb; " \
Stephen Warren86437a12012-06-04 10:59:23 +000043 BOOTCMD_INIT_USB \
Stephen Warrende17c292012-05-16 06:21:00 +000044 "if usb dev ${devnum}; then " \
Stephen Warren6bb63c62012-06-04 10:59:22 +000045 "run scan_boot; " \
Stephen Warrende17c292012-05-16 06:21:00 +000046 "fi\0" \
Stephen Warren86437a12012-06-04 10:59:23 +000047 \
Stephen Warren6bb63c62012-06-04 10:59:22 +000048 "bootcmd_usb0=setenv devnum 0; run usb_boot;\0"
49#define BOOT_TARGETS_USB "usb0"
Stephen Warrende17c292012-05-16 06:21:00 +000050#else
Stephen Warren86437a12012-06-04 10:59:23 +000051#define BOOTCMD_INIT_USB ""
Stephen Warrende17c292012-05-16 06:21:00 +000052#define BOOTCMDS_USB ""
Stephen Warren6bb63c62012-06-04 10:59:22 +000053#define BOOT_TARGETS_USB ""
Stephen Warrende17c292012-05-16 06:21:00 +000054#endif
55
56#ifdef CONFIG_CMD_DHCP
57#define BOOTCMDS_DHCP \
58 "bootcmd_dhcp=" \
Stephen Warren86437a12012-06-04 10:59:23 +000059 BOOTCMD_INIT_USB \
Stephen Warrende17c292012-05-16 06:21:00 +000060 "if dhcp ${scriptaddr} boot.scr.uimg; then "\
61 "source ${scriptaddr}; " \
62 "fi\0"
Stephen Warren6bb63c62012-06-04 10:59:22 +000063#define BOOT_TARGETS_DHCP "dhcp"
Stephen Warrende17c292012-05-16 06:21:00 +000064#else
65#define BOOTCMDS_DHCP ""
Stephen Warren6bb63c62012-06-04 10:59:22 +000066#define BOOT_TARGETS_DHCP ""
Stephen Warrende17c292012-05-16 06:21:00 +000067#endif
68
69#define BOOTCMDS_COMMON \
Stephen Warrende17c292012-05-16 06:21:00 +000070 "rootpart=1\0" \
Stephen Warren6bb63c62012-06-04 10:59:22 +000071 \
72 "script_boot=" \
Stephen Warren480860c2012-11-05 13:22:00 +000073 "if load ${devtype} ${devnum}:${rootpart} " \
Stephen Warren6bb63c62012-06-04 10:59:22 +000074 "${scriptaddr} ${prefix}${script}; then " \
75 "echo ${script} found! Executing ...;" \
76 "source ${scriptaddr};" \
77 "fi;\0" \
78 \
79 "scan_boot=" \
80 "echo Scanning ${devtype} ${devnum}...; " \
Stephen Warren480860c2012-11-05 13:22:00 +000081 "for prefix in ${boot_prefixes}; do " \
82 "for script in ${boot_scripts}; do " \
83 "run script_boot; " \
Stephen Warren6bb63c62012-06-04 10:59:22 +000084 "done; " \
85 "done;\0" \
86 \
87 "boot_targets=" \
88 BOOT_TARGETS_MMC " " \
89 BOOT_TARGETS_USB " " \
90 BOOT_TARGETS_DHCP " " \
91 "\0" \
92 \
Stephen Warren6bb63c62012-06-04 10:59:22 +000093 "boot_prefixes=/ /boot/\0" \
94 \
95 "boot_scripts=boot.scr.uimg boot.scr\0" \
96 \
Stephen Warrende17c292012-05-16 06:21:00 +000097 BOOTCMDS_MMC \
98 BOOTCMDS_USB \
99 BOOTCMDS_DHCP
100
Stephen Warren6bb63c62012-06-04 10:59:22 +0000101#define CONFIG_BOOTCOMMAND \
Stephen Warrena92409c2014-01-23 13:17:05 -0700102 "set usb_need_init; " \
Stephen Warren6bb63c62012-06-04 10:59:22 +0000103 "for target in ${boot_targets}; do run bootcmd_${target}; done"
Stephen Warrende17c292012-05-16 06:21:00 +0000104
105#endif
106
Allen Martin50df8702012-10-24 08:32:05 +0000107#ifdef CONFIG_TEGRA_KEYBOARD
108#define STDIN_KBD_KBC ",tegra-kbc"
109#else
110#define STDIN_KBD_KBC ""
111#endif
112
113#ifdef CONFIG_USB_KEYBOARD
114#define STDIN_KBD_USB ",usbkbd"
115#define CONFIG_SYS_USB_EVENT_POLL
116#define CONFIG_PREBOOT "usb start"
117#else
118#define STDIN_KBD_USB ""
119#endif
120
Stephen Warren3f264792013-01-22 06:20:07 +0000121#ifdef CONFIG_VIDEO_TEGRA
122#define STDOUT_LCD ",lcd"
123#else
124#define STDOUT_LCD ""
125#endif
126
Allen Martin50df8702012-10-24 08:32:05 +0000127#define TEGRA_DEVICE_SETTINGS \
128 "stdin=serial" STDIN_KBD_KBC STDIN_KBD_USB "\0" \
Stephen Warren3f264792013-01-22 06:20:07 +0000129 "stdout=serial" STDOUT_LCD "\0" \
130 "stderr=serial" STDOUT_LCD "\0" \
131 ""
Allen Martin50df8702012-10-24 08:32:05 +0000132
Stephen Warren26b02f12014-01-23 13:17:01 -0700133#ifndef BOARD_EXTRA_ENV_SETTINGS
134#define BOARD_EXTRA_ENV_SETTINGS
135#endif
136
Stephen Warrende17c292012-05-16 06:21:00 +0000137#define CONFIG_EXTRA_ENV_SETTINGS \
Tom Warren22562a42012-09-04 17:00:24 -0700138 TEGRA_DEVICE_SETTINGS \
Stephen Warren35305102012-10-02 09:26:51 +0000139 MEM_LAYOUT_ENV_SETTINGS \
Stephen Warren26b02f12014-01-23 13:17:01 -0700140 BOOTCMDS_COMMON \
141 BOARD_EXTRA_ENV_SETTINGS
Stephen Warrende17c292012-05-16 06:21:00 +0000142
Allen Martin21f5b932013-03-16 18:58:13 +0000143#if defined(CONFIG_TEGRA20_SFLASH) || defined(CONFIG_TEGRA20_SLINK) || defined(CONFIG_TEGRA114_SPI)
Allen Martinb98691c2013-03-16 18:58:07 +0000144#define CONFIG_FDT_SPI
145#endif
146
Allen Martinc9c98462012-08-31 08:30:12 +0000147/* overrides for SPL build here */
148#ifdef CONFIG_SPL_BUILD
149
Axel Lin53e512a2013-05-21 13:45:18 +0000150#define CONFIG_SKIP_LOWLEVEL_INIT
151
Allen Martinc9c98462012-08-31 08:30:12 +0000152/* remove devicetree support */
153#ifdef CONFIG_OF_CONTROL
154#undef CONFIG_OF_CONTROL
155#endif
156
Allen Martinc9c98462012-08-31 08:30:12 +0000157/* remove I2C support */
Simon Glass026fefb2012-10-30 07:28:53 +0000158#ifdef CONFIG_SYS_I2C_TEGRA
159#undef CONFIG_SYS_I2C_TEGRA
Allen Martinc9c98462012-08-31 08:30:12 +0000160#endif
161#ifdef CONFIG_CMD_I2C
162#undef CONFIG_CMD_I2C
163#endif
164
165/* remove MMC support */
166#ifdef CONFIG_MMC
167#undef CONFIG_MMC
168#endif
169#ifdef CONFIG_GENERIC_MMC
170#undef CONFIG_GENERIC_MMC
171#endif
Tom Warren22562a42012-09-04 17:00:24 -0700172#ifdef CONFIG_TEGRA_MMC
173#undef CONFIG_TEGRA_MMC
Allen Martinc9c98462012-08-31 08:30:12 +0000174#endif
175#ifdef CONFIG_CMD_MMC
176#undef CONFIG_CMD_MMC
177#endif
178
179/* remove partitions/filesystems */
180#ifdef CONFIG_DOS_PARTITION
181#undef CONFIG_DOS_PARTITION
182#endif
183#ifdef CONFIG_EFI_PARTITION
184#undef CONFIG_EFI_PARTITION
185#endif
Stephen Warren480860c2012-11-05 13:22:00 +0000186#ifdef CONFIG_CMD_FS_GENERIC
187#undef CONFIG_CMD_FS_GENERIC
188#endif
189#ifdef CONFIG_CMD_EXT4
190#undef CONFIG_CMD_EXT4
191#endif
Allen Martinc9c98462012-08-31 08:30:12 +0000192#ifdef CONFIG_CMD_EXT2
193#undef CONFIG_CMD_EXT2
194#endif
195#ifdef CONFIG_CMD_FAT
196#undef CONFIG_CMD_FAT
197#endif
Stephen Warren480860c2012-11-05 13:22:00 +0000198#ifdef CONFIG_FS_EXT4
199#undef CONFIG_FS_EXT4
200#endif
201#ifdef CONFIG_FS_FAT
202#undef CONFIG_FS_FAT
203#endif
Allen Martinc9c98462012-08-31 08:30:12 +0000204
205/* remove USB */
206#ifdef CONFIG_USB_EHCI
207#undef CONFIG_USB_EHCI
208#endif
209#ifdef CONFIG_USB_EHCI_TEGRA
210#undef CONFIG_USB_EHCI_TEGRA
211#endif
212#ifdef CONFIG_USB_STORAGE
213#undef CONFIG_USB_STORAGE
214#endif
215#ifdef CONFIG_CMD_USB
216#undef CONFIG_CMD_USB
217#endif
218
Stephen Warren91623dd2012-09-25 13:32:26 +0000219/* remove part command support */
220#ifdef CONFIG_PARTITION_UUIDS
221#undef CONFIG_PARTITION_UUIDS
222#endif
223
224#ifdef CONFIG_CMD_PART
225#undef CONFIG_CMD_PART
226#endif
227
Allen Martinc9c98462012-08-31 08:30:12 +0000228#endif /* CONFIG_SPL_BUILD */
229
Tom Warren22562a42012-09-04 17:00:24 -0700230#endif /* __TEGRA_COMMON_POST_H */