找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 13893|回复: 8

关于Clock gen的读取 (block mode)

[复制链接]
发表于 2009-12-17 10:19:21 | 显示全部楼层 |阅读模式
最近在练习用C编写在windows下读取smbus设备的程序。
+ a0 G( v% k! i2 C: J看了下相关的资料,并且结合RW的帮助文档,发现读取Clock Generator要采用block mode(block read)方式。
# m! G) A- y$ L. C6 N6 B, L- F6 u, ^请教各位大牛,关于block read的大概步骤(我也找到了相关的步骤,但是对其中的某些步骤没有理解。)。( A3 j: H) f5 k) g5 N; L/ A1 L* o" F
最好能给些例子。
/ S: I3 ^" E+ x谢了。# @/ W& ]  w2 ^% k7 `- }
Platform:montevina; Y( p: B5 {6 z- x
chipset:PM45(ICH9M)1 o% R( N! F. h/ e& e$ U
再次感谢。
发表于 2009-12-23 17:46:31 | 显示全部楼层
先说我不是大牛喔3 k; J2 [: |1 F) s5 }
# X& i; C# A- T' ^5 g) B# h; b
没错,读clockgen是用block r/w) d! ^- W' L4 B6 u/ L( F
8 S4 q: J9 w" A& K0 `6 a# h
流程和byte,word r/w类似
0 Q4 U! Q: B, I2 ~# [; P1 ~7 k
+ N. J+ t& N+ g4 ^1) check  host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)
3 [! ?$ X9 H+ W- W4 U2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)' p* U% }! t- O( C! E/ k2 S
3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)
0 K5 [* A$ c# U" s8 p8 M$ ^! d4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦
0 U% T, e$ e- T& l5 ]+ N
" y0 f+ V" u6 x6 U5 T写也类似
, g0 x0 T6 V+ q3 x" T& {# \; D5 E$ A/ E3 t! b7 ^6 A! y5 Z3 o8 y
小弟这里也写了一个类似的工具hwiotest hwiotest.rar (566.7 KB, 下载次数: 1363)
回复

使用道具 举报

发表于 2009-12-26 10:01:15 | 显示全部楼层
二楼的大牛,佩服了,做的工具不错!
3 q- ~* ]" q2 X不过不知道为啥,经常会死掉,是不是我不会使用啊
6 R2 f3 b* z7 ^* y" M  }2 n7 R7 s另外能不能把代码跟我们分享一下,供小弟们学习学习!
回复

使用道具 举报

发表于 2009-12-26 11:36:04 | 显示全部楼层
俺也搞了个比较实用的tool。功能还算齐全。

HardwareEditorv0.27.rar

539.6 KB, 下载次数: 1304

回复

使用道具 举报

 楼主| 发表于 2009-12-28 11:34:26 | 显示全部楼层
非常感谢各位的帮助。你们的工具也都相当强大,向你们学习。) u( ?% p0 y. q( T( T; d, {
这个问题我已经搞定了。我找到了BWG里的详细步骤,调用WinIo的函数,严格遵守步骤,结果就读出来了。
回复

使用道具 举报

发表于 2009-12-28 19:03:59 | 显示全部楼层
有沒有FOR DOS版本及范例,謝謝。
回复

使用道具 举报

 楼主| 发表于 2009-12-29 22:47:05 | 显示全部楼层

回复 4# Faintsnow 的帖子

这个工具很不错,我最近在练习在Win环境下读取各种HW,不知道能否发扬一下Open Source精神 7 W0 n4 T! k' J7 r
或者发到我的邮箱:lscumt@163.com,谢了
回复

使用道具 举报

发表于 2010-1-24 22:03:08 | 显示全部楼层
共享方法,学习4 R9 p8 ?) b3 {: D

4 C5 `  T! M3 W( W1 N2 j, Y: L6 G读写clockgen基本都是用i/o的方法,但是要对不同的chipset写不同的控制流程,应该还有更好的一劳永逸的方法
- |$ I3 ]( y) S. D' P5 S* p1 _# }1 z( \
8 Y8 j8 c8 \0 }# p9 r1 m, w8 U
另外求realtek瑞昱的clockgen的datasheet(小弟不在bios行业,realtek clockgen数据表又不能公开下载)., I' Z, ~+ w- y2 y, l) c& ]. F, I  X
: r2 M* U& m+ K9 @
如果哪位大哥好心能提供的话,请把datasheet email到chengjunlinfifa@gmail.com,感谢~
回复

使用道具 举报

发表于 2010-12-20 00:21:31 | 显示全部楼层

共享资源,是我们中华民族传统美德!

共享资源,是我们中华民族传统美德!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-5-31 21:06 , Processed in 0.093805 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表