VOS_INT VOS_ModuleInit(VOS_VOID)
{
#ifdef BSP_CONFIG_HI3630
    /* 如果是升级模式,则不启动VOS */
    if(!is_load_modem())

    {
        Print("update or charge mode, will not start vos.\r\n");
        return 0;
    }
#endif
    APP_VCOM_Init();

    root();

    RNIC_InitNetCard();

    return 0;
}
예제 #2
0
static int __init his_modem_probe(struct platform_device *pdev)
{
    int ret = 0;
#ifdef BSP_CONFIG_HI3630
    u32 image_load_addr = 0;
    u32 image_length = 0;

extern unsigned int is_load_modem(void);

	/* 如果是升级模式,则不激活modem */
	if(!is_load_modem())
	{
        hi_trace(HI_ERR, "upload or charge mode, will not start modem.\r\n");
		return 0;
	}

    if (readl((void*)SHM_MEM_LOADM_ADDR) != LOAD_MODEM_OK_FLAG)
    {
        hi_trace(HI_ERR, "modem image not found\r\n");
        return -1;
    }

    image_load_addr = readl((void*)SHM_MEM_LOADM_ADDR + 4);
    image_length = readl((void*)SHM_MEM_LOADM_ADDR + 8);

    g_ccore_entry = (u32)ioremap_nocache(image_load_addr, image_length);
    if(!g_ccore_entry)
    {
        hi_trace(HI_ERR, "ioremap failed. image size: 0x%X\r\n", image_length);
        return NAND_ERROR;
    }

#else
    struct ST_PART_TBL * mc_part = NULL;

    hi_trace(HI_DEBUG, "his_modem_probe.\r\n");

    mc_part = find_partition_by_name(PTABLE_VXWORKS_NM);
    if(NULL == mc_part)
    {
        hi_trace(HI_ERR, "load ccore image succeed\r\n");
        return -EAGAIN;
    }

    if(NAND_OK == his_modem_load_vxworks(mc_part->name))
    {
        hi_trace(HI_DEBUG, "load ccore image succeed\r\n");
    }
    else
    {
        hi_trace(HI_ERR, "load ccore image failed\r\n");
        return -EAGAIN;
    }

    ret = sysfs_create_group(&pdev->dev.kobj, &his_modem_group);
    if (0 != ret)
    {
        hi_trace(HI_ERR,"create his modem sys filesystem node failed.\n");
        return -ENXIO;
    }

#endif

    ret = his_modem_ipc_send();
    if (ret)
    {
        hi_trace(HI_ERR, "load ccore image failed, ret=0x%x\r\n", ret);
    }
    else
    {
        hi_trace(HI_ERR, "load ccore image succeed\r\n");
    }

    return ret;

}