- 论坛徽章:
- 0
|
static void nand_init_chip(struct mtd_info *mtd, struct nand_chip *nand,
ulong base_addr)
{
mtd->priv = nand;
nand->IO_ADDR_R = nand->IO_ADDR_W = (void __iomem *)base_addr;
if (board_nand_init(nand) == 0) {
if (nand_scan(mtd, 1) == 0) {
if (!mtd->name)
mtd->name = (char *)default_nand_name;
else
mtd->name += gd->reloc_off;
} else
mtd->name = NULL;
} else {
mtd->name = NULL;
mtd->size = 0;
}
}
中,会去调用
board_nand_init,而这个函数,是每个平台都不同的,对应着你自己板子的nand flash的驱动。
比如你也知道的cpu/arm920t/s3c24x0/nand.c,那是人家三星的板子自己的nand驱动。
你如果自己实现了另外一个nand驱动,那么就要放在自己平台对应的文件夹下面,并且要在makefile添加对应支持,把对应的文件编译进去才行。
结论就是:
实现自己的nand驱动,将对应文件放到对应你的开发板的目录下,修改makefile,这样才会去编译你的文件,才能找到你的函数。 |
|