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