1.修复loader升级问题

This commit is contained in:
payton 2023-12-20 14:30:23 +08:00
parent 7dd8eef490
commit 90f03df218

View File

@ -2065,9 +2065,8 @@ _THUMB2 static int bl_load_uboot_from_flash(unsigned char *p_fdt, unsigned char
// debug_err_var("OtaFlag=", info->OtaFlag); // debug_err_var("OtaFlag=", info->OtaFlag);
return 0; return 0;
} }
/* assume ota_flag is read from partition_sys and in the first word */ /* assume ota_flag is read from partition_sys and in the first word */
_THUMB2 static UINT32 bl_check_ota_flag(void) _THUMB2 static UINT32 bl_check_ota_flag(UINT32 buf_fdt, UINT32 buf_size)
{ {
int er; int er;
unsigned char *p_fdt = NULL; unsigned char *p_fdt = NULL;
@ -2082,7 +2081,10 @@ _THUMB2 static int bl_load_uboot_from_flash(unsigned char *p_fdt, unsigned char
#if (FDT_SUPPORT) #if (FDT_SUPPORT)
// load fdt // load fdt
er = bl_load_fdt_from_flash(p_tmp, SDRAM_Start_FW, &p_fdt); // dtb size less than 32MB to be safer.
debug_msg_var("buf_fdt=", buf_fdt);
debug_msg_var("buf_size=", buf_size);
er = bl_load_fdt_from_flash((unsigned char *)buf_fdt, buf_size, &p_fdt); // dtb size less than 32MB to be safer.
if (er != 0) { if (er != 0) {
debug_err("load fdt failed\r\n"); debug_err("load fdt failed\r\n");
return 0; return 0;
@ -3129,7 +3131,8 @@ _THUMB2 UINT32 bl_mainFlow(void)
UINT32 uiTmpBufferAddr = uiheapBufferAddr + FAT_HEAP_BUFFER_SIZE; UINT32 uiTmpBufferAddr = uiheapBufferAddr + FAT_HEAP_BUFFER_SIZE;
UINT32 uiUpdateBootloaderBufAddr = uiTmpBufferAddr + 0x4000; UINT32 uiUpdateBootloaderBufAddr = uiTmpBufferAddr + 0x4000;
UINT32 uiUpdateMainBinBufAddr = SDRAM_Start_FW; UINT32 uiUpdateMainBinBufAddr = SDRAM_Start_FW;
UINT32 uiOTABufferAddr = uiUpdateBootloaderBufAddr + 0xA000;
UINT32 uiOTABufferSize = 0x10000 * 2; /* 2 blks */
// UART initial sequence // UART initial sequence
//uart_openSystemUART(); //uart_openSystemUART();
// rtc reset shutdown timer // rtc reset shutdown timer
@ -3215,7 +3218,7 @@ _THUMB2 UINT32 bl_mainFlow(void)
UINT32 ota_flag = 0; UINT32 ota_flag = 0;
if(gsfSpecialKeyCallBack(0)) if(gsfSpecialKeyCallBack(0))
{ {
ota_flag = bl_check_ota_flag(); ota_flag = bl_check_ota_flag(uiOTABufferAddr, uiOTABufferSize);
} }
#if !(USB_WRITELOADER || UART_UPDATE) #if !(USB_WRITELOADER || UART_UPDATE)
@ -3299,15 +3302,19 @@ _THUMB2 UINT32 bl_mainFlow(void)
if (bl_load_rtos_from_non_nvtpack(uiUpdateMainBinBufAddr, uiUpdateFileLen, &adjusted_addr, &adjusted_size) == 0) { if (bl_load_rtos_from_non_nvtpack(uiUpdateMainBinBufAddr, uiUpdateFileLen, &adjusted_addr, &adjusted_size) == 0) {
uiFwBaseAddr = adjusted_addr; //fix compressed fit bl_checkDramScanFW() after copy its to temp area, see commit log uiFwBaseAddr = adjusted_addr; //fix compressed fit bl_checkDramScanFW() after copy its to temp area, see commit log
uiUpdateFileLen = adjusted_size; uiUpdateFileLen = adjusted_size;
} else {
bl_displayErrMsg("invalid firmware");
}
#if UPDATE_EMU_CODE #if UPDATE_EMU_CODE
uiLoaderFunc |= FUNC_UPDATE_FW; uiLoaderFunc |= FUNC_UPDATE_FW;
#else #else
uiLoaderFunc |= FUNC_RUN_CARD; uiLoaderFunc |= FUNC_RUN_CARD;
#endif #endif
} else {
debug_err("invalid firmware");
uiLoaderFunc |= FUNC_RUN_FLASH;
}
} }
fat_close_rootfile(); fat_close_rootfile();
debug_msg("\r\n"); // for line end RRRRRRR.... debug_msg("\r\n"); // for line end RRRRRRR....