lscumt 发表于 2009-12-17 10:19:21

关于Clock gen的读取 (block mode)

最近在练习用C编写在windows下读取smbus设备的程序。
看了下相关的资料,并且结合RW的帮助文档,发现读取Clock Generator要采用block mode(block read)方式。
请教各位大牛,关于block read的大概步骤(我也找到了相关的步骤,但是对其中的某些步骤没有理解。)。
最好能给些例子。
谢了。
Platform:montevina
chipset:PM45(ICH9M)
再次感谢。:)

chengjunlinfifa 发表于 2009-12-23 17:46:31

先说我不是大牛喔:lol

没错,读clockgen是用block r/w

流程和byte,word r/w类似

1) checkhost_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)
2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)
3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)
4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦

写也类似

小弟这里也写了一个类似的工具hwiotest:)

jacksonwxm 发表于 2009-12-26 10:01:15

二楼的大牛,佩服了,做的工具不错!
不过不知道为啥,经常会死掉,是不是我不会使用啊
另外能不能把代码跟我们分享一下,供小弟们学习学习!

Faintsnow 发表于 2009-12-26 11:36:04

俺也搞了个比较实用的tool。功能还算齐全。

lscumt 发表于 2009-12-28 11:34:26

非常感谢各位的帮助。你们的工具也都相当强大,向你们学习。
这个问题我已经搞定了。我找到了BWG里的详细步骤,调用WinIo的函数,严格遵守步骤,结果就读出来了。:)

topway 发表于 2009-12-28 19:03:59

有沒有FOR DOS版本及范例,謝謝。

lscumt 发表于 2009-12-29 22:47:05

回复 4# Faintsnow 的帖子

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

chengjunlinfifa 发表于 2010-1-24 22:03:08

:) 共享方法,学习

读写clockgen基本都是用i/o的方法,但是要对不同的chipset写不同的控制流程,应该还有更好的一劳永逸的方法


另外求realtek瑞昱的clockgen的datasheet(小弟不在bios行业,realtek clockgen数据表又不能公开下载).

如果哪位大哥好心能提供的话,请把datasheet email到chengjunlinfifa@gmail.com,感谢~

wenglsqs 发表于 2010-12-20 00:21:31

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

共享资源,是我们中华民族传统美德!
页: [1]
查看完整版本: 关于Clock gen的读取 (block mode)