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

关于Clock gen的读取 (block mode)

[复制链接]
发表于 2009-12-17 10:19:21 | 显示全部楼层 |阅读模式
最近在练习用C编写在windows下读取smbus设备的程序。- S) N& R  Q, x. T8 |* c
看了下相关的资料,并且结合RW的帮助文档,发现读取Clock Generator要采用block mode(block read)方式。; c6 U3 _0 F3 u# V* D: f
请教各位大牛,关于block read的大概步骤(我也找到了相关的步骤,但是对其中的某些步骤没有理解。)。6 U3 P% O1 u, @% m" U% `
最好能给些例子。# V) C; B8 l$ {- j1 H
谢了。
2 I, K0 {: E1 C$ _8 v- W5 r+ `Platform:montevina9 ^+ i% ~4 y* ]
chipset:PM45(ICH9M)5 ?7 R! Z1 x" @6 Q0 B' d3 d8 j8 S: F1 |
再次感谢。
发表于 2009-12-23 17:46:31 | 显示全部楼层
先说我不是大牛喔) d; v7 v8 X2 a3 H- A9 c7 v
% B0 j( X5 o4 `* b3 G5 q
没错,读clockgen是用block r/w
8 c; e# B( m1 p. `' |6 F- b
, M( X. n0 j: Z2 C流程和byte,word r/w类似
* S! O: U; P7 ?& `+ ^0 ^  h
' _. t- r& I% z$ |) H+ @, Y1) check  host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)" R7 I3 Q4 \5 y% E& @6 k: U( ~
2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)! }# @9 s' f' f9 N  q
3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)- Y1 M  R. H' }1 J/ W9 A& c) I& ~6 t
4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦7 k- X  t' M. H$ g
8 I1 ~+ k$ o! a2 I' E) B& Q! `
写也类似% T* A. ^) ~9 B7 ]# {! s* r; p

, e; E, a/ e  i) K小弟这里也写了一个类似的工具hwiotest hwiotest.rar (566.7 KB, 下载次数: 1403)
回复

使用道具 举报

发表于 2009-12-26 10:01:15 | 显示全部楼层
二楼的大牛,佩服了,做的工具不错!# Z4 A/ q0 T8 I; w2 U
不过不知道为啥,经常会死掉,是不是我不会使用啊* X$ h6 s% i6 ~  I
另外能不能把代码跟我们分享一下,供小弟们学习学习!
回复

使用道具 举报

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

HardwareEditorv0.27.rar

539.6 KB, 下载次数: 1344

回复

使用道具 举报

 楼主| 发表于 2009-12-28 11:34:26 | 显示全部楼层
非常感谢各位的帮助。你们的工具也都相当强大,向你们学习。2 \' [  Z$ S- C( \
这个问题我已经搞定了。我找到了BWG里的详细步骤,调用WinIo的函数,严格遵守步骤,结果就读出来了。
回复

使用道具 举报

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

使用道具 举报

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

回复 4# Faintsnow 的帖子

这个工具很不错,我最近在练习在Win环境下读取各种HW,不知道能否发扬一下Open Source精神
& v: e* w3 W4 s7 }" O7 h  G2 v或者发到我的邮箱:lscumt@163.com,谢了
回复

使用道具 举报

发表于 2010-1-24 22:03:08 | 显示全部楼层
共享方法,学习  ?! G- V! v2 V: V" ~! I# o  d" o
+ o9 R% z1 g3 d: B/ d
读写clockgen基本都是用i/o的方法,但是要对不同的chipset写不同的控制流程,应该还有更好的一劳永逸的方法. A' E7 R/ |4 l
* U& j9 G9 {. ~, H0 F% J
; G( z6 N: L8 B- d( ~2 H) ~
另外求realtek瑞昱的clockgen的datasheet(小弟不在bios行业,realtek clockgen数据表又不能公开下载)., J1 I5 r* g; M8 X  M  @
. C' W( }5 P9 H0 z# b
如果哪位大哥好心能提供的话,请把datasheet email到chengjunlinfifa@gmail.com,感谢~
回复

使用道具 举报

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

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-3 23:09 , Processed in 1.411416 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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