一:WINDOWS下,用VC++编译,需要加载WINIO驱动。
读取方法:通过PCI DEVICE上SMBUS来读取。
1,找SMBUS BASE ADDRESS,查INTEL 南桥SPEC得到SMBUS的BUS#,DEVICE#,FUCTION#,OFFSET#,---------------0X8000FB20.
#define IO_SC 0x0cf8 //config space control address
#define IO_DA 0x0cfc //config space data address
dataddr=0x8000fb20; //for intel
// Call InitializeWinIo to initialize the WinIo library.
bResult = InitializeWinIo();
if(bResult)
{
//Get SMBus base address
SetPortVal(IO_SC,dataddr,4);
GetPortVal(IO_DA,&dwPortVal,4);
baseddr=dwPortVal&0xfffffff0;
printf("SMBus base address=%08X/n",baseddr);

本文介绍了如何在Windows下使用VC++和WinIO库,以及在DOS下使用汇编语言读取内存SPD信息。在Windows环境下,通过PCI DEVICE上的SMBUS读取,而DOS环境下则需要直接操作32位端口。文章提供了具体的代码示例。

795

被折叠的 条评论
为什么被折叠?



