From: Jaehoon Chung Date: Fri, 4 Apr 2025 11:02:30 +0000 (+0900) Subject: board: rpi: tizen_rpi: Add a backup_ver to update a backup image X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Ftizen;p=platform%2Fkernel%2Fu-boot.git board: rpi: tizen_rpi: Add a backup_ver to update a backup image Add a backup_ver to check if it needs to update a backup image. If backup_version is a lower than recovery.ver.64/32, it will be updated. If want to update its image by force, use "setenv backup_update_force 1". Then it will be updated a image and version file. Change-Id: I6603c0b0e98bcf31d734d94189dc891de2888039 Signed-off-by: Jaehoon Chung --- diff --git a/board/raspberrypi/rpi/tizen_rpi.env b/board/raspberrypi/rpi/tizen_rpi.env index 88644dbf5a..040b8a69cf 100644 --- a/board/raspberrypi/rpi/tizen_rpi.env +++ b/board/raspberrypi/rpi/tizen_rpi.env @@ -158,6 +158,7 @@ slotfile=partition-ab.info slot_addr=0x02200000 rebootparam_addr=0x02100000 upgradetype_addr=0x02300000 +backup_addr=0x02310000 upgradetype_online_val=696c6e6f upgrade_val=72677075 recovery_val=72766372 @@ -175,6 +176,10 @@ disable_delay=setenv console console=ram; setenv bootdelay 0; saveenv enable_delay=env delete console; setenv bootdelay 2; saveenv gpt_parts=GPT_PARTS_DEFAULT update_gpt_part=gpt write ${devtype} ${devnum} ${gpt_parts} -reboot_param_clear=CLEAR_REBOOT_PARAM +reboot_param_clear=CLEAR_REBOOT_PARAM tizen_bootarg=cgroup_enable=memory TIZEN_VC_MEM 8250.nr_uarts=1 dma.dmachans=0x7f35 bcm2709.serial=0xed6687d3 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 bcm2709.uart_clock=48000000 dwc_otg.lpm_enable=0 +/* Backup Version needs to increase when ramdisk-recovery image in bakcup partition has to update */ +/* Current Version is 1.0 , check 4byte. */ +backup_ver=00302e31 +backup_ver_size=4 diff --git a/tizen/bootscript/tizen-boot-rpi4.scr b/tizen/bootscript/tizen-boot-rpi4.scr index d9eaf12ab9..3f2faa876a 100644 --- a/tizen/bootscript/tizen-boot-rpi4.scr +++ b/tizen/bootscript/tizen-boot-rpi4.scr @@ -114,13 +114,38 @@ if test -n "${ramdiskpart}"; then; if test "${bootmode}" = "flash" && env exists use_backup && env exists backuppart; then; if test "${cpu}" = "armv8"; then; setenv backup_file recovery.img.64 + setenv backup_ver_file recovery.ver.64 else setenv backup_file recovery.img.32 + setenv backup_ver_file recovery.ver.32 fi - echo "Using the ${backup_file} from backup partition" - if test -e $devtype $devnum:$backuppart $backup_file; then; + + # Check backup_version if needs to update + if test -e $devtype $devnum:$backuppart $backup_ver_file; then; + # Compare version at heare + load $devtype $devnum:$backuppart $backup_addr $backup_ver_file $backup_ver_size + if itest.l *${backup_addr} < "${backup_ver}" || env exists backup_update_force; then; + setenv backup_update 1 + fi + else + setenv backup_update 1 + fi + + if env exists backup_update; then; + echo "Update ${backup_file}..." + mw.l $backup_addr $backup_ver + ext4write $devtype $devnum:$backuppart $backup_addr $backup_ver_file $backup_ver_size + + #Copy ramdisk-recovery -> recovery.img.64 or rcovery.img.32 + setexpr file_size $ramdisk_size * 200 + # Load it + ext4write $devtype $devnum:$backuppart $ramdisk_addr_r $backup_file $file_size; + elif test -e $devtype $devnum:$backuppart $backup_file; then; + echo "Using the ${backup_file} from backup partition" + load $devtype $devnum:$backuppart $ramdisk_addr_r $backup_file; else + echo "Create the ${backup_file} from backup partition" #Copy ramdisk-recovery -> recovery.img.64 or rcovery.img.32 setexpr file_size $ramdisk_size * 200 # Load it