Am 07.08.2012 08:41, schrieb David Gibson:
> qemu_system_reset() function always performs the same basic actions on
> all machines.  This includes running all the reset handler hooks,
> however the order in which these will run is not always easily predictable.
> 
> This patch splits the core of qemu_system_reset() - the invocation of
> the reset handlers - out into a new qemu_devices_reset() function.
> qemu_system_reset() will usually call qemu_devices_reset(), but that
> can be now overriden by a new reset method in the QEMUMachine
> structure.
> 
> Individual machines can use this reset method, if necessary, to
> perform any extra, machine specific initializations which have to
> occur before or after the bulk of the reset handlers.  It's expected
> that the method will call qemu_devices_reset() at some point, but if
> the machine has really strange ordering requirements between devices
> resets it could even override that with it's own reset sequence (with
> great care, obviously).
> 
> For a specific example of when this might be needed: a number of
> machines (but not PC) load images specified with -kernel or -initrd
> directly into the machine RAM before booting the guest.  This mostly
> works at the moment, but to make this actually safe requires that this
> load occurs after peripheral devices are reset - otherwise they could
> have active DMAs in progress which would clobber the in memory images.
> Some machines (notably pseries) also have other entry conditions which
> need to be set up as the last thing before executing in guest space -
> some of this could be considered "emulated firmware" in the sense that
> the actions of the firmware are emulated directly by qemu rather than
> by executing a firmware image within the guest.  When the platform's
> firmware to OS interface is sufficiently well specified, this saves
> time both in implementing the "firmware" and executing it.
> 
> Signed-off-by: David Gibson <da...@gibson.dropbear.id.au>

Reviewed-by: Andreas Färber <afaer...@suse.de>

I'll put together a follow-up to show what I meant in the v1 thread.

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

Reply via email to