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了。

發佈了34 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章