xref: /openbmc/u-boot/board/samsung/common/bootscripts/autoboot.cmd (revision 66c433ed4342e5761ee9b048c85fe47d31130b2e)
12911bd18SPrzemyslaw Marczak# This is an example file to generate boot.scr - a boot script for U-Boot
22911bd18SPrzemyslaw Marczak# Generate boot.scr:
32911bd18SPrzemyslaw Marczak# ./tools/mkimage -c none -A arm -T script -d autoboot.cmd boot.scr
42911bd18SPrzemyslaw Marczak#
52911bd18SPrzemyslaw Marczak# It requires a list of environment variables to be defined before load:
6*e6b14670SKrzysztof Kozlowski# platform dependent: board_name, fdtfile, console
72911bd18SPrzemyslaw Marczak# system dependent: mmcbootdev, mmcbootpart, mmcrootdev, mmcrootpart, rootfstype
82911bd18SPrzemyslaw Marczak#
92911bd18SPrzemyslaw Marczaksetenv fdtaddr     "40800000"
102911bd18SPrzemyslaw Marczaksetenv initrdname  "uInitrd"
112911bd18SPrzemyslaw Marczaksetenv initrdaddr  "42000000"
122911bd18SPrzemyslaw Marczaksetenv loaddtb     "load mmc ${mmcbootdev}:${mmcbootpart} ${fdtaddr} ${fdtfile}"
132911bd18SPrzemyslaw Marczaksetenv loadinitrd  "load mmc ${mmcbootdev}:${mmcbootpart} ${initrdaddr} ${initrdname}"
142911bd18SPrzemyslaw Marczaksetenv loadkernel  "load mmc ${mmcbootdev}:${mmcbootpart} '${kerneladdr}' '${kernelname}'"
152911bd18SPrzemyslaw Marczaksetenv kernel_args "setenv bootargs ${console} root=/dev/mmcblk${mmcrootdev}p${mmcrootpart} rootfstype=${rootfstype} rootwait ${opts}"
162911bd18SPrzemyslaw Marczak
172911bd18SPrzemyslaw Marczak#### Routine: check_dtb - check that target.dtb exists on boot partition
182911bd18SPrzemyslaw Marczaksetenv check_dtb "
192911bd18SPrzemyslaw Marczakif test -e mmc '${mmcbootdev}':'${mmcbootpart}' '${fdtfile}'; then
202911bd18SPrzemyslaw Marczak	run loaddtb;
212911bd18SPrzemyslaw Marczak	setenv fdt_addr ${fdtaddr};
222911bd18SPrzemyslaw Marczakelse
232911bd18SPrzemyslaw Marczak	echo Warning! Booting without DTB: '${fdtfile}'!;
242911bd18SPrzemyslaw Marczak	setenv fdt_addr;
252911bd18SPrzemyslaw Marczakfi;"
262911bd18SPrzemyslaw Marczak
272911bd18SPrzemyslaw Marczak#### Routine: check_ramdisk - check that uInitrd exists on boot partition
282911bd18SPrzemyslaw Marczaksetenv check_ramdisk "
292911bd18SPrzemyslaw Marczakif test -e mmc '${mmcbootdev}':'${mmcbootpart}' '${initrdname}'; then
302911bd18SPrzemyslaw Marczak	echo "Found ramdisk image.";
312911bd18SPrzemyslaw Marczak	run loadinitrd;
322911bd18SPrzemyslaw Marczak	setenv initrd_addr ${initrdaddr};
332911bd18SPrzemyslaw Marczakelse
342911bd18SPrzemyslaw Marczak	echo Warning! Booting without RAMDISK: '${initrdname}'!;
352911bd18SPrzemyslaw Marczak	setenv initrd_addr -;
362911bd18SPrzemyslaw Marczakfi;"
372911bd18SPrzemyslaw Marczak
38*e6b14670SKrzysztof Kozlowski#### Routine: boot_fit - check that env $board_name is set and boot proper config of ITB image
392911bd18SPrzemyslaw Marczaksetenv setboot_fit "
40*e6b14670SKrzysztof Kozlowskiif test -e '${board_name}'; then
412911bd18SPrzemyslaw Marczak	setenv fdt_addr ;
422911bd18SPrzemyslaw Marczak	setenv initrd_addr ;
432911bd18SPrzemyslaw Marczak	setenv kerneladdr  0x42000000;
442911bd18SPrzemyslaw Marczak	setenv kernelname  Image.itb;
45*e6b14670SKrzysztof Kozlowski	setenv itbcfg      "\"#${board_name}\"";
462911bd18SPrzemyslaw Marczak	setenv imgbootcmd  bootm;
472911bd18SPrzemyslaw Marczakelse
48*e6b14670SKrzysztof Kozlowski	echo Warning! Variable: \$board_name is undefined!;
492911bd18SPrzemyslaw Marczakfi"
502911bd18SPrzemyslaw Marczak
512911bd18SPrzemyslaw Marczak#### Routine: setboot_uimg - prepare env to boot uImage
522911bd18SPrzemyslaw Marczaksetenv setboot_uimg "
532911bd18SPrzemyslaw Marczak	setenv kerneladdr 0x40007FC0;
542911bd18SPrzemyslaw Marczak	setenv kernelname uImage;
552911bd18SPrzemyslaw Marczak	setenv itbcfg     ;
562911bd18SPrzemyslaw Marczak	setenv imgbootcmd bootm;
572911bd18SPrzemyslaw Marczak	run check_dtb;
582911bd18SPrzemyslaw Marczak	run check_ramdisk;"
592911bd18SPrzemyslaw Marczak
602911bd18SPrzemyslaw Marczak#### Routine: setboot_zimg - prepare env to boot zImage
612911bd18SPrzemyslaw Marczaksetenv setboot_zimg "
622911bd18SPrzemyslaw Marczak	setenv kerneladdr 0x40007FC0;
632911bd18SPrzemyslaw Marczak	setenv kernelname zImage;
642911bd18SPrzemyslaw Marczak	setenv itbcfg     ;
652911bd18SPrzemyslaw Marczak	setenv imgbootcmd bootz;
662911bd18SPrzemyslaw Marczak	run check_dtb;
672911bd18SPrzemyslaw Marczak	run check_ramdisk;"
682911bd18SPrzemyslaw Marczak
692911bd18SPrzemyslaw Marczak#### Routine: boot_img - boot the kernel after env setup
702911bd18SPrzemyslaw Marczaksetenv boot_img "
712911bd18SPrzemyslaw Marczak	run loadkernel;
722911bd18SPrzemyslaw Marczak	run kernel_args;
732911bd18SPrzemyslaw Marczak	'${imgbootcmd}' '${kerneladdr}${itbcfg}' '${initrd_addr}' '${fdt_addr}';"
742911bd18SPrzemyslaw Marczak
752911bd18SPrzemyslaw Marczak#### Routine: autoboot - choose proper boot path
762911bd18SPrzemyslaw Marczaksetenv autoboot "
7730373ef0SLukasz Majewskiif test -e mmc ${mmcbootdev}:${mmcbootpart} Image.itb; then
782911bd18SPrzemyslaw Marczak	echo Found kernel image: Image.itb;
792911bd18SPrzemyslaw Marczak	run setboot_fit;
802911bd18SPrzemyslaw Marczak	run boot_img;
8130373ef0SLukasz Majewskielif test -e mmc ${mmcbootdev}:${mmcbootpart} zImage; then
822911bd18SPrzemyslaw Marczak	echo Found kernel image: zImage;
832911bd18SPrzemyslaw Marczak	run setboot_zimg;
842911bd18SPrzemyslaw Marczak	run boot_img;
8530373ef0SLukasz Majewskielif test -e mmc ${mmcbootdev}:${mmcbootpart} uImage; then
862911bd18SPrzemyslaw Marczak	echo Found kernel image: uImage;
872911bd18SPrzemyslaw Marczak	run setboot_uimg;
882911bd18SPrzemyslaw Marczak	run boot_img;
892911bd18SPrzemyslaw Marczakfi;"
902911bd18SPrzemyslaw Marczak
912911bd18SPrzemyslaw Marczak#### Execute the defined autoboot macro
922911bd18SPrzemyslaw Marczakrun autoboot
93