蓝色永恒 发表于 2009-5-22 14:45:45

S3返回 Touchpad不能使用

S3返回 Touchpad不能使用
各位好:
   最近遇到一个问题,S3返回后 发现PS/2 Touchpad(挂在EC PS/2口上)不能使用,出现的概率很高,出现后用 SE 工具 往 0X64 口下0XD4,再往0X60口下0XF4,可以Enable Touchpad,使其可以正常使用,但是再进S3,回来后又不能使用。BIOS在S3 resume 过程尝试过 在 BOOTBLOCK 和 _wake()里 往 0X64 口下0XD4,再往0X60口下0XF4,还是不行,但是好像可以降低出现的概率,难道是BIOS ENABLE Touchpad后又被某个未知的因素给Disable 了?不知道何解,烦请各位高手给提供点思路,在此先谢过了,
   我们用的是 AMI CORE 8 ,ATOM   SCH:'(

peterhu 发表于 2009-5-22 19:53:22

以前的案子也碰到类似问题.
BIOS下0xD4 cmd是为了修改kbc controler register 的配置.
之前追踪的结果显示:有时BIOS 发0xD4 cmd到0x64 port,可是
BIOS并没有把参数送给0x60port就直接送了下一个数据或者cmd,
EC就会设错kbc controller register.
你可以用串口debug,看看BIOS有没有发错命令.

蓝色永恒 发表于 2009-5-22 23:38:56

回复 2# peterhu 的帖子

谢谢您的关注:
   EC 这里应该是 收到 0xD4, 0XF5 CMD 后做Disable touchpad 的动作。但是我们尝试过 在收到这个CMD 后改去做Enable   touchpad的动作,结果还是不行,所以怀疑是不是跟CMD 没有关系,但是如果说是与HW 有关,我们有调换 touchpad测试,并且供电部分都很正常,但是进系统后为什么在 touchpad 失效后 用SE 工具往 64 60 port 每次都是能够 Enable   touchpad 呢? 因此 我有两点疑惑:
    1,是不是我们在 BIOS CODE BOOTBLOCK 和 _wake() 里下 Enable touchpad 的CMD 太早,在此之后又什么东东又把它Disable 了?
   2,如果真的是如您所说,“你可以用串口debug,看看BIOS有没有发错命令”,难道 SE 下cmd 是和CODE 里下cmd有区别?即 SE 每次都能成功,但是CODE 却可能出错?

peterhu 发表于 2009-5-23 10:57:23

我可能记错命令了(现在不在公司,手上没code).
1.touchpad失效后,你看看相关的寄存器的配置对吗?如果不对就是有被别的部分改掉.
2.根据我们之前记录的log文件来看,BIOS发的cmd有时没带参数也就是说BIOS code
有可能出错.另外SE也不是每次都会成功,我就有过过失败的情况:lol ,IO port的存取在windows
下面是有挣抢的风险的.

[ 本帖最后由 peterhu 于 2009-5-23 11:07 编辑 ]

wwwllllove 发表于 2009-7-18 14:26:04

S3返回异常时
1,查看寄存器,并信号量测Touchpad的CLK,data是否正常?
2,按版主说的追BIOS下过来的命令
3,弱弱的问一句,驱动没问题吧
4,是不是EC把interface给disable了

蓝色永恒 发表于 2009-7-27 14:24:41

回复 5# wwwllllove 的帖子

没找到 root cause ,做了 work around,郁闷 ,5#的说法都有追过,没发现异常,

buiq 发表于 2009-7-30 15:01:12

查查你的super IO设置,进S3前是否保存寄存器,S3回来是否回填?
我见过一个现象,和你这差不多,S3回来PS2设备都不好使,查SUPER IO才OK
页: [1]
查看完整版本: S3返回 Touchpad不能使用