Not all ARM use cases need that, but it would be a huge mistake to not develop integrated options.
And also an opportunity to make adjustments to their business model.
Not all ARM use cases need that, but it would be a huge mistake to not develop integrated options.
And also an opportunity to make adjustments to their business model.
On ARM, every processor has its own bootloader, blobs needed for initialisation. Even the systems have different architecture. In the end, you need a special software setup, which is not supported more than a few years. See phones, Raspberry PIs and derivatives, Chromebooks.
This is because of a supporting set of standards (BIOS/UEFI/ACPI) that are well-supported on x86 systems, but technically independent of the x86 ISA. BIOS, and the general compatibility you're talking about, is a historical artefact of the IBM PC being so dominant in the market that other companies created compatible computers. UEFI and ACPI actually exist in the ARM ecosystem now. If ARM continues to grow outside of mobile devices, you could eventually see the kind of broad compatibility you're talking about. It's not super likely though. All signs point to the consumer computing ecosystem becoming more closed, rather than more open.
[0] https://developer.arm.com/community/arm-community-blogs/b/ar...
Considering the original ARM use case was a desktop-computer shaped thing with some degree of expandability, they had to solve the same problems that the PC did in bringup/enumeration/device abstraction. These should be solved problems.
At some point between Archimedes and iPhone, they lost this functionality. I assume there was a moment where they assumed that they were only doing SoCs with fixed peripherals and jettisoned all their knowledge and tooling in the space.
> ...jettisoned all their knowledge and tooling in the space.
ARM made a smart decision not to compete against Intel/AMD at the cutting edge, and instead completely dominated the low-power CPU market.
> These should be solved problems.
They are. The solutions have nothing to do with the ISA. The device discovery functionality you're talking about (ACPI/BIOS/etc) is provided by the motherboard, and (in the case of ACPI) made available to the OS by the bootloader. SoC's don't need sophisticated device discovery.
Quick question but How does Risc-V compare to this?
Paradoxically, Linux core maintainers prefer the ARM situation (as do RMS-grade FOSS fans). For them going x86 route means constantly getting blame for crappy code they didn't wrote. Not that I'm unsympathetic, but it really goes against users' interests. And again, BSDs and smaller OSes often simply doesn't have resources to support the myriads of platform hardware.
Where Arm is in markets that do demand compatibility (i.e. server) the standards like UEFI and ACPI are there and work. Where it's in markets like embedded, you still see the embedded profusion of different random stuff. Where other architectures are in the embedded market, you also see a wide range of different not very compatible hardware: look at riscv for an example.