Peter Maydell <peter.mayd...@linaro.org> writes: > On 3 August 2012 14:50, Anthony Liguori <anth...@codemonkey.ws> wrote: >> There ought to be a hierarchy (based on composition) that reset flows >> through. > > I think saying "the reset tree is isomorphic to the composition tree" > is making the same mistake that qbus did with "the bus tree is > isomorphic to the composition tree". The stakes are lower for reset > and we can probably get away with it, but it really isn't how the > hardware works...
It flows through the composition tree by default, but can be overridden at any point. For instance, the i440fx will absolutely want to override this behavior such that it can flow reset through the PCI bus (which is how the PIIX3 would be reset). However, the PIIX3 has no need to override this behavior. So this model should work very well for most types of virtual hardware. But it doesn't provide for a mechanism to "after all devices are initialized, build FDT in guest memory, then set the CPU registers to point to it". There's no logical device that has a scope like that that also has the mechanism to get that type of hook in the reset path. That's why we need to have the QEMUMachine::reset() hook. Regards, Anthony Liguori > > -- PMM