[U-Boot] hi,guys,about the nand flash driver

hi: i am going to port uboot1.1.6 nand flash driver to my arm926ejs board.use /drivers/nand/nand.c. not nand_legacy.c . out cpu chip has a nand flash controller,the program flow is as below: 1、set address to controller's register 2、set command to controller's register 3、write controller's special register,so that the 2 steps above can execute. 4、wait for the steps above to be completed ,through another register. 5、now program the data. the problem is; i don't konw how to set struct nand_chip's func point because of the nand controller: xxx_hwcontrol(): the ale,cle cannot be controlled by program. IO_ADDRW:what's it? now i think i just need to write the fllowing functions: wirtebyte,readbyte,writebuf,readbuf, can anyone tell me if i am right? or give me some advise? thank you.

Dear lanmanck,
In message 8741663.90171243572592561.JavaMail.coremail@bj163app88.163.com you wrote:
i am going to port uboot1.1.6 nand flash driver to my arm926ejs board.use /drivers/nand/nand.c. not nand_legacy.c .
Forget it. U-Boot 1.1.6 is dead and buried and totally unsupported.
Please use recent code (top of tree or at minimum the latest release = v2009.03) for recent development.
Best regards,
Wolfgang Denk

On Fri, May 29, 2009 at 12:49:52PM +0800, lanmanck wrote:
hi: i am going to port uboot1.1.6 nand flash driver to my arm926ejs board.use /drivers/nand/nand.c. not nand_legacy.c . out cpu chip has a nand flash controller,the program flow is as below:
As Wolfgang pointed out, that is very old. Please use current code.
1、set address to controller's register 2、set command to controller's register 3、write controller's special register,so that the 2 steps above can execute. 4、wait for the steps above to be completed ,through another register. 5、now program the data. the problem is; i don't konw how to set struct nand_chip's func point because of the nand controller: xxx_hwcontrol(): the ale,cle cannot be controlled by program. IO_ADDRW:what's it? now i think i just need to write the fllowing functions: wirtebyte,readbyte,writebuf,readbuf,
That will not be sufficient. If your NAND controller does not fit in the cmd_ctrl model, then you'll have to override higher level functions such as cmdfunc -- see drivers/mtd/nand/fsl_elbc.c for an example.
Alternatively, you may want to override the higher level functions that call cmdfunc.
-Scott

hi scott: thank you for replying. because i am not familiar with the framework of uboot's nand driver ,do you think i should read all of the source code about the nand driver? BTW,i have not found the diretory "drivers/mtd/nand/fsl_elbc.c",is it the latest version? best regards.
?> -----原始邮件-----
发件人: "Scott Wood" scottwood@freescale.com 发送时间: 2009年5月30日 星期六 收件人: lanmanck lanmanck@163.com 抄送: u-boot@lists.denx.de 主题: Re: [U-Boot] hi,guys,about the nand flash driver
On Fri, May 29, 2009 at 12:49:52PM +0800, lanmanck wrote:
hi: i am going to port uboot1.1.6 nand flash driver to my arm926ejs board.use /drivers/nand/nand.c. not nand_legacy.c . out cpu chip has a nand flash controller,the program flow is as below:
As Wolfgang pointed out, that is very old. Please use current code.
1、set address to controller's register 2、set command to controller's register 3、write controller's special register,so that the 2 steps above can execute. 4、wait for the steps above to be completed ,through another register. 5、now program the data. the problem is; i don't konw how to set struct nand_chip's func point because of the nand controller: xxx_hwcontrol(): the ale,cle cannot be controlled by program. IO_ADDRW:what's it? now i think i just need to write the fllowing functions: wirtebyte,readbyte,writebuf,readbuf,
That will not be sufficient. If your NAND controller does not fit in the cmd_ctrl model, then you'll have to override higher level functions such as cmdfunc -- see drivers/mtd/nand/fsl_elbc.c for an example.
Alternatively, you may want to override the higher level functions that call cmdfunc.
-Scott

lanmanck wrote:
hi scott: thank you for replying. because i am not familiar with the framework of uboot's nand driver ,do you think i should read all of the source code about the nand driver? BTW,i have not found the diretory "drivers/mtd/nand/fsl_elbc.c",is it the latest version? best regards.
the u-boot 1.1.6 don't have fsl_elb.c. as Wolfgang said:
Forget it. U-Boot 1.1.6 is dead and buried and totally unsupported.
Please use recent code (top of tree or at minimum the latest release = v2009.03) for recent development.
I also have a u-boot 1.1.6, it's work with Pi (ingenic CPU device) now I am try to move to u-boot V2009.03. :-)

On Sat, May 30, 2009 at 11:09:03AM +0800, lanmanck wrote:
because i am not familiar with the framework of uboot's nand driver ,do you think i should read all of the source code about the nand driver?
That's always helpful. :-)
BTW,i have not found the diretory "drivers/mtd/nand/fsl_elbc.c",is it the latest version?
Sorry, I meant drivers/mtd/nand/fsl_elbc_nand.c.
-Scott
participants (4)
-
lanmanck
-
Scott Wood
-
Wolfgang Denk
-
xiangfu