如何确定DM9000网卡的地址

CONFIG_DM9000_BASE 值的确定。

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

如何确定DM9000网卡的地址_第1张图片

如何确定DM9000网卡的地址_第2张图片


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

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

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

比如说。#defineCONFIG_DM9000_BASE 0x2c000000

DM9000连接上cs6, 地址位:0010110000000000000000000000

它的A29-A24就是101100;所以我们必须把101100写入到cs6CONFIG7

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

0xf6c就是0b111101101100也就是说BASEADDRESS的【50】为0x2c

如果 CONFIG_DM9000_BASE0x20000000它的A29-A24就是0b100000

因此必须写到对应片选的CONFIG7,【50】必须位0b100000.

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

    #defineCONFIG_DM9000_BASE 0x2c000000

    #defineDM9000_IO CONFIG_DM9000_BASE

    #defineDM9000_DATA (CONFIG_DM9000_BASE + 0x400)

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

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

  3. 如何确定DM9000网卡的地址_第3张图片
  4. 这个只要看CMD这个引脚,是连接到GPMC的哪根地址线。在我这边是连接第10根。

    访问0x2c000400时,ADDR101,也就是CMD1,为DATA输入输出。

http://www.xuebuyuan.com/1458859.html





你可能感兴趣的:(如何确定DM9000网卡的地址)