On Wed, Sep 28, 2011 at 9:38 PM, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 28 September 2011 19:42, Blue Swirl <blauwir...@gmail.com> wrote: >> We also assume that the reset states of devices and their outputs are >> coherent i.e. the output of one device during reset would not change >> the state of another device from its reset state. > > This seems a very dubious assumption to make. Consider the > realview board: the 'card present' line from the pl181 > MMC card controller is wired up to (1) a GPIO input on the > 'sysctl' system register module [which causes it to appear > as a status bit in a register] and (2) via an inverter to > an input on a pl061 GPIO module. On coming out of reset > something has to be done to make the reset value of the > output from the pl181 be reflected in the internal status > of the sysctl and pl061 devices. > > (On real hardware this happens when the pl061/sysctl > devices come out of reset and sample their input pins. > If we wanted to model it that way we'd need internal state > on all gpio lines and a two phase "enter reset"+"leave reset" > or something.)
Maybe the rule should be that during reset, all inputs should be in high impedance mode. We'd need a two-phase reset for QEMU for that too, or to disconnect all signals before reset and then reconnect them after that.