On Wed, Feb 1, 2012 at 12:37 PM, Anthony Liguori <anth...@codemonkey.ws> wrote:
> On 01/31/2012 07:44 PM, Alexander Graf wrote:
>>
>>
>> On 01.02.2012, at 02:35, Paul Brook wrote:
>>
>>>> We could also just change machine->init() and pass the dtb in there. In
>>>> a
>>>> QOM world these would become machine device properties anyways.
>>>>
>>>>    machine->init(ram_size, boot_devices,
>>>>                  kernel_filename, kernel_cmdline, initrd_filename,
>>>> cpu_model);
>>>>
>>>> Essentially we shouldn't treat -dtb any different than -kernel or
>>>> -initrd.
>>>> It's also useful for more than ARM, namely embedded ppc systems. But I
>>>> can
>>>> easily post a follow-up patch for those.
>>>
>>>
>>> Changing machine->init means you have to touch every single board file,
>>> and
>>> clone the exact same code for every machine that uses arm_boot.c.  All of
>>> which will be rewritten in the near future.
>>
>>
>> Well, the dt file name would have to be passed into the generic arm_boot.c
>> function, yes. But that's something that we need to do at one point in time
>> either way, because machines will want to have default dtb file names.
>>
>>> machine->init is a particularly suckiy interface to start with, we want
>>> to be
>>> using it less, not more.  It's not like we're going support multiple
>>> machine
>>> instanced.  At least not before machine->init is removed altogether.
>>
>>
>> I do see your point on not extending legacy interfaces though and not
>> bloating up the patch. In fact, I'm indifferent enough on the actual
>> implementation atm, as long as the command line interface (or whatever the
>> user sees) is reasonably sane. And it is IMHO. So if it makes everything
>> easier, do it using a global, but keep in mind that this will need
>> refactoring.
>
>
> Globals are even worse!
>
> Can't you hear the kernel loader begging to be turned into a device?  It's
> pleading with us to stop abusing other parts of QEMU and make it a first
> class citizen of QEMU.

Is there some kind of initialisation phase where such a device can do its thing?

Unless I'm missing something a "loader" device will be racing the rest
of the VM after reset to populate the memory with the desired
contents, no?

John
-- 
John Williams, PhD, B. Eng, B. IT
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com  p: +61-7-30090663  f: +61-7-30090663

Reply via email to