> > > + arm_load_kernel(env, &versatile_binfo); > > > + } > > > > > > } > > > > This should be using the new object you just added. > > Yes I agree. There is another question tho that if this approach is to be > considered, should this call to arm_load_kernel be removed from the machine > model altogether? Only reason to keep it would be backwards compatibility > for the original command line format.
I think we want the -kernel commandline option, butI'mnot attached to a particular implementation. Once we have an arm_linux_loader device then arm_load_kernel should go away, or at least be a private implementation detail of arm_linux_loader. Who creates the arm_linux_loader object (common code or board init function), and how we arrange for it to have the right properties (filename from -kernel, board ID from specific machine) is something I haven't entirely figured out. I suspect we want to replace the arm_load_kernel call with an arm_linux_loader device with appropriate properties. We should have some mechanism for the user to override/augment those properties (e.g. overriding the FDT file). I don't know if that functionality actually exists, or if what we have is particularly well thought out. Ideally the -kernel commandline would just be shorthand for setting/overriding the filename property on that device. The machine->init arguments are removed. That's probably going to need wider coordination with other arches. Paul