diff --git a/tools/rockchip/boot_merger.c b/tools/rockchip/boot_merger.c index eec0b3c2c3..48c87530c9 100644 --- a/tools/rockchip/boot_merger.c +++ b/tools/rockchip/boot_merger.c @@ -26,6 +26,7 @@ char gSubfix[MAX_LINE_LEN] = OUT_SUBFIX; char gEat[MAX_LINE_LEN]; char *gConfigPath; uint8_t *gBuf; +bool enableRC4 = false; static uint32_t g_merge_max_size = MAX_MERGE_SIZE; @@ -770,9 +771,8 @@ static inline void getBoothdr(rk_boot_header *hdr) hdr->loaderNum = gOpts.loaderNum; hdr->loaderOffset = hdr->code472Offset + gOpts.code472Num * hdr->code472Size; hdr->loaderSize = sizeof(rk_boot_entry); -#ifndef USE_P_RC4 - hdr->rc4Flag = 1; -#endif + if (!enableRC4) + hdr->rc4Flag = 1; } static inline uint32_t getCrc(const char *path) @@ -1021,6 +1021,9 @@ int main(int argc, char **argv) merge = true; } else if (!strcmp(OPT_UNPACK, argv[i])) { merge = false; + } else if (!strcmp(OPT_RC4, argv[i])) { + printf("enable RC4 for IDB data(both ddr and preloader)\n"); + enableRC4 = true; } else if (!strcmp(OPT_SUBFIX, argv[i])) { i++; snprintf(gSubfix, sizeof(gSubfix), "%s", argv[i]); diff --git a/tools/rockchip/boot_merger.h b/tools/rockchip/boot_merger.h index 97586d7cba..3c31b782b1 100644 --- a/tools/rockchip/boot_merger.h +++ b/tools/rockchip/boot_merger.h @@ -188,6 +188,7 @@ typedef struct { #define OPT_REPLACE "--replace" #define OPT_PREPATH "--prepath" #define OPT_SIZE "--size" +#define OPT_RC4 "--rc4" #define OPT_CHIP "-c" #define OPT_471 "-1"