/* ************************************************************************************************************ * * function * * 函数名称: * * 参数列表: * * 返回值 : * * 说明 : * * ************************************************************************************************************ */ __s32 update_flash_write(void *pbuf, __u32 len) { __s32 ret; if(android_format == ANDROID_FORMAT_UNKONW) { ret = unsparse_probe((char *)pbuf, len, flash_start_sector); if(ret == -1) { android_format = ANDROID_FORMAT_BAD; } else { android_format = ANDROID_FORMAT_DETECT; } } if(ANDROID_FORMAT_BAD == android_format) { if(private_type == 1) { env_dram_write(pbuf, len); } else { update_flash_write_ext(pbuf, len); } } else { //unsparse_dram_write(pbuf, len); unsparse_direct_write(pbuf, len); } return 0; }
/* ************************************************************************************************************ * * function * * 函数名称: * * 参数列表: * * 返回值 : * * 说明 : * * ************************************************************************************************************ */ int private_date_restore(int part_size) { __inf("private part status=%d\n", private_exist); if(private_exist) { if(private_flash_flash_size <= part_size) { if(!update_flash_write_ext(private_flash_dram_base, private_flash_flash_size)) { return 0; } else { __inf("update flash private err: write private data error\n"); } } else { __inf("update flash private err: data size %d is larger than part size %d\n", private_flash_flash_size, part_size); } } else { __inf("sprite update info: no part named private need to be restore\n"); } return -1; }