mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
After that, the script successfully loads the DTB file from two possible paths and overlays. If the file does not exist, then the default file will be uploaded.
123 lines
4.5 KiB
Batchfile
123 lines
4.5 KiB
Batchfile
# DO NOT EDIT THIS FILE
|
|
#
|
|
# Please edit /boot/armbianEnv.txt to set supported parameters
|
|
#
|
|
|
|
# default values
|
|
setenv load_addr "0x45000000"
|
|
setenv overlay_error "false"
|
|
setenv rootdev "/dev/mmcblk0p1"
|
|
setenv verbosity "1"
|
|
setenv rootfstype "ext4"
|
|
setenv console "both"
|
|
setenv docker_optimizations "on"
|
|
setenv bootlogo "false"
|
|
|
|
setenv vendor "allwinner"
|
|
|
|
# Remember the default fdtfile provided by u-boot and delete the vendor name
|
|
if setexpr subfdt sub ${vendor}/ "" ${fdtfile};then
|
|
setenv deffdt_file ${subfdt}
|
|
fi
|
|
|
|
# Remember the default u-boot fdtdir
|
|
setenv deffdt_dir "${prefix}dtb"
|
|
if test "$fdtdir" = ""; then setenv fdtdir "${deffdt_dir}/${vendor}";fi
|
|
|
|
# Print boot source
|
|
itest.b *0x10028 == 0x00 && echo "U-boot loaded from SD"
|
|
itest.b *0x10028 == 0x02 && echo "U-boot loaded from eMMC or secondary SD"
|
|
itest.b *0x10028 == 0x03 && echo "U-boot loaded from SPI"
|
|
|
|
echo "Boot script loaded from ${devtype}"
|
|
|
|
if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then
|
|
load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt
|
|
env import -t ${load_addr} ${filesize}
|
|
fi
|
|
|
|
# Delete the vendor's name from the fdtfile variable and record the result
|
|
# after the file with the environment variables has been read
|
|
if setexpr subfdt sub ${vendor}/ "" ${fdtfile};then
|
|
setenv fdtfile ${subfdt}
|
|
fi
|
|
|
|
# In this shell, we can only check the existence of the file.
|
|
# Make a check of reasonable ways to find the dtb file.
|
|
# Set the true value of the paths.
|
|
if test -e ${devtype} ${devnum} "${fdtdir}/${fdtfile}"; then
|
|
echo "Load fdt: ${fdtdir}/${fdtfile}"
|
|
else
|
|
echo "The file ${fdtfile} was not found in the path ${fdtdir}"
|
|
if test -e ${devtype} ${devnum} "${deffdt_dir}/${fdtfile}"; then
|
|
setenv fdtdir "${deffdt_dir}"
|
|
echo "Load fdt: ${fdtdir}/${fdtfile}"
|
|
else
|
|
if test -e ${devtype} ${devnum} "${deffdt_dir}/${vendor}/${deffdt_file}"; then
|
|
setenv fdtdir "${deffdt_dir}/${vendor}"
|
|
setenv fdtfile "${deffdt_file}"
|
|
echo "Load fdt: ${fdtdir}/${fdtfile}"
|
|
else
|
|
if test -e ${devtype} ${devnum} "${deffdt_dir}/${deffdt_file}"; then
|
|
setenv fdtdir "${deffdt_dir}"
|
|
setenv fdtfile "${deffdt_file}"
|
|
echo "Load fdt: ${fdtdir}/${fdtfile}"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi
|
|
if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi
|
|
if test "${bootlogo}" = "true"; then
|
|
setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}"
|
|
else
|
|
setenv consoleargs "splash=verbose ${consoleargs}"
|
|
fi
|
|
|
|
# get PARTUUID of first partition on SD/eMMC it was loaded from
|
|
# mmc 0 is always mapped to device u-boot (2016.09+) was loaded from
|
|
if test "${devtype}" = "mmc"; then part uuid mmc 0:1 partuuid; fi
|
|
|
|
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
|
|
|
|
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory"; fi
|
|
|
|
load ${devtype} ${devnum} ${fdt_addr_r} ${fdtdir}/${fdtfile}
|
|
fdt addr ${fdt_addr_r}
|
|
fdt resize 65536
|
|
for overlay_file in ${overlays}; do
|
|
if load ${devtype} ${devnum} ${load_addr} ${fdtdir}/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
|
|
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
|
|
fdt apply ${load_addr} || setenv overlay_error "true"
|
|
fi
|
|
done
|
|
for overlay_file in ${user_overlays}; do
|
|
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
|
|
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
|
|
fdt apply ${load_addr} || setenv overlay_error "true"
|
|
fi
|
|
done
|
|
if test "${overlay_error}" = "true"; then
|
|
echo "Error applying DT overlays, restoring original DT"
|
|
load ${devtype} ${devnum} ${fdt_addr_r} ${fdtdir}/${fdtfile}
|
|
else
|
|
if load ${devtype} ${devnum} ${load_addr} ${fdtdir}/overlay/${overlay_prefix}-fixup.scr; then
|
|
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
|
|
source ${load_addr}
|
|
fi
|
|
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
|
|
load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr
|
|
echo "Applying user provided fixup script (fixup.scr)"
|
|
source ${load_addr}
|
|
fi
|
|
fi
|
|
|
|
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
|
|
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image
|
|
|
|
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
|
|
|
|
# Recompile with:
|
|
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
|