本帖最后由 guo19877 于 2021-12-6 14:55 编辑
参考了原子的原理图,自己画了一个核心板(4层板,因为比较穷)。
costdown: 把镁光的 nand MT29F4G08ABADAWP-IT 换成了winbond W29N02GVSIAA;
然后用Mfgtools 工具 直接烧入:
因为log 打印比较多,所以 展示 部分;
之后一直 打印erase 失败;
1.看日志 打印,nandflash 应该是没有注册到mtd 下,属于其他类型;
2.OK,改nand文件;
2.1 grep -ri "NAND_MFR_TOSHIBA" ./*
kernel 主要在 这几个文件下: ./drivers/mtd/nand/nand_base.c ./drivers/mtd/nand/nand_ids.c ./temp/include/linux/mtd/nand.h ./temp/drivers/mtd/nand/nand_base.c
把 W29N02GVSIAA 注册到内核,给与 它的ID 0XEF(查手册) 改完,make clean ;make; 同理 Uboot; 重新放入, \mfgtool\Profiles\Linux\OS Firmware\files\; 重新烧入,但是还是和之前的log一样的; 然后 我把 zImage、uboot.imx 放入 \mfgtool\Profiles\Linux\OS Firmware\firmware\ 惊奇的发现 ,这个芯片被识别了; 说明被识别了,注册到内核了;
这个就比较麻烦了,也就是里面的 \mfgtool\Profiles\Linux\OS Firmware\firmware\ 固件决定了引导的文件,最后烧入执行的 才是 你编译的文件; 然后 看了下 那个工具下的ucl2.xml 文件,看如何 引导 nandflash 烧入的;
这个固件 firmware 可能是 官方 提供的参考固件,用来引导、适配不同主板;
各位大神,有没遇到过,像我这样的问题,指点一下。谢谢!
|