On 9 April 2018 at 18:41, Ajay Garg <ajaygargn...@gmail.com> wrote:
> Hi Peter.
> The link is pretty good, just that I am a complete noob.
> Maybe a more concrete example on the following, clearly specifying why
> things work on x86 without the need of -machine flag, will make things
> crystal clear :
> Because ARM systems differ so much and in fundamental ways, typically
> operating system or firmware images intended to run on one machine
> will not run at all on any other. This is often surprising for new
> users who are used to the x86 world where every system looks like a
> standard PC. (Once the kernel has booted, most userspace software
> cares much less about the detail of the hardware.)
For instance, on x86 you can always find the UART for serial
output at IO port 0x3f8, and it's always an 8250 or compatible.
On Arm, the memory address where the UART is will be likely
different for every board. And once you know the address of the
UART, each SoC likely may well have its own implementation,
which has different registers that do different things.
And there's no way to probe for what's there -- you have to
know in advance. So you can't even usefully print bootup
messages without knowing what you're running on.