3888|5

62

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于DM9000A驱动的问题 [复制链接]

如题,飞凌开发板的DM9000A的硬件连接:
一:中断口连接到了2440的GPF7上,用来响应网卡中断;

二:CS口接到了2440的nGCS4,即GPA15上,用来选择网卡;

三:CMD口接到了地址总线ADDR2上,用于决定DATA口或INDEX口???

我仔细看了DM9000A的驱动,有如下疑问:
一:整个驱动中没见有GPF7的配置,程序中如何说明采用了GPF7做为中断响应脚?
二:整个驱动中没见有GPA15的配置,程序中如何通过该脚选择DM9000A?不能一直处于选中状态吧!否则总线会造成DRAM出错。
三:CMD口为什么要接到ADDR2上?接到其他地址线上可以吗?

最新回复

结贴,问题解决。 一:中断配置在注册表中,驱动中上文已经提到; 二:CS脚可以处于常选中状态,因为DRAM分配问题;每个bank对应128M; 三:CMD不一定非得接到ADDR2上,可以接到其它地方,改代码即可。  详情 回复 发表于 2010-5-5 21:47
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
注册表里面信息如下:
  1. IF BSP_DM9000 !
  2.         [HKEY_LOCAL_MACHINE\Comm\DM9CE]
  3.                 "DisplayName"="DM9000A/9010 ISA Fast Ethernet Adapter"
  4.                 "Group"="NDIS"
  5.                 "ImagePath"="dm9isa.dll"

  6.         [HKEY_LOCAL_MACHINE\Comm\DM9CE\Linkage]
  7.                 "Route"=multi_sz:"dm9ce1"

  8.         [HKEY_LOCAL_MACHINE\Comm\DM9CE1]
  9.                 "DisplayName"="DM9000A/9010 ISA Fast Ethernet Adapter"
  10.                 "Group"="NDIS"
  11.                 "ImagePath"="dm9isa.dll"

  12.         [HKEY_LOCAL_MACHINE\Comm\Tcpip\Linkage]
  13.                 "Bind"="dm9ce1"

  14.         [HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms]
  15.                 "BusNumber"=dword:0
  16.                 "BusType"=dword:0
  17.                 "XmitBuffer"=dword:20
  18.                 "RecvBuffer"=dword:20
  19.                 "IrqNumber"=dword:23
  20.                 "MACAddress" =hex:00,0A,EB,FD,7A,00

  21.         [HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms\TcpIp]
  22.                 "EnableDHCP"=dword:0
  23.                 "UseZeroBroadcast"=dword:0
  24.                 "DefaultGateway"="192.168.1.1"
  25.                 "IpAddress"="192.168.1.227"
  26.                 "Subnetmask"="255.255.255.0"
  27.                 "DNS"="192.168.1.1"
  28. ENDIF BSP_DM9000 !
复制代码


Dm9isa.cpp里面有这么一段:
  1. =
  2. {
  3.         { CID_CONNECTION_TYPE, -1, NDIS_STRING_CONST("ConnectionType") },
  4.         { CID_SLOT_NUMBER, -1, NDIS_STRING_CONST("SlotNumber")},
  5.         { CID_BUFFER_PHYSICAL_ADDRESS, 0, NDIS_STRING_CONST("BufferPhysicalAddress")},
  6.         { CID_TXBUFFER_NUMBER, 0x20, NDIS_STRING_CONST("XmitBuffer")},
  7.         { CID_RXBUFFER_NUMBER, 0x10, NDIS_STRING_CONST("RecvBuffer")},
  8.         { CID_ADAPTER_NUMBER, 0, NDIS_STRING_CONST("AdapterNumber")},
  9.         //{ CID_IO_BASE_ADDRESS, 0x08000300, NDIS_STRING_CONST("IoAddress")},// 这样应该就改成nGCS1了吧!!!
  10.         { CID_IO_BASE_ADDRESS, 0x20300000, NDIS_STRING_CONST("IoAddress")},// 这里说明使用nGCS4???nGCS4所选通的对应的DRAM的地址?
  11.         { CID_IO_RANGE, 0x10, NDIS_STRING_CONST("IoRange")},
  12.         { CID_IRQ_NUMBER, 0X23, NDIS_STRING_CONST("IrqNumber")},// 这里是物理中断号???
  13.         { -1,-1,NULL}
  14. };
复制代码


请问:DM9000的CS口,那个地址是怎么决定的呢?即上面的,为什么0x20300000表示nGCS4选择?
看2440手册,nGCS4选择的起始地址为0x20000000,加了300000这个偏移地址有什么作用?
如果换成其他选择口,如nGCS1口,地址又是多少?
0x23表示接到哪个硬件中断口上了?迷惑中。。。。。。。。。。。。。。。。。。
 
 

回复

46

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
中断懂了,原来在S3c2440a_intr.h里面中断定义:
#define IRQ_EINT7           35
0x23 = 35,表示接GPF7.
CS呢?
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 1 楼 armeasy 的回复:
注册表里面信息如下:

C/C++ code
IF BSP_DM9000 !
    [HKEY_LOCAL_MACHINE\Comm\DM9CE]
        "DisplayName"="DM9000A/9010 ISA Fast Ethernet Adapter"
        "Group"="NDIS"
        "ImagePath"="dm9isa.dll"……

一般来说,+偏移要么是由寄存器地址决定的,
要么由外部硬件电路决定,例如0x20000001,则最后那个‘1’就是硬件上的高电平。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
mark....
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
结贴,问题解决。
一:中断配置在注册表中,驱动中上文已经提到;
二:CS脚可以处于常选中状态,因为DRAM分配问题;每个bank对应128M;
三:CMD不一定非得接到ADDR2上,可以接到其它地方,改代码即可。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表