Microcode in ROM is fixed. Nobody - neither you nor the vendor - can alter it. You are both equal.
Microcode as a binary blob loaded at runtime means the vendor has the source and tools and can create and alter and build and distribute the modifications and FUCK YOU you can't do any of those things legally. Just copy some opaque blob unmodified - that's non-free software in a nutshell.
Solution 1: vendor gives out the source and tools for creating the blob under a free license.
Solution 2: don't buy or use that hardware. Support vendors that support solution 1.
Solution 3: the vendor, having refused to offer their firmware under free software terms (which they totally could do and the whole idea of the free software movement is to get them to do it), agrees the compromise that they cannot alter the firmware either so puts it in ROM. They'd prefer not to, of course, but if they want another option, solution 1 is right there. Free the firmware and this problem goes away.
If you think other solutions are "pragmatic", just pragmatically use non-free Windows which is full of opaque binary blobs you don't have the source for and can't recreate, let alone alter or redistribute the changes. That counts as free software, right?
I'm pretty adamant about software freedom, but my own model involves computational domains and resulting security properties. CPU microcode is a pretty shitty thing, but it's in a similar camp to proprietary CPU designs so that's just where we are in 2024. Proprietary firmware in non-networked peripherals does not bother me at all. Updating firmware only bothers me to the extent that proprietary update processes require more work (including sandboxing to thwart any telemetry). Meanwhile proprietary BIOS, regardless of whether it gets updated, is a huge red flag based on how much access it has to the whole system plus the network.
Having said that, this topic is where the FSF's definition actually has more relevancy. It is neat to be able to say everything in this tarball/cdimage/etc is 100% libre licensed, orthogonal to the implications for how it affects users' freedom. So doing the work here is seemingly worthwhile even if it's not fully necessary to serve the FSF's main goal.
I just wish they'd stop focusing on this outmoded definition for things like the firmware blobs in Trisquel/Guix, which actually ends up harming user freedom/actualization by making for a poor experience that makes libre software look like some kind of religion based on purity rather than programmer self empowerment.
Do they? Or do you think you might have exaggerated their position to make your point? I seem to remember they consider it as undesirable but inevitable, whereas passing around non-free code helps to normalize it.
I don't see where they claim that "proprietary blobs stored in ROM is "free", would you care to point it out please? Or were you referring to the opinion piece in the comment that you link? That does not appear to be the official position of the people doing the actual work.
>All the product software must be free software. The product software includes all software that the seller includes in the product, provides with the product, recommends for use in conjunction with the product, and steers users towards installation in the product.
>However, there is one exception for secondary embedded processors. The exception applies to software delivered inside auxiliary and low-level processors and FPGAs, within which software installation is not intended after the user obtains the product. This can include, for instance, microcode inside a processor, firmware built into an I/O device, or the gate pattern of an FPGA. The software in such secondary processors does not count as product software.
There's no easy way to soft-update an FPGA except for expensive tools to do so. Your bare OS can't do that. A vendor can't update an FPGA based hardware at will.
> There's no easy way to soft-update an FPGA except for expensive tools to do so.
If the implementation wants to support updating the FPGA then the programming can be wired in the device itself and accessible fully in software. Or even the attached SoC can reprogram it with IAP. (https://ww1.microchip.com/downloads/aemDocuments/documents/F...)
Basically it's not a technology limitation. It's the choice of the people implementing it - they can make it anywhere from trivial to almost impossible to reprogram.
> The software in such secondary processors does not count as product software.
mean free (in the GNU sense) to you? I don't think the quote you reproduced means what you think it means.