tizen: bootscript: Add visionfive2 bootscript and env file
authorJaehoon Chung <jh80.chung@samsung.com>
Fri, 2 Jun 2023 07:29:36 +0000 (16:29 +0900)
committerJaehoon Chung <jh80.chung@samsung.com>
Tue, 17 Oct 2023 04:19:40 +0000 (13:19 +0900)
Add visionfive2 bootscript and uEnv.txt file.
tizen-boot-vf2-uEnv.txt file will be used when booting from pre-flashed u-boot.

Custom U-boot will not be used tizen-boot-vf2-uEnv.txt file.
Instead, Custom u-boot will be using the generated uboot.env.

Change-Id: Ic4d2542ddd3d7312f0367c733618f8be6926fef3
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
tizen/bootscript/tizen-boot-vf2-uEnv.txt [new file with mode: 0644]
tizen/bootscript/tizen-boot-vf2.scr [new file with mode: 0644]

diff --git a/tizen/bootscript/tizen-boot-vf2-uEnv.txt b/tizen/bootscript/tizen-boot-vf2-uEnv.txt
new file mode 100644 (file)
index 0000000..86f1c0c
--- /dev/null
@@ -0,0 +1,66 @@
+prefix=/
+
+fdt=jh7110-starfive-visionfive-2-v1.3b.dtb
+fdt_addr=0x88000000
+fdt_high=0xffffffffffffffff
+
+scriptaddr=0x88100000
+script_offset_f=0x1fff000
+script_size_f=0x1000
+
+pxefile_addr_r=0x88200000
+
+ramdisk_addr_r=0x88300000
+initrd_high=0xffffffffffffffff
+
+kernel=Image
+kernel_addr_r=0x84000000
+kernel_comp_addr_r=0x90000000
+kernel_comp_size=0x10000000
+
+# gateway=192.168.0.1
+# ipaddr=192.168.0.2
+# netmask=255.255.255.0
+
+target=mmc0
+mmcbootdev=1
+mmcbootpart=3
+mmcrootdev=1
+mmcrootpart=5
+mmcinformpart=b
+rebootparamfile=reboot-param.bin
+slotfile=partition-ab.info
+slot_addr=0x82200000
+rebootparam_addr=0x82100000
+upgrade_val=72677075
+recovery_val=72766372
+nodef_val=6665646e
+normal_val=6d726f6e
+download_val=6c6e7764
+ramdiskpart=9
+bootmode=ramdisk
+bootdev=mmc
+tfm=setenv bootmode download; run bootcmd
+tizen_bootarg=""
+opts=loglevel=4
+set_to_part_a=\
+    if test -e mmc ${mmcbootdev}:${mmcinformpart} ${slotfile}; then; \
+        load mmc ${mmcbootdev}:${mmcinformpart} ${slot_addr} /${slotfile} 2; \
+    fi; \
+    mw.b ${slot_addr} 0x61; \
+    ext4write mmc ${mmcbootdev}:${mmcinformpart} ${slot_addr} /${slotfile} 2;
+set_to_part_b=\
+    if test -e mmc ${mmcbootdev}:${mmcinformpart} ${slotfile}; then; \
+        load mmc ${mmcbootdev}:${mmcinformpart} ${slot_addr} /${slotfile} 2; \
+    fi; \
+    mw.b ${slot_addr} 0x62; \
+    ext4write mmc ${mmcbootdev}:${mmcinformpart} ${slot_addr} /${slotfile} 2;
+reboot_param_clear=\
+    mw.l ${rebootparam_addr} ${normal_val}; \
+    ext4write mmc ${mmcbootdev}:${mmcinformpart} ${rebootparam_addr} /${rebootparamfile} 8;
+
+script=boot.scr.uimg
+bootcmd=\
+    load mmc ${mmcrootdev}:${mmcbootpart} ${fdt_addr} ${prefix}${fdt}; \
+    load mmc ${mmcrootdev}:${mmcbootpart} ${scriptaddr} ${prefix}${script}; \
+    source ${scriptaddr}
diff --git a/tizen/bootscript/tizen-boot-vf2.scr b/tizen/bootscript/tizen-boot-vf2.scr
new file mode 100644 (file)
index 0000000..7370238
--- /dev/null
@@ -0,0 +1,109 @@
+# U-boot script for tizen VF2
+
+if test "${target}" = "mmc0"; then;
+       setenv bootdev mmc
+fi
+if test "${target}" = "usb0"; then;
+       setenv bootdev usb
+       setenv opts "${opts} rootdelay=2"
+fi
+
+if test -e $bootdev $mmcbootdev:$mmcinformpart $slotfile; then;
+       ext4load $bootdev $mmcbootdev:$mmcinformpart $slot_addr $slotfile;
+       if itest.b *${slot_addr} == 0x62; then;
+               setenv ramdiskpart 14
+               setenv partition_ab b
+               echo "boot from slot_b";
+       else
+               setenv ramdiskpart 9
+               setenv partition_ab a
+               echo "boot from slot_a";
+       fi
+else
+       setenv ramdiskpart 9
+       setenv partition_ab a
+       echo "boot from slot_a";
+fi
+
+if test -e $bootdev $mmcbootdev:$mmcinformpart $rebootparamfile; then;
+       ext4load $bootdev $mmcbootdev:$mmcinformpart $rebootparam_addr $rebootparamfile;
+       if itest.l *${rebootparam_addr} == ${upgrade_val}; then;
+               if test "${partition_ab}" = "b"; then
+                       setenv ramdiskpart 15
+               else
+                       setenv ramdiskpart 9
+               fi
+               setenv bootmode fota
+       elif itest.l *${rebootparam_addr} == ${recovery_val}; then;
+               if test "${partition_ab}" = "b"; then
+                       setenv ramdiskpart 15
+               else
+                       setenv ramdiskpart 9
+               fi
+               setenv bootmode recovery
+       elif itest.l *${rebootparam_addr} == ${download_val}; then;
+               if test "${partition_ab}" = "b"; then
+                       setenv ramdiskpart 15
+               else
+                       setenv ramdiskpart 9
+               fi
+               setenv bootmode flash
+       elif itest.l *${rebootparam_addr} == ${nodef_val}; then;
+               echo "This reboot parameter is not supported...";
+       fi
+fi
+
+# This is for jumping to flash mode on u-boot.
+if test "${bootmode}" = "download"; then;
+       if test "${partition_ab}" = "b"; then
+               setenv ramdiskpart 15
+       else
+               setenv ramdiskpart 9
+       fi
+       setenv bootmode flash
+fi
+
+if test "${bootmode}" = "flash"; then;
+       if test -n "${ipaddr}"; then;
+               ip_opt=\"ip=${ipaddr}::${gateway}:${netmask}\"
+       fi
+fi
+
+# boot from ramdisk if there is sbin
+if test -e $bootdev $mmcrootdev:$ramdiskpart sbin/init; then;
+       if test "${bootdev}" = "mmc"; then;
+               setenv rootdev mmcblk${mmcrootdev}p${ramdiskpart}
+       fi
+       if test "${bootdev}" = "usb"; then;
+               setenv rootdev sda${ramdiskpart}
+       fi
+else
+       if test "${bootdev}" = "mmc"; then;
+               setenv rootdev mmcblk${mmcrootdev}p${mmcrootpart}
+       fi
+       if test "${bootdev}" = "usb"; then;
+               setenv rootdev sda${mmcrootpart}
+       fi
+       setenv bootmode normal
+fi
+
+# setting console device if noting is set
+if test -z "${console}"; then;
+       setenv console "console=tty0 console=ttyS0,115200 earlycon"
+fi
+echo "console: ${console}"
+
+# DT image by model
+setenv boot_prefixes \"/\"
+
+# To use cmdline for using serial console. /* Normal mode */
+setenv bootargs \"${tizen_bootarg} root=/dev/${rootdev} rw bootmode=${bootmode} partition_ab=${partition_ab} rootwait ${console} ${opts} ${ip_opt} stmmaceth=chain_mode:1\"
+
+echo "Searching for kernel in"; for prefix in $boot_prefixes; do
+if load $bootdev $mmcbootdev:$mmcbootpart $kernel_addr_r $prefix$kernel; then;
+       echo ${bootmode} "boot from" ${rootdev};
+
+       load $bootdev $mmcrootdev:$mmcbootpart $fdt_addr_r $fdtfile
+       booti $kernel_addr_r - $fdt_addr_r;
+fi
+done