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/elzma
tools/gen_img/oem_tool
tools/gen_img/lib_sdk_source/
tools/gen_img/*.map
tools/gen_img/*.out
tools/gen_img/*.bin
tools/gen_img/*.bin.fw
tools/gen_img/lib_sdk_source/
tools/gen_img/cfg_log.txt
tools/ram/
tools/oem/*.bin
mfgtool/ah/ah
mfgtool/lzma/elzma
mfgtool/oem_tool/oem_tool

View File

@@ -31,6 +31,8 @@ extern "C" {
#define IOT_CHIP_ID_GX 6
#define IOT_CHIP_ID_DT 7
#define IOT_CHIP_ID_YP 8
#define IOT_CHIP_ID_WTZ 9
#define IOT_CHIP_ID_TCE 10
/*************************** kunlun1 chip id **********************************/
/* HZ k48 */
@@ -118,6 +120,14 @@ extern "C" {
#define CHIP_ID_YP8801_V1A 0x1073 //YP8801
/* YP8811, k76, QFN9*9 */
#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 */
#define RISCV32_INST_SET_JAL 0x6f

View File

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

View File

@@ -123,6 +123,8 @@ ram_encrypt_t encrypt_array[] = {
{3, 0x33, 18264, MANUFACTURER_GX},
{3, 0xdd, 17492, MANUFACTURER_DT},
{3, 0xa9, 22864, MANUFACTURER_YP},
{3, 0xc6, 21335, MANUFACTURER_WTZ},
{3, 0x93, 20803, MANUFACTURER_TCE},
};
typedef struct ram_config_param_t {
@@ -152,7 +154,7 @@ typedef struct ram_config_param_t {
/* default ram config param for die burn */
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,
.f_test = 0,
.e_chip = 0,
@@ -646,7 +648,7 @@ static int ramUartRecieve(rbuf *buf)
return 0;
/* Recieve from uart */
// 这里每一个数据包都会发送字符 'C'
// 这里每一个数据包都会发送字符 'C'
size = xModemReciveframe(buf->write, curPkg&0xFF, newStart);
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.
* DT FW : enctype = 3, pattern = 0xdd.
* YP FW : enctype = 3, pattern = 0xa9.
* WTZ FW : enctype = 3, pattern = 0xc6.
* TCE FW : enctype = 3, pattern = 0x93.
*/
switch (enctype) {
case 0:
@@ -1208,6 +1212,26 @@ static int ramMatchEnctypeAndPattern(uint8_t enctype, uint8_t pattern)
ret = 3;
}
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:
ret = 2;
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_GX2001_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满足上述规则可烧录检查通过 */
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_GX2011_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满足上述规则可烧录检查通过 */
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_GX2001_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满足上述规则可烧录检查通过 */
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_GX2011_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满足上述规则可烧录检查通过 */
ret = 0;
}
@@ -2048,6 +2080,30 @@ static int ram_chip_subid_check(uint32_t chip_id, uint32_t subid)
ret = 0;
}
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:
break;
}

View File

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