[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Allow ARMv7M to be started without a kernel
From: |
Alexander Graf |
Subject: |
Re: [Qemu-devel] Allow ARMv7M to be started without a kernel |
Date: |
Fri, 6 May 2011 14:48:26 +0200 |
On 06.05.2011, at 01:50, Rob Landley wrote:
> On 05/05/2011 06:26 PM, Alexander Graf wrote:
>>> As an aside: I think QEMU should have an option which is "just load
>>> a plain ELF or raw binary, with no funny Linux-kernel-specific
>>> behaviour" rather than overloading -kernel to mean "if it's a raw
>>> image it's Linux and if it's an ELF file it's not".
>>
>> Traditionally, -bios has been that one. -kernel is more of a real
>> bootloader replacement, including all the weirdness a bootloader does
>> :).
>
> Except that neither "qemu-system-x86_64 -bios vmlinux" nor
> qemu-system-x86_64 -kernel vmlinux" will load an ELF kernel on x86-64.
>
> The code to do this _exists_ within qemu, it's just not hooked up
> consistently on all targets. We have a universal cross-platform image
> format, and we have support in qemu for loading that format, and for
> some reason it's only enabled on certain targets. I've never understood
> why...
Unfortunately, booting isn't that easy :). The kernel needs some more data than
just itself and an entry point to properly load. On some architectures, it
requires a device tree (and pointer to it in a register), it might require page
tables / TLB entries to be set up, if you want -initrd and -append to work you
also need to tell the kernel where to find those.
So while ELF is a nice container for binaries, there are still some pieces
missing to actually make it a kernel loader. But that's what multiboot was
invented for. I haven't seen too much effort going on around multiboot on
non-x86, but it basically fills exactly the gap you're wondering about. It uses
ELF and adds a simple boot protocol for all the other fancy stuff a kernel
needs.
Alex
- [Qemu-devel] Allow ARMv7M to be started without a kernel, Ben Leslie, 2011/05/05
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Peter Maydell, 2011/05/05
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Ben Leslie, 2011/05/05
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Alexander Graf, 2011/05/05
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Rob Landley, 2011/05/05
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel,
Alexander Graf <=
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Andreas Färber, 2011/05/08
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Rob Landley, 2011/05/08
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Alexander Graf, 2011/05/09
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Peter Maydell, 2011/05/09
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Rob Landley, 2011/05/10
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Rob Landley, 2011/05/10
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Alexander Graf, 2011/05/10
- Re: [Qemu-devel] Allow ARMv7M to be started without a kernel, Rob Landley, 2011/05/10