I unintentionally blow the eFuse on the Qualcomm chips I'm developing for, all the time .. its very frustrating and surprisingly easy to do with their tools.
I'm ideologically opposed to using this feature 'productively', but it definitely makes it simpler (cheaper) for the company to maintain installed base versions...
Why and how does it make stuff easier for the company? Can't the company just... not support older versions of the software?
What's the difference in burden on the company between a user who just declines updates for years and a user who installs upgrades but then downgrades again? Surely the customer support response in all cases is "install the latest version"?
The cability provides for a lot more than blocking software downgrades e.g. setting the boot signing key and then locking it with an efuse so only matching signed images can be booted or the inverse, enable unsigned custom firmware but blow a fuse to mark the device has been allowed to run custom software (which may impact hardware DRM systems during boot).
I already understood that it allows companies to be user-hostile, that's not what I'm asking about. I'm asking how it makes it simpler/cheaper for the company to maintain installed base versions.
Because it allows them to lock in a signing key and manage custom user images. Regardless if you feel that is user hostile or not it does make it simpler/cheaper for the company to manage the installed versions. The only thing they ever need to validate and support is for is upgrading to their images the way they have specified.
So companies could simply not "validate and support" custom user images as general company policy, but instead they resort to design and manufacture chips with the company policy and financial model embedded in the hardware. I think GP is asking why does this make any economical sense?
You have to take into account the fact that a lot of Qualcomm's chips are intended for military/industrial complex applications. They're not just a consumer-chip producer.
Having an installed user base always on the latest firmware version cuts down on support costs. Its a hidden cost but a real one: when a user calls customer service with a problem, you're losing money - anything that reduces the amount of time spent debugging the issue, is a win. This means that if the support engineers can rely on the fact that users will always be pushed forward in software releases, they can focus on contemporary issues/uses cases rather than having to maintain - for years, often - an archaic list of prior versions/faults/issues.
Its not just the case that these eFuses' prevent "ownership" of the firmware by the user - though that is a consideration - its more that, by disallowing downgrades to prior firmware releases, a mechanism is in place that organizationally promotes improvement in the product quality. Well, that's the theory - that the latest OS is always an improvement - and believe me, we software engineers work hard to make sure that is the case. It occasionally doesn't go according to plan and users feel compelled - for whatever reasons they decide - to downgrade to a prior version - but as a software engineer, I much prefer to operate, knowing that my end users will always be encouraged to have the latest and greatest (hopefully) version of the firmware.
Support is a sunk cost. Supporting older versions is a self-imposed force multiplier of that cost.
Why can't iPhone users simply sideload apps on their phones? Apple could make it easy for them to do so but instead the company encodes policy into their hardware and software. They do this likely because the support burden of allowing the alternative path is too high in their calculus and would rather avoid it altogether.
I'm ideologically opposed to using this feature 'productively', but it definitely makes it simpler (cheaper) for the company to maintain installed base versions...