This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335X GPMC连接NANDFLASH 的疑问



各位大神好,小弟这里有个问题一直疑惑了很久,写出来跟大家讨论讨论。

AM335x通过GPMC连接NANDFLASH是如何实现地址译码 生成CE信号 ALC信号 CLE信号的?

当通过GPMC连接SRAM或者NorFLASH的时候,通过配置寄存器设置起始地址,地址范围,当访问外部设备的时候,GPMC通过对地址线的译码就可以判断出所操作的是哪一个片选,同时相对应的片选有效,这个貌似不难理解,但是当连接NandFlash的时候呢?

如果按照上述理解,在操作NandFlash的时候,也必须访问为NandFlash所分配的地址区域内的地址才能有CS信号出来,然而我看了uboot下关于NandFlash部分的内容,却没有发现相关的操作呢。源码中找到了如下部分

......

nand->IO_ADDR_R = (void  __iomem *)&gpmc_cfg->cs[cs].nand_dat;

nand->IO_ADDR_W= (void  __iomem *)&gpmc_cfg->cs[cs].nand_cmd;

......

程序将nand->IO_ADDR_R/W 设置成了两个与NAND相关的寄存器的地址

而在进行命令发送等操作的时候却是对 这几个Nand 数据 命令 地址寄存器进行操作。。

不解?这几个寄存器地址跟为NandFlash分配的地址根本毫无相关性啊,是如何译码的呢?

请各位指教.