From: Jaehoon Chung Date: Fri, 9 Jun 2023 00:03:44 +0000 (+0900) Subject: tizen: bootscript: vf2: Support a ramdisk booting X-Git-Tag: accepted/tizen/unified/20231106.171643~49 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b160c4746071585caa68f53d5a7d709a25e07ebc;p=platform%2Fkernel%2Fu-boot.git tizen: bootscript: vf2: Support a ramdisk booting Support a ramdisk booting. It will not mount a ramdisk partition directly. Instead, it will be loading ramdisk image to ram area. Change-Id: Iec0f3863d42b54405a55171aead0da97a0ad8d7d Signed-off-by: Jaehoon Chung --- diff --git a/tizen/bootscript/tizen-boot-vf2.scr b/tizen/bootscript/tizen-boot-vf2.scr index 7370238..4b519f6 100644 --- a/tizen/bootscript/tizen-boot-vf2.scr +++ b/tizen/bootscript/tizen-boot-vf2.scr @@ -11,16 +11,19 @@ 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 ramdiskpart 0xf + setenv part 15 setenv partition_ab b echo "boot from slot_b"; else setenv ramdiskpart 9 + setenv part 9 setenv partition_ab a echo "boot from slot_a"; fi else setenv ramdiskpart 9 + setenv part 9 setenv partition_ab a echo "boot from slot_a"; fi @@ -29,23 +32,28 @@ 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 + setenv ramdiskpart 0x10 + setenv part 16 else setenv ramdiskpart 9 + setenv part 9 fi setenv bootmode fota elif itest.l *${rebootparam_addr} == ${recovery_val}; then; if test "${partition_ab}" = "b"; then - setenv ramdiskpart 15 + setenv ramdiskpart 0x10 + setenv part 16 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 + setenv ramdiskpart 0x10 + setenv part 16 else setenv ramdiskpart 9 + setenv part 9 fi setenv bootmode flash elif itest.l *${rebootparam_addr} == ${nodef_val}; then; @@ -56,9 +64,11 @@ 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 + setenv ramdiskpart 0x10 + setenv part 16 else setenv ramdiskpart 9 + setenv part 9 fi setenv bootmode flash fi @@ -71,12 +81,7 @@ 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 + setenv rootdev ram0 else if test "${bootdev}" = "mmc"; then; setenv rootdev mmcblk${mmcrootdev}p${mmcrootpart} @@ -99,11 +104,25 @@ 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\" +# Find the ramdisk offset and block count +part start $bootdev $mmcrootdev $ramdiskpart ramdisk_start +part size $bootdev $mmcrootdev $ramdiskpart ramdisk_size + +# Set to ramdisksize with real partition size. (Need to multiply block-size 0x200) +setexpr ramdisksize $ramdisk_size * 200 +setexpr tizen_kernel_addr_r $ramdisk_addr_r + $ramdisksize + 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}; +if load $bootdev $mmcbootdev:$mmcbootpart $tizen_kernel_addr_r $prefix$kernel; then; + echo ${bootmode} "boot"; + + if test -e $bootdev $mmcrootdev:$ramdiskpart sbin/init; then; + echo "Loading Ramdisk from partition"${part}; + echo "Environment value of ramdiskpart is" ${ramdiskpart}; + $bootdev read $ramdisk_addr_r $ramdisk_start $ramdisk_size; + fi load $bootdev $mmcrootdev:$mmcbootpart $fdt_addr_r $fdtfile - booti $kernel_addr_r - $fdt_addr_r; + booti $tizen_kernel_addr_r $ramdisk_addr_r:$ramdisksize $fdt_addr_r; fi done