Exemple #1
0
char* loadscript(char *filedir,U32 *filesize)
{
    char *script = NULL;
    UBOOT_TRACE("IN\n");

    *filesize = vfs_getsize(filedir);
    if( (*filesize > SCRIPT_BUFSIZE) || (*filesize == 0) )
    {
        UBOOT_ERROR("No enough buffer or path fail(%s) :\n[%s] [%s]\n",filedir,__FILE__,__FUNCTION__);
        return NULL;
    }

    script = (char *)malloc(*filesize);
    if(script == NULL)
    {
        UBOOT_ERROR("No enough buffer %s %s\n",__FILE__,__FUNCTION__);
        return NULL;
    }
    if(vfs_read((void *)script,filedir,0,(unsigned int)(*filesize))==-1)
    {
        free(script);
        UBOOT_ERROR("Error: vfs_read Fail \n");
        return NULL;
    }
    UBOOT_TRACE("OK\n");
    return script;
}
Exemple #2
0
static unsigned int LoadJpg2Dram(char *SrcPath,U32 Dram_Addr)
{
    char PathBuf[128] = "\0";
    U32 u32LogoSize=0;
    UBOOT_TRACE("IN\n");
    Dram_Addr=PA2NVA(Dram_Addr);
    UBOOT_DEBUG("PA2NVA(Dram_Addr)=0x%x\n",(unsigned int)Dram_Addr);

    vfs_mount(CUSTOMER);
    snprintf(PathBuf, sizeof(PathBuf), "%s/%s",CUSTOMER_PATH,SrcPath);
    UBOOT_DEBUG("PathBuf=%s\n",PathBuf);
    u32LogoSize = vfs_getsize(PathBuf);
    UBOOT_DEBUG("u32LogoSize=0x%x\n",(unsigned int)u32LogoSize);
    vfs_read((void *)Dram_Addr,PathBuf,0,u32LogoSize);

    UBOOT_TRACE("OK\n");
    return u32LogoSize;
}
Exemple #3
0
static int _MsApi_BrickTerminator_Recover_Reserve ()
{
    MS_BOOL bNeedReburn = TRUE;
    U32 u32PathSize = 0;
    const char* BOOT_RECOVER_BRICK_RESERVE_VOLUME = "brickreserve";
    const char* BOOT_RECOVER_BRICK_BACKUP_VOLUME = "brickbackup";
    const char* BOOT_RECOVER_BRICK_RESERVE_FILE = "/.ready";
    const char* BOOT_RECOVER_BRICK_BACKUP_FILE = "/MstarUpgrade_reserve.bin";
    if(0 == vfs_mount((char*)BOOT_RECOVER_BRICK_RESERVE_VOLUME))
    {
        u32PathSize = vfs_getsize((char*)BOOT_RECOVER_BRICK_RESERVE_FILE);
        if(0 < u32PathSize)
        {
            bNeedReburn = FALSE;
            UBOOT_DEBUG("%s: u32PathSize: %u, at %d\n", __func__, u32PathSize, __LINE__); // DBG
        }
        else // TODO: remove after debug
        {
            UBOOT_ERROR("%s: ERROR: vfs_getsize failed, at %d\n", __func__, __LINE__);
        }
    }
    if(TRUE == bNeedReburn)
    {
        char cmd[CMD_BUF] = {};
        vfs_umount();
        if(0 == vfs_mount((char*)BOOT_RECOVER_BRICK_BACKUP_VOLUME))
        {
            sprintf(cmd, "bstar %s", BOOT_RECOVER_BRICK_BACKUP_FILE);
            UBOOT_ERROR("%s: ERROR: VFS failed, at %d\n", __func__, __LINE__);
            UBOOT_DEBUG("%s: DO BRICK RESERVE RECOVER, at %d\n", __func__, __LINE__);
            //NOTE: do partition recover
            run_command(cmd, 0);
            vfs_umount();
        }
    }
    else
    {
        UBOOT_DEBUG("%s: '%s' is ok, no need to re-burn, at %d\n", __func__, BOOT_RECOVER_BRICK_RESERVE_VOLUME, __LINE__);
        vfs_umount();
    }
    return 0;
}
Exemple #4
0
int LoadMMAP(void)
{

    UBOOT_TRACE("IN\n");
  

    if(vfs_mount(CONFIG)!=0)
    {
        UBOOT_ERROR("mount %s fail\n",CONFIG);
        return -1;    
    }
    
    mmap_buffer_size=vfs_getsize(MMAP_FILE_NAME);
    if(mmap_buffer_size==0)
    {       
        UBOOT_ERROR("get the file size of %s fail\n",MMAP_FILE_NAME);
        return -1;
    }

    mmap_buffer=malloc(mmap_buffer_size);
    UBOOT_DEBUG("mmmap_buffer at 0x%x\n",(unsigned int)mmap_buffer);
    if(mmap_buffer==NULL)
    {
        UBOOT_ERROR("malloc for mmap_buffer fail\n");
        return NULL;
    }

    if(vfs_read((char *)mmap_buffer,MMAP_FILE_NAME,0,mmap_buffer_size)!=0)
    {
        free(mmap_buffer);
        mmap_buffer=NULL;
        UBOOT_ERROR("read %s fail\n",MMAP_FILE_NAME);
        return -1;
    }

    vfs_umount();
    

    UBOOT_TRACE("OK\n");    
    return 0;
}