On Tue, Jan 17, 2017 at 09:29:19AM +0000, Peter Maydell wrote: > On 16 January 2017 at 19:44, Eduardo Habkost <ehabk...@redhat.com> wrote: > > On Mon, Jan 16, 2017 at 07:27:21PM +0000, Peter Maydell wrote: > >> On 16 January 2017 at 19:25, Eduardo Habkost <ehabk...@redhat.com> wrote: > >> > On Mon, Jan 16, 2017 at 10:53:07AM -0800, Alistair Francis wrote: > >> >> On Sun, Jan 15, 2017 at 11:59 PM, Thomas Huth <th...@redhat.com> wrote: > >> >> > But I think the users also expect the "-kernel" parameter to be > >> >> > working, > >> >> > so I think we should add the loader code in null-machine.c anyway. > >> >> > >> >> I agree that uses probably expect the '-kernel' option to work as well. > >> > > >> > So, is it possible to write a generic load_kernel() function that > >> > simply reuses the generic-loader code? > >> > >> No, because users expect -kernel to actually load a Linux kernel > >> (meaning with the calling conventions etc the kernel requires), > >> whereas generic-loader is just "load a binary blob and start there". > > > > I don't mean a generic function that works for all machines and > > architectures, but a generic function that is good enough for > > "-machine none". Isn't "load a binary blob and start there" > > exactly what machine_none_load_kernel() in this patch does? > > If you just want "load a blob and start it" then we already > have -device loader. Making -kernel have yet another set of > semantics that this time depends on the machine being selected > seems like a bad idea. If -kernel doesn't do what it does > for the other machines of the same architecture then we should > just not accept it.
Good point. In this case, implementing -kernel on "-machine none" will require calling an arch-specific hook from the beginning. I'm not sure if it's worth the effort, but I won't object if somebody really wants to implement that. While this is not implemented, I suggest we make "-machine none" reject -kernel instead of silently ignoring it. -- Eduardo