ram.bin 添加当前最新的芯片支持 gen_img.sh 输出打包信息

This commit is contained in:
2024-10-15 17:38:58 +08:00
parent e2d76585f2
commit 0c1b53f3d4
5 changed files with 90 additions and 8 deletions

4
.gitignore vendored
View File

@@ -30,12 +30,14 @@ tools/gen_img/customer/
tools/gen_img/ah tools/gen_img/ah
tools/gen_img/elzma tools/gen_img/elzma
tools/gen_img/oem_tool tools/gen_img/oem_tool
tools/gen_img/lib_sdk_source/
tools/gen_img/*.map tools/gen_img/*.map
tools/gen_img/*.out tools/gen_img/*.out
tools/gen_img/*.bin tools/gen_img/*.bin
tools/gen_img/*.bin.fw tools/gen_img/*.bin.fw
tools/gen_img/lib_sdk_source/ tools/gen_img/cfg_log.txt
tools/ram/ tools/ram/
tools/oem/*.bin
mfgtool/ah/ah mfgtool/ah/ah
mfgtool/lzma/elzma mfgtool/lzma/elzma
mfgtool/oem_tool/oem_tool mfgtool/oem_tool/oem_tool

View File

@@ -31,6 +31,8 @@ extern "C" {
#define IOT_CHIP_ID_GX 6 #define IOT_CHIP_ID_GX 6
#define IOT_CHIP_ID_DT 7 #define IOT_CHIP_ID_DT 7
#define IOT_CHIP_ID_YP 8 #define IOT_CHIP_ID_YP 8
#define IOT_CHIP_ID_WTZ 9
#define IOT_CHIP_ID_TCE 10
/*************************** kunlun1 chip id **********************************/ /*************************** kunlun1 chip id **********************************/
/* HZ k48 */ /* HZ k48 */
@@ -118,6 +120,14 @@ extern "C" {
#define CHIP_ID_YP8801_V1A 0x1073 //YP8801 #define CHIP_ID_YP8801_V1A 0x1073 //YP8801
/* YP8811, k76, QFN9*9 */ /* YP8811, k76, QFN9*9 */
#define CHIP_ID_YP8811_V1A 0x1071 //YP8811 #define CHIP_ID_YP8811_V1A 0x1071 //YP8811
/* WTZ31C, k76, QFN9*9 */
#define CHIP_ID_WTZ31C_V1A 0x1083 //WTZ31C
/* WTZ31S, k76, QFN9*9 */
#define CHIP_ID_WTZ31S_V1A 0x1081 //WTZ31S
/* TCE3202, k76, QFN9*9 */
#define CHIP_ID_TCE3202_V1A 0x1093 //TCE3202
/* TCE3201, k76, QFN9*9 */
#define CHIP_ID_TCE3201_V1A 0x1091 //TCE3201
/* control transfer instuction */ /* control transfer instuction */
#define RISCV32_INST_SET_JAL 0x6f #define RISCV32_INST_SET_JAL 0x6f

View File

@@ -76,6 +76,8 @@ typedef unsigned short UINT16;
#define MANUFACTURER_GX "gx" #define MANUFACTURER_GX "gx"
#define MANUFACTURER_DT "dt" #define MANUFACTURER_DT "dt"
#define MANUFACTURER_YP "yp" #define MANUFACTURER_YP "yp"
#define MANUFACTURER_WTZ "wtz"
#define MANUFACTURER_TCE "tce"
typedef struct typedef struct
{ {

View File

@@ -123,6 +123,8 @@ ram_encrypt_t encrypt_array[] = {
{3, 0x33, 18264, MANUFACTURER_GX}, {3, 0x33, 18264, MANUFACTURER_GX},
{3, 0xdd, 17492, MANUFACTURER_DT}, {3, 0xdd, 17492, MANUFACTURER_DT},
{3, 0xa9, 22864, MANUFACTURER_YP}, {3, 0xa9, 22864, MANUFACTURER_YP},
{3, 0xc6, 21335, MANUFACTURER_WTZ},
{3, 0x93, 20803, MANUFACTURER_TCE},
}; };
typedef struct ram_config_param_t { typedef struct ram_config_param_t {
@@ -152,7 +154,7 @@ typedef struct ram_config_param_t {
/* default ram config param for die burn */ /* default ram config param for die burn */
ram_config_param_t ram_param = { ram_config_param_t ram_param = {
.u_baud = 1, /* 0:115200; 1:460800; 2:1500000 */ .u_baud = 2, /* 0:115200; 1:460800; 2:1500000 */
.c_psram = 0, .c_psram = 0,
.f_test = 0, .f_test = 0,
.e_chip = 0, .e_chip = 0,
@@ -646,7 +648,7 @@ static int ramUartRecieve(rbuf *buf)
return 0; return 0;
/* Recieve from uart */ /* Recieve from uart */
// 这里每一个数据包都会发送字符 'C' // 这里每一个数据包都会发送字符 'C'
size = xModemReciveframe(buf->write, curPkg&0xFF, newStart); size = xModemReciveframe(buf->write, curPkg&0xFF, newStart);
if(xmRT_Finish == size ||xmRT_Error == size) if(xmRT_Finish == size ||xmRT_Error == size)
@@ -1083,6 +1085,8 @@ static int ramMatchEnctypeAndPattern(uint8_t enctype, uint8_t pattern)
* GX FW : enctype = 3, pattern = 0x33. * GX FW : enctype = 3, pattern = 0x33.
* DT FW : enctype = 3, pattern = 0xdd. * DT FW : enctype = 3, pattern = 0xdd.
* YP FW : enctype = 3, pattern = 0xa9. * YP FW : enctype = 3, pattern = 0xa9.
* WTZ FW : enctype = 3, pattern = 0xc6.
* TCE FW : enctype = 3, pattern = 0x93.
*/ */
switch (enctype) { switch (enctype) {
case 0: case 0:
@@ -1208,6 +1212,26 @@ static int ramMatchEnctypeAndPattern(uint8_t enctype, uint8_t pattern)
ret = 3; ret = 3;
} }
break; break;
case 0xc6:
/* scramble image */
if ((g_chip_subid != CHIP_ID_WTZ31C_V1A) &&
(g_chip_subid != CHIP_ID_WTZ31S_V1A)) {
/*
* WTZ FW (xor) can only be burn on WTZ31C/WTZ31S.
*/
ret = 3;
}
break;
case 0x93:
/* scramble image */
if ((g_chip_subid != CHIP_ID_TCE3202_V1A) &&
(g_chip_subid != CHIP_ID_TCE3201_V1A)) {
/*
* TCE FW (xor) can only be burn on TCE3202/TCE3201.
*/
ret = 3;
}
break;
default: default:
ret = 2; ret = 2;
break; break;
@@ -1929,7 +1953,9 @@ static int ram_chip_subid_check(uint32_t chip_id, uint32_t subid)
subid == CHIP_ID_SPE7303_V1A || subid == CHIP_ID_SPE7303_V1A ||
subid == CHIP_ID_GX2001_V1A || subid == CHIP_ID_GX2001_V1A ||
subid == CHIP_ID_DT0530_V1A || subid == CHIP_ID_DT0530_V1A ||
subid == CHIP_ID_YP8801_V1A) { subid == CHIP_ID_YP8801_V1A ||
subid == CHIP_ID_WTZ31C_V1A ||
subid == CHIP_ID_TCE3202_V1A) {
/* subid满足上述规则可烧录检查通过 */ /* subid满足上述规则可烧录检查通过 */
ret = 0; ret = 0;
} }
@@ -1941,7 +1967,9 @@ static int ram_chip_subid_check(uint32_t chip_id, uint32_t subid)
subid == CHIP_ID_SPE7301_V1A || subid == CHIP_ID_SPE7301_V1A ||
subid == CHIP_ID_GX2011_V1A || subid == CHIP_ID_GX2011_V1A ||
subid == CHIP_ID_DT0531_V1A || subid == CHIP_ID_DT0531_V1A ||
subid == CHIP_ID_YP8811_V1A) { subid == CHIP_ID_YP8811_V1A ||
subid == CHIP_ID_WTZ31S_V1A ||
subid == CHIP_ID_TCE3201_V1A) {
/* subid满足上述规则可烧录检查通过 */ /* subid满足上述规则可烧录检查通过 */
ret = 0; ret = 0;
} }
@@ -1953,7 +1981,9 @@ static int ram_chip_subid_check(uint32_t chip_id, uint32_t subid)
subid == CHIP_ID_SPE7303_V1A || subid == CHIP_ID_SPE7303_V1A ||
subid == CHIP_ID_GX2001_V1A || subid == CHIP_ID_GX2001_V1A ||
subid == CHIP_ID_DT0530_V1A || subid == CHIP_ID_DT0530_V1A ||
subid == CHIP_ID_YP8801_V1A) { subid == CHIP_ID_YP8801_V1A ||
subid == CHIP_ID_WTZ31C_V1A ||
subid == CHIP_ID_TCE3202_V1A) {
/* subid满足上述规则可烧录检查通过 */ /* subid满足上述规则可烧录检查通过 */
ret = 0; ret = 0;
} }
@@ -1965,7 +1995,9 @@ static int ram_chip_subid_check(uint32_t chip_id, uint32_t subid)
subid == CHIP_ID_SPE7301_V1A || subid == CHIP_ID_SPE7301_V1A ||
subid == CHIP_ID_GX2011_V1A || subid == CHIP_ID_GX2011_V1A ||
subid == CHIP_ID_DT0531_V1A || subid == CHIP_ID_DT0531_V1A ||
subid == CHIP_ID_YP8811_V1A) { subid == CHIP_ID_YP8811_V1A ||
subid == CHIP_ID_WTZ31S_V1A ||
subid == CHIP_ID_TCE3201_V1A) {
/* subid满足上述规则可烧录检查通过 */ /* subid满足上述规则可烧录检查通过 */
ret = 0; ret = 0;
} }
@@ -2048,6 +2080,30 @@ static int ram_chip_subid_check(uint32_t chip_id, uint32_t subid)
ret = 0; ret = 0;
} }
break; break;
case CHIP_ID_WTZ31C_V1A:
if (subid == CHIP_ID_WTZ31C_V1A) {
/* subid满足上述规则可烧录检查通过 */
ret = 0;
}
break;
case CHIP_ID_WTZ31S_V1A:
if (subid == CHIP_ID_WTZ31S_V1A) {
/* subid满足上述规则可烧录检查通过 */
ret = 0;
}
break;
case CHIP_ID_TCE3202_V1A:
if (subid == CHIP_ID_TCE3202_V1A) {
/* subid满足上述规则可烧录检查通过 */
ret = 0;
}
break;
case CHIP_ID_TCE3201_V1A:
if (subid == CHIP_ID_TCE3201_V1A) {
/* subid满足上述规则可烧录检查通过 */
ret = 0;
}
break;
default: default:
break; break;
} }

