scripts: tizen: rpi4: add hal_a/b partition
[platform/kernel/u-boot.git] / scripts / tizen / sd_fusing_rpi4.sh
index 325ec83..0de0f38 100755 (executable)
@@ -20,17 +20,19 @@ declare -a PART_TABLE=(
        "modules.img"                   6       4M      modules_a               ext4
        "ramdisk.img"                   7       4M      ramdisk_a               ext4
        "ramdisk-recovery.img"          8       4M      recovery_a              ext4
-       "hal.img"                       10      4M      hal                     ext4
+       "hal.img"                       10      4M      hal_a                   ext4
        "rootfs.img"                    11      4M      rootfs_b                ext4
        "modules.img"                   12      4M      modules_b               ext4
        "ramdisk.img"                   13      4M      ramdisk_b               ext4
        "ramdisk-recovery.img"          14      4M      recovery_b              ext4
+       "hal.img"                       15      4M      hal_b                   ext4
        )
 declare -a PART_TABLE_B=(
        "rootfs.img"                    11      4M      rootfs_b                ext4
        "modules.img"                   12      4M      modules_b               ext4
        "ramdisk.img"                   13      4M      ramdisk_b               ext4
        "ramdisk-recovery.img"          14      4M      recovery_b              ext4
+       "hal.img"                       15      4M      hal_b                   ext4
        )
 
 declare -r -i PART_TABLE_COL=5
