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

 Window Messageの処理をします。

7−1.水平アップダウンコントロールとトラックバーの内容が変わったときの処理

7−2.垂直アップダウンコントロールの内容が変わったときの処理

7−3.エディットボックス/コンボボックス/チェックボックスの内容が変わったときの処理

7−4.タブコントロルの切替判定処理


Copyright (c) 2001-07 By abo All Rights Reserved.