怎样读写SMBus上的Device—以获取Intel平台上Memory的SPD信息为例
2011-02-22 18:14
549 查看
How to access devices on SMBus--- Take reading SPD information (Intel platform) as example
firing -2005/04/13
0. Essential skills before you start:
l How to read/write PCI configuration space?
l How to read/write I/O space under WindowsNT/2000… platform?
And an Intel south bridge datasheet as reference
1. Basic steps
a. Enable SMBus controller
b. Get SMBus base address
c. Read SPD information, according the device IDs
2. Enable SMBus controller
LPC Interface Bridge Registers (D31:F0), Offset: 40h (FUNC_DIS),Bit0 :
Software sets this bit to disable the SMBus Host controller function.
0 = SMBus controller is enabled
1 = SMBus controller is disabled
This bit is set to 1(SMBus controller is disabled) by default. So, just set this bit to 0.
(How to make sure you have enabled SMBus controller? Go to ‘Device Manager’ and refresh it, and then check ‘System Device’, where you should find a PCI device named “Intel® 82801DB SMBus Controller” like.)
3. Get SMBus base address
SMBus Controller PCI Register (D31:F3), offset: 20~23H. That’s the SMBus base address. Just read this base address. Normally, the address could be 0x500 or 0x5000
4. Read SPD information
The SMBus DeviceID of memory bank0 is a0, bank1= 0xa2, and bank2 =0xa4
a. start
b. wait smbus ready
c. output Base+04, (DeviceID+1)
d. out Base+03, offset
e. out Base+02, 48H
f. wait 200ms
g. wait smbus ready
h. input base+05
i. OK
Note:
How to wait SMBus ready? Input Base+0, bit0==0 indicates smbus is ready, otherwise(bit0==1), smbus is busy
firing -2005/04/13
0. Essential skills before you start:
l How to read/write PCI configuration space?
l How to read/write I/O space under WindowsNT/2000… platform?
And an Intel south bridge datasheet as reference
1. Basic steps
a. Enable SMBus controller
b. Get SMBus base address
c. Read SPD information, according the device IDs
2. Enable SMBus controller
LPC Interface Bridge Registers (D31:F0), Offset: 40h (FUNC_DIS),Bit0 :
Software sets this bit to disable the SMBus Host controller function.
0 = SMBus controller is enabled
1 = SMBus controller is disabled
This bit is set to 1(SMBus controller is disabled) by default. So, just set this bit to 0.
(How to make sure you have enabled SMBus controller? Go to ‘Device Manager’ and refresh it, and then check ‘System Device’, where you should find a PCI device named “Intel® 82801DB SMBus Controller” like.)
3. Get SMBus base address
SMBus Controller PCI Register (D31:F3), offset: 20~23H. That’s the SMBus base address. Just read this base address. Normally, the address could be 0x500 or 0x5000
4. Read SPD information
The SMBus DeviceID of memory bank0 is a0, bank1= 0xa2, and bank2 =0xa4
a. start
b. wait smbus ready
c. output Base+04, (DeviceID+1)
d. out Base+03, offset
e. out Base+02, 48H
f. wait 200ms
g. wait smbus ready
h. input base+05
i. OK
Note:
How to wait SMBus ready? Input Base+0, bit0==0 indicates smbus is ready, otherwise(bit0==1), smbus is busy
相关文章推荐
- 高通平台memory信息的获取
- windows平台下 c++获取 系统版本 网卡 内存 CPU 硬盘 显卡信息
- 支付宝开发平台之第三方授权登录与获取用户信息
- 用python获取气象数据开放平台信息
- UsageStatsManager怎样使用问题详解和获取应用使用信息
- 获取微信公众号授权失败, 请稍后重试! 公众平台返回原始数据为: 错误代码-40164,错误信息-invalid ip, not in whitelist hint:
- React Native(五)——获取设备信息react-native-device-info
- linux驱动程序中怎样获取当前进程信息
- Sigar 获取CPU和Memory内存等信息使用详解
- 怎样获取SqlServer数据库中的表和字段信息
- 获取屏幕信息GetDeviceCaps
- Android平台中应该如何获取音乐文件的信息
- 微信开发平台-获取用户信息(一)
- react-native获取设备信息组件(react-native-device-info)
- 脚本获取 app 的 cpu、memory 信息,使用 pychartdir 生成图表
- 一起学android之怎样获取手机程序列表以及程序相关信息并启动指定程序 (26)
- 如何获取display device 的相关信息,例如分辨率。(EnumDisplaySettings)
- 获取内存使用信息(GlobalMemoryStatusEx)
- 应用框架的设计与实现——.NET平台(6.获取外部配置信息)
- 在S5PV210平台上实现二代身份证解码,安卓系统,可以获取全部文字信息以及电子照片