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 */ 252