dm9000aep,cep for wince6 驱动修改和读取注册表mac的方法

dm9isa.cpp修改成以下,此处为飞凌驱动移植,其他都能适用



U16 C_DM9000::DeviceReadEeprom(

U32 uWordAddress)
{
//----------------------------------------------
//U16 eeprom[] = { 0x1122,0x3344,0x5566,0x5445,0x0a46,0x9000,0x01e7,0x4180};
  //U16 eeprom[] = { 0xaae0,0xdec8,0x5163,0x5445,0x0a46,0x9000,0x01e7,0x4180};
  U16 eeprom[] = { 0xaae0,0xdec8,0x5262};
// add by alexlee
DWORD dwStatus, dwType, dwSize;
HKEY hk_mac = NULL;
DWORD MAC[6];
dwStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE,  _T("FORLINX\\MAC"), 0, 0, &hk_mac);
dwType = REG_DWORD;
dwSize = sizeof(DWORD);
if(dwStatus == ERROR_SUCCESS && dwType == REG_DWORD) {
RegQueryValueEx(hk_mac, _T("MAC1"), NULL, &dwType, (LPBYTE) &MAC[0], &dwSize);
RegQueryValueEx(hk_mac, _T("MAC2"), NULL, &dwType, (LPBYTE) &MAC[1], &dwSize);
RegQueryValueEx(hk_mac, _T("MAC3"), NULL, &dwType, (LPBYTE) &MAC[2], &dwSize);
RegQueryValueEx(hk_mac, _T("MAC4"), NULL, &dwType, (LPBYTE) &MAC[3], &dwSize);
RegQueryValueEx(hk_mac, _T("MAC5"), NULL, &dwType, (LPBYTE) &MAC[4], &dwSize);
RegQueryValueEx(hk_mac, _T("MAC6"), NULL, &dwType, (LPBYTE) &MAC[5], &dwSize);
eeprom[0] = (MAC[1] << 8) + (MAC[0]);
eeprom[1] = (MAC[3] << 8) + (MAC[2]);
eeprom[2] = (MAC[5] << 8) + (MAC[4]);
}


//RETAILMSG(1, (TEXT("------------alexlee_mac_0  =================[%x] \r\n"),eeprom[0]));
//RETAILMSG(1, (TEXT("------------alexlee_mac_1  =================[%x] \r\n"),eeprom[1]));
//RETAILMSG(1, (TEXT("------------alexlee_mac_2  =================[%x] \r\n"),eeprom[2]));
// end alexlee



if( uWordAddress < sizeof( eeprom ) )
return eeprom[uWordAddress];
else
return 0;
//----------------------------------------------

U16 highbyte,lowbyte;

// assign the register offset
DeviceWritePort(DM9_EPADDR,uWordAddress);

// issue EEPROM read command<2>
DeviceWritePort(DM9_EPCNTL,(1<<2));

// wait until status bit<0> cleared
// 80 uS, 5 times
if(!DevicePolling(DM9_EPCNTL,(1<<0),0x00,80,5))
return (U16)-1;

// stop command
DeviceWritePort(DM9_EPCNTL,0);


// retrive data
lowbyte  = (U16)DeviceReadPort(DM9_EPLOW);
highbyte = (U16)DeviceReadPort(DM9_EPHIGH);

return ((highbyte<<8) | lowbyte);

}



注册表修改platform.reg

;----------------------------------------------------------------------------
;Mac Control
[HKEY_LOCAL_MACHINE\FORLINX\MAC]
"MAC1"=dword:c8
"MAC2"=dword:a
"MAC3"=dword:cc
"MAC4"=dword:62
"MAC5"=dword:37
"MAC6"=dword:1
;----------------------------------------------------------------------------


注意:注册表需要实现hive注册表模式才能保存mac,否则需要不同mac只能修改驱动来实现。如果有phy的芯片的网络芯片就无需修改mac了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值