qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v1 0/2] Add a generic loader


From: Alistair Francis
Subject: Re: [Qemu-devel] [PATCH v1 0/2] Add a generic loader
Date: Thu, 18 Feb 2016 11:02:11 -0800

On Thu, Feb 18, 2016 at 10:27 AM, Hollis Blanchard
<address@hidden> wrote:
> This cover letter has some useful explanation. Perhaps some of the contents
> should go into a docs/ file so other people can enjoy it too? :-)

Ok, I have created a docs file based on the cover letter

>
> I understand the part about loading multiple files, but why would I want to
> load a kernel with this loader, instead of the -kernel option?

If you just want to load a kernel, you should use the -kernel option.
The advantage with this is when you need multiple images. For example:
 - Load ATF and let it run
 - Hands off to a simple loader that sets some registers and drops EL
 - Start Linux

To be able to perform the steps above all three images and the DTB
need to already be loaded. This allows us to boot Linux on ATF without
u-boot. That is just one example, there are others. Mostly it comes
down to using ATF and something.

We also use the register write to avoid having to run first stage boot
loaders, as the kernel expects this registers to be set but we don't
want to run the whole boot loader.

It also allows images to be loaded later in the boot process from the
monitor. We use this for some other testing as well.

Thanks,

Alistair

>
> Hollis Blanchard
> Mentor Graphics Emulation Division
>
>
> On 02/17/2016 01:04 PM, Alistair Francis wrote:
>>
>> This work is based on the original work by Li Guang with extra
>> features added by Peter C and myself.
>>
>> The idea of this loader is to allow the user to load multiple images
>> or values into QEMU at startup.
>>
>> Memory values can be loaded like this: -device
>> loader,addr=0xfd1a0104,data=0x8000000e,data-len=4
>>
>> Images can be loaded like this: -device
>> loader,file=./images/u-boot.elf,cpu=0
>>
>> This can be useful and we use it a lot in Xilinx to load multiple images
>> into a machine at creation (ATF, Kernel and DTB for example).
>>
>> It can also be used to set registers.
>>
>> The limiation for arch is based off settting the ELF_ARCH macro.
>>
>> The reset patch is required otherwise the reset will never be registered
>> and the loader can't change the PC in the case of images.
>>
>> Changes since RFC:
>>   - Add support for BE
>>
>>
>> Alistair Francis (2):
>>    qdev-monitor.c: Register reset function if the device has one
>>    generic-loader: Add a generic loader
>>
>>   default-configs/arm-softmmu.mak  |   1 +
>>   hw/misc/Makefile.objs            |   2 +
>>   hw/misc/generic-loader.c         | 127
>> +++++++++++++++++++++++++++++++++++++++
>>   include/hw/misc/generic-loader.h |  50 +++++++++++++++
>>   qdev-monitor.c                   |   2 +
>>   5 files changed, 182 insertions(+)
>>   create mode 100644 hw/misc/generic-loader.c
>>   create mode 100644 include/hw/misc/generic-loader.h
>>
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]