diff options
Diffstat (limited to 'board/theobroma-systems/puma/boot.cmd')
-rw-r--r-- | board/theobroma-systems/puma/boot.cmd | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/board/theobroma-systems/puma/boot.cmd b/board/theobroma-systems/puma/boot.cmd new file mode 100644 index 0000000000..328b2a3906 --- /dev/null +++ b/board/theobroma-systems/puma/boot.cmd @@ -0,0 +1,68 @@ +# mkimage -C none -A arm -T script -d boot.cmd boot.scr + +# fallback default values +load_addr=0x01000000 +fdtfile=dtb +kernelfile=Image +initrdfile=uInitrd +rootdevice=/dev/mmcblk0p1 +rootdevice_flags=rw +loglevel=7 + +echo "Boot script running from ${devtype} ${devnum}" + +if test ${board_name} = "puma_rk3399"; then + if test ${devtype} = "mmc" && test ${devnum} -eq 0;then + rootdevice=/dev/mmcblk1p1 + elif test ${devtype} = "mmc" && test ${devnum} -eq 1;then + rootdevice=/dev/mmcblk0p1 + fi +fi + +if load ${devtype} ${devnum} ${fdt_addr_r} /boot/${board_name}/defaultEnv.txt; then + setenv load_path "/boot/${board_name}" + echo "Import default environment from /boot/${board_name}/defaultEnv.txt" + env import -t ${fdt_addr_r} ${filesize} +else + if load ${devtype} ${devnum} ${fdt_addr_r} /boot/defaultEnv.txt; then + setenv load_path "/boot" + echo "Import default environment from /boot/defaultEnv.txt" + env import -t ${fdt_addr_r} ${filesize} + fi +fi + +if load ${devtype} ${devnum} ${load_addr} ${load_path}/userEnv.txt; then + echo "Import default environment from ${load_path}/userEnv.txt" + env import -t ${load_addr} ${filesize} +fi + +if test -n ${userscript}; then + if load ${devtype} ${devnum} ${load_addr} ${load_path}/${userscript}; then + echo "Running userscript from ${load_path}/${userscript}" + source ${load_addr} + fi +fi + +setenv bootargs "root=${rootdevice} ${rootdevice_flags} rootwait ${console} consoleblank=0 loglevel=${loglevel} ${extraargs}" + +if load ${devtype} ${devnum} ${fdt_addr_r} ${load_path}/${fdtfile}; then + echo "Load devicetree from ${load_path}/${fdtfile}" +fi +fdt addr ${fdt_addr_r} +fdt resize + +for overlay_file in ${overlays}; do + if load ${devtype} ${devnum} ${load_addr} ${load_path}/overlays/${overlay_file}; then + echo "Apply devicetree overlay ${load_path}/overlays/${overlay_file}" + fdt apply ${load_addr} + fi +done + +load ${devtype} ${devnum} ${kernel_addr_r} ${load_path}/${kernelfile} + +if load ${devtype} ${devnum} ${load_addr} ${load_path}/${initrdfile}; then + booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} +else + echo "Start Kernel without initrd" + booti ${kernel_addr_r} - ${fdt_addr_r} +fi |