注册表里面信息如下:
IF BSP_DM9000 !
[HKEY_LOCAL_MACHINE\Comm\DM9CE]
"DisplayName"="DM9000A/9010 ISA Fast Ethernet Adapter"
"Group"="NDIS"
"ImagePath"="dm9isa.dll"
[HKEY_LOCAL_MACHINE\Comm\DM9CE\Linkage]
"Route"=multi_sz:"dm9ce1"
[HKEY_LOCAL_MACHINE\Comm\DM9CE1]
"DisplayName"="DM9000A/9010 ISA Fast Ethernet Adapter"
"Group"="NDIS"
"ImagePath"="dm9isa.dll"
[HKEY_LOCAL_MACHINE\Comm\Tcpip\Linkage]
"Bind"="dm9ce1"
[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms]
"BusNumber"=dword:0
"BusType"=dword:0
"XmitBuffer"=dword:20
"RecvBuffer"=dword:20
"IrqNumber"=dword:23
"MACAddress" =hex:00,0A,EB,FD,7A,00
[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms\TcpIp]
"EnableDHCP"=dword:0
"UseZeroBroadcast"=dword:0
"DefaultGateway"="192.168.1.1"
"IpAddress"="192.168.1.227"
"Subnetmask"="255.255.255.0"
"DNS"="192.168.1.1"
ENDIF BSP_DM9000 ! 复制代码
Dm9isa.cpp里面有这么一段:
=
{
{ CID_CONNECTION_TYPE, -1, NDIS_STRING_CONST("ConnectionType") },
{ CID_SLOT_NUMBER, -1, NDIS_STRING_CONST("SlotNumber")},
{ CID_BUFFER_PHYSICAL_ADDRESS, 0, NDIS_STRING_CONST("BufferPhysicalAddress")},
{ CID_TXBUFFER_NUMBER, 0x20, NDIS_STRING_CONST("XmitBuffer")},
{ CID_RXBUFFER_NUMBER, 0x10, NDIS_STRING_CONST("RecvBuffer")},
{ CID_ADAPTER_NUMBER, 0, NDIS_STRING_CONST("AdapterNumber")},
//{ CID_IO_BASE_ADDRESS, 0x08000300, NDIS_STRING_CONST("IoAddress")},// 这样应该就改成nGCS1了吧!!!
{ CID_IO_BASE_ADDRESS, 0x20300000, NDIS_STRING_CONST("IoAddress")},// 这里说明使用nGCS4???nGCS4所选通的对应的DRAM的地址?
{ CID_IO_RANGE, 0x10, NDIS_STRING_CONST("IoRange")},
{ CID_IRQ_NUMBER, 0X23, NDIS_STRING_CONST("IrqNumber")},// 这里是物理中断号???
{ -1,-1,NULL}
}; 复制代码
请问:DM9000的CS口,那个地址是怎么决定的呢?即上面的,为什么0x20300000表示nGCS4选择?
看2440手册,nGCS4选择的起始地址为0x20000000,加了300000这个偏移地址有什么作用?
如果换成其他选择口,如nGCS1口,地址又是多少?
0x23表示接到哪个硬件中断口上了?迷惑中。。。。。。。。。。。。。。。。。。