PMON 里面添加 NOR_FlASH 驱动
1、 Targets/LS2H/ls2h/tgt_machdep.c +303 里面的 initmips()函数里面对 nor_flash 进行初始化;
#if NNAND
ls2h_nand_init();
#if NSPINAND_MT29F || NSPINAND_LLD
ls2h_spi_nand_probe();
#endif
#if NM25P80
ls2h_m25p_probe();
#endif
#endif
2、 打开 pmon 对 nor_flash 的支持(即打开 NM25P80 宏),修改 Targets/LS2H/conf/ls2h
select m25p80
3、 Targets/LS2H/dev/spi_w.c +736 里面的 ls2h_m25p_probe()函数;
#if NM25P80
int ls2h_m25p_probe()
{
spi_initw();
m25p_probe(&spi_nand1, "gd25q128");
}
#endif
4、 sys/dev/nand/m25p80.c +940 里面的 m25p_probe()函数;
flash->mtd.name ="gd25q128";
if(!nand_flash_add_parts(&flash->mtd,0))
{
add_mtd_device(&flash->mtd,0,0x080000,"pmon");
add_mtd_device(&flash->mtd,0x80000,0x0D80000,"kernel");
add_mtd_device(&flash->mtd,0x0E00000,0x0200000,"os");
}
5、 sys/dev/nand/m25p80.c +802 里面的 m25p_probe()函数,解决无法识别芯片;
#if 0
if (info->jedec_id) {
const struct spi_device_id *jid;
jid = jedec_probe(spi);
printf("Device Name [ %s ]",jid->name);
if (IS_ERR(jid)) {
printf("m25_probe()__0");
return PTR_ERR(jid);
评论0