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 "script_boot=" \ 73 "if load ${devtype} ${devnum}:${rootpart} " \ 74 "${scriptaddr} ${prefix}${script}; then " \ 75 "echo ${script} found! Executing ...;" \ 76 "source ${scriptaddr};" \ 77 "fi;\0" \ 78 \ 79 "scan_boot=" \ 80 "echo Scanning ${devtype} ${devnum}...; " \ 81 "for prefix in ${boot_prefixes}; do " \ 82 "for script in ${boot_scripts}; do " \ 83 "run script_boot; " \ 84 "done; " \ 85 "done;\0" \ 86 \ 87 "boot_targets=" \ 88 BOOT_TARGETS_MMC " " \ 89 BOOT_TARGETS_USB " " \ 90 BOOT_TARGETS_DHCP " " \ 91 "\0" \ 92 \ 93 "boot_prefixes=/ /boot/\0" \ 94 \ 95 "boot_scripts=boot.scr.uimg boot.scr\0" \ 96 \ 97 BOOTCMDS_MMC \ 98 BOOTCMDS_USB \ 99 BOOTCMDS_DHCP 100 101 #define CONFIG_BOOTCOMMAND \ 102 "set usb_need_init; " \ 103 "for target in ${boot_targets}; do run bootcmd_${target}; done" 104 105 #endif 106 107 #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 121 #ifdef CONFIG_VIDEO_TEGRA 122 #define STDOUT_LCD ",lcd" 123 #else 124 #define STDOUT_LCD "" 125 #endif 126 127 #define TEGRA_DEVICE_SETTINGS \ 128 "stdin=serial" STDIN_KBD_KBC STDIN_KBD_USB "\0" \ 129 "stdout=serial" STDOUT_LCD "\0" \ 130 "stderr=serial" STDOUT_LCD "\0" \ 131 "" 132 133 #ifndef BOARD_EXTRA_ENV_SETTINGS 134 #define BOARD_EXTRA_ENV_SETTINGS 135 #endif 136 137 #define CONFIG_EXTRA_ENV_SETTINGS \ 138 TEGRA_DEVICE_SETTINGS \ 139 MEM_LAYOUT_ENV_SETTINGS \ 140 BOOTCMDS_COMMON \ 141 BOARD_EXTRA_ENV_SETTINGS 142 143 #if defined(CONFIG_TEGRA20_SFLASH) || defined(CONFIG_TEGRA20_SLINK) || defined(CONFIG_TEGRA114_SPI) 144 #define CONFIG_FDT_SPI 145 #endif 146 147 /* overrides for SPL build here */ 148 #ifdef CONFIG_SPL_BUILD 149 150 #define CONFIG_SKIP_LOWLEVEL_INIT 151 152 /* remove devicetree support */ 153 #ifdef CONFIG_OF_CONTROL 154 #undef CONFIG_OF_CONTROL 155 #endif 156 157 /* remove I2C support */ 158 #ifdef CONFIG_SYS_I2C_TEGRA 159 #undef CONFIG_SYS_I2C_TEGRA 160 #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 172 #ifdef CONFIG_TEGRA_MMC 173 #undef CONFIG_TEGRA_MMC 174 #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 186 #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 192 #ifdef CONFIG_CMD_EXT2 193 #undef CONFIG_CMD_EXT2 194 #endif 195 #ifdef CONFIG_CMD_FAT 196 #undef CONFIG_CMD_FAT 197 #endif 198 #ifdef CONFIG_FS_EXT4 199 #undef CONFIG_FS_EXT4 200 #endif 201 #ifdef CONFIG_FS_FAT 202 #undef CONFIG_FS_FAT 203 #endif 204 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 219 /* 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 228 #endif /* CONFIG_SPL_BUILD */ 229 230 #endif /* __TEGRA_COMMON_POST_H */ 231