To provide some thoughts about the original post: From a firmware developer's perspective, Intel moving further away from free firmware is pretty much expected. I believe it's actually part of their overall open-source strategy. One has to consider the whole software eco-system to see this: Intel is supporting Linux nowadays which is quite nice of course. However AFAICS, they only support it as open-source not as free software. Every time they want to support new silicon in Linux, they can decide if they will open source it or if they will put it into a firmware blob and hide the details from Linux developers. Of course, for this they need a proprietary firmware.
The issue is not very visible on consumer platforms where Intel doesn't want to hide things that happen at OS runtime. However, on Intel-based servers for instance, there are advanced features that they don't contribute as open-source. RAS comes to mind, that's Reliability, Availability and Serviceability. A set of features that is close to hardware parts that they traditionally keep under wraps (e.g. memory controller). So they put such OS features into SMM blobs instead of the kernel. I once joked that without blobs, Linux on Intel-based servers must be unreliable, unavailable and unmaintainable Actually, I don't know how well it would work without blobs, I don't work with servers, so please take this information with a grain of salt.
IMHO, this is an eco-system problem and we can't hope silicon vendors who profit from the status quo to fix this. And it doesn't matter if they produce RISC-V, ARM, OpenPower or x86, to some degree these issues exist everywhere. I don't want to blame OS developers, but there are some unsettling oddities in that direction. For instance, Linux-libre is practically rewarding proprietary firmware: They drop code for silicon where the vendor is honest about the blob situation and keep code for silicon where the vendor hides blobs in the firmware. I don't know how to fix this, free operating systems always have to compromise to support hardware that isn't designated for free software. I hope Linux will at some point have enough leverage and use it to abandon OS blobs hidden in firmware.
The issue is not very visible on consumer platforms where Intel doesn't want to hide things that happen at OS runtime. However, on Intel-based servers for instance, there are advanced features that they don't contribute as open-source. RAS comes to mind, that's Reliability, Availability and Serviceability. A set of features that is close to hardware parts that they traditionally keep under wraps (e.g. memory controller). So they put such OS features into SMM blobs instead of the kernel. I once joked that without blobs, Linux on Intel-based servers must be unreliable, unavailable and unmaintainable Actually, I don't know how well it would work without blobs, I don't work with servers, so please take this information with a grain of salt.
IMHO, this is an eco-system problem and we can't hope silicon vendors who profit from the status quo to fix this. And it doesn't matter if they produce RISC-V, ARM, OpenPower or x86, to some degree these issues exist everywhere. I don't want to blame OS developers, but there are some unsettling oddities in that direction. For instance, Linux-libre is practically rewarding proprietary firmware: They drop code for silicon where the vendor is honest about the blob situation and keep code for silicon where the vendor hides blobs in the firmware. I don't know how to fix this, free operating systems always have to compromise to support hardware that isn't designated for free software. I hope Linux will at some point have enough leverage and use it to abandon OS blobs hidden in firmware.
Comment