58 const CHAR *fs = NULL;
62 PRINT_ERR(
"partition [nand/spinor]\n");
68 if (strcmp(fs,
"nand") == 0) {
70 }
else if (strcmp(fs,
"spinor") == 0) {
73 PRINT_ERR(
"not supported!\n");
77 if ((param == NULL) || (param->
flash_mtd == NULL)) {
78 PRINT_ERR(
"no partition!\n");
83 PRINTK(
"%s partition num:%u, blkdev name:%s, mountpt:%s, startaddr:0x%08x, length:0x%08x\n",
partition_param * GetNandPartParam(VOID)
partition_param * GetSpinorPartParam(VOID)
通过mknod在/dev子目录下建立MTD块设备节点(主设备号为31)和MTD字符设备节点(主设备号为90)
CHAR * mountpoint_name
挂载点名称 例如: /
CHAR * blockdriver_name
块设备驱动名称 例如: /dev/spinorblk0p0
LOS_DL_LIST node_info
双循环节点,挂在首个分区节点上
分区参数描述符,一个分区既可支持按块访问也可以支持按字符访问,只要有驱动程序就阔以
mtd_partition * partition_head
首个分区,其他分区都挂在.node_info节点上
struct MtdDev * flash_mtd
flash设备描述符,属于硬件驱动层
UINT32 block_size
块单位(4K),对文件系统而言是按块读取数据,方便和内存页置换