Hi Daniel,
On 03.05.2016 00:47, Daniel Kulesz via coreboot wrote:
Hi all,
On Mon, 2 May 2016 13:16:15 +0200 Nico Huber nico.huber@secunet.com wrote:
Regarding C3/C4 support, AFAIK, we implemented it fully but it just didn't work on the system we originally ported coreboot for (Roda/RK9). The system kept resetting whenever it should enter (or maybe exit) C3, IIRC. You could give it a try on your X200 though. Whatever the issue on the RK9 was, it might be board specific.
If you want to try it, in src/mainboard/lenovo/x200/cstates.c add: { /* acpi C3 / cpu C3 */ 3, 0x02, 300, { ACPI_ADDRESS_SPACE_FIXED, 1, 2, { 1 }, 0x20, 0 } }, for C3 or { /* acpi C3 / cpu C4 */ 3, 0x02, 300, { ACPI_ADDRESS_SPACE_FIXED, 1, 2, { 1 }, 0x30, 0 } }, for C4. You can not have all of them, as ACPI only supports three C-states.
Indeed this was a *VERY GOOD* hint! I added the line with the C4 states and idle power consumption dropped to about 11.5W running my regular OS and with Wifi on. So I again disassembled the keyboard/palmrest, removed the wifi card and did exactly the same measurements as before. And here are the results:
Benchmark results: almost like before (not crappy like with vendor BIOS!), a little worse because it probably takes a few ms for the CPU to wake up from C4 first. Stress test: >37.2W (as before)
Idle, max brightness: 10.8W (!!) Idle, lowest brightness: 7.8W (!!)
...and after running "powertop --auto-tune": Idle, max brightness: 9.9W Idle, lowest brightness: 6.9W Screen off:6.4W
Very NICE!
Sounds stupid, but I'm really impressed now! But... is there a reason C4 is not enabled by default then? I mean, if it makes trouble, you can always disable it (at least on Linux) with the command line parameters as discussed previously. Imho, it should be at least configurable using the regular config mechanism.
I guess, just nobody tried it before on a ThinkPad. The entries for C1/C2 are most probably copy-pasted from Roda/RK9. Thanks for testing this through! If you don't want to go further (https://coreboot.org/Git) somebody else will likely write a patch ;)
Nico