Of course!
And that’s exactly what we are doing since 2014. But we can only do so much and the availability of chips on the market is what limits us, so at some point we have to choose, either go out of business or do some compromise, as little as possible, but still failing to reach the final goal. We need to make money to be able to invest in more open development so at some point we have to bite the bullet and look for the smallest evil.
Take the Librem5 as an example. We really tried super hard to make it RYF. We even jumped through quite some hoops to get there, like confining the necessary firmware parts (like DDR4 init, display controller firmware, TPS firmware etc.) in a separate flash chip, away from the operating system. We even put significant money down and convinced a WiFi chipset maker (RedPine at the time) to move the firmware from a blob in user space onto the card itself (which to me makes no sense, it’s the same firmware just stored somewhere else and all of a sudden it’s RYF conformant!). Just last year we were notified that the RedPine M.2 card will not be available anymore - besides that it had quite some issues. There are no (somewhat current) WiFi chipsets on the market (none!) that do not require a firmware download at run time and the dozens I looked at do not allow to attach an external SPI flash or something anymore to hold it. So the only way is a download through the operating system which then would loose FSF endorsement if this comes from the same source the OS comes from - and the whole device looses RYF. So what are we doing now? We create even further hoops to jump through, the “firmware jail” which will either copy or get mounted from a separate storage (the SPI flash) so that the kernel can load the firmware from there. Except for sticking to the words of the FSF for not loosing the endorsement this only brings issues, nothing else. But we did it, nonetheless.
Cheers
nicole