I tried to use MT29F64G08AJABA as the nandflash in my iMX287 board,this nandflash is 64Gbit(8GByte),page size is 4096+224bytes,block size is 128 pages,and ONFI 2.1 compliant. I already modified the nand driver and when I boot from SDCard,the system can recognize the nandflash correctly and I can read and write the nandflash correctly after the system is up. But if I write the imx28_ivt_linux.sb to the nandflash use kobs-ng,and then change the boot mode to Nand mode, the debug uart puts 0x80508002 and 0x80502008 after power on. I think my driver with this nandflash is right,otherwise I can't read and write the nandflash correctly with SDCard boot. But I don't know weather the ROM loader support this nandflash. Does anyone boot from this nandflash succssfully? Please tell me how to do. And what's the meaning of the error codes 0x80508002 and 0x80502008? Where are they defined? Thanks.
please check below links, they explain how to correctly program NAND for booting
What is the difference between these two family MCiMX & PCiMX and any logic that why Freescale have stopped PCiMX controller ?
Also, some more Qs,
(a) are the pinouts the same ?
(b) what would we need to do to program the MC series with firmware from the PC series. ?
Thanks for chipexpert. But these two links can't solve my problem. My nand driver has already support this nandflash,because when I boot from SDCard,the system can recognize the nandflash correctly and I can read and write the nandflash correctly after the system is up. Additionly, if I run the imx28_ivt_linux.sb in SDCard, and then run the rootfs in this nandflash, it also succeed. My problem is just if I write the imx28_ivt_linux.sb to the nandflash use kobs-ng,and then change the boot mode to Nand mode, the system can't start up, and the debug uart puts 0x80508002 and 0x80502008 after power on. My nandflash is ONFI 2.1 compliant, and in the page of 1051(ONFI BA NAND Device Boot) of the MCIMX28RM.pdf, it says "For ONFI-BA NAND, ROM expects the first sector to contain a MBR with partition table". I checked the source code of the MFGTool and kobs-ng,both of them don't have the operation of writing the MBR. I think maybe that's the question.
this NAND MT29F64G08AJABA can not be boot with i.MX28 as Vladan
correctly noted due to TKT140334, this was confirmed internally.
ROM attempts to read the ONFI parameter page using NAND read parameter page command ECh.
If the read is successful, it will check for the "ONFI" signature at bytes 0-3. If this is also true, it
then check for bit 7 of byte 6-7 and when it is set, the ROM will identify this part as BA-NAND and switch to BA-NAND boot.
For this Micron part, its ONFI parameter page byte 6-7 have bit 7 set and thus i.MX28
always falsely identify it as BA-NAND.
From my point of view one can mask bit 7, just adding small cpld near NAND so
it will decode command ECh and if this will true it will turn on transistor with rising WE edge
(open drain, connected to bit 7), this transitor will hold bit 7 low during all this particular command cycle.
At next command cycle this bit will be released thus not preventing NAND later from normal operation.
In bootlets one can just disable cpld.
Another alternative is to create ROM patch, which will be programmed to an external I2C EEPROM
to disable the i.MX28 BA-NAND support in ROM code such that any RAW NAND with bit 7 set
can also be correctly identified. To use this patch, you need to add an I2C EEPROM to your board
and change the boot mode to I2C boot.
your nand is ONFI 2.1 but not "ONFI-BA" and these are different things.
I would suggest to try latest yocto kernel (3.10.17) since older may
not support well NANDs with 224 spare sizes. Though 3.10.17 kernel
is not officially supported by Freescale it works good with i.MX28 EVK.