Hi all,
l got a NUC7i5BNH from a couple of months which does not work as expected, I'll try to make it clear to understand and reproduce.
My previous NUC was a Skylake one, so starting with the new Kaby Lake unit I soon noticed it couldn't reach CPU package C-States lower than C2 in Windows 10 when CPU is idle and the display is powered on:
this produces higher temperatures, higher power consumption and higher noise than expected (and necessary), so I started investigating from BIOS configuration.
After some testing, and with my great surprise, I found that "Legacy boot" option disabled was the culprit for this behaviour.
Premises:
- Unit is NUC7i5BNH equipped with 2x16GB RAM Crucial CT2K16G4SFD8213 and M.2 2280 AHCI SSD Crucial CT500MX200SSD4 MX200
- Operating system used for testing is always an UEFI clean install of Windows 10 x64 1803 up to date (latest build 17134.12) with no crap/trash, just a clean system for testing purpose
- Drivers are up to date as per NUC7i5BNH Intel support page
- UEFI firmware is up to date (BNKBL357.86A Version 0065 6/6/2018)
- BIOS was always flashed via jumper recovery (F9 default settings loaded after power off and power chord uplug)
- NUC is connected to a DELL display via HDMI port or to a Samsung Smart TV via HDMI port (both display are full HD resolution 1920x1080), with same results
- Monitoring software used is HWInfo via its sensors interface
Better issue description:
BIOS default settings enable both "UEFI boot" and "Legacy boot":
with this configuration, when CPU is idle C-States work as expected and CPU can reach package C8 with the display active, using both "Balanced"* and "Power Saver" Windows 10 plans (* to get C8 with "Balanced" powerplan may be necessary to enable AHCI Link power management (via Windows registry) and changing the value in power settings gui to "HIPM+DIPM" or "Lowest").
When display goes off due to power saving timer, CPU can reach lower C-States (C9 and C10)
This is the expected (per Intel docs) behaviour, so power comsumption, heat and temperatures get benefits when there is no load.
If "Legacy boot" option is disabled, when CPU is idle can reach only package C2 state if the display is active.
When display goes off due to power saving timer, CPU can now reach package C8 and lower (do note that if you just unplug HDMI cable or manually power off the display via power button, CPU still remains in C2).
This is not the expected behaviour, because system cannot get advantage of its lovely built-in power saving features.
I am an IT-Pro guy and a passionate user, so I tried to find a solution by myself but no luck:
- I tried changing any related or unrelated bios setting in every crazy combination possible without any effect, you need "Legacy boot" enabled
- I tried any available graphic driver for this unit and also generic non-NUC from Iris Plus 640 page (newer tried was Version:24.20.100.6136), no difference
- I tried tuning every Windows power setting - also advanced hidden ones - in every power plan, but no difference
- I tried also (just for fun) loading Windows 10 from USB drive with no other drive connected to the unit, no difference
Do note the same thing happened on previous BIOS version I went through before last revision (0062, 0063, 0064), so downgrade to that revisions is useless.
Do also note that any recent Linux distribution I tried (Kernel from 4.15 up to 4.17) do not suffer this problem:
also without loading firmware blobs on boot, CPU can reach lower package C-States - as Intel Powertop reports - just as expected also when "Legacy boot" option is disabled in BIOS and the display is active (may be necessary tuning some options to enable all power saving features, but it is expected and works fine).
Paradox here is Windows 10 is the only supported operating system by Intel for this NUC and - as per following Intel recommendations - should be installed only in UEFI mode to avoid issues.
Supported Operating Systems for Intel® NUC Products - "UEFI Boot is required to install Windows 10 - this is set by default in BIOS Setup. Using Legacy Boot results in multiple errors in Device Manager."
Some thoughts:
I think it is clearly a bug, it shows itself only in Windows 10 but I do not think Windows 10 is the culprit itself:
as reported, leaving "Legacy boot" option enabled everything works as expected, so I suppose this problem is bios related but obviously I can be wrong (as I never thought that such option could have such impact on power saving features).
UEFI and legacy boot initialize hardware in different ways and some of the features involved in power saving options are based on firmware blobs, anyway this is out of my control and I just don't have any other idea on how to try fixing it, so I hope someone can "pass the ball" to the right team and investigate about this issue, which could be present on other Kaby Lake NUCs as well.
To me and - I suppose - to the largest part of owners and/or potential owners - leaving "Legacy boot" option enabled is not an actual solution nor an option because:
- it prevents booting via UEFI PXE and micro sd slot (due to PCIe interface)
- it prevents (or may prevent) booting from NVME PCIe SSD, and if you disable it you'll loose idle power saving features
- if "secure boot" is needed and so enabled, "Legacy boot" is consequently disabled and you'll loose idle power saving features
- power saving features like CPU Package C-States and Speed Shift are really important arguments of choice when buying these units and should work as expected at least in the only OS supported by Intel
Steps to reproduce:
To get Idle C-States NOT working with display active:
- In VisualBIOS, load BIOS default settings with F9 and disable "Legacy boot", save with F10 and confirm.
- Boot Windows 10 and monitor CPU C-States with HWInfo (or any other similar software): C2 will be maximum package C-State reached in idle with every power plan when the display is active.
To get Idle C-States working with display active (the expected behaviour):
- In VisualBIOS, load BIOS default settings with F9, save with F10 and confirm.
- Boot Windows 10, select "Power Saver" powerplan* and monitor CPU C-States with HWInfo (or any other similar software): C8 will be maximum package C-State reached in idle with the display active (C9 and C10 with display off via power saving timer).
* You can get C8 also with "Balanced" powerplan, but it may be necessary to enable AHCI Link power management (via Windows registry) and changing the value in power settings gui to "HIPM+DIPM" or "Lowest".
I hope it can be fixed, thanks in advance to everyone who can investigate about it.
Best regards to all the community,
M