CFE分区向内核传递

来源:互联网 发布:linux查询命令 编辑:程序博客网 时间:2024/05/16 00:45

CFE分区向内核传递:
:在cfe的cfe/cfe/dev/Dev_nandflash.c的nanddrv_probe函数中
//add for test
     if (lib_strcmp("fgdl1", nptr) == 0)
    {
                           xsprintf(buffer,"%x",(softc->fd_parts[idx].fp_offset));
                           env_setenv("LINUX_FGDL1_PART_STARTAD",buffer,ENV_FLG_BUILTIN | ENV_FLG_READONLY);
                        xsprintf(buffer,"%x", softc->fd_parts[idx].fp_size);
                           env_setenv("LINUX_FGDL1_PART_SIZE",buffer,ENV_FLG_BUILTIN | ENV_FLG_READONLY);
    }
//end test

在 kernel中添加相应的分区结构
在arch/mips/broadstb/broad.c中添加:
//add own part value
unsigned long brcm_mtd_fgdl1_start = 0;
unsigned long brcm_mtd_fgdl1_len = 0;
//end add

在arch/mips/broadstb/prom.c添加:
//add own part
 FETCH("LINUX_FGDL1_PART_STARTAD",parse_hex,&brcm_mtd_fgdl1_start);
 FETCH("LINUX_FGDL1_PART_SIZE", parse_hex, &brcm_mtd_fgdl1_len);
//end add

在arch/mips/broadstb/broad.c中添加:
//add own part
 if (brcm_mtd_fgdl1_len != 0)
  nr_parts++;
//end add

//add own part
 if (brcm_mtd_fgdl1_len != 0) {
  ret[3].offset = brcm_mtd_fgdl1_start;
  ret[3].size = brcm_mtd_fgdl1_len;
  ret[3].name = "fgdl1";
 }
//end add

在arch/mips/include/asm/brcmstb/brcmstb.h中添加声明:
//add own part
extern unsigned long brcm_mtd_fgdl1_start;
extern unsigned long brcm_mtd_fgdl1_len;
//end

原创粉丝点击