xref: /openbmc/u-boot/include/environment/ti/boot.h (revision 43a6a1ec9055a53a11d6d735f11cceea13912bbe)
183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
24fd79ac9SSemen Protsenko /*
34fd79ac9SSemen Protsenko  * Boot related environment variable definitions on TI boards.
44fd79ac9SSemen Protsenko  *
54fd79ac9SSemen Protsenko  * (C) Copyright 2017 Linaro Ltd.
64fd79ac9SSemen Protsenko  * Sam Protsenko <semen.protsenko@linaro.org>
74fd79ac9SSemen Protsenko  */
84fd79ac9SSemen Protsenko 
94fd79ac9SSemen Protsenko #ifndef __TI_BOOT_H
104fd79ac9SSemen Protsenko #define __TI_BOOT_H
114fd79ac9SSemen Protsenko 
124fd79ac9SSemen Protsenko #ifndef CONSOLEDEV
134fd79ac9SSemen Protsenko #define CONSOLEDEV "ttyO2"
144fd79ac9SSemen Protsenko #endif
154fd79ac9SSemen Protsenko 
16e883ffe0SIgor Opaniuk #define VBMETA_PART_SIZE		(64 * 1024)
17e883ffe0SIgor Opaniuk 
18e883ffe0SIgor Opaniuk #if defined(CONFIG_LIBAVB)
19e883ffe0SIgor Opaniuk #define VBMETA_PART \
20e883ffe0SIgor Opaniuk 	"name=vbmeta,size=" __stringify(VBMETA_PART_SIZE) \
21e883ffe0SIgor Opaniuk 	",uuid=${uuid_gpt_vbmeta};"
22e883ffe0SIgor Opaniuk #else
23e883ffe0SIgor Opaniuk #define VBMETA_PART			""
24e883ffe0SIgor Opaniuk #endif
25e883ffe0SIgor Opaniuk 
264fd79ac9SSemen Protsenko #ifndef PARTS_DEFAULT
27c90a760fSSam Protsenko /* Define the default GPT table for eMMC */
28c90a760fSSam Protsenko #define PARTS_DEFAULT \
29c90a760fSSam Protsenko 	/* Linux partitions */ \
30c90a760fSSam Protsenko 	"uuid_disk=${uuid_gpt_disk};" \
31c90a760fSSam Protsenko 	"name=bootloader,start=384K,size=1792K,uuid=${uuid_gpt_bootloader};" \
32c90a760fSSam Protsenko 	"name=rootfs,start=2688K,size=-,uuid=${uuid_gpt_rootfs}\0" \
33c90a760fSSam Protsenko 	/* Android partitions */ \
34c90a760fSSam Protsenko 	"partitions_android=" \
35c90a760fSSam Protsenko 	"uuid_disk=${uuid_gpt_disk};" \
36c90a760fSSam Protsenko 	"name=xloader,start=128K,size=256K,uuid=${uuid_gpt_xloader};" \
371e4fb783SSam Protsenko 	"name=bootloader,size=2048K,uuid=${uuid_gpt_bootloader};" \
38*35e3d2e8SSam Protsenko 	"name=uboot-env,start=2432K,size=256K,uuid=${uuid_gpt_reserved};" \
39c90a760fSSam Protsenko 	"name=misc,size=128K,uuid=${uuid_gpt_misc};" \
40c90a760fSSam Protsenko 	"name=recovery,size=40M,uuid=${uuid_gpt_recovery};" \
41c90a760fSSam Protsenko 	"name=boot,size=10M,uuid=${uuid_gpt_boot};" \
42528920f9SSam Protsenko 	"name=system,size=1024M,uuid=${uuid_gpt_system};" \
43c90a760fSSam Protsenko 	"name=vendor,size=256M,uuid=${uuid_gpt_vendor};" \
44e883ffe0SIgor Opaniuk 	VBMETA_PART \
45c90a760fSSam Protsenko 	"name=userdata,size=-,uuid=${uuid_gpt_userdata}"
46c90a760fSSam Protsenko #endif /* PARTS_DEFAULT */
474fd79ac9SSemen Protsenko 
48e883ffe0SIgor Opaniuk #if defined(CONFIG_CMD_AVB)
49e883ffe0SIgor Opaniuk #define AVB_VERIFY_CHECK "if run avb_verify; then " \
50e883ffe0SIgor Opaniuk 				"echo AVB verification OK.;" \
51e883ffe0SIgor Opaniuk 				"set bootargs $bootargs $avb_bootargs;" \
52e883ffe0SIgor Opaniuk 			"else " \
53e883ffe0SIgor Opaniuk 				"echo AVB verification failed.;" \
54e883ffe0SIgor Opaniuk 			"exit; fi;"
55e883ffe0SIgor Opaniuk #define AVB_VERIFY_CMD "avb_verify=avb init 1; avb verify;\0"
56e883ffe0SIgor Opaniuk #else
57e883ffe0SIgor Opaniuk #define AVB_VERIFY_CHECK ""
58e883ffe0SIgor Opaniuk #define AVB_VERIFY_CMD ""
59e883ffe0SIgor Opaniuk #endif
60e883ffe0SIgor Opaniuk 
614fd79ac9SSemen Protsenko #define DEFAULT_COMMON_BOOT_TI_ARGS \
624fd79ac9SSemen Protsenko 	"console=" CONSOLEDEV ",115200n8\0" \
634fd79ac9SSemen Protsenko 	"fdtfile=undefined\0" \
644fd79ac9SSemen Protsenko 	"bootpart=0:2\0" \
654fd79ac9SSemen Protsenko 	"bootdir=/boot\0" \
664fd79ac9SSemen Protsenko 	"bootfile=zImage\0" \
674fd79ac9SSemen Protsenko 	"usbtty=cdc_acm\0" \
684fd79ac9SSemen Protsenko 	"vram=16M\0" \
69e883ffe0SIgor Opaniuk 	AVB_VERIFY_CMD \
704fd79ac9SSemen Protsenko 	"partitions=" PARTS_DEFAULT "\0" \
714fd79ac9SSemen Protsenko 	"optargs=\0" \
72a17c8b18SSemen Protsenko 	"dofastboot=0\0" \
732717c084SSam Protsenko 	"emmc_linux_boot=" \
746ca43a58SSam Protsenko 		"echo Trying to boot Linux from eMMC ...; " \
752717c084SSam Protsenko 		"setenv mmcdev 1; " \
762717c084SSam Protsenko 		"setenv bootpart 1:2; " \
772717c084SSam Protsenko 		"setenv mmcroot /dev/mmcblk0p2 rw; " \
782717c084SSam Protsenko 		"run mmcboot;\0" \
79a17c8b18SSemen Protsenko 	"emmc_android_boot=" \
806ca43a58SSam Protsenko 		"echo Trying to boot Android from eMMC ...; " \
81b2031ff7SPraneeth Bajjuri 		"run update_to_fit; " \
82a17c8b18SSemen Protsenko 		"setenv eval_bootargs setenv bootargs $bootargs; " \
83a17c8b18SSemen Protsenko 		"run eval_bootargs; " \
84a17c8b18SSemen Protsenko 		"setenv mmcdev 1; " \
85a17c8b18SSemen Protsenko 		"setenv machid fe6; " \
86a17c8b18SSemen Protsenko 		"mmc dev $mmcdev; " \
87a17c8b18SSemen Protsenko 		"mmc rescan; " \
88e883ffe0SIgor Opaniuk 		AVB_VERIFY_CHECK \
892c9afab9SSam Protsenko 		"part start mmc ${mmcdev} boot boot_start; " \
902c9afab9SSam Protsenko 		"part size mmc ${mmcdev} boot boot_size; " \
91a17c8b18SSemen Protsenko 		"mmc read ${loadaddr} ${boot_start} ${boot_size}; " \
92b2031ff7SPraneeth Bajjuri 		"bootm ${loadaddr}#${fdtfile};\0 "
934fd79ac9SSemen Protsenko 
944fd79ac9SSemen Protsenko #ifdef CONFIG_OMAP54XX
954fd79ac9SSemen Protsenko 
964fd79ac9SSemen Protsenko #define DEFAULT_FDT_TI_ARGS \
974fd79ac9SSemen Protsenko 	"findfdt="\
984fd79ac9SSemen Protsenko 		"if test $board_name = omap5_uevm; then " \
994fd79ac9SSemen Protsenko 			"setenv fdtfile omap5-uevm.dtb; fi; " \
1004fd79ac9SSemen Protsenko 		"if test $board_name = dra7xx; then " \
1014fd79ac9SSemen Protsenko 			"setenv fdtfile dra7-evm.dtb; fi;" \
1024fd79ac9SSemen Protsenko 		"if test $board_name = dra72x-revc; then " \
1034fd79ac9SSemen Protsenko 			"setenv fdtfile dra72-evm-revc.dtb; fi;" \
1044fd79ac9SSemen Protsenko 		"if test $board_name = dra72x; then " \
1054fd79ac9SSemen Protsenko 			"setenv fdtfile dra72-evm.dtb; fi;" \
1064fd79ac9SSemen Protsenko 		"if test $board_name = dra71x; then " \
1074fd79ac9SSemen Protsenko 			"setenv fdtfile dra71-evm.dtb; fi;" \
1083741c044SLokesh Vutla 		"if test $board_name = dra76x_acd; then " \
109911d76c4SLokesh Vutla 			"setenv fdtfile dra76-evm.dtb; fi;" \
1104fd79ac9SSemen Protsenko 		"if test $board_name = beagle_x15; then " \
1114fd79ac9SSemen Protsenko 			"setenv fdtfile am57xx-beagle-x15.dtb; fi;" \
1124fd79ac9SSemen Protsenko 		"if test $board_name = beagle_x15_revb1; then " \
1134fd79ac9SSemen Protsenko 			"setenv fdtfile am57xx-beagle-x15-revb1.dtb; fi;" \
11408318317SLokesh Vutla 		"if test $board_name = beagle_x15_revc; then " \
11508318317SLokesh Vutla 			"setenv fdtfile am57xx-beagle-x15-revc.dtb; fi;" \
1164fd79ac9SSemen Protsenko 		"if test $board_name = am572x_idk; then " \
1174fd79ac9SSemen Protsenko 			"setenv fdtfile am572x-idk.dtb; fi;" \
1183741c044SLokesh Vutla 		"if test $board_name = am574x_idk; then " \
1193741c044SLokesh Vutla 			"setenv fdtfile am574x-idk.dtb; fi;" \
1204fd79ac9SSemen Protsenko 		"if test $board_name = am57xx_evm; then " \
1214fd79ac9SSemen Protsenko 			"setenv fdtfile am57xx-beagle-x15.dtb; fi;" \
1224fd79ac9SSemen Protsenko 		"if test $board_name = am57xx_evm_reva3; then " \
1234fd79ac9SSemen Protsenko 			"setenv fdtfile am57xx-beagle-x15.dtb; fi;" \
1244fd79ac9SSemen Protsenko 		"if test $board_name = am571x_idk; then " \
1254fd79ac9SSemen Protsenko 			"setenv fdtfile am571x-idk.dtb; fi;" \
1264fd79ac9SSemen Protsenko 		"if test $fdtfile = undefined; then " \
1274fd79ac9SSemen Protsenko 			"echo WARNING: Could not determine device tree to use; fi; \0"
1284fd79ac9SSemen Protsenko 
1294fd79ac9SSemen Protsenko #define CONFIG_BOOTCOMMAND \
1304fd79ac9SSemen Protsenko 	"if test ${dofastboot} -eq 1; then " \
1314fd79ac9SSemen Protsenko 		"echo Boot fastboot requested, resetting dofastboot ...;" \
1324fd79ac9SSemen Protsenko 		"setenv dofastboot 0; saveenv;" \
1334fd79ac9SSemen Protsenko 		"echo Booting into fastboot ...; " \
1344fd79ac9SSemen Protsenko 		"fastboot " __stringify(CONFIG_FASTBOOT_USB_DEV) "; " \
1354fd79ac9SSemen Protsenko 	"fi;" \
1364fd79ac9SSemen Protsenko 	"if test ${boot_fit} -eq 1; then "	\
1374fd79ac9SSemen Protsenko 		"run update_to_fit;"	\
1384fd79ac9SSemen Protsenko 	"fi;"	\
1394fd79ac9SSemen Protsenko 	"run findfdt; " \
1404fd79ac9SSemen Protsenko 	"run envboot; " \
1414fd79ac9SSemen Protsenko 	"run mmcboot;" \
1422717c084SSam Protsenko 	"run emmc_linux_boot; " \
143a17c8b18SSemen Protsenko 	"run emmc_android_boot; " \
1444fd79ac9SSemen Protsenko 	""
1454fd79ac9SSemen Protsenko 
1464fd79ac9SSemen Protsenko #endif /* CONFIG_OMAP54XX */
1474fd79ac9SSemen Protsenko 
1484fd79ac9SSemen Protsenko #endif /* __TI_BOOT_H */
149