There used to be a multi-paged document on "Booting ARM Linux". Unfortunately the web link to that document is now broken, but a copy seems to be here. That doc however did not specify or advise a specific bootloader or any file/data organization on boot media.
Items that I recall were things like the kernel should be linked to execute at the start of physical main memory + 0x8000.
ARM Linux also requires a list of various memory, board and machine parameters (known as ARM Tags or ATAG list) to be passed in a memory buffer to the kernel on boot. The bootloader would be responsible for constructing the ATAGs and the kernel command line in memory buffers. ATAGs apparently has been deprecated, and replaced by the Device Tree in newer Linux kernel versions.
The bootloader was also expected to setup and initialize RAM (which implies setup of clocks/oscillators), initialize one serial port or console, and detect the ARM machine type.
Note that most ARM SoCs employ a multistage boot sequence, and the bootloader that actually loads the Linux kernel is sometimes the third-stage bootloader.
Are you asking about Linux or any OS or kernel? – sawdust – 2013-03-22T08:36:44.453
Most preferrably, any OS. – d33tah – 2013-03-22T16:53:35.497
1"...boot on any computer" -- You really mean "any PC which is based on the original IBM PC and its BIOS". – sawdust – 2013-03-22T19:24:20.330