@@ -246,10 +248,8 @@ function mkpart_3 () {
        fi
 
        if [ $sfdisk_new == 0 ]; then
-               echo "$(tput setaf 3)$(tput bold)NOTICE: Your sfidk ${version[0]}.${version[1]}  version is too old. It can do unstable behavior!"
-               tput sgr 0
-               echo ""
-
+               echo "$(tput setaf 3)$(tput bold)NOTICE: Your sfdisk ${version[0]}.${version[1]}  version is too old. Update Latest sfdisk!"
+               exit -1
        fi
 
        local -r DISK=$DEVICE
@@ -264,10 +264,10 @@ function mkpart_3 () {
        local -r RAMDISK_RECOVERY_SZ=32
        local -r INFORM_SZ=8
        local -r HAL_SZ=256
-       local -r RESERVED2_SZ=125
+       local -r RESERVED1_SZ=125
        local -r EXTEND_SZ=36
 
-       let "USER_SZ = $SIZE_MB - $BOOT_SZ - $ROOTFS_SZ * 2 - $DATA_SZ - $MODULE_SZ * 2 - $RAMDISK_SZ * 2 - $RAMDISK_RECOVERY_SZ * 2 - $INFORM_SZ - $EXTEND_SZ - $HAL_SZ - $RESERVED2_SZ"
+       let "USER_SZ = $SIZE_MB - $BOOT_SZ - $ROOTFS_SZ * 2 - $DATA_SZ - $MODULE_SZ * 2 - $RAMDISK_SZ * 2 - $RAMDISK_RECOVERY_SZ * 2 - $INFORM_SZ - $EXTEND_SZ - $HAL_SZ * 2 - $RESERVED1_SZ"
 
        local -r BOOT=${PART_TABLE[0 * ${PART_TABLE_COL} + 3]}
        local -r ROOTFS_A=${PART_TABLE[1 * ${PART_TABLE_COL} + 3]}
@@ -277,16 +277,16 @@ function mkpart_3 () {
        local -r RAMDISK_A=${PART_TABLE[5 * ${PART_TABLE_COL} + 3]}
        local -r RAMDISK_RECOVERY_A=${PART_TABLE[6 * ${PART_TABLE_COL} + 3]}
        local -r INFORM=inform
-       local -r HAL=${PART_TABLE[7 * ${PART_TABLE_COL} + 3]}
+       local -r HAL_A=${PART_TABLE[7 * ${PART_TABLE_COL} + 3]}
        local -r ROOTFS_B=${PART_TABLE[8 * ${PART_TABLE_COL} + 3]}
        local -r MODULE_B=${PART_TABLE[9 * ${PART_TABLE_COL} + 3]}
        local -r RAMDISK_B=${PART_TABLE[10 * ${PART_TABLE_COL} + 3]}
-       local -r RAMDISK_RECOVERY_B=${PART_TABLE[10 * ${PART_TABLE_COL} + 3]}
-       local -r RESERVED2=reserved2
+       local -r RAMDISK_RECOVERY_B=${PART_TABLE[11 * ${PART_TABLE_COL} + 3]}
+       local -r RESERVED1=reserved1
 
        if [[ $USER_SZ -le 100 ]]
        then
-               echo "We recommend to use more than 4GB disk"
+               echo "We recommend to use more than 8GB disk"
                exit 0
        fi
 
@@ -302,12 +302,13 @@ function mkpart_3 () {
        echo " "$RAMDISK_A"             " $DISK"7       " $RAMDISK_SZ "MB"
        echo " "$RAMDISK_RECOVERY_A"    " $DISK"8       " $RAMDISK_RECOVERY_SZ "MB"
        echo " "$INFORM"                " $DISK"9       " $INFORM_SZ "MB"
-       echo " "$HAL"                   " $DISK"10      " $HAL_SZ "MB"
+       echo " "$HAL_A"                 " $DISK"10      " $HAL_SZ "MB"
        echo " "$ROOTFS_B"              " $DISK"11      " $ROOTFS_SZ "MB"
        echo " "$MODULE_B"              " $DISK"12      " $MODULE_SZ "MB"
        echo " "$RAMDISK_B"             " $DISK"13      " $RAMDISK_SZ "MB"
        echo " "$RAMDISK_RECOVERY_B"    " $DISK"14      " $RAMDISK_RECOVERY_SZ "MB"
-       echo " "$RESERVED2"             " $DISK"15      " $RESERVED2_SZ "MB"
+       echo " "$HAL_B"                 " $DISK"15      " $HAL_SZ "MB"
+       echo " "$RESERVED1"             " $DISK"16      " $RESERVED1_SZ "MB"
 
        local MOUNT_LIST=`mount | grep $DISK | awk '{print $1}'`
        for mnt in $MOUNT_LIST
@@ -318,67 +319,36 @@ function mkpart_3 () {
        echo "Remove partition table..."
        dd if=/dev/zero of=$DISK bs=512 count=32 conv=notrunc
 
-       if [ $sfdisk_new == 1 ]; then
-               if [ $support_delete == 1 ]; then
-                       sfdisk --delete $DISK
-               fi
+       if [ $support_delete == 1 ]; then
+               sfdisk --delete $DISK
+       fi
 
-               SCRIPT=""
-               for ((idx=0; idx < $PART_TABLE_ROW; idx++)); do
-                       NR=${PART_TABLE[idx * ${PART_TABLE_COL} + 1]}
-                       eval "PART_LABEL_NR_${NR}=${PART_TABLE[idx * ${PART_TABLE_COL} + 3]}"
-               done
+       SCRIPT=""
+       for ((idx=0; idx < $PART_TABLE_ROW; idx++)); do
+               NR=${PART_TABLE[idx * ${PART_TABLE_COL} + 1]}
+               eval "PART_LABEL_NR_${NR}=${PART_TABLE[idx * ${PART_TABLE_COL} + 3]}"
+       done
+
+       sfdisk $DISK <<-__EOF__
+       label: gpt
+       ${DEVICE}1 : start=4MiB, size=${BOOT_SZ}MiB, type= C12A7328-F81F-11D2-BA4B-00A0C93EC93B, name=${PART_LABEL_NR_1}
+       ${DEVICE}2 : size=${ROOTFS_SZ}MiB, name=${PART_LABEL_NR_2}
+       ${DEVICE}3 : size=${DATA_SZ}MiB, name=${PART_LABEL_NR_3}
+       ${DEVICE}4 : size=${EXTEND_SZ}MiB, name=none
+       ${DEVICE}5 : size=${USER_SZ}MiB, name=${PART_LABEL_NR_5}
+       ${DEVICE}6 : size=${MODULE_SZ}MiB, name=${PART_LABEL_NR_6}
+       ${DEVICE}7 : size=${RAMDISK_SZ}MiB, name=${PART_LABEL_NR_7}
+       ${DEVICE}8 : size=${RAMDISK_RECOVERY_SZ}MiB, name=${PART_LABEL_NR_8}
+       ${DEVICE}9 : size=${INFORM_SZ}MiB, name=inform
+       ${DEVICE}10: size=${HAL_SZ}MiB, name=${PART_LABEL_NR_10}
+       ${DEVICE}11: size=${ROOTFS_SZ}MiB, name=${PART_LABEL_NR_11}
+       ${DEVICE}12: size=${MODULE_SZ}MiB, name=${PART_LABEL_NR_12}
+       ${DEVICE}13: size=${RAMDISK_SZ}MiB, name=${PART_LABEL_NR_13}
+       ${DEVICE}14: size=${RAMDISK_RECOVERY_SZ}MiB, name=${PART_LABEL_NR_14}
+       ${DEVICE}15: size=${HAL_SZ}MiB, name=${PART_LABEL_NR_15}
+       ${DEVICE}16: size=${RESERVED1_SZ}MiB, name=reserved1
+       __EOF__
 
-               sfdisk $DISK <<-__EOF__
-               label: gpt
-               ${DEVICE}1 : start=4MiB, size=${BOOT_SZ}MiB, type= C12A7328-F81F-11D2-BA4B-00A0C93EC93B, name=${PART_LABEL_NR_1}
-               ${DEVICE}2 : size=${ROOTFS_SZ}MiB, name=${PART_LABEL_NR_2}
-               ${DEVICE}3 : size=${DATA_SZ}MiB, name=${PART_LABEL_NR_3}
-               ${DEVICE}4 : size=${EXTEND_SZ}MiB, name=none
-               ${DEVICE}5 : size=${USER_SZ}MiB, name=${PART_LABEL_NR_5}
-               ${DEVICE}6 : size=${MODULE_SZ}MiB, name=${PART_LABEL_NR_6}
-               ${DEVICE}7 : size=${RAMDISK_SZ}MiB, name=${PART_LABEL_NR_7}
-               ${DEVICE}8 : size=${RAMDISK_RECOVERY_SZ}MiB, name=${PART_LABEL_NR_8}
-               ${DEVICE}9 : size=${INFORM_SZ}MiB, name=inform
-               ${DEVICE}10: size=${HAL_SZ}MiB, name=${PART_LABEL_NR_10}
-               ${DEVICE}11: size=${ROOTFS_SZ}MiB, name=${PART_LABEL_NR_11}
-               ${DEVICE}12: size=${MODULE_SZ}MiB, name=${PART_LABEL_NR_12}
-               ${DEVICE}13: size=${RAMDISK_SZ}MiB, name=${PART_LABEL_NR_13}
-               ${DEVICE}14: size=${RAMDISK_RECOVERY_SZ}MiB, name=${PART_LABEL_NR_14}
-               ${DEVICE}15: size=${RESERVED2_SZ}MiB, name=reserved2
-               __EOF__
-       else
-               # calculate start positions for alignment for extended partitions
-               let "USER_START = 4 + $BOOT_SZ + $ROOTFS_SZ + $DATA_SZ + 1"
-               let "MODULE_A_START = $USER_START + $USER_SZ + 1"
-               let "RAMDISK_A_START = $MODULE_A_START + $MODULE_SZ + 1"
-               let "RAMDISK_RECOVERY_A_START = $RAMDISK_A_START + $RAMDISK_SZ + 1"
-               let "INFORM_START = $RAMDISK_RECOVERY_A_START + $RAMDISK_RECOVERY_SZ + 1"
-               let "HAL_START = $INFORM_START + $INFORM_SZ + 1"
-               let "ROOTFS_B_START = $HAL_START + $HAL_SZ + 1"
-               let "MODULE_B_START = $ROOTFS_B_START + $ROOTFS_SZ + 1"
-               let "RAMDISK_B_START = $MODULE_B_START + $MODULE_SZ + 1"
-               let "RAMDISK_RECOVERY_B_START = $RAMDISK_B_START + $RAMDISK_SZ + 1"
-               let "RESERVED2_START = $RAMDISK_RECOVERY_B_START + $RAMDISK_RECOVERY_SZ + 1"
-
-               sfdisk --in-order --Linux --unit M $DISK <<-__EOF__
-               4,$BOOT_SZ,0xE,*
-               ,$ROOTFS_SZ,,-
-               ,$DATA_SZ,,-
-               ,,E,-
-               $USER_START,$USER_SZ,,-
-               $MODULE_A_START,$MODULE_SZ,,-
-               $RAMDISK_A_START,$RAMDISK_SZ,,-
-               $RAMDISK_RECOVERY_A_START,$RAMDISK_RECOVERY_SZ,,-
-               $INFORM_START,$INFORM_SZ,,-
-               $HAL_START,$HAL_SZ,,-
-               $ROOTFS_B_START,$ROOTFS_SZ,,-
-               $MODULE_B_START,$MODULE_SZ,,-
-               $RAMDISK_B_START,$RAMDISK_SZ,,-
-               $RAMDISK_RECOVERY_B_START,$RAMDISK_RECOVERY_SZ,,-
-               $RESERVED2_START,$RESERVED2_SZ,,-
-               __EOF__
-       fi
 
        for ((idx=0;idx<$PART_TABLE_ROW;idx++)); do
                local PART=/dev/`lsblk ${DISK} -o TYPE,KNAME | awk "/^part.*[a-z]${PART_TABLE[$idx * ${PART_TABLE_COL} + 1]}\$/ { print \\\$2 }"`
@@ -411,8 +381,8 @@ function mkpart_3 () {
        umount ./mnt_tmp
        rmdir mnt_tmp
 
-       local -r PART15=/dev/`lsblk ${DISK} -o TYPE,KNAME | grep part | awk '{ print $2 }' | grep -G "[a-z]15\$"`
-       mkfs.ext4 -q ${PART15} -L $RESERVED2 -F
+       local -r PART16=/dev/`lsblk ${DISK} -o TYPE,KNAME | grep part | awk '{ print $2 }' | grep -G "[a-z]16\$"`
+       mkfs.ext4 -q ${PART16} -L $RESERVED1 -F
 }
 
 function show_usage () {