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.