56 lines
1.9 KiB
Plaintext
56 lines
1.9 KiB
Plaintext
# U-Boot boot script for Raspberry Pi 3 with A/B boot
|
|
# This script will be converted to boot.scr by the post-image.sh script
|
|
|
|
echo "DEBUG: Starting boot process..."
|
|
echo "DEBUG: U-Boot version: ${ver}"
|
|
echo "DEBUG: Board: ${board_name}"
|
|
|
|
# Set load addresses
|
|
setenv kernel_addr_r 0x01000000
|
|
setenv fdt_addr_r 0x02000000
|
|
echo "DEBUG: Load addresses set - kernel: ${kernel_addr_r}, fdt: ${fdt_addr_r}"
|
|
|
|
# Print current environment variables
|
|
echo "DEBUG: Current boot variables:"
|
|
echo "DEBUG: active_part=${active_part}"
|
|
echo "DEBUG: active_root=${active_root}"
|
|
echo "DEBUG: bootcount=${bootcount}"
|
|
echo "DEBUG: bootlimit=${bootlimit}"
|
|
|
|
# Read and increment boot count
|
|
echo "DEBUG: Checking bootcount..."
|
|
if test ${bootcount} -lt ${bootlimit}; then
|
|
echo "DEBUG: Incrementing bootcount from ${bootcount} to $((${bootcount} + 1))"
|
|
setexpr bootcount ${bootcount} + 1
|
|
echo "DEBUG: Saving environment..."
|
|
saveenv
|
|
echo "DEBUG: Environment saved"
|
|
fi
|
|
|
|
# If bootcount has reached bootlimit, switch to alternate boot
|
|
echo "DEBUG: Checking if bootcount >= bootlimit..."
|
|
if test ${bootcount} -ge ${bootlimit}; then
|
|
echo "Boot failed too many times. Switching to alternate partition."
|
|
echo "DEBUG: Running altbootcmd..."
|
|
run altbootcmd
|
|
echo "DEBUG: Resetting bootcount to 0"
|
|
setenv bootcount 0
|
|
echo "DEBUG: Saving environment..."
|
|
saveenv
|
|
echo "DEBUG: Environment saved"
|
|
fi
|
|
|
|
# List files in boot partition
|
|
echo "DEBUG: Listing files in boot partition:"
|
|
ls mmc 0:1
|
|
|
|
# Boot the system
|
|
echo "DEBUG: Preparing to boot from partition ${active_part}..."
|
|
echo "DEBUG: Will execute: bootcmd_${active_part}"
|
|
echo "DEBUG: bootcmd_${active_part}=${bootcmd_${active_part}}"
|
|
echo "DEBUG: Booting from partition ${active_part}..."
|
|
run bootcmd_${active_part}
|
|
|
|
# If we reach here, booting failed. Try alternate boot.
|
|
echo "DEBUG: Primary boot failed. Trying alternate partition..."
|
|
run altbootcmd |