请教我这样把系统放到C4为何不行?
因为系统要在某个特定的情况下需要特别省电,然后回来要特别快所以没有办法用S3,我现在想了个办法是, 要进到这个特殊的用户使用模式的时候触发SMI,在SMI handler 里面通过一个while(1)循环把cpu放到C4。 为了从这个特定的模式返回所以在这个循环中会在每次从C4因为interrupt而返回的时候检查 ICH 的某个GPIO,如果电平没有变化那么就继续把CPU放到C4,否则的话就从 SMI handler 返回。 而这个GPIO从L到H也是用户按键,通过EC firmware 来做的。现在的问题是: 持续的把CPU 放到C4 我从数字电源上看到的功耗并没有丝毫的下降。。。
不解是为何? 按照c4的说法至少CPU这边的能耗是会下来一些的呀。
另外想求教论坛的前辈,有没有其他的办法事先我所需要的这个功能就是在某种情况下shutdown CPU/Chipset,让系统的功耗降得尽可能的低,同事要保证系统恢复到原始状态的延迟小于10ms。 为什么不用S1?:lol 我倒想听听你所谓SMI中的while(1)是如何进入C4的。哈哈,狂抓:Q。
典型的是让马儿跑,又不让马儿吃草。
同意xtdumpling同学的,用S1,对速度没太大的要求,就用S3。 >>> 我倒想听听你所谓SMI中的while(1)是如何进入C4的。哈哈,狂抓
SMI_Handler() {
while( 1 ) {
read_ACPI_LVL4();//<---- CPU into C4.
//Interrupts or breakup events take CPU out of C4;
if( GPIO_is_High() )
break;
}
}
有什么不对吗?:L
现在的问题是,用示波器观察STP_CLK/STP_CPU 等pin都没有发现assert,另外进到C4 按道理cpu应该会发VID 给VR 的结果也没有看到,不知为何。 是因为在SMI 里面写LVL3/4 register 不会让CPU 进入到C4吗?
另外请教,让系统进入到S1然后返回的延时大概是什么样子? 可否达到要求?
还请大侠多指点几句。。。 不要抓狂。。
[ 本帖最后由 1点0 于 2008-10-22 09:36 编辑 ]
页:
[1]