u32 nv_flash_init(void) { u32 ret = NV_ERROR; u32 i = 0; nv_file_debug(NV_FILE_INIT_API,0,0,0,0); /*first init every file sem*/ for(i = 0;i<NV_FILE_BUTT;i++) { osl_sem_init(1,&g_nv_file[i].file_sem); } memset(&g_flash_info,0,sizeof(struct nv_flash_global_ctrl_stru)); memset(&g_sec_info,0xff,sizeof(struct nv_sec_file_block_info)); /*get dload info*/ ret = nv_dload_file_info_init(); if(ret) { nv_file_debug(NV_FILE_INIT_API,1,ret,0,0); goto nv_flash_init_err; } /*get sys nv file info*/ ret = nv_sec_file_info_init(g_nv_file[NV_FILE_SYS_NV].name,&g_flash_info.sys_nv,g_sec_info.sys_nv); if(ret) { nv_file_debug(NV_FILE_INIT_API,2,ret,0,0); goto nv_flash_init_err; } /*get backup info*/ ret = nv_sec_file_info_init(g_nv_file[NV_FILE_BACKUP].name,&g_flash_info.bak_sec,g_sec_info.nv_bak); if(ret) { nv_file_debug(NV_FILE_INIT_API,3,ret,0,0); goto nv_flash_init_err; } /*get default info*/ ret = nv_sec_file_info_init(g_nv_file[NV_FILE_DEFAULT].name,&g_flash_info.def_sec,g_sec_info.nv_default); if(ret) { nv_file_debug(NV_FILE_INIT_API,4,ret,0,0); goto nv_flash_init_err; } return NV_OK; nv_flash_init_err: nv_mntn_record("\n[%s]\n",__func__); nv_flash_help(NV_FILE_INIT_API); return NV_ERROR; }
u32 nv_emmc_init(void) { u32 ret = NV_ERROR; u32 i = 0; nv_file_debug(NV_FILE_INIT_API,0,0,0,0); /*first init every file sem*/ for(i = 0;i<NV_FILE_BUTT;i++) { osl_sem_init(1,&g_nv_file[i].file_sem); } memset(&g_emmc_info,0,sizeof(struct nv_emmc_global_ctrl_stru)); /*get sys nv info*/ ret = nv_sec_file_info_init(g_nv_file[NV_FILE_SYS_NV].name,&g_emmc_info.sys_nv); if(ret) { nv_file_debug(NV_FILE_INIT_API,1,ret,(u32)(unsigned long)g_nv_file[NV_FILE_SYS_NV].mtd,NV_FILE_SYS_NV); goto nv_emmc_init_err; } /*get dload info*/ ret = nv_dload_file_info_init(); if(ret) { nv_file_debug(NV_FILE_INIT_API,2,ret,0,NV_FILE_DLOAD); goto nv_emmc_init_err; } /*get backup info*/ ret = nv_sec_file_info_init(g_nv_file[NV_FILE_BACKUP].name,&g_emmc_info.bak_sec); if(ret) { nv_file_debug(NV_FILE_INIT_API,3,ret,0,NV_FILE_BACKUP); goto nv_emmc_init_err; } /*get default info*/ ret = nv_sec_file_info_init(g_nv_file[NV_FILE_DEFAULT].name,&g_emmc_info.def_sec); if(ret) { nv_file_debug(NV_FILE_INIT_API,4,ret,0,NV_FILE_DEFAULT); goto nv_emmc_init_err; } return NV_OK; nv_emmc_init_err: printf("\n[%s]\n",__func__); nv_emmc_help(NV_FILE_INIT_API); return NV_ERROR; }