blob: bd76fa905c2d6e4ef4cee0a511f1dbe387885832 [file] [log] [blame]
xjb04a4022021-11-25 15:01:52 +08001#! /bin/sh
2
3PROJECT=$1
4OUT=$2
5BOOTDEV_TYPE=$3
6SCATTER_SRC=$4
7NAND_CHIP_NAME=$5
8NAND_HEADER_VERSION=$6
9HEADER_LK_MERGE=$7
10
11
12if [ ! -e ${PROJECT}/gen-partitions.ini ]; then
13 echo ERROR: can not find $1
14 exit 1
15fi
16
17mkdir -p ${OUT}
18cat ${PROJECT}/gen-partitions.ini | while read p s m t
19do
20 if [ "$t" = "" ]; then
21 OUT_T=""
22 else
23 OUT_T=${OUT}/$t
24 fi
25
26 GEN_PARTITION_SCRIPT=gen-partition.py
27 if [ "${BOOTDEV_TYPE}" = "nand" ]; then
28 if [ "${HEADER_LK_MERGE}" = "yes" ]; then
29 GEN_PARTITION_SCRIPT=gen-partition-nand_merge.py
30 else
31 GEN_PARTITION_SCRIPT=gen-partition-nand.py
32 fi
33 fi
34
35 python3 ${SCATTER_SRC}/${GEN_PARTITION_SCRIPT} ${PROJECT}/$p ${PROJECT}/$s ${OUT}/$m ${OUT_T}
36
37 if [ "${BOOTDEV_TYPE}" = "nand" ]; then
38 if [ "${NAND_HEADER_VERSION}" = "2.0" ]; then
39 if [ "$m" = "MBR_NAND" ]; then
40 python3 -B ${PWD}/tools/nand-utils/gen_nand_header.py ${NAND_CHIP_NAME} ${OUT}/$m
41 fi
42 elif [ "${NAND_HEADER_VERSION}" = "1.1" ]; then
43 lk_start=$(grep 'name="bl2"' ${PROJECT}/$p | grep -o 'start="[0-9]*"' | grep -o [0-9]*)
44 if [ "${lk_start}" = "" ]; then
45 echo ERROR: can not find UBOOT in ${PROJECT}/$p
46 exit 1
47 fi
48 temp_header_file="temp_nand_header.bin"
49 python3 -B ${PWD}/tools/nand-utils/gen_nand_header_v11.py ${NAND_CHIP_NAME} ${lk_start} ${OUT}/${temp_header_file}
50 cat ${OUT}/$m >> ${OUT}/${temp_header_file}
51 rm ${OUT}/$m
52 mv ${OUT}/${temp_header_file} ${OUT}/$m
53 elif [ "${NAND_HEADER_VERSION}" = "1.2" ]; then
54 temp_header_file="temp_nand_header.bin"
55 python3 -B ${PWD}/tools/nand-utils/gen_nand_header_v12.py ${NAND_CHIP_NAME} ${OUT}/${temp_header_file}
56 dd if=${OUT}/${temp_header_file} of=${OUT}/$m conv=notrunc
57 rm ${OUT}/${temp_header_file}
58 elif [ "${NAND_HEADER_VERSION}" = "1.3" ]; then
59 preloader_start=$(grep 'name="preloader"' ${PROJECT}/$p | grep -o 'start="[0-9]*"' | grep -o [0-9]*)
60 if [ "${preloader_start}" = "" ]; then
61 echo ERROR: can not find preloader in ${PROJECT}/$p
62 exit 1
63 fi
64 temp_header_file="temp_nand_header.bin"
65 python3 -B ${PWD}/tools/nand-utils/gen_nand_header_v13.py ${NAND_CHIP_NAME} ${preloader_start} ${OUT}/${temp_header_file}
66 cat ${OUT}/$m >> ${OUT}/${temp_header_file}
67 rm ${OUT}/$m
68 mv ${OUT}/${temp_header_file} ${OUT}/$m
69 elif [ "${NAND_HEADER_VERSION}" = "1.4" ]; then
70 temp_header_file="temp_nand_header.bin"
71 python3 -B ${PWD}/tools/nand-utils/gen_nand_header_v14.py ${NAND_CHIP_NAME} ${OUT}/${temp_header_file}
72 dd if=${OUT}/${temp_header_file} of=${OUT}/$m conv=notrunc
73 rm ${OUT}/${temp_header_file}
74 elif [ "${NAND_HEADER_VERSION}" = "3.0" ]; then
75 if [ "$m" = "MBR_NAND" ]; then
76 python -B ${PWD}/tools/nand-utils/gen_nand_header_mt2731.py ${NAND_CHIP_NAME} ${OUT}/$m
77 fi
78 elif [ "${NAND_HEADER_VERSION}" = "4.0" ]; then
79 if [ "$m" = "MBR_NAND" ]; then
80 python3 -B ${PWD}/tools/nand-utils/gen_nand_header_v4.py ${NAND_CHIP_NAME} ${OUT}/$m
81 fi
82 elif [ "${NAND_HEADER_VERSION}" = "5.0" ]; then
83 if [ "$m" = "MBR_NAND" ]; then
84 python -B ${PWD}/tools/nand-utils/gen_nand_header_mt2735_hsm.py ${NAND_CHIP_NAME} ${OUT}/$m
85 fi
86 elif [ "${NAND_HEADER_VERSION}" = "6.0" ]; then
87 if [ "$m" = "MBR_NAND" ]; then
88 python3 -B ${PWD}/tools/nand-utils/gen_nand_header_v6.py ${NAND_CHIP_NAME} ${OUT}/$m ${HEADER_LK_MERGE}
89 fi
90 else
91 if [ "${NAND_CHIP_NAME}" = "" ]; then
92 echo ERROR: please check NAND_CHIP_NAME ${NAND_CHIP_NAME}
93 exit 2
94 fi
95
96 PAGE_SIZE=$(grep -o '^'${NAND_CHIP_NAME}' [0-9]*' nand-setting.txt | grep -o '[0-9]*$')
97 LBS=$(grep -o 'lbs="[0-9]*"' ${PROJECT}/$p | grep -o [0-9]*)
98 if [ "${PAGE_SIZE}" != "${LBS}" ]; then
99 echo ERROR: PAGE_SIZE ${PAGE_SIZE} of NAND ${NAND_CHIP_NAME} != LBS ${LBS} of partition table ${PROJECT}/$p
100 exit 3
101 fi
102
103 LK1=$(grep 'name="LK1"' ${PROJECT}/$p | grep -o 'start="[0-9]*"' | grep -o [0-9]*)
104 if [ "${LK1}" = "" ]; then
105 echo ERROR: can not find LK1 in ${PROJECT}/$p
106 exit 4
107 fi
108
109 LK2=$(grep 'name="LK2"' ${PROJECT}/$p | grep -o 'start="[0-9]*"' | grep -o [0-9]*)
110 if [ "${LK2}" = "" ]; then
111 echo ERROR: can not find LK2 in ${PROJECT}/$p
112 exit 5
113 fi
114
115 python3 scripts/dev-info-hdr-tool.py ${BOOTDEV_TYPE} ${OUT}/$m ${OUT}/$m ${NAND_CHIP_NAME} ${LK1} ${LK2}
116 fi
117 fi
118done