您的位置:首页 > 其它

如何确定DM9000网卡的地址

2016-02-19 12:54 337 查看


CONFIG_DM9000_BASE 值的确定。

2013年12月13日 ⁄ 综合 ⁄ 共 734字 ⁄ 字号 小 中 大 ⁄ 评论关闭





BASEADDRESS就是用来确定你的基地址的高6位。



GPMC范围0-0x3fffffff。所以基地址的A31,A30,为0.

而BASEADDRESS的A29-A24就是用来确定你的基地址的高6位。

比如说。#defineCONFIG_DM9000_BASE 0x2c000000

DM9000连接上cs6, 地址位:0010,1100,0000,0000,0000,0000,0000

它的A29-A24就是10,1100;所以我们必须把10,1100写入到cs6的CONFIG7

writel(0x00000f6c,&gpmc_cfg->cs[6].config7);

0xf6c就是0b1111,0110,1100也就是说BASEADDRESS的【5:0】为0x2c。

如果 CONFIG_DM9000_BASE为0x20000000它的A29-A24就是0b10,0000

因此必须写到对应片选的CONFIG7,【5:0】必须位0b10,0000.

而MASKADDRESS是用来确定你的这个片选的空间大小。超过范围就会被屏蔽,片选就不会被选中。比如

#defineCONFIG_DM9000_BASE 0x2c000000

#defineDM9000_IO CONFIG_DM9000_BASE

#defineDM9000_DATA (CONFIG_DM9000_BASE + 0x400)

DM9000_DATA的范围不能超过(CONFIG_DM9000_BASE+
MASKADDRESS所选的大小)

而那个0x400是怎么确定的呢。



这个只要看CMD这个引脚,是连接到GPMC的哪根地址线。在我这边是连接第10根。

访问0x2c000400时,ADDR10为1,也就是CMD为1,为DATA输入输出。

http://www.xuebuyuan.com/1458859.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: