SetFSBメインスクリプトの解説(2007.09.29)
1.SetFSBはどのようにしてFSBを変更しているのか?
SetFSBはチップセットのSMBus(System Management
Bus)に接続されているクロックジェネレータのコントロールレジスタを書き換えてFSBを変更します。尚、チップセットやクロックジェネレータの違いによりSMBusのアクセス方法、コントロールレジスタの設定方法が異なります。また、ソフトウェアでFSBの設定をサポートしていないクロックジェネレータは対応することができません。

SMBus(System Management
Bus):クロック信号線とデータ信号線からなる2線式のシリアルバスであり、バスに接続されるデバイスは固有のアドレス(クロックジェネレータはD2h)を持つ。
2.Initialize Routine
SetFSBの初期設定をします。
2−1.メモリの初期設定[;/Initialize Memory]
変数の接頭文字(主にグローバル変数)
|
|
| 接頭文字 |
意味 |
| a |
配列[構造体] |
| i |
符号付き整数型 |
| f |
論理型 |
| fn |
関数型 |
| sz |
ゼロ終端文字列型 |
| p |
ポインタ |
| d |
倍精度浮動小数点型 |
| rgb |
RGB |
| hw |
ハンドル型 |
| x |
x座標 |
| y |
y座標 |
| h |
高さ |
| w |
幅 | |
szClkGenName:Clock Generatorコンボボックスの内容を示す変数
"ICS9248EF-199","ICS94225AF","ICS94228BF",
...,"PLL diagnosis"
szTmrTxtTbl:Select Timerスタティックコントロールに表示する文字列テーブル
"SLP","MMT","QPC"
iCrSelLst:コントロールレジスタのリストボックスアレーの選択状態
選択[番号0〜]/非選択[-1]
iSmbSelLst:SMBus
IOポートのリストボックスアレーの選択状態
選択[番号0〜]/非選択[-1]
aPLLprm:パラメータ[PLL,prm] 26,112byte
|
|
| 区分 |
バイト数 |
番号 |
変数名 |
内容 |
|
PLL0 [512byte] |
16 |
nPLLMODEL |
szPLLmodel |
"PLL名" |
| 4 |
nVENDERID |
iPrmVenderID |
Vendor ID Register, [iPLL_Type] |
| 4 |
nBYTECOUNT |
iPrmByteCount |
Byte Count Register |
| 4 |
nFSSOURCE |
iPrmFsSource |
Frequency H/W IIC Source Register, [fGearUnitK] |
| 4 |
nFSIIC |
iPrmFsIIc |
IIC Frequency Selection Table Register |
| 4 |
nFSHW |
iPrmFsHw |
H/W Frequency Selection Table Register |
| 4 |
nCPURATIO |
iPrmCpuRatio |
CPU Ratio Register, [iSetFix] |
| 4 |
nAGPRATIO |
iPrmAgpRatio |
AGP Ratio Register, [fPllAgp] |
| 4 |
nPCIRATIO |
iPrmPciRatio |
PCI Ratio Register, [iSetAgp] |
| 4 |
nMNPROGEN |
iPrmMnProgEn |
M/N Programming Enable Register, [iSetPci] |
| 4 |
nDIVMA |
iPrmDivMA |
FSB M Divider VCO Frequency Control Register |
| 4 |
nDIVNALO |
iPrmDivNALo |
FSB N Divider VCO Frequency Control Register |
| 4 |
nDIVNAHI |
iPrmDivNAHi |
FSB N Divider VCO Frequency Control Register |
| 4 |
nDIVMB |
iPrmDivMB |
PLLB M Divider VCO Frequency Control Register |
| 4 |
nDIVNBLO |
iPrmDivNBLo |
PLLB N Divider VCO Frequency Control Register |
| 4 |
nDIVNBHI |
iPrmDivNBHi |
PLLB N Divider VCO Frequency Control Register |
| 4 |
nAGPFSLO |
iPrmAgpFSLo |
AGP Frequency Selection Table Register |
| 4 |
nPCIFSLO |
iPrmPciFSLo |
PCI Frequency Selection Table Register |
| 4 |
nAGPPCIFSHI |
iPrmAgpPciFSHi |
AGP/PCI Frequency Selection Table Register |
| 4 |
nFIXBIT |
iPrmFixBit |
Fix Bit Register |
| 4 |
nFIXFS |
iPrmFixFS |
Fix PCI Frequency Selection Table Register |
| 4 |
nPLLBRATIO /nRAMRATIO |
iPrmPLLBRatio |
PLLB Ratio Register, [iFixBit] /RAM Ratio
Register |
| 4 |
nFSBTRBOFS |
iPrmFsbTrbOfs |
FSB trackbar control offset |
| 4 |
nPLLBGEAR nPCITRBOFS |
iPrmPllbGear iPrmPciTrnOfs |
PllB Gear PCI trackbar control offset |
| 4 |
nREFMAXMIN |
iPrmRefMaxMin |
M Divider Reference MAX/MIN |
| 16 |
nFIXFREQTB [0:nFSBTRBMAX] [1:nFSBTRBMIN] [2:nPCITRBMAX] [3:nPCITRBMIN] |
aPrmFixFreqTbl [0:iPrmFsbTrbMax] [1:iPrmFsbTrbMin] [2:iPrmFsbTrbMax] [3:iPrmFsbTrbMin] |
PCI Fix Frequency Table [1:FSB trackbar control
Max] [2:FSB trackbar control Min] [3:PCI trackbar
control Max] [4:PCI trackbar control Min] |
| 64 |
nCPUDIVTBL nAGPDIVTBL nPCIDIVTBL [0:nAGPSELTBL] [8:nAGPSELTBL] |
aPrmCpuDivTbl aPrmAgpDivTbl aPrmPciDivTbl [0:aPrmAgpSelTbl] [8:aPrmPciSelTbl] |
CPU Divider Table AGP Divider Table PCI Divider
Table [0:AGP Selection Table] [8:PCI Selection
Table] |
| 64 |
nFSBREFNTBL nFSBREFUTBL nPLLBREFTBL nPLLBDIVTBL |
aPrmFsbRefNTbl aPrmFsbRefUTbl aPrmPllbRefTbl aPrmPllbDivTbl |
FSB Reference Normal Table FSB Reference Ultra Table PLLB
Reference Table PLLB Divider Table |
| 128 |
nCPUFREQTBL nAGPFREQTBL |
aPrmCpuFreqTbl aPrmAgpFreqTbl |
CPU Frequency Table AGP Frequency Table |
| 128 |
nPCIFREQTBL nFSBGEARTBL /nDDRFREQTBL |
aPrmPciFreqTbl aPrmFsbGearTbl /aPrmDdrFreqTbl |
PCI Frequency Table FSB Gear Table /DDR Frequency
Table |
| PLL1 |
512 |
PLL0と同じ |
| PLL2 |
512 |
PLL0と同じ |
| PLLn |
512 |
PLL0と同じ |
| PLL49 |
512 |
PLL0と同じ |
prm [512byte] |
4 |
nPRM_XSCREEN |
xPosScn |
画面位置X |
| 4 |
nPRM_YSCREEN |
yPosScn |
画面位置Y |
| 4 |
nPRM_WSCREEN |
wSizScn |
画面サイズ幅 |
| 4 |
nPRM_HSCREEN |
hSizScn |
画面サイズ高さ |
| 4 |
nPRM_CLKGENCMB |
iClkGenCmb |
PLL選択番号 |
| 4 |
nPRM_INDEX |
iTabIdx |
タブインデックス番号 |
| 4 |
nPRM_TIMER |
iSelTmr |
タイマ番号 |
| 4 |
nPRM_ULTRA |
fUltra |
Ultraフラグ[1=Ultra] |
| 4 |
nPRM_TABSTYLE |
fTabSty |
Tabスタイルフラグ[1=flat] |
| 4 |
nPRM_COLORCMB |
iColStyCmb |
Colorスタイル番号 |
| 4 |
nPRM_RANGECMB |
iRngCmb |
Range番号 |
| 4 |
nPRM_SMBUSCMB |
iSmbCmb |
SMBus番号 |
| 32 |
nPRM_COLTXTTBL |
aColTxtTbl |
文字色テーブル |
| 32 |
nPRM_COLBKGTBL |
aColBkgTbl |
背景色テーブル |
| 4 |
nPRM_COLCLKGENTXT |
iColClkGenTxt |
Clock Generator の文字色 |
| 4 |
nPRM_COLCLKGENBKG |
iColClkGenBkg |
Clock Generator の背景色 |
| 4 |
nPRM_COLSELFSBTXT |
iColNumFsbTxt |
FSB Number static control の文字色 |
| 4 |
nPRM_COLSELFSBBKG |
iColNumFsbBkg |
FSB Number static control の背景色 |
| 4 |
nPRM_COLSELPCITXT |
iColNumPciTxt |
PCI Number static control の文字色 |
| 4 |
nPRM_COLSELPCIBKG |
iColNumPciBkg |
PCI Number static control の背景色 |
| 4 |
nPRM_COLCURFRQTXT |
iColCurFrqTxt |
Current FSB static control の文字色 |
| 4 |
nPRM_COLCURFRQBKG |
iColCurFrqBkg |
Current FSB static control の背景色 |
| 4 |
nPRM_COLSELFRQTXT |
iColSelFrqTxt |
Select FSB static control の文字色 |
| 4 |
nPRM_COLSELFRQBKG |
iColSelFrqBkg |
Select FSB static control の背景色 |
| 4 |
nPRM_COLSELTMRTXT |
iColSelTmrTxt |
Select Timer static control の文字色 |
| 4 |
nPRM_COLSELTMRBKG |
iColSelTmrBkg |
Select Timer static control の背景色 |
| 4 |
nPRM_COLCPUFRQTXT |
iColCpuFrqTxt |
Current CPU static control の文字色 |
| 4 |
nPRM_COLCPUFRQBKG |
iColCpuFrqBkg |
Current CPU static control の背景色 |
| ・・・ |
予備 |
| 4 |
nPRM_INICRC32[126] |
iIniCrc32 |
パラメータ[PLL,System]のCRC32チェック |
| 4 |
nPRM_EXTCRC32[127] |
iExtCrc32 |
パラメータ[PLL,System]のCRC32 | |
wSizScn:SetFSBの画面サイズ幅[prm]
初回起動[0], 2回目以降[512]
iIniCrc32:パラメータ[PLL,System]のCRC32チェック[prm]
初回起動[0], 2回目以降正常[-1]/異常[-1以外]
iSetFsbFlg :SetFSB状態
通常[0]/その他[0以外]
iClkGenCmb:PLL選択番号[prm]
初回起動[0], 2回目以降[PLL選択番号0〜]
2−2.WindowsNT系デバイスドライバの初期設定[;/WindowsNT Device Driver Start]
fX64:X64フラグ
X86[0]/X64[1]
2−3.チップセット情報の初期設定[;/Configuration Register]
2−4.スクリーンの初期設定[/;Initialize Screen]
2−5.Window Messageの初期設定[;/Initialize Window Message]
2−6.Tabコントロールの初期設定[;/Initialize Tab Control]
iTabIdx:タブインデックス番号[prm]
初回起動[0], 2回目以降[タブインデックス番号0〜]
fTabSty:Tabスタイルフラグ[prm]
初回起動[1=flat], 2回目以降[Tabスタイルフラグ0〜]
2−7.オブジェクトの初期設定[;/Initialize Object]
3.Command Line Switch Routine
コマンドラインスイッチオプションの処理をします。[CommandLineSwitch命令]
4.Main Routine
iSetFsbFlgを監視し各種Errorの処理をします。
5.Exit Routine
SetFSB終了時の処理をします。
xPosScn:画面位置X[prm]
初回起動[0],
2回目以降[ginfo_wx1]
iExtCrc32:パラメータ[PLL,System]のCRC32[prm]
初回起動[0], 2回目以降[パラメータのCRC32]
6.Button Routine
ボタンオブジェクトの処理をします。
6−1.[Get FSB]ボタンの処理
6−2.[Set FSB]ボタンの処理
6−3.[Auto]ボタンの処理
6−4.[Capture]ボタンの処理
6−5.[Update/Inp]ボタンの処理
6−5.[Apply/Out]ボタンの処理
7.Window Message Routine STRONG>
Window Messageの処理をします。
7−1.水平アップダウンコントロールとトラックバーの内容が変わったときの処理
7−2.垂直アップダウンコントロールの内容が変わったときの処理
7−3.エディットボックス/コンボボックス/チェックボックスの内容が変わったときの処理
7−4.タブコントロルの切替判定処理
Copyright (c) 2001-07 By abo All Rights
Reserved.