Hi Peter,
On 01/09/2018 11:01 AM, Peter Maydell wrote:
> Since pl181 is still using the legacy SD card API, the SD
pl181 -> milkymist-memcard ;)
> card created by sd_init() is not plugged into any bus. This
> means that the controller has to reset it manually.
>
> Failing to do this mostly didn't affect the guest since the
> guest typically does a programmed SD card reset as part of
> its SD controller driver initialization, but meant that
> migration failed because it's only in sd_reset() that we
> set up the wpgrps_size field.
>
> Cc: qemu-stable@nongnu.org
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> hw/sd/milkymist-memcard.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c
> index 4008c81..341da88 100644
> --- a/hw/sd/milkymist-memcard.c
> +++ b/hw/sd/milkymist-memcard.c
> @@ -248,6 +248,10 @@ static void milkymist_memcard_reset(DeviceState *d)
> for (i = 0; i < R_MAX; i++) {
> s->regs[i] = 0;
> }
> + /* Since we're still using the legacy SD API the card is not plugged
> + * into any bus, and we must reset it manually.
> + */
> + device_reset(DEVICE(s->card));
> }
>
> static int milkymist_memcard_init(SysBusDevice *dev)
>