内核编译与移植(二)
前面编译好的新内核还不能正常使用,下面接着讨论如何进行修改。 由于开发板上使用的是NandFlash,所以要让内核正常操作它,还需要进行修改。S3C2416内置了NandFlash接口和相关配置寄存器,但要Linux很好地支持具体型号的NandFlash芯片,还需要对内核的相关文件进行修改。 在Linux中,是通过MTD来对NandFlash进行访问的。MTD(Memory Technology Device)即内存技术设备,是Linux对ROM、NorFlash、NandFlash等存储设备抽象出来的一个设备层,它向上提供统一的访问接口,屏蔽了底层硬件的操作和各类存储设备的差别。Linux内核针对S3C2416定义的NandFlash驱动,位于文件drivers/mtd/nand/s3c2410.c中,因此,只要对该文件进行针对性的修改即可。执行“cd /linux-3.0.99/drivers/mtd/nand”进入该目录,然后用vi打开文件s3c2410.c(打开前可先备份一下),先找到其中一个名为“nand_hw_eccoob”的结构体,修改其中的三项参数,如下: .eccbytes = 4, .eccpos = {40, 41, 42, 43}, .oobfree = {{2, 38}} 第一句表示告诉驱动ecc需要4个字节,第二句告诉驱动这些ecc字节放在哪里