天嵌 ARM开发社区

 找回密码
 注册
查看: 1614|回复: 4

移植uboot,使其支持NAND FLASH

[复制链接]
zjlcly 发表于 2012-5-29 15:41:58 | 显示全部楼层 |阅读模式
在移植UBOOT的时候,到NAND FLASH这块,看了很多人的资料,有如下疑问:
首先请看源码:
#define S3C2440_ADDR_NALE 0x8
#define S3C2440_ADDR_NCLE 0x0c

static void s3c2440_hwcontrol(struct mtd_info *mtd, int cmd, unsigned int ctrl)
{
        struct nand_chip *chip = mtd->priv;
        struct s3c2440_nand *nand = s3c2440_get_base_nand();
        debugX(1, "hwcontrol(): 0x%02x 0x%02x\n", cmd, ctrl);
        if (ctrl & NAND_CTRL_CHANGE) {
                ulong IO_ADDR_W = (ulong)nand;
  
                if (!(ctrl & NAND_CLE))
                        IO_ADDR_W |= S3C2440_ADDR_NCLE;
                if (!(ctrl & NAND_ALE))
                        IO_ADDR_W |= S3C2440_ADDR_NALE;
                if (ctrl & NAND_NCE)
                        writel(readl(&nand->NFCONT) & ~S3C2440_NFCONT_nFCE, &nand->NFCONT);
                else
                        writel(readl(&nand->NFCONT) | S3C2440_NFCONT_nFCE, &nand->NFCONT);
        }

        if (cmd != NAND_CMD_NONE)
                writeb(cmd, &nand->NFCMMD);
}

以上是我看了别人的资料改的,但有些不明白是:
1、那两个宏的值是根据什么得来的?
2、那两个宏的值怎么赋值给了NAND FLASH的控制寄存器NFCONF。
我用的是TQ2440的板子,NAND FLASH是K9F1208U0C,向各位兄弟们请教了!谢谢。。。
embedsky_lhh 发表于 2012-5-29 17:59:24 | 显示全部楼层
这个主主要是启动时用到,就是拷贝nand到SDRAM中时先得指定nand的页大小,至于系统启动之后比如内核里的nand驱动一般就用不着这两个控制bit了
 楼主| zjlcly 发表于 2012-5-29 18:52:04 | 显示全部楼层
可是那几个宏,这里的解释不一样啊!
/*
* Constants for hardware specific CLE/ALE/NCE function
*
* These are bits which can be or'ed to set/clear multiple
* bits in one go.
*/
/* Select the chip by setting nCE to low */
#define NAND_NCE                0x01
/* Select the command latch by setting CLE to high */
#define NAND_CLE                0x02
/* Select the address latch by setting ALE to high */
#define NAND_ALE                0x04
 楼主| zjlcly 发表于 2012-5-29 18:55:56 | 显示全部楼层
而且这里的设置是在UBOOT的第二阶段的代码!
embedsky_lhh 发表于 2012-5-30 17:55:55 | 显示全部楼层
不一样的,你看手册就清楚了
#define NAND_ALE                0x04
#define S3C2440_ADDR_NALE 0x8
这两个的控制位都不一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-10-2 06:28 , Processed in 1.027278 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表