From 5b56b4f5e50756e1f967bd2018252f920346c9d7 Mon Sep 17 00:00:00 2001 From: Jaehoon Chung Date: Fri, 2 Jun 2023 16:29:36 +0900 Subject: [PATCH] tizen: bootscript: Add visionfive2 bootscript and env file 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 --- tizen/bootscript/tizen-boot-vf2-uEnv.txt | 66 +++++++++++++++++++ tizen/bootscript/tizen-boot-vf2.scr | 109 +++++++++++++++++++++++++++++++ 2 files changed, 175 insertions(+) create mode 100644 tizen/bootscript/tizen-boot-vf2-uEnv.txt create mode 100644 tizen/bootscript/tizen-boot-vf2.scr diff --git a/tizen/bootscript/tizen-boot-vf2-uEnv.txt b/tizen/bootscript/tizen-boot-vf2-uEnv.txt new file mode 100644 index 0000000..86f1c0c --- /dev/null +++ b/tizen/bootscript/tizen-boot-vf2-uEnv.txt @@ -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 index 0000000..7370238 --- /dev/null +++ b/tizen/bootscript/tizen-boot-vf2.scr @@ -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 -- 2.7.4