免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2186 | 回复: 5
打印 上一主题 下一主题

关于mpc8548通过upma去控制nand flash的微码ram配置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-13 15:31 |只看该作者 |倒序浏览
关于mpc8548通过upma去控制nand flash的微码ram配置

我看了文档的步骤如下

1 配置br和or寄存器,配置br相应的物理地址phy。
2 配置upm的64个word。
3 run upm相应的区域,比如0x8,0x10等等。

现在出现的问题是:
当配置完第1步骤后,val=*(volaile unsigned char *)phy的时候,出现异常,然后死机。
当配置完第2步骤后,要置mamr寄存器的0,但是重新读mamr的时候,mamr等于0x3f。

请问以上2个步骤是什么原因造成的?
谢谢

论坛徽章:
0
2 [报告]
发表于 2009-10-13 15:32 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2009-10-13 18:42 |只看该作者
没接触过8548~

不过会不会是MMU的关系~ 访问了越界地址造成的错误?~

论坛徽章:
0
4 [报告]
发表于 2009-10-14 21:01 |只看该作者
找到原因了,因为upm table没有写入到mpc的ram array中。
要判断mad是否自动加1后才能继续写入下一个word。

1 新的问题又出现了,请问一下upm word中last bit是什么意思?

2 假如写入命令的upm mad=0x8用的是64个word中的一个,
  那么mxmr【op】=11的时候,是不是就只产生0x8这个word的时序?
  会自动顺序运行下一个word的时序,直到一个word的last位为1呢?

请教,谢谢!

论坛徽章:
0
5 [报告]
发表于 2009-10-15 14:41 |只看该作者
好的,现在又出现一个问题,关于GPL2/OE这个引脚。
对nand进行读数据的时候,先发送命令,然后地址,然后读结束命令。然后polling R/B的状态为ready后,GPL2需要拉低nand的RE引脚,然后数据从数据线IO(0-7)输出了。

d0 = *(volatile unsigned char *)NAND_BASE;
d1 = *(volatile unsigned char *)NAND_BASE;
d2 = *(volatile unsigned char *)NAND_BASE;
d3 = *(volatile unsigned char *)NAND_BASE;
但是GPL2拉低nand的RE引脚一次,然后数据从数据线IO(0-7)读出
这个过程应该是ram word重复的,那么如何判断当前读的是哪次GPL2拉低的?


GPL2/OE在GPCM模式下,应该只要读取ppc的bank就能触发GPL2/OE为低的。
GPL2/OE在UMP模式下,通过ram word触发GPL2/OE为低,但是读取数据的时候如何控制呢?

论坛徽章:
0
6 [报告]
发表于 2009-10-16 10:20 |只看该作者
没有人懂upm吗

就是说upm时序通过gpl2拉低nand的re,拉低一次,可以读取一个字节。但是我怎么去判断哪个时刻gpl2拉低了re呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP