1.修复loader升级问题
This commit is contained in:
parent
7dd8eef490
commit
90f03df218
|
@ -2065,10 +2065,9 @@ _THUMB2 static int bl_load_uboot_from_flash(unsigned char *p_fdt, unsigned char
|
|||
// debug_err_var("OtaFlag=", info->OtaFlag);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* assume ota_flag is read from partition_sys and in the first word */
|
||||
_THUMB2 static UINT32 bl_check_ota_flag(void)
|
||||
{
|
||||
/* assume ota_flag is read from partition_sys and in the first word */
|
||||
_THUMB2 static UINT32 bl_check_ota_flag(UINT32 buf_fdt, UINT32 buf_size)
|
||||
{
|
||||
int er;
|
||||
unsigned char *p_fdt = NULL;
|
||||
DRAM_PARTITION *p_dram_partition = NULL;
|
||||
|
@ -2080,14 +2079,17 @@ _THUMB2 static int bl_load_uboot_from_flash(unsigned char *p_fdt, unsigned char
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if (FDT_SUPPORT)
|
||||
#if (FDT_SUPPORT)
|
||||
// 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) {
|
||||
debug_err("load fdt failed\r\n");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
p_dram_partition = (DRAM_PARTITION *)bl_get_fdt_cfg(p_fdt, MODELEXT_TYPE_DRAM_PARTITION);
|
||||
if (p_dram_partition == NULL) {
|
||||
|
@ -2104,7 +2106,7 @@ _THUMB2 static int bl_load_uboot_from_flash(unsigned char *p_fdt, unsigned char
|
|||
debug_msg_var("ota_flag=", *ota_flag);
|
||||
|
||||
return (*ota_flag);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
/***********************************************************************************/
|
||||
|
||||
|
@ -3129,7 +3131,8 @@ _THUMB2 UINT32 bl_mainFlow(void)
|
|||
UINT32 uiTmpBufferAddr = uiheapBufferAddr + FAT_HEAP_BUFFER_SIZE;
|
||||
UINT32 uiUpdateBootloaderBufAddr = uiTmpBufferAddr + 0x4000;
|
||||
UINT32 uiUpdateMainBinBufAddr = SDRAM_Start_FW;
|
||||
|
||||
UINT32 uiOTABufferAddr = uiUpdateBootloaderBufAddr + 0xA000;
|
||||
UINT32 uiOTABufferSize = 0x10000 * 2; /* 2 blks */
|
||||
// UART initial sequence
|
||||
//uart_openSystemUART();
|
||||
// rtc reset shutdown timer
|
||||
|
@ -3215,7 +3218,7 @@ _THUMB2 UINT32 bl_mainFlow(void)
|
|||
UINT32 ota_flag = 0;
|
||||
if(gsfSpecialKeyCallBack(0))
|
||||
{
|
||||
ota_flag = bl_check_ota_flag();
|
||||
ota_flag = bl_check_ota_flag(uiOTABufferAddr, uiOTABufferSize);
|
||||
}
|
||||
|
||||
#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) {
|
||||
uiFwBaseAddr = adjusted_addr; //fix compressed fit bl_checkDramScanFW() after copy its to temp area, see commit log
|
||||
uiUpdateFileLen = adjusted_size;
|
||||
} else {
|
||||
bl_displayErrMsg("invalid firmware");
|
||||
}
|
||||
|
||||
#if UPDATE_EMU_CODE
|
||||
uiLoaderFunc |= FUNC_UPDATE_FW;
|
||||
#else
|
||||
uiLoaderFunc |= FUNC_RUN_CARD;
|
||||
#endif
|
||||
|
||||
} else {
|
||||
debug_err("invalid firmware");
|
||||
uiLoaderFunc |= FUNC_RUN_FLASH;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
fat_close_rootfile();
|
||||
debug_msg("\r\n"); // for line end RRRRRRR....
|
||||
|
|
Loading…
Reference in New Issue
Block a user