Linked by Thom Holwerda on Fri 28th Oct 2011 22:11 UTC
Hardware, Embedded Systems Big news from ARM over the past few days. The processor architecture, once strictly an embedded affair for low-power devices, is going big. Not only has ARM announced it's going 64bit, HP has announced it's going to build servers with ARM processors. It seems all the pieces are now in place for ARM.
Thread beginning with comment 494828
To view parent comment, click here.
To read all comments associated with this story, please click here.
Brendan
Member since:
2005-11-16

Hi,

I am not informed as to what ARM motherboards use as their firmware, but I am sure someone more enlightened will be here.

Is it a BIOS, UEFI or something else?

Could it be that if Microsoft succeeds in their plan of limiting non-Windows OS:s by (ab)using some UEFI mechanisms, we could all simply switch to ARM?


It's not "PC BIOS" or UEFI, or OpenFirmware or anything else. It's complete chaos. Typically the manufacturer creates/installs firmware specifically for the embedded device they happen to be making at the time.

This continues to be the single largest problem with ARM - there is no standardised firmware (and no standardised way of doing hardware auto-detection for anything that isn't USB or PCI).

This means you can't create one generic OS for ARM that works on all ARM systems and continues to work for future ARM systems. Instead you end up creating a special version of the OS to suit each specific ARM system (and then hoping the manufacturer installs it, because the end user can't). It's also why Microsoft only support about 5 of the many different ARM systems; and why you'll never see "Windows for ARM" on a shelf in a computer shop where people can buy it and install it on whatever ARM system they happen to have.

For embedded systems it's probably a good thing, as it reduces hardware costs and the manufacturer doesn't want the end-user to change the software anyway. For general purpose laptop/desktop/server systems (where the manufacturer makes the hardware, and the end-user decides which OS/s to install when) it's a show stopper.

It's not the only problem though. For PCs (desktop/server) hardware there's a bunch of standards relating to hardware that includes motherboard form factors, power supplies, cases, etc. This means the end user can replace/upgrade any component, and also means that a computer manufacturer can get "off the shelf" parts from 20 different companies and put them together as a complete system. It's this "componentization" that makes PC compatible (desktop/server) cheap and flexible (and not just for the initial purchase).

Until there's usable standards (for everything, not just firmware), ARM will never go beyond the embedded market (which includes phones and other disposable gimmicks), regardless of what the CPU/s themselves are capable of.

Ironically, ARM can use "PC compatible" standards to compete against the "PC compatible" market - ARM manufacturers could adopt UEFI, ACPI, the ATX form factor, the ATX power supplies, etc to become a standardised platform fairly quickly.

- Brendan

Reply Parent Score: 9

Alfman Member since:
2011-01-28

Brendan,

You bring up some excellent points. I don't know the answers either.

I have a question, what would it take to place one or more arm processors on an existing PCI bus infrastructure and use existing PC components for the rest of the build?

Of course the drivers would need to be recompiled or rewritten, but hardware wise is there a reason this would be bad? Is there something about ARM processors which rules out efficient use of existing commodity hardware like ram/video/ethernet/power supplies?

As for the BIOS services, it's true that we need a way to identify/probe the hardware in ways which are specific to the mainboard. However for the most part bios services are only used in the bootloader, after which modern operating system specific drivers take over.

It seems like it would be pretty easy for ARM manufacturers to provide a standard boot loading firmware for their hardware, which end users/operating systems would be free to use or not. Just look at how trivial the x86 bootloading is (just as an example, ideally it'd be a bit more sophisticated though).

Reply Parent Score: 3

brynet Member since:
2010-03-02

The PCI and PCIe buses can be used with any compatible processor architecture. I'm aware of SPARC64, PowerPC designs that support PCI devices.. including ARM.

Intel's IOP321 is an "XScale" ARM design that included a PCI-X bus, for example.

As Brendan said, if an ARM motherboard in ATX form factor was released.. they could use the same conventional hardware, and even memory.

Most open source operating systems treat the PCI bus as platform independent and have glue for PCI hosts controllers. This allows PCI device drivers to be portable, assuming the developer takes into account Endian, alignment and 32/64-bit portability issues.

So if the firmware was standardized, or at least the boot procedure.. a common "ARM PC" port for many operating systems could be quite trivial.

So here's hoping.

Edited 2011-10-29 03:20 UTC

Reply Parent Score: 5

Morty Member since:
2005-07-06

This means you can't create one generic OS for ARM that works on all ARM systems and continues to work for future ARM systems. Instead you end up creating a special version of the OS to suit each specific ARM system

Which really is not a problem, since nearly no users do install OS. Users use whatever the PC/device comes with, they only install applications. And sometimes even accept (vendor) provided OS updates.

And the OS handles the hardware abstraction, making the hw differences a non issue for the applications.


It's not the only problem though. For PCs (desktop/server) hardware there's a bunch of standards relating to hardware that includes motherboard form factors, power supplies, cases, etc.

Form factors and power supplies are trivial. And the tighter integration of ARM devices with less need for external circuitry, will make the motherboard PCB much simpler than the densely populated x86 boards.

Adding one or more standardized buses like PCI, PCI-E variants are also fairly trivial. You can actually get loads of ARM boards with such slots today.

Reply Parent Score: 3