📄 chipset.cpp
字号:
case 0x1022: /*AMD*/
SouthFunc = 0x0300; /*AMD/VIA method*/
switch(SouthId)
{
case 0x7408:
SbId = 0x12; /*AMD-756*/
break;
case 0x7410:
SbId = 0x13; /*AMD-766*/
break;
}
break;
case 0x1045: /*Opti*/
break;
case 0x1060: /*UMC*/
break;
case 0x1039: /*SiS*/
switch(SouthId)
{
case 0x08:
SbId = 0x14; /*any SiS South Bridge*/
break;
case 0x18:
SbId = 0x15; /*SiS 950 can have 0x8 or 0x18*/
break;
}
break;
case 0x10B9: /*ALi*/
if (SouthId == 0x1533) /*M1533/1543/1535*/
{
SouthFunc = 0x0400; /*ALi method*/
SbId = 0x11;
}
break;
case 0x1055: /*SMSC*/
if (SouthId == 0x9460) /*SLC90E66*/
{
SouthFunc = 0x0600; /*SMSC method*/
SbId = 0x16;
}
break;
case 0x10AD: /*Winbond/Symphony Labs*/
if (SouthId == 0x0565) /*W83C553F*/
{
SouthFunc = 0x0700; /*Winbond method*/
SbId = 0x17;
}
break;
case 0x1283: /*ITE*/
switch(SouthId)
{
case 0x8872 :
SouthFunc = 0x0801;/*IT8871F/8872F*/
SbId = 0x18;
break;
case 0x8888 :
SouthFunc = 0x0802; /*IT8888F*/
SbId = 0x19;
break;
}
break;
case 0x1166: /*Reliance/ServerWorks*/
SouthFunc = 0x0900;
switch(SouthId)
{
case 0x0200 :
SbId = 0x1A; /*OSB4*/
break;
}
break;
case 0x1066: /*PicoPower*/
SouthFunc = 0x1000;
switch(SouthId)
{
case 0x0002 :
case 0x8002 :
SbId = 0x1B; /*Vesuvius V3-LS*/
break;
}
break;
case 0x1078: /*PicoPower*/
SouthFunc = 0x1100;
switch(SouthId)
{
case 0x0100 :
SbId = 0x1C; /*Geode CS5530(A)*/
break;
}
break;
default:
;
}
//#5 get chipset information
BYTE CurrentChipset[128];
/*Id chipset as a whole*/
strcpy(CurrentChipset , "");
switch(NbId)
{
case 0x01 :
if (SbId == 0x01)
strcpy(CurrentChipset , "Intel Mercury 430LX");
break;
case 0x02 :
if (SbId == 0x01)
strcpy(CurrentChipset , "Intel Neptune 430NX");
break;
case 0x03 :
if (SbId == 0x03)
strcpy(CurrentChipset , "Intel Triton 430FX");
break;
case 0x04 :
if (SbId == 0x04)
strcpy(CurrentChipset , "Intel 430MX (mobile)");
break;
case 0x05 :
if (SbId == 0x05)
strcpy(CurrentChipset , "Intel Natoma 440FX");
break;
case 0x06 :
if (SbId == 0x05)
strcpy(CurrentChipset , "Intel Triton II 430HX");
break;
case 0x07 :
if (SbId == 0x05)
strcpy(CurrentChipset , "Intel Triton II 430VX");
break;
case 0x08 :
if (SbId == 0x06)
strcpy(CurrentChipset , "Intel Triton III 430TX");
break;
case 0x09 :
if (SbId == 0x06)
strcpy(CurrentChipset , "Intel AGPSet 440LX/EX");
break;
case 0x0A :
switch (SbId)
{
case 0x06 :
strcpy(CurrentChipset , "Intel AGPSet 440BX/ZX");
break;
case 0x16 :
strcpy(CurrentChipset , "SMSC VictoryBX-66");
break;
}
break;
case 0x0B :
if (SbId == 0x06)
strcpy(CurrentChipset , "Intel AGPSet 440GX");
break;
case 0x0C :
if (SbId == 0x02)
strcpy(CurrentChipset , "Intel 450KX");
break;
case 0x0D :
if (SbId == 0x02)
strcpy(CurrentChipset , "Intel 450KX/GX");
break;
case 0x0E :
if (SbId == 0x02)
strcpy(CurrentChipset , "Intel 450GX");
break;
case 0x0F :
if ((SbId == 0x07) || (SbId == 0x08))
strcpy(CurrentChipset , "Intel 810");
break;
case 0x10 :
switch(SbId)
{
case 0x07:
case 0x08:
strcpy(CurrentChipset , "Intel 810E");
break;
case 0x09:
strcpy(CurrentChipset , "Intel 810E2");
break;
}
break;
case 0x11 :
switch(SbId)
{
case 0x07:
case 0x08:
strcpy(CurrentChipset , "Intel 815(G)");
break;
case 0x09:
strcpy(CurrentChipset , "Intel 815E(P/G)");
break;
case 0x0A:
strcpy(CurrentChipset , "Intel 815EM");
break;
}
break;
case 0x12 :
switch(SbId)
{
case 0x07:
case 0x08:
strcpy(CurrentChipset , "Intel 820");
break;
case 0x09:
strcpy(CurrentChipset , "Intel 820E");
break;
}
break;
case 0x13 :
if ((SbId == 0x07) || (SbId == 0x08))
strcpy(CurrentChipset , "Intel 840");
break;
case 0x14 :
if (SbId == 0x09)
strcpy(CurrentChipset , "Intel 850");
break;
case 0x15 :
if (SbId == 0x09)
strcpy(CurrentChipset , "Intel 860");
break;
case 0x16 :
if (SbId == 0x0B)
strcpy(CurrentChipset , "Intel 830MP");
break;
case 0x17 :
if (SbId == 0x09)
strcpy(CurrentChipset , "Intel 845");
break;
case 0x18 :
strcpy(CurrentChipset , "VIA Apollo Master");
break;
case 0x19 :
if (SbId == 0x0C)
strcpy(CurrentChipset , "VIA Apollo VP/VPX");
break;
case 0x1A :
if (SbId == 0x0C)
strcpy(CurrentChipset , "VIA Apollo VP2/AMD 640");
break;
case 0x1B :
if ((SbId == 0x0C) || (SbId == 0x0D))
strcpy(CurrentChipset , "VIA Apollo VP3");
break;
case 0x1C :
if ((SbId == 0x0D) || (SbId == 0x0E))
strcpy(CurrentChipset , "VIA Apollo MVP3");
break;
case 0x1D :
strcpy(CurrentChipset , "VIA Apollo P6");
break;
case 0x1E :
if (SbId == 0x0E)
strcpy(CurrentChipset , "VIA Apollo MVP4");
break;
case 0x1F :
if ((SbId == 0x0D) || (SbId == 0x0E))
strcpy(CurrentChipset , "VIA Apollo Pro (Plus/133/133A)");
break;
case 0x20 :
if ((SbId == 0x0D) || (SbId == 0x0E))
strcpy(CurrentChipset , "VIA Apollo Pro Plus/133/133A");
break;
case 0x21 :
if (SbId == 0x0E)
strcpy(CurrentChipset , "VIA Apollo ProMedia");
break;
case 0x22 :
strcpy(CurrentChipset , "VIA Apollo Pro 133Z/PM133");
break;
case 0x23 :
if (SbId == 0x0E)
strcpy(CurrentChipset , "VIA Apollo KX133");
break;
case 0x24 :
if (SbId == 0x0E)
strcpy(CurrentChipset , "VIA Apollo KT133(A)");
break;
case 0x25 :
if (SbId == 0x10)
strcpy(CurrentChipset , "VIA Apollo KT266");
break;
case 0x26 :
if (SbId == 0x10)
strcpy(CurrentChipset , "VIA Apollo Pro 266");
break;
case 0x2C :
if (SbId == 0x11)
strcpy(CurrentChipset , "ALi Aladdin Pro II");
break;
case 0x2D :
if (SbId == 0x11)
strcpy(CurrentChipset , "ALi Aladdin V");
break;
case 0x2E :
if (SbId == 0x11)
strcpy(CurrentChipset , "ALi Aladdin Pro IV");
break;
case 0x2F :
if (SbId == 0x11)
strcpy(CurrentChipset , "ALi ALiMAGiK 1");
break;
case 0x30 :
if (SbId == 0x12)
strcpy(CurrentChipset , "AMD 750");
break;
case 0x31 :
switch(SbId)
{
case 0x0E :
strcpy(CurrentChipset , "AMD 760 (VIA South)");
break;
case 0x13 :
strcpy(CurrentChipset , "AMD 760 (AMD South)");
break;
}
break;
case 0x32 :
if (SbId == 0x13)
strcpy(CurrentChipset , "AMD 760MP");
break;
case 0x33 :
strcpy(CurrentChipset , "SiS 85C496+497");
break;
case 0x34 :
if (SbId == 0x14)
strcpy(CurrentChipset , "SiS 501/5101/5501");
break;
case 0x35 :
if (SbId == 0x14)
strcpy(CurrentChipset , "SiS 5511+5513");
break;
case 0x36 :
if (SbId == 0x14)
strcpy(CurrentChipset , "SiS 5571");
break;
case 0x37 :
if (SbId == 0x14)
strcpy(CurrentChipset , "SiS 5591/5592+5595");
break;
case 0x38 :
if (SbId == 0x14)
strcpy(CurrentChipset , "SiS 5596+5595");
break;
case 0x39 :
if (SbId == 0x14)
strcpy(CurrentChipset , "SiS 5597/5598/5581/5120");
break;
case 0x3A :
if (SbId == 0x14)
strcpy(CurrentChipset , "SiS 530");
break;
case 0x3B :
if ((SbId == 0x14) || (SbId == 0x15))
strcpy(CurrentChipset , "SiS 540");
break;
case 0x3C :
if (SbId == 0x14)
strcpy(CurrentChipset , "SiS 600");
break;
case 0x3D :
if (SbId == 0x14)
strcpy(CurrentChipset , "SiS 620");
break;
case 0x3E :
if ((SbId == 0x14) || (SbId == 0x15))
strcpy(CurrentChipset , "SiS 630");
break;
case 0x3F :
if (SbId == 0x1A)
strcpy(CurrentChipset , "ServerWorks ServerSet III LE");
break;
case 0x40 :
if (SbId == 0x1A)
strcpy(CurrentChipset , "ServerWorks ServerSet III HE");
break;
case 0x41 :
if (SbId == 0x1B)
strcpy(CurrentChipset , "National PicoPower Vesuvius-LS");
break;
case 0x42 :
if (SbId == 0x1C)
strcpy(CurrentChipset , "National Geode GX1 + CS5530(A)");
break;
default:
;
}
ChipsetFound = (( NbId == 0 ) && ( SbId == 0 )) ? FALSE : TRUE ; /*One of 'm might be enough*/
//If chipset ID failed then show north & south bridge name or ID
if (strlen(CurrentChipset) == 0)
{
if (NbId != 0)
{
if (SbId != 0)
sprintf(CurrentChipset , "%s + %s", NorthBridgeName[ NbId ] , SouthBridgeName[SbId]);
else
sprintf(CurrentChipset , "%s + (%04x,%04x,%02x) ", NorthBridgeName[ NbId ] , SouthMan, SouthId, SouthRev);
}
else
{
if (SbId != 0)
sprintf(CurrentChipset , "(%04x,%04x,%02x) + %s", NorthMan, NorthId, NorthRev, SouthBridgeName[SbId]);
else
sprintf(CurrentChipset , "(%04x,%04x,%02x) + (%04x,%04x,%02x) ", NorthMan, NorthId, NorthRev , SouthMan, SouthId, SouthRev);
}
}
/* if (( WantToUseAMI ) && ( AMICheckFor ))
{
AMIUsed = True;
ChipsetFound = True;
CurrentChipset = CurrentChipset + ' [AMI FLASH]';
}
*/
//#6 Fill in the information into the structure
memset((void*)pChipSetInfo , 0 , sizeof(CHIPSETINFO));
pChipSetInfo->SouthMan = SouthMan;
pChipSetInfo->SouthId = SouthId;
pChipSetInfo->SouthRev = SouthRev;
pChipSetInfo->NorthMan = NorthMan;
pChipSetInfo->NorthId = NorthId;
pChipSetInfo->NorthRev = NorthRev;
pChipSetInfo->SbId = SbId;
pChipSetInfo->NbId = NbId;
pChipSetInfo->NorthPos = NorthPos;
pChipSetInfo->SouthPos = SouthPos;
pChipSetInfo->NorthFunc= NorthFunc;
pChipSetInfo->SouthFunc= SouthFunc;
strcpy(pChipSetInfo->SouthInfo , SouthBridgeName[SbId]);
strcpy(pChipSetInfo->NorthInfo , NorthBridgeName[NbId]);
strcpy(pChipSetInfo->ChipInfo , CurrentChipset);
pChipSetInfo->bChipFound = ChipsetFound;
return bRet;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -