1*29f3e3f2STom Warren /* 2*29f3e3f2STom Warren * (C) Copyright 2010-2012 3*29f3e3f2STom Warren * NVIDIA Corporation <www.nvidia.com> 4*29f3e3f2STom Warren * 5*29f3e3f2STom Warren * See file CREDITS for list of people who contributed to this 6*29f3e3f2STom Warren * project. 7*29f3e3f2STom Warren * 8*29f3e3f2STom Warren * This program is free software; you can redistribute it and/or 9*29f3e3f2STom Warren * modify it under the terms of the GNU General Public License as 10*29f3e3f2STom Warren * published by the Free Software Foundation; either version 2 of 11*29f3e3f2STom Warren * the License, or (at your option) any later version. 12*29f3e3f2STom Warren * 13*29f3e3f2STom Warren * This program is distributed in the hope that it will be useful, 14*29f3e3f2STom Warren * but WITHOUT ANY WARRANTY; without even the implied warranty of 15*29f3e3f2STom Warren * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*29f3e3f2STom Warren * GNU General Public License for more details. 17*29f3e3f2STom Warren * 18*29f3e3f2STom Warren * You should have received a copy of the GNU General Public License 19*29f3e3f2STom Warren * along with this program; if not, write to the Free Software 20*29f3e3f2STom Warren * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21*29f3e3f2STom Warren * MA 02111-1307 USA 22*29f3e3f2STom Warren */ 23*29f3e3f2STom Warren 24*29f3e3f2STom Warren #ifndef __TEGRA_COMMON_POST_H 25*29f3e3f2STom Warren #define __TEGRA_COMMON_POST_H 26*29f3e3f2STom Warren 27*29f3e3f2STom Warren #ifdef CONFIG_BOOTCOMMAND 28*29f3e3f2STom Warren 29*29f3e3f2STom Warren #define BOOTCMDS_COMMON "" 30*29f3e3f2STom Warren 31*29f3e3f2STom Warren #else 32*29f3e3f2STom Warren 33*29f3e3f2STom Warren #ifdef CONFIG_CMD_EXT2 34*29f3e3f2STom Warren #define BOOT_FSTYPE_EXT2 "ext2 " 35*29f3e3f2STom Warren #else 36*29f3e3f2STom Warren #define BOOT_FSTYPE_EXT2 "" 37*29f3e3f2STom Warren #endif 38*29f3e3f2STom Warren 39*29f3e3f2STom Warren #ifdef CONFIG_CMD_FAT 40*29f3e3f2STom Warren #define BOOT_FSTYPE_FAT "fat" 41*29f3e3f2STom Warren #else 42*29f3e3f2STom Warren #define BOOT_FSTYPE_FAT "" 43*29f3e3f2STom Warren #endif 44*29f3e3f2STom Warren 45*29f3e3f2STom Warren #ifdef CONFIG_CMD_MMC 46*29f3e3f2STom Warren #define BOOTCMDS_MMC \ 47*29f3e3f2STom Warren "mmc_boot=" \ 48*29f3e3f2STom Warren "setenv devtype mmc; " \ 49*29f3e3f2STom Warren "if mmc dev ${devnum}; then " \ 50*29f3e3f2STom Warren "run scan_boot; " \ 51*29f3e3f2STom Warren "fi\0" \ 52*29f3e3f2STom Warren "bootcmd_mmc0=setenv devnum 0; run mmc_boot;\0" \ 53*29f3e3f2STom Warren "bootcmd_mmc1=setenv devnum 1; run mmc_boot;\0" 54*29f3e3f2STom Warren #define BOOT_TARGETS_MMC "mmc1 mmc0" 55*29f3e3f2STom Warren #else 56*29f3e3f2STom Warren #define BOOTCMDS_MMC "" 57*29f3e3f2STom Warren #define BOOT_TARGETS_MMC "" 58*29f3e3f2STom Warren #endif 59*29f3e3f2STom Warren 60*29f3e3f2STom Warren #ifdef CONFIG_CMD_USB 61*29f3e3f2STom Warren #define BOOTCMD_INIT_USB "run usb_init; " 62*29f3e3f2STom Warren #define BOOTCMDS_USB \ 63*29f3e3f2STom Warren "usb_init=" \ 64*29f3e3f2STom Warren "if ${usb_need_init}; then " \ 65*29f3e3f2STom Warren "set usb_need_init false; " \ 66*29f3e3f2STom Warren "usb start 0; " \ 67*29f3e3f2STom Warren "fi\0" \ 68*29f3e3f2STom Warren \ 69*29f3e3f2STom Warren "usb_boot=" \ 70*29f3e3f2STom Warren "setenv devtype usb; " \ 71*29f3e3f2STom Warren BOOTCMD_INIT_USB \ 72*29f3e3f2STom Warren "if usb dev ${devnum}; then " \ 73*29f3e3f2STom Warren "run scan_boot; " \ 74*29f3e3f2STom Warren "fi\0" \ 75*29f3e3f2STom Warren \ 76*29f3e3f2STom Warren "bootcmd_usb0=setenv devnum 0; run usb_boot;\0" 77*29f3e3f2STom Warren #define BOOT_TARGETS_USB "usb0" 78*29f3e3f2STom Warren #else 79*29f3e3f2STom Warren #define BOOTCMD_INIT_USB "" 80*29f3e3f2STom Warren #define BOOTCMDS_USB "" 81*29f3e3f2STom Warren #define BOOT_TARGETS_USB "" 82*29f3e3f2STom Warren #endif 83*29f3e3f2STom Warren 84*29f3e3f2STom Warren #ifdef CONFIG_CMD_DHCP 85*29f3e3f2STom Warren #define BOOTCMDS_DHCP \ 86*29f3e3f2STom Warren "bootcmd_dhcp=" \ 87*29f3e3f2STom Warren BOOTCMD_INIT_USB \ 88*29f3e3f2STom Warren "if dhcp ${scriptaddr} boot.scr.uimg; then "\ 89*29f3e3f2STom Warren "source ${scriptaddr}; " \ 90*29f3e3f2STom Warren "fi\0" 91*29f3e3f2STom Warren #define BOOT_TARGETS_DHCP "dhcp" 92*29f3e3f2STom Warren #else 93*29f3e3f2STom Warren #define BOOTCMDS_DHCP "" 94*29f3e3f2STom Warren #define BOOT_TARGETS_DHCP "" 95*29f3e3f2STom Warren #endif 96*29f3e3f2STom Warren 97*29f3e3f2STom Warren #define BOOTCMDS_COMMON \ 98*29f3e3f2STom Warren "scriptaddr=0x400000\0" \ 99*29f3e3f2STom Warren \ 100*29f3e3f2STom Warren "rootpart=1\0" \ 101*29f3e3f2STom Warren \ 102*29f3e3f2STom Warren "script_boot=" \ 103*29f3e3f2STom Warren "if ${fs}load ${devtype} ${devnum}:${rootpart} " \ 104*29f3e3f2STom Warren "${scriptaddr} ${prefix}${script}; then " \ 105*29f3e3f2STom Warren "echo ${script} found! Executing ...;" \ 106*29f3e3f2STom Warren "source ${scriptaddr};" \ 107*29f3e3f2STom Warren "fi;\0" \ 108*29f3e3f2STom Warren \ 109*29f3e3f2STom Warren "scan_boot=" \ 110*29f3e3f2STom Warren "echo Scanning ${devtype} ${devnum}...; " \ 111*29f3e3f2STom Warren "for fs in ${boot_fstypes}; do " \ 112*29f3e3f2STom Warren "for prefix in ${boot_prefixes}; do " \ 113*29f3e3f2STom Warren "for script in ${boot_scripts}; do " \ 114*29f3e3f2STom Warren "run script_boot; " \ 115*29f3e3f2STom Warren "done; " \ 116*29f3e3f2STom Warren "done; " \ 117*29f3e3f2STom Warren "done;\0" \ 118*29f3e3f2STom Warren \ 119*29f3e3f2STom Warren "boot_targets=" \ 120*29f3e3f2STom Warren BOOT_TARGETS_MMC " " \ 121*29f3e3f2STom Warren BOOT_TARGETS_USB " " \ 122*29f3e3f2STom Warren BOOT_TARGETS_DHCP " " \ 123*29f3e3f2STom Warren "\0" \ 124*29f3e3f2STom Warren \ 125*29f3e3f2STom Warren "boot_fstypes=" \ 126*29f3e3f2STom Warren BOOT_FSTYPE_EXT2 " " \ 127*29f3e3f2STom Warren BOOT_FSTYPE_FAT " " \ 128*29f3e3f2STom Warren "\0" \ 129*29f3e3f2STom Warren \ 130*29f3e3f2STom Warren "boot_prefixes=/ /boot/\0" \ 131*29f3e3f2STom Warren \ 132*29f3e3f2STom Warren "boot_scripts=boot.scr.uimg boot.scr\0" \ 133*29f3e3f2STom Warren \ 134*29f3e3f2STom Warren BOOTCMDS_MMC \ 135*29f3e3f2STom Warren BOOTCMDS_USB \ 136*29f3e3f2STom Warren BOOTCMDS_DHCP 137*29f3e3f2STom Warren 138*29f3e3f2STom Warren #define CONFIG_BOOTCOMMAND \ 139*29f3e3f2STom Warren "for target in ${boot_targets}; do run bootcmd_${target}; done" 140*29f3e3f2STom Warren 141*29f3e3f2STom Warren #endif 142*29f3e3f2STom Warren 143*29f3e3f2STom Warren #define CONFIG_EXTRA_ENV_SETTINGS \ 144*29f3e3f2STom Warren TEGRA_DEVICE_SETTINGS \ 145*29f3e3f2STom Warren "fdt_load=0x01000000\0" \ 146*29f3e3f2STom Warren "fdt_high=01100000\0" \ 147*29f3e3f2STom Warren BOOTCMDS_COMMON 148*29f3e3f2STom Warren 149*29f3e3f2STom Warren /* overrides for SPL build here */ 150*29f3e3f2STom Warren #ifdef CONFIG_SPL_BUILD 151*29f3e3f2STom Warren 152*29f3e3f2STom Warren /* remove devicetree support */ 153*29f3e3f2STom Warren #ifdef CONFIG_OF_CONTROL 154*29f3e3f2STom Warren #undef CONFIG_OF_CONTROL 155*29f3e3f2STom Warren #endif 156*29f3e3f2STom Warren 157*29f3e3f2STom Warren /* remove SERIAL_MULTI */ 158*29f3e3f2STom Warren #ifdef CONFIG_SERIAL_MULTI 159*29f3e3f2STom Warren #undef CONFIG_SERIAL_MULTI 160*29f3e3f2STom Warren #endif 161*29f3e3f2STom Warren 162*29f3e3f2STom Warren /* remove I2C support */ 163*29f3e3f2STom Warren #ifdef CONFIG_TEGRA_I2C 164*29f3e3f2STom Warren #undef CONFIG_TEGRA_I2C 165*29f3e3f2STom Warren #endif 166*29f3e3f2STom Warren #ifdef CONFIG_CMD_I2C 167*29f3e3f2STom Warren #undef CONFIG_CMD_I2C 168*29f3e3f2STom Warren #endif 169*29f3e3f2STom Warren 170*29f3e3f2STom Warren /* remove MMC support */ 171*29f3e3f2STom Warren #ifdef CONFIG_MMC 172*29f3e3f2STom Warren #undef CONFIG_MMC 173*29f3e3f2STom Warren #endif 174*29f3e3f2STom Warren #ifdef CONFIG_GENERIC_MMC 175*29f3e3f2STom Warren #undef CONFIG_GENERIC_MMC 176*29f3e3f2STom Warren #endif 177*29f3e3f2STom Warren #ifdef CONFIG_TEGRA_MMC 178*29f3e3f2STom Warren #undef CONFIG_TEGRA_MMC 179*29f3e3f2STom Warren #endif 180*29f3e3f2STom Warren #ifdef CONFIG_CMD_MMC 181*29f3e3f2STom Warren #undef CONFIG_CMD_MMC 182*29f3e3f2STom Warren #endif 183*29f3e3f2STom Warren 184*29f3e3f2STom Warren /* remove partitions/filesystems */ 185*29f3e3f2STom Warren #ifdef CONFIG_DOS_PARTITION 186*29f3e3f2STom Warren #undef CONFIG_DOS_PARTITION 187*29f3e3f2STom Warren #endif 188*29f3e3f2STom Warren #ifdef CONFIG_EFI_PARTITION 189*29f3e3f2STom Warren #undef CONFIG_EFI_PARTITION 190*29f3e3f2STom Warren #endif 191*29f3e3f2STom Warren #ifdef CONFIG_CMD_EXT2 192*29f3e3f2STom Warren #undef CONFIG_CMD_EXT2 193*29f3e3f2STom Warren #endif 194*29f3e3f2STom Warren #ifdef CONFIG_CMD_FAT 195*29f3e3f2STom Warren #undef CONFIG_CMD_FAT 196*29f3e3f2STom Warren #endif 197*29f3e3f2STom Warren 198*29f3e3f2STom Warren /* remove USB */ 199*29f3e3f2STom Warren #ifdef CONFIG_USB_EHCI 200*29f3e3f2STom Warren #undef CONFIG_USB_EHCI 201*29f3e3f2STom Warren #endif 202*29f3e3f2STom Warren #ifdef CONFIG_USB_EHCI_TEGRA 203*29f3e3f2STom Warren #undef CONFIG_USB_EHCI_TEGRA 204*29f3e3f2STom Warren #endif 205*29f3e3f2STom Warren #ifdef CONFIG_USB_STORAGE 206*29f3e3f2STom Warren #undef CONFIG_USB_STORAGE 207*29f3e3f2STom Warren #endif 208*29f3e3f2STom Warren #ifdef CONFIG_CMD_USB 209*29f3e3f2STom Warren #undef CONFIG_CMD_USB 210*29f3e3f2STom Warren #endif 211*29f3e3f2STom Warren 212*29f3e3f2STom Warren #endif /* CONFIG_SPL_BUILD */ 213*29f3e3f2STom Warren 214*29f3e3f2STom Warren #endif /* __TEGRA_COMMON_POST_H */ 215