ZCU106_10Gbps_ethernet/Petalinux/project-spec/meta-user/recipes-apps/myapp-init/files/myapp-init.bak

63 lines
1.7 KiB
Bash

#!/bin/sh
echo "Hello PetaLinux World This is an example startup script, ver 4"
reset_counters() {
# Read the file into an associative array
declare -A counters
while read line; do
# Split the line into key and value
key=$(echo "$line" | cut -d= -f1)
value=$(echo "$line" | cut -d= -f2)
# Store the key-value pair in the array
counters["$key"]=$value
done < counter_env
# Reset the values in the array
counters["nu_nw_upgrade_counter"]=0
counters["nu_nw_global_counter"]=0
counters["nu_lc_boot_counter"]=0
counters["nu_lc_backup_counter"]=0
# Write the array back to the file
for key in "${!counters[@]}"; do
echo "$key=${counters[$key]}" >> counter_env.tmp
done
# Replace the original file with the updated file
mv counter_env.tmp counter_env
}
# get the user boot mode pins
boot_mode_reg=`peek 0x00FF5E0204`
boot_from_sd_card_reg_val="0x00000555"
boot_from_emmc_reg_val="0x00000666"
if [ "$boot_mode_reg" = "$boot_from_sd_card_reg_val" ]; then
#
# SD BOOT
#
echo "booting from sd card based on user boot mode"
cd /mnt/sd-mmcblk1p1
echo "Starting Crashkernel Service"
kexec -p /mnt/sd-mmcblk1p1/crashkernel/vmlinux --initrd=/mnt/sd-mmcblk1p1/crashkernel/rootfs.cpio
echo "Resetting U-Boot Counters"
reset_counters
./startup_script.cmd
elif [ "$boot_mode_reg" = "$boot_from_emmc_reg_val" ]; then
#
# EMMC BOOT
#
echo "booting from emmc based on boot mode"
cd /mnt/sd-mmcblk0p1
echo "Starting Crashkernel Service"
kexec -p /mnt/sd-mmcblk0p1/crashkernel/vmlinux --initrd=/mnt/sd-mmcblk0p1/crashkernel/rootfs.cpio
echo "Resetting U-Boot Counters"
reset_counters
./startup_script.cmd
else
#
# Should never be here
#
echo "[ERROR] user boot mode unsupported, waiting for system reset..."
fi