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

关于Clock gen的读取 (block mode)

[复制链接]
发表于 2009-12-17 10:19:21 | 显示全部楼层 |阅读模式
最近在练习用C编写在windows下读取smbus设备的程序。
# V9 e/ P" w0 f1 o% k& c看了下相关的资料,并且结合RW的帮助文档,发现读取Clock Generator要采用block mode(block read)方式。
* W* [& z3 Z' E7 k9 C1 T5 ~7 ~请教各位大牛,关于block read的大概步骤(我也找到了相关的步骤,但是对其中的某些步骤没有理解。)。
/ |/ \" g- e* b2 S! w最好能给些例子。; v: y/ i8 M& T
谢了。
/ T- Y) E( d3 S' o0 |  a/ iPlatform:montevina
6 r1 Y. B/ `, V$ G$ Achipset:PM45(ICH9M), _0 I! V1 w. O( P- H( [: q
再次感谢。
发表于 2009-12-23 17:46:31 | 显示全部楼层
先说我不是大牛喔
3 I1 p7 M+ A. r. V1 B; z
8 K* h' d3 A. j, D7 m5 ^1 h没错,读clockgen是用block r/w
+ S, P/ F, x7 ^, ?# D& I9 @7 @! u: ?1 m7 R' G" }
流程和byte,word r/w类似
/ r2 w: {2 R/ T! ]' ^% S: s; e" R7 j! j) ]% M. [/ b; z
1) check  host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)& I0 I! ~' |/ D4 A
2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)
8 }  ?/ z+ H5 |5 F3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)7 W. B- Z1 `5 S" f4 W1 \6 k" ~6 O
4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦. R( J* A9 j. s- `* ]# e3 ]
- N3 d; ]  w4 N; Z( W6 D3 X# F
写也类似5 {. ]% `% t2 o1 i5 ^

" e9 g' G0 [; n6 N7 L. V/ s7 R2 L  `: N1 R8 [小弟这里也写了一个类似的工具hwiotest hwiotest.rar (566.7 KB, 下载次数: 1250)
回复

使用道具 举报

发表于 2009-12-26 10:01:15 | 显示全部楼层
二楼的大牛,佩服了,做的工具不错!, ^* E9 j) w, q+ A. r$ j
不过不知道为啥,经常会死掉,是不是我不会使用啊
* [& X0 N  }* M! ]* \! X0 K另外能不能把代码跟我们分享一下,供小弟们学习学习!
回复

使用道具 举报

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

HardwareEditorv0.27.rar

539.6 KB, 下载次数: 1191

回复

使用道具 举报

 楼主| 发表于 2009-12-28 11:34:26 | 显示全部楼层
非常感谢各位的帮助。你们的工具也都相当强大,向你们学习。4 G  ?% b  c! ^: R+ P4 z# L
这个问题我已经搞定了。我找到了BWG里的详细步骤,调用WinIo的函数,严格遵守步骤,结果就读出来了。
回复

使用道具 举报

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

使用道具 举报

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

回复 4# Faintsnow 的帖子

这个工具很不错,我最近在练习在Win环境下读取各种HW,不知道能否发扬一下Open Source精神 * n" C( T6 W4 I( g# ~) h" {- S
或者发到我的邮箱:lscumt@163.com,谢了
回复

使用道具 举报

发表于 2010-1-24 22:03:08 | 显示全部楼层
共享方法,学习
: k6 r6 f6 e" M: q% ~. ^* k' |% f+ w+ `+ G) ?( n' W6 m7 p
读写clockgen基本都是用i/o的方法,但是要对不同的chipset写不同的控制流程,应该还有更好的一劳永逸的方法; }- J  C7 i2 S' X! B. z

- K& M/ Z$ Y" L! `3 L2 W: w
. V. ?" a  G' E$ a6 [: P  b, b) B另外求realtek瑞昱的clockgen的datasheet(小弟不在bios行业,realtek clockgen数据表又不能公开下载).0 j8 h$ ]/ p3 ~5 e

: \+ T- x6 ^8 E$ ~! L如果哪位大哥好心能提供的话,请把datasheet email到chengjunlinfifa@gmail.com,感谢~
回复

使用道具 举报

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

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-15 06:46 , Processed in 0.177242 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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