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
@ignaloidas @mjg59
though it can still work if the applicants are relatively powerless compared to the manufacturers of the chips, who make the datasheets for those chips, casually mentioning ROMs because they don't give a fuck about your certifications.
Then hiding a ROM is not a viable option, so it's not tempting.
@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.
@Suiseiseki@freesoftwareextremist.com @wolf480pl@mstdn.io @mjg59@nondeterministic.computer I see zero reasons why locking people with proprietary firmware in is better than at least leaving a possibility of loading free firmware. But that's what RYF does.
It's impossible to make a computer these days that complies with RYF without also making it fully open hardware. Because RYF doesn't just restrict loading of the firmware on each boot, it restricts modification of firmware at all. Pinephone is not RYF compliant not because it needs to load modem firmware each boot, but because it can change the modem firmware. When going with these requirements, you can't even use any remotely modern SSDs or hard drives, because their firmware can be updated.
Building hardware that FSF sees as good is building hardware that restricts your ability to modify it.
@Suiseiseki@freesoftwareextremist.com @wolf480pl@mstdn.io Stop your word vomit
Firmware is microprocessor instructions stored on socketed ROM chips - you can't electronically reprogram it, but you can just swap the chip - hence the firmnessThis hasn't been the common accepted meaning for ages
If you (or the manufacturer) can electronically change it, it's software, if you (and the manufacturer) cannot change it, it's hardware.What do we define as "electronically change it"? If you connect an extra cable to the device and use an external device to change it, is it "electronically change it" or no?
The RYF doesn't require implementing digital handcuffs - it requires you not attack the user with proprietary software.It quite literally gives an exception to "software delivered inside auxiliary and low-level processors and FPGAs, within which software installation is not intended after the user obtains the product". The simplest way to fulfill the "software installation is not intended after the user obtains the product" is to add blockers.
It is very possible to make a modern computer that complies with RYF that has proprietary hardware, you just need to avoid garbage chipsets.Find a single SDD or HDD that has no ability to update it's firmware. I'm absolutely certain that there is none that are still manufactured.
A lot of so called "open hardware" doesn't work without lots of proprietary software.OSHWA certification requires that all software for using the hardware is open source. https://certification.oshwa.org/
In demonstrated practice a developer skilled enough to replace proprietary software is skilled enough to reprogram an EEPROM, thus such "modification restriction" doesn't occur in practice.Why I, as a user, should need to get new hardware if I want to start using free software with it? The cost can be zero, but only if the hardware wasn't designed for RYF to start with.
The pinephone is not RYF compliant because of how the Wifi+Bluetooth chipset doesn't work without hotloaded proprietary software, that is recommended to the user, same as nonfree autofocus software and I believe there are further issues.So you'd rather have all of that stuff in EEPROMs? Making the product worse and burying any chances for simple updates to any free software rewrites of them.
would pass RYF if it wasn't for how that modem software is malicious.Malicious? How?
RYF doesn't do anything to restrict anyone from building hardware that runs 100% free software - it rather encourages doing so.It may, but the last fully certified computer is ~15 years old, and only became such after 9 years of the actual release of the hardware. Nobody seems to be encouraged to build computers because of RYF. It's a shitty ass program that displays how inept the FSF has been when talking about the software-hardware interface.h
@wolf480pl@mstdn.io @mjg59@nondeterministic.computer vendor is not powerless to change it - they now have the power to charge for replacement ROMs. I'm fairly certain that BIOS update ROMs actually existed at some point.
@ignaloidas @mjg59
yeah but these days it'd be a mask ROM inside another chip that is BGA-soldered to the mainboard, so they'd just tell you to buy the next gen laptop instead
@wolf480pl@mstdn.io @mjg59@nondeterministic.computer And thats shit from right to repair perspective (and with EU laws on software/hardware warranties that seeem to be incoming, really not wise from the vendor). I don't see a reason to support something that would lead to unfixable trash being made on the regular.
@wolf480pl The vendor no longer has the power to change it, but they still have the power to control how the hardware behaves in the first place and this may not be to the user's benefit. Proprietary software that the vendor never updates is just as harmful as proprietary software that the vendor ships optional updates for.