On 01/31/2012 07:35 PM, 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.

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.

The right solution to this problem is to make an arm-kernel-loader device that has a dtb property.

It's a very small amount of code and fits with our longer term strategy of killing off machine->init.

Regards,

Anthony Liguori


Paul



Reply via email to