When it comes to non-free firmware I think there's two reasonable positions - treat it like non-free code running on a remote system (suboptimal, outside the scope of current free software priorities) or treat it like software running on the primary CPU (all code on the local system should be free software, no matter where it's running). I think the FSF's position is unreasonable: https://mjg59.dreamwidth.org/70895.html
@mjg59
> users would benefit from most (if not all) firmware being free software
yes
> So I think this is less of a philosophical discussion
no, that does not follow
The stance of FSF is that developing proprietary software is immoral. Therefore, all software is *required* to be free
Just because something is beneficial to users does not mean it's morally required
Therefore, I think there's still a philosophical discussion here: where is the line between the vendors' rights and the users'
@mjg59
Now, as to why FSF may've thought ROMs are ok:
The purpose of Free Software is to remove a power imbalance between vendor and user.
If the vendor can change the software, but the user can't, that gives the vendor coercive power over the user.
So one might conclude that if firmware is in ROM, then vendor is as powerless to change it as the user, so there is no power imbalance.
1/
@mjg59
One could even argue that if the OS blocks the ability to load proprietary firmware, that means the vendor can no longer coerce the user to do so.
"You won't be able to watch this Netflix movie unless you update your ME firmware"
"Well my kernel won't let me do that, so I guess I won't be able to watch this Netflix movie either way"
IMO this is too contrived.
It's logically consistent, but I don't think it's useful in practice.
2/2
@mjg59
Oh, also, this ignores the fact that there still is power asymmetry: the vendor knows what code runs on the user's system.
So FSF should also argue that the source code for any ROM firmware must be shared with the user in a way that allows the user to read and understand it, but not necessarily make modifications or run modified versions - since the vendor can't do the latter either.
3/
There is one more argument one might make why ROM shouldn't be considered firmware:
It's possible to have two functionally equivalent chips, one hard-wired to do its job, and the other with an embedded MCU and firmware ROM.
And they would be externally indistinguishable.
Therefore, if one demands that ROM firmware be free, one should also demand that hardware be free.
Which I think is also a valid maximalist stance, and I'd be happy if FSF was to take it.
4/4
@wolf480pl@mstdn.io @mjg59@nondeterministic.computer But FSF is now taking a stance that when taken to it's maximum encourages hardware that locks users in into proprietary firmware rather than hardware that has firmwaare that may be made free. E.g. see Librem phone, it essentially has a bunch of proprietary stuff that is impossible to change vs Pinephone, which started with a proprietary modem firmware, but over time most of it was reverse engineered and made free.
@ignaloidas @mjg59
Yeah, but like
Let's say you draw up a scale of certifications, from
"RIF Bronze: can run upstream Linux kernel"
to
"RIF Platinum: all software and hardware is open-source"
and one of the intermediate levels is
"All software running on main CPU is open-source, all software on other chips is runtime loadable"
And someone sends you a laptop.
How do you check there isn't a hidden ROM in one of the chips?
@wolf480pl@mstdn.io @mjg59@nondeterministic.computer there is quite a difference between "hidden ROMs" and "not runtime loadable". IIRC Librem phome had a separate chip that loaded all of the firmware, and then started up the main processor. It was incredibly dumb, and clearly chasing a RYF certification, even if there was zero tangible benefits to the user. That's why the intermediate position sucks.
@ignaloidas @mjg59
Yes, there is a difference between "hidden ROM" and "not runtime loadable".
What I'm saying is, if you require firmware to be runtime-loadable, but can only check for obvious ROMs, not for hidden ROMs...
then the applicants just won't tell you about ROMs
@wolf480pl@mstdn.io @mjg59@nondeterministic.computer Yes. And I see zero problem with hidden ROMs. But wast majority of more complex chips have firmware that is loaded on every boot rather than ROMs for a multitude of reasons, and it's incredibly hard to build a useful computer if you're limiting yourself to chips that either have open source firmware or only have on-chip ROMs. It's essentially impossible, and chasing that "higher" level will only produce shit workarounds for the forseeable future.
@ignaloidas @mjg59
Ok, so let's say we have a certification level of "only free software on the main CPU, other chips do whatever" - we accept hidden ROMs, and obvious ROMs, and loadable proprietary firmware.
Let's say then a vendor with that certification, with some community help, goes to an extra effort over many years to produce free firmware replacements for all loadable fw blobs except the HDMI controller.
Can we reward such a vendor?
@wolf480pl@mstdn.io @mjg59@nondeterministic.computer I mean that's quite literally whats happening with Pine64 - maybe not quite enough help from the vendor itself, but they generally do try to organize freeing-up of their hardware. And in general the response has been mostly positive, with maybe some grumblings for them relying a bit too much on community volunteers on making their hardware useful.
@ignaloidas @mjg59
yeah.
Imagine you're FSF and you want to give them an award for doing that.
How do you...
oh
An award...
Can have a vague criteria.
Like "free firmware champion of the year" - "awarded to the vendor for the greatest effort in providing Free Softwtware firmware for their devices"
and then a committee gives that award to whoever they want.
Yeah, that'd work.