Delay creation of pseries device tree until reset
commita3467baa88c5bbb58834952980d2f2206aab4445
authorDavid Gibson <david@gibson.dropbear.id.au>
Tue, 5 Apr 2011 05:12:10 +0000 (5 15:12 +1000)
committerAlexander Graf <agraf@suse.de>
Fri, 8 Apr 2011 09:32:21 +0000 (8 11:32 +0200)
treed7b253cb8228c81343753cfa169fb702e6a025db
parentc7a5c0c9280c2ddaa875e3cafb3df16a96af809c
Delay creation of pseries device tree until reset

At present, the 'pseries' machine creates a flattened device tree in the
machine->init function to pass to either the guest kernel or to firmware.

However, the machine->init function runs before processing of -device
command line options, which means that the device tree so created will
be (incorrectly) missing devices specified that way.

Supplying a correct device tree is, in any case, part of the required
platform entry conditions.  Therefore, this patch moves the creation and
loading of the device tree from machine->init to a reset callback.  The
setup of entry point address and initial register state moves with it,
which leads to a slight cleanup.

This is not, alas, quite enough to make a fully working reset for pseries.
For that we would need to reload the firmware images, which on this
machine are loaded into RAM.  It's a step in the right direction, though.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/spapr.c
hw/spapr.h