View File

@@ -161,6 +161,7 @@ rm -f $CUR_DIR/oem.bin
rm -f $CUR_DIR/ht.bin rm -f $CUR_DIR/ht.bin
rm -f $CUR_DIR/ht_1p.bin rm -f $CUR_DIR/ht_1p.bin
rm -f $CUR_DIR/ht*.fw rm -f $CUR_DIR/ht*.fw
# rm -f $CUR_DIR/cfg_log.txt
if [ "x${CHIP_VER_UPPER}" == "x3" ]; then if [ "x${CHIP_VER_UPPER}" == "x3" ]; then
# clear files and generate folders # clear files and generate folders
@@ -359,17 +360,23 @@ if [ "x${CHIP_VER_UPPER}" == "x3" ]; then
if [ "${IMG_UPPER}" == "CCO" ] && [ ${IOT_SMART_BUILD} == 1 ]; then if [ "${IMG_UPPER}" == "CCO" ] && [ ${IOT_SMART_BUILD} == 1 ]; then
sed -i "s/ht.bin/ht_1p.bin/g" ${TMP_CFG_NAME} sed -i "s/ht.bin/ht_1p.bin/g" ${TMP_CFG_NAME}
# add header # add header
cat ${TMP_CFG_NAME} >> cfg_log.txt
echo -e "\n-----------\n" >> cfg_log.txt
./ah -a ${TMP_CFG_NAME} ./ah -a ${TMP_CFG_NAME}
sed -i "s/ht_1p.bin/ht.bin/g" ${TMP_CFG_NAME} sed -i "s/ht_1p.bin/ht.bin/g" ${TMP_CFG_NAME}
if [ "${chip_ver}" == "3201" ]; then if [ "${chip_ver}" == "3201" ]; then
#avoid ht_cus.bin add head twice #avoid ht_cus.bin add head twice
sed -i "s/ht_cus.bin/ht_cus_tmp.bin/g" ${TMP_CFG_NAME} sed -i "s/ht_cus.bin/ht_cus_tmp.bin/g" ${TMP_CFG_NAME}
# add header # add header
cat ${TMP_CFG_NAME} >> cfg_log.txt
echo -e "\n-----------\n" >> cfg_log.txt
./ah -a ${TMP_CFG_NAME} ./ah -a ${TMP_CFG_NAME}
sed -i "s/ht_cus_tmp.bin/ht_cus.bin/g" ${TMP_CFG_NAME} sed -i "s/ht_cus_tmp.bin/ht_cus.bin/g" ${TMP_CFG_NAME}
fi fi
else else
# add header # add header
cat ${TMP_CFG_NAME} >> cfg_log.txt
echo -e "\n-----------\n" >> cfg_log.txt
./ah -a ${TMP_CFG_NAME} ./ah -a ${TMP_CFG_NAME}
fi fi
else else
@@ -387,14 +394,20 @@ if [ "x${CHIP_VER_UPPER}" == "x3" ]; then
if [ "${IMG_UPPER}" == "CCO" ] && [ ${IOT_SMART_BUILD} == 1 ]; then if [ "${IMG_UPPER}" == "CCO" ] && [ ${IOT_SMART_BUILD} == 1 ]; then
sed -i "s/ht.bin/ht_1p.bin/g" ${TMP_CFG_NAME} sed -i "s/ht.bin/ht_1p.bin/g" ${TMP_CFG_NAME}
# add header # add header
cat ${TMP_CFG_NAME} >> cfg_log.txt
echo -e "\n-----------\n" >> cfg_log.txt
./ah -a ${TMP_CFG_NAME} ./ah -a ${TMP_CFG_NAME}
sed -i "s/ht_1p.bin/ht.bin/g" ${TMP_CFG_NAME} sed -i "s/ht_1p.bin/ht.bin/g" ${TMP_CFG_NAME}
if [ "${chip_ver}" == "3201" ]; then if [ "${chip_ver}" == "3201" ]; then
# add header # add header
cat ${TMP_CFG_NAME} >> cfg_log.txt
echo -e "\n-----------\n" >> cfg_log.txt
./ah -a ${TMP_CFG_NAME} ./ah -a ${TMP_CFG_NAME}
fi fi
else else
# add header # add header
cat ${TMP_CFG_NAME} >> cfg_log.txt
echo -e "\n-----------\n" >> cfg_log.txt
./ah -a ${TMP_CFG_NAME} ./ah -a ${TMP_CFG_NAME}
fi fi
fi fi
@@ -757,7 +770,6 @@ if [ "x${CHIP_VER_UPPER}" == "x3" ]; then
fi fi
fi fi
fi fi
rm ./tmp.cfg rm ./tmp.cfg
done done