autoboot.cmd 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. # This is an example file to generate boot.scr - a boot script for U-Boot
  2. # Generate boot.scr:
  3. # ./tools/mkimage -c none -A arm -T script -d autoboot.cmd boot.scr
  4. #
  5. # It requires a list of environment variables to be defined before load:
  6. # platform dependent: boardname, fdtfile, console
  7. # system dependent: mmcbootdev, mmcbootpart, mmcrootdev, mmcrootpart, rootfstype
  8. #
  9. setenv fdtaddr "40800000"
  10. setenv initrdname "uInitrd"
  11. setenv initrdaddr "42000000"
  12. setenv loaddtb "load mmc ${mmcbootdev}:${mmcbootpart} ${fdtaddr} ${fdtfile}"
  13. setenv loadinitrd "load mmc ${mmcbootdev}:${mmcbootpart} ${initrdaddr} ${initrdname}"
  14. setenv loadkernel "load mmc ${mmcbootdev}:${mmcbootpart} '${kerneladdr}' '${kernelname}'"
  15. setenv kernel_args "setenv bootargs ${console} root=/dev/mmcblk${mmcrootdev}p${mmcrootpart} rootfstype=${rootfstype} rootwait ${opts}"
  16. #### Routine: check_dtb - check that target.dtb exists on boot partition
  17. setenv check_dtb "
  18. if test -e mmc '${mmcbootdev}':'${mmcbootpart}' '${fdtfile}'; then
  19. run loaddtb;
  20. setenv fdt_addr ${fdtaddr};
  21. else
  22. echo Warning! Booting without DTB: '${fdtfile}'!;
  23. setenv fdt_addr;
  24. fi;"
  25. #### Routine: check_ramdisk - check that uInitrd exists on boot partition
  26. setenv check_ramdisk "
  27. if test -e mmc '${mmcbootdev}':'${mmcbootpart}' '${initrdname}'; then
  28. echo "Found ramdisk image.";
  29. run loadinitrd;
  30. setenv initrd_addr ${initrdaddr};
  31. else
  32. echo Warning! Booting without RAMDISK: '${initrdname}'!;
  33. setenv initrd_addr -;
  34. fi;"
  35. #### Routine: boot_fit - check that env $boardname is set and boot proper config of ITB image
  36. setenv setboot_fit "
  37. if test -e '${boardname}'; then
  38. setenv fdt_addr ;
  39. setenv initrd_addr ;
  40. setenv kerneladdr 0x42000000;
  41. setenv kernelname Image.itb;
  42. setenv itbcfg "\"#${boardname}\"";
  43. setenv imgbootcmd bootm;
  44. else
  45. echo Warning! Variable: \$boardname is undefined!;
  46. fi"
  47. #### Routine: setboot_uimg - prepare env to boot uImage
  48. setenv setboot_uimg "
  49. setenv kerneladdr 0x40007FC0;
  50. setenv kernelname uImage;
  51. setenv itbcfg ;
  52. setenv imgbootcmd bootm;
  53. run check_dtb;
  54. run check_ramdisk;"
  55. #### Routine: setboot_zimg - prepare env to boot zImage
  56. setenv setboot_zimg "
  57. setenv kerneladdr 0x40007FC0;
  58. setenv kernelname zImage;
  59. setenv itbcfg ;
  60. setenv imgbootcmd bootz;
  61. run check_dtb;
  62. run check_ramdisk;"
  63. #### Routine: boot_img - boot the kernel after env setup
  64. setenv boot_img "
  65. run loadkernel;
  66. run kernel_args;
  67. '${imgbootcmd}' '${kerneladdr}${itbcfg}' '${initrd_addr}' '${fdt_addr}';"
  68. #### Routine: autoboot - choose proper boot path
  69. setenv autoboot "
  70. if test -e mmc 0:${mmcbootpart} Image.itb; then
  71. echo Found kernel image: Image.itb;
  72. run setboot_fit;
  73. run boot_img;
  74. elif test -e mmc 0:${mmcbootpart} zImage; then
  75. echo Found kernel image: zImage;
  76. run setboot_zimg;
  77. run boot_img;
  78. elif test -e mmc 0:${mmcbootpart} uImage; then
  79. echo Found kernel image: uImage;
  80. run setboot_uimg;
  81. run boot_img;
  82. fi;"
  83. #### Execute the defined autoboot macro
  84. run autoboot