Пример #1
0
int setup_getpartials_application(dataptr dz)
{
	int exit_status;
	aplptr ap;
	if((exit_status = establish_application(dz))<0)		// GLOBAL
		return(FAILED);
	ap = dz->application;
	// SEE parstruct FOR EXPLANATION of next 2 functions
	switch(dz->process) {
	case(PARTIALS_HARM): 
		switch(dz->mode) {
		case(0):
		case(1):
			if((exit_status = set_param_data(ap,0   ,2,2,"dd"      ))<0)
				return(FAILED);
			break;
		case(2):
		case(3):
			if((exit_status = set_param_data(ap,0   ,3,3,"ddd"     ))<0)
				return(FAILED);
			break;
		}
		if((exit_status = set_vflgs(ap,"",0,"","v",1,0,"0"))<0)
			return(FAILED);
		break;
	}
	// set_legal_infile_structure -->
	dz->has_otherfile = FALSE;
	// assign_process_logic -->
	dz->input_data_type = ANALFILE_ONLY;
	dz->process_type	= TO_TEXTFILE;	
	dz->outfiletype  	= TEXTFILE_OUT;
	return application_init(dz);	//GLOBAL
}
Пример #2
0
int setup_manysil_application(dataptr dz)
{
	int exit_status;
	aplptr ap;
	if((exit_status = establish_application(dz))<0)		// GLOBAL
		return(FAILED);
	ap = dz->application;
	// SEE parstruct FOR EXPLANATION of next 2 functions
	if((exit_status = set_param_data(ap,MANYSIL_DATA   ,1,1,"d"))<0)
		return(FAILED);
	if((exit_status = set_vflgs(ap,"",0,"","",0,0,""))<0)
		return(FAILED);
	// set_legal_infile_structure -->
	dz->has_otherfile = FALSE;
	// assign_process_logic -->
	dz->input_data_type = SNDFILES_ONLY;
	dz->process_type	= UNEQUAL_SNDFILE;	
	dz->outfiletype  	= SNDFILE_OUT;
	return application_init(dz);	//GLOBAL
}
Пример #3
0
int setup_speclean_application(dataptr dz)
{
	int exit_status;
	aplptr ap;
	if((exit_status = establish_application(dz))<0)		// GLOBAL
		return(FAILED);
	ap = dz->application;
	// SEE parstruct FOR EXPLANATION of next 2 functions
	if((exit_status = set_param_data(ap,0   ,2,2,"dd"      ))<0)
		return(FAILED);
	if((exit_status = set_vflgs(ap,"",0,"","",0,0,""))<0)
		return(FAILED);
	// set_legal_infile_structure -->
	dz->has_otherfile = FALSE;
	// assign_process_logic -->
	dz->input_data_type = TWO_ANALFILES;
	dz->process_type	= EQUAL_ANALFILE;	
	dz->outfiletype  	= ANALFILE_OUT;
	return application_init(dz);	//GLOBAL
}
Пример #4
0
int warp_checkboot(int saveno)
{
    int ret;
    char *str;

    ret = warp_check_bootargs();
    if (ret)
        return 1;

    if (saveno < 0) {
        if ((str = getenv("warpsaveno")))
            saveno = simple_strtoul(str, NULL, 10);
        else
            saveno = warp_saveno;
    }

    if (saveno < 0 || saveno >= WARP_SAVEAREA_NUM) {
        printf("Illegal saveno %d\n", saveno);
        return 1;
    }

    if ((ret = warp_drvload()) != 0)
        return ret;

    warp_bfaddr = (void *)warp_drv_addr +
                  *(int *)(warp_drv_addr + WARP_HEADER_COPY_SIZE);
#ifdef CONFIG_WARP_NAND
    if ((ret = warp_nand_bmload(saveno)) != 0) {
        printf("load boot mode flags error\n");
        return ret;
    }
#endif
    printf("Warp mode :%x\n", *(unsigned int *)warp_bfaddr);

    if (*(unsigned int *)warp_bfaddr != WARP_MODE) {
        return 1;
    } else {
        char tag_buf[WARP_TAG_SIZE];
        unsigned int boot_mode = NORMAL_MODE;

        boot_mode = *(unsigned int *)warp_bfaddr;
        memset(tag_buf, 0, sizeof(tag_buf));
        snprintf(tag_buf, sizeof(tag_buf), "warp_boot_mode=%x", boot_mode);
        set_param_data("wpmode", tag_buf, sizeof(tag_buf));
        printf("set wpmode\n");
    }

#ifdef CONFIG_WARP_NOR
    if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) ==
            WARP_DEV_NOR)
        if ((ret = warp_nor_bfload(saveno)) != 0)
            return ret;
#endif

#ifdef CONFIG_WARP_NAND
    if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) ==
            WARP_DEV_NAND)
        if ((ret = warp_nand_bfload(saveno)) != 0)
            return ret;
#endif

#ifdef CONFIG_WARP_ATA
    if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) ==
            WARP_DEV_ATA)
        if ((ret = warp_ata_bfload(saveno)) != 0)
            return ret;
#endif

#ifdef CONFIG_WARP_SD
    if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) == WARP_DEV_SD)
        if ((ret = warp_sd_bfload(saveno)) != 0)
            return ret;
#endif

#ifdef CONFIG_WARP_EXTDRV
    if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) ==
            WARP_DEV_EXT)
        if ((ret = warp_extdrv_bfload(saveno)) != 0)
            return ret;
#endif

#ifdef CONFIG_WARP_USERDRV
    if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) ==
            WARP_DEV_USER)
        if ((ret = warp_userdrv_bfload(saveno)) != 0)
            return ret;
#endif

    if (*(unsigned int *)warp_bfaddr != WARP_ID_BOOTFLAG)
        return 1;

    return 0;
}
Пример #5
0
int warp_check_bootargs(void)
{
    int ret;
    unsigned long long addr, len;
    char *ptr;
    char *media_name = "hinand";
    char tag_buf[WARP_TAG_SIZE];

    const char *bootargs = getenv("bootargs");
    if (!bootargs) {
        ret = 1;
        goto failed;
    }

    if (NULL == (ptr = strstr(bootargs, "mtdparts="))) {
        ret = 1;
        goto failed;
    }

    ptr += strlen("mtdparts=");

    if (find_flash_part(ptr, media_name, "warpdrv", &addr, &len)) {
        warp_drv_area = (unsigned int)addr;
        warp_drv_size = (unsigned int)len;
    } else {
        ret = 1;
        goto failed;
    }

    if (find_flash_part(ptr, media_name, "warpflag", &addr, &len)) {
        warp_flag_area = (unsigned int)addr;
        warp_flag_size = (unsigned int)len;
    } else {
        ret = 1;
        goto failed;
    }

    if (find_flash_part(ptr, media_name, "warpdata", &addr, &len)) {
        warp_data_area = (unsigned int)addr;
        warp_data_size = (unsigned int)len;
    } else {
        ret = 1;
        goto failed;
    }

    warp_savearea[0].bootflag_dev = WARP_DEV(NAND, 0, 0);
    warp_savearea[0].bootflag_area = warp_flag_area;
    warp_savearea[0].bootflag_size = warp_flag_size;

    /* init loadaddress */
    warp_drv_addr = reserve_mem_alloc(WARP_HIBDRV_SIZE, NULL);
    if (!warp_drv_addr) {
        ret = 1;
        goto failed;
    }
    warp_drv_addr &= 0xfff00000;
    memset(tag_buf, 0, sizeof(tag_buf));
    snprintf(tag_buf, sizeof(tag_buf), "warp_drv_addr=%x", warp_drv_addr);
    set_param_data("wpaddr", tag_buf, sizeof(tag_buf));

#if CONFIG_SHOW_WARP_INFO
    printf("Warp!! drv  phyaddr 0x%X\n", warp_drv_addr);
    printf("Warp!! drv  start 0x%X, size 0x%X\n", warp_drv_area, warp_drv_size);
    printf("Warp!! flag start 0x%X, size 0x%X\n", warp_flag_area, warp_flag_size);
    printf("Warp!! data start 0x%X, size 0x%X\n", warp_data_area, warp_data_size);
#endif
    check_boot_ok = 1;

    return 0;

failed:
    return ret;
}