ram.bin 去除扰码校验
This commit is contained in:
@@ -1065,186 +1065,6 @@ static int ramCalDumpAfterBurn(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ramMatchEnctypeAndPattern(uint8_t enctype, uint8_t pattern)
|
||||
{
|
||||
/*
|
||||
*ret 0: The match is successful
|
||||
*ret not 0: The match is failure
|
||||
*/
|
||||
int ret = 0;
|
||||
|
||||
/*
|
||||
* enctype 0 : FW not encrypted.
|
||||
* enctype 3 : FW encrypted with xor.
|
||||
* pattern : value for encrypting.
|
||||
* HTZD FW : enctype = 0, pattern = 0x55.(default)
|
||||
* JSMT FW : enctype = 3, pattern = 0xaa.
|
||||
* FLX FW : enctype = 3, pattern = 0x99.
|
||||
* QJ FW : enctype = 3, pattern = 0x66.
|
||||
* SPE FW : enctype = 3, pattern = 0xcc.
|
||||
* 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:
|
||||
switch (pattern) {
|
||||
case 0x55:
|
||||
/* plain image */
|
||||
if (
|
||||
/* HT */
|
||||
(g_chip_subid != CHIP_ID_HZ3201_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_HZ3211_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_HZ3201_RF_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_HZ3211_RF_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_HZ5202_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_HZ_K48V1A) &&
|
||||
(g_chip_subid != CHIP_ID_HZ_K48V2A) &&
|
||||
(g_chip_subid != CHIP_ID_HZ_K48V3A) &&
|
||||
(g_chip_subid != CHIP_ID_HZ_K68V1A) &&
|
||||
(g_chip_subid != CHIP_ID_HZ_K68V2A) &&
|
||||
(g_chip_subid != CHIP_ID_HZ_K68V3A) &&
|
||||
/* WQ */
|
||||
(g_chip_subid != CHIP_ID_WQ3021_REVA) &&
|
||||
(g_chip_subid != CHIP_ID_WQ3021_REVB) &&
|
||||
(g_chip_subid != CHIP_ID_WQ3021_REVC) &&
|
||||
(g_chip_subid != CHIP_ID_WQ3021_REVD) &&
|
||||
(g_chip_subid != CHIP_ID_WQ3031_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_WQ5007_REVA) &&
|
||||
(g_chip_subid != CHIP_ID_WQ5007_REVB) &&
|
||||
(g_chip_subid != CHIP_ID_WQ5106_REVB) &&
|
||||
(g_chip_subid != CHIP_ID_WQ_K48V2A) &&
|
||||
(g_chip_subid != CHIP_ID_WQ_K48V2A2) &&
|
||||
(g_chip_subid != CHIP_ID_WQ_K48V3A) &&
|
||||
(g_chip_subid != CHIP_ID_WQ_K48V3A2) &&
|
||||
(g_chip_subid != CHIP_ID_WQ_K48V3A3) &&
|
||||
(g_chip_subid != CHIP_ID_WQ_K68V3A) &&
|
||||
(g_chip_subid != CHIP_ID_WQ_K68V3A2) &&
|
||||
/* FLX */
|
||||
(g_chip_subid != CHIP_ID_FLX_K48) &&
|
||||
(g_chip_subid != CHIP_ID_FLX_K68)) {
|
||||
/*
|
||||
* HTZD FW (no xor) can be burn on FLX6610/FLX6611.
|
||||
*/
|
||||
ret = 3;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ret = 2;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
switch (pattern) {
|
||||
case 0xaa:
|
||||
/* scramble image */
|
||||
if ((g_chip_subid != CHIP_ID_MT_K68V1B) &&
|
||||
(g_chip_subid != CHIP_ID_MT_K68V1BB) &&
|
||||
(g_chip_subid != CHIP_ID_MT_K68V2B) &&
|
||||
(g_chip_subid != CHIP_ID_MT_K68V2BB) &&
|
||||
(g_chip_subid != CHIP_ID_MT_K68V3B) &&
|
||||
(g_chip_subid != CHIP_ID_MT_K68V3BB) &&
|
||||
(g_chip_subid != CHIP_ID_MT_K68V3A)) {
|
||||
ret = 3;
|
||||
}
|
||||
break;
|
||||
case 0x99:
|
||||
/* scramble image */
|
||||
if ((g_chip_subid != CHIP_ID_FLX_K68) &&
|
||||
(g_chip_subid != CHIP_ID_FLX_K48) &&
|
||||
(g_chip_subid != CHIP_ID_FLX6710_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_FLX6711_V1A)) {
|
||||
/*
|
||||
* FLX FW (xor) can be burn on FLX chip
|
||||
*/
|
||||
ret = 3;
|
||||
}
|
||||
break;
|
||||
case 0x66:
|
||||
/* scramble image */
|
||||
if ((g_chip_subid != CHIP_ID_QJ5580D_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_QJ5582D_V1A)) {
|
||||
/*
|
||||
* QJ FW (xor) can only be burn on QJ5580D/QJ5582D.
|
||||
*/
|
||||
ret = 3;
|
||||
}
|
||||
break;
|
||||
case 0xcc:
|
||||
/* scramble image */
|
||||
if ((g_chip_subid != CHIP_ID_SPE7303_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_SPE7301_V1A)) {
|
||||
/*
|
||||
* SPE FW (xor) can only be burn on SPE7303/SPE7301.
|
||||
*/
|
||||
ret = 3;
|
||||
}
|
||||
break;
|
||||
case 0x33:
|
||||
/* scramble image */
|
||||
if ((g_chip_subid != CHIP_ID_GX2001_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_GX2011_V1A)) {
|
||||
/*
|
||||
* GX FW (xor) can only be burn on GX2001/GX2011.
|
||||
*/
|
||||
ret = 3;
|
||||
}
|
||||
break;
|
||||
case 0xdd:
|
||||
/* scramble image */
|
||||
if ((g_chip_subid != CHIP_ID_DT0530_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_DT0531_V1A)) {
|
||||
/*
|
||||
* DT FW (xor) can only be burn on DT0530/DT0531.
|
||||
*/
|
||||
ret = 3;
|
||||
}
|
||||
break;
|
||||
case 0xa9:
|
||||
/* scramble image */
|
||||
if ((g_chip_subid != CHIP_ID_YP8801_V1A) &&
|
||||
(g_chip_subid != CHIP_ID_YP8811_V1A)) {
|
||||
/*
|
||||
* YP FW (xor) can only be burn on YP8801/YP8811.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ramDownloadPackage(void)
|
||||
{
|
||||
rbuf xbuf;
|
||||
@@ -1443,10 +1263,6 @@ static int ramDownloadPackage(void)
|
||||
pkg_hdr_ver_micro = (pkg_hdr_version >> 16) & 0x0F;
|
||||
pkg_hdr_ver_build = (pkg_hdr_version >> 0) & 0xFFFF;
|
||||
|
||||
if (ramMatchEnctypeAndPattern(pkg_hdr->enctype, pkg_hdr->pattern) != 0) {
|
||||
ram_error_no |= RAM_IMAGE_MISMATCH_ERR;
|
||||
goto ERROR_OUT;
|
||||
}
|
||||
// 接收了3个imgheader长度,是pkgheader
|
||||
} else if (toltalRecieved == 3 * IMAGE_ALIGNED_SIZE) {
|
||||
pkg_hdr_fw_type = pkg_hdr->img_type;
|
||||
|
Reference in New Issue
Block a user