Yes, right. And more exactly the EC also controls the power rails in the laptop. There are many different voltage levels required controled by regulators etc. Not all voltages are needed at all times, some others need to come up in a certain order when changing power states (like off to on, on to sleep, sleep to deep sleep etc.). This is also handled by the EC. Then there is also a lot of interaction going on, partizlly through ACPI partially direct from main CPU to the EC. There is a lot of ancient historic PC cruft in there - Intel stuff. Like some things are still controlled via the so called “keyboard controller” so the main OS send keyboard controller command through a certain bus to achieve things - toally weird stuff! I think the EC communicates with the main CPU over at least three different chanels which is totally crazy but it’s there for downward compatibility. Here again the x86 PC platform shows its age and unwillingness of Intel and others in the industry to finally make a cut and make it new. Instead we are today still working with things and around things that are more than three decades old! What a total waste of time…
Yeah, so, the EC in laptops does a bit more than the traditional keyboard controllers on PC mainboards and it has a life on its own
And since it is a small programmable CPU and having access to critical stuff like key presses and some more it is for sure important to have that freed. But not only because of that. The classic ECs in laptops often have an incredibly bad firmware. Very simple, just made to function ad even that often pretty bad in not with users in mind. Take fan control for an example. In most ECs, which control the fan triple points and speeds, you quickly get annoyed because the fans only seem to know noisy on and quiet off, not much in between. But when don right you can keep you system cool and quiet at the same time with a more fine granular ramping up and down of the speed. In some situations you may even wish to be able to tell the controller “I am fine with more heat now but I want it as quiet as possible” (e.g. in your bedroom next to your sleeping partner) in other situations you may want it as cool as possible and do not care about noise (like in an office). ECs use to be closed, no access to it and no way to change the firmware and its behavior, you are totally dependent on how the manufacturer implement it. We are going to change this in the L14, your are getting into the driver seat, back in control.
Another good example is the battery and its charging. LiIon batteries are a bit picky in some regards. They are great since they are light weight and can hold a lot of energry but charging them is critical. Treated wrong LiIon batteries will wear out quickly, when treated right they can last for years and just slowly degrade with age and use. Discharging is critical since they do not like to be dicharged completely. Charging is critical at three points: starting from very or pretty low, how to end a charge cycle and when to start a next charge cycle. LiIon batteries do no like to get charge with high current when they are pretty empty so you have to carefully ramp up, which of course then takes longer. Towards the end you also have to decrease the current again and slowly end a charge before you reach 100%, which also takes longer. And finally you should not start a new chare cycle if the bettery has not discharged down to a certain level - LiIon do not like getting recharged to 100% all the time.
In most ECs you have no way to control how the EC firmware handles the charging, and franklz many ECs do it really badly resulting in battery failures within short time. The problem is that manufacturers of course try to guess what users want, which mostly comes down to quick recharging and when connected to a charger always charging to 100% so that when users disconnect their device they have the full capacity. While this is not too bad as a general idea but it is bad for the battery overall lifetime expectancy. But you as a user have no choice, you are not given that choice - if you are willing to wait a bit more for the charge to save your battery or if you can accept charging to only, say 90%, because 90 is enoguh for you and you rather want to keep your battery safe. Or not starting recharginng every time you connect your laptop to a charger. Personally I would like to be able to manually tell my laptop when to start charging the battery and up to which level. Most of the time I am not running on battery, I do not need it to get charged, I can just have it sit in there at whatever level it is. And when I am going to need it I want to choose if I want to give it a kick because I know I will need on my train ride for some hours or if the remaining 50% are still OK to keep it in suspend to RAM until I arrive somewhere.
That’s the type of control I/we want to achieve and give back to the users. We will have safe and reasonable default so you do not have to care about, if you don’t want to. But you can, if you do.
Besides that we also have the new notification LEDs that will also be fun and that are controlled by the EC.
After all that let me also tell you that we will not be able to implement all that in every detail right out of the gate. The EC firmware is pretty complex and developing it is not so easy since it sits on the mainboard and every time you implement seomthing the testing cycle is pretty long. But we are making steady progress and most importantly it will be pretty easy to update the EC firmware so while we are making progres with the development everyone will be able to enjoy these new developments just by upgrading.
Oh, and while talking about EC and Debian, the EC has nothing much to do with Debian, it is a piece of software running on a separte chip. The thing that you will need in Debian/PureOS will be tools to control details of the EC and/or upgrading its firmware. We’ll work on pushig that upstream.
Cheers
nicole