2009年6月10日 星期三

●memtest86+教學 Part15

仔細看一下controller.c之中ㄉstatic struct pci_memory_controller controllers[],你就可以知道目前memtest86+到底支援哪些chipsets,可別小看這ㄍ陣列,我們看一下這ㄍ陣列的元素是ㄍ資料結構如下:
struct pci_memory_controller {
unsigned vendor;
unsigned device;
char *name;
int tested;
void (*poll_fsb)(void);
void (*poll_timings)(void);
void (*setup_ecc)(void);
void (*poll_errors)(void);
};
上面綠色字ㄉ那幾ㄍ是函式指標。這種程式的寫法應該不會陌生吧!一般人很少能接觸這麼多種類的平台,即使接觸到ㄌ也不見得拿得到它們的data sheets,因此能寫出特定chipset的那些函式指標,真是佩服;然而有些還是memtest86作者能力所不及,為什麼ㄋ;例如poll_fsb_nothing,這樣ㄉ函式裡什麼東西也沒有,原因我想當然是沒有specifiction。我想Intel真是大方,它會將所有chipsets的data sheet提供給大家download,其他廠商可不會這樣作。這有關係ㄇ,這個關係可大ㄌ,就好比說show_spd這個routine,它目前只能support ich5以上的南橋晶片,若你的平台不是Intel的晶片組,那麼memtest show SPD code的function就只能看到"SMBus Controller not known",連chipset裡頭的相關Register你都碰不到,我想對該chipset就只能束手無策ㄌ。
--> 閱讀更多...