NAND FLASH升级
我的ok6410的开发板 配置为128MDDR 256Mnand flash,型号为K9F2G08UOB,现在手头上有个4G的nand flash ,型号为K9LBG08UOD,把它焊到开发板上。修改uboot的nand_ids.c,添加上{"NAND 4GiB 3,3V 8-bit", 0xD7, 0, 4096, 0, LP_OPTIONS},编译后,开发板从SD卡启动,传入uboot.bin到内存运行,显示如下:
U-Boot 1.1.6 (May 23 2011 - 20:39:21) for SMDK6410
****************************************
** u-boot 1.1.6 **
** Updated for TE6410 Board **
** Version 1.0 (10-01-15) **
** OEM: Forlinx Embedded **
** Web: http://www.witech.com.cn **
****************************************
CPU: S3C6410 @532MHz
Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)
Board: SMDK6410
DRAM: 128 MB
Flash: 0 kB
NAND: 0 MB
*** Warning - bad CRC or NAND, using default environment
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot:0
SMDK6410 # nand info
Device 0: NAND 4GiB 3,3V 8-bit, sector size 256 KiB
SMDK6410 # nand device 0
Device 0: NAND 4GiB 3,3V 8-bit... is now current device
SMDK6410 #
为什么NAND显示为0M呢?我应该继续修改哪些地方啊? 先顶一个 急需解决啊 这个错误已经修正。今天上传到网盘提供下载 在什么网盘上啊,您是指论坛上发帖吗? http://bbs.witech.com.cn/thread-3809-1-1.html
关注这个帖子~ 现在可以显示nand大小了,由于这个芯片是两个chip,现在先用其中的一个,也就是2048M。但有出现新问题,芯片页大小是4k+218oob,erasesize是512k,我修改了一下cpu->s3c64xx->nd.c,使其使用mlc_oob_128。又修改了一下driver->nand->nand_base,修改其中的nand_get_flash_type函数,将其中的if (!type->pagesize) {
int extid;
/* The 3rd id byte holds MLC / multichip data */
chip->cellinfo = chip->read_byte(mtd);
/* The 4th id byte is the important one */
extid = chip->read_byte(mtd);
/* Calc pagesize */
mtd->writesize = 1024 << 0x02;
extid >>= 2;
/* Calc oobsize */
mtd->oobsize = 128;
extid >>= 2;
/* Calc blocksize. Blocksize is multiples of 64KiB */
mtd->erasesize = (64 * 1024) << (extid | 0x03);
extid >>= 2;
/* Get buswidth information */
busw = (extid & 0x01) ? NAND_BUSWIDTH_16 : 0;
}
这一段存在问题,修改为自己的nand参数,直接给writesize,oobsize,erasesize赋上自己的值4096,128,512*1024。编译uboot,将uboot下载到内存中运行正常,可以对nand进行各种操作,但是把uboot烧到nand中,从nand启动时,没有任何反应,一直白屏,控制台没有任何uboot启动的信息,led指示灯也不亮,这是什么原因啊? 终于知道原因了,原来用sd卡烧写uboot是要用mmc.bin的,但是现在我的mmc.bin里没有对4G nand的支持,希望版主能给我们讲解一下mmc.bin的制作方法,或者把支持4G nand的mmc.bin发到我邮箱里:songqiang_1987@163.com。小弟不胜感激! 楼主是在自己开发新的nand驱动么?加油。 呵呵 主要是我的nand太小,才256M,我想换个大的,呵呵 但是烧写uboot用的mmc.bin不支持我的4G nand啊,用uboot烧的uboot不能启动啊。:( 楼主的nand一页有多少字节? 问题解决了我自己制作了一个烧写uboot用的专用uboot 呵呵 现在可以从nand启动了 一切ok 楼上你把你制作过程,跟大家分享下吧~ 很简单,把nand_ids.c中的你的nand类型的那一组的pagesize改为2048,erasesize改为256*1024 编译后就可以用了,注意编译后的这个uboot不能烧到nand里去,而是下载到内存中用来烧写你自己的uboot的,相当于mmc.bin,它会自动把你的nand烧写方式改为2k每页,这样系统引导代码就能成功,从而可以从nand启动uboot. 给力的顶一下。 牛人一个 又是传说中的拖焊....
页:
[1]