hw/char/pl011: implement a reset method
PL011 currently lacks a reset method. Implement it. Signed-off-by: Evgeny Iakovlev <eiakovlev@linux.microsoft.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20230123162304.26254-4-eiakovlev@linux.microsoft.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
13ea96fa34
commit
3b7a165e8c
@ -427,11 +427,6 @@ static void pl011_init(Object *obj)
|
|||||||
s->clk = qdev_init_clock_in(DEVICE(obj), "clk", pl011_clock_update, s,
|
s->clk = qdev_init_clock_in(DEVICE(obj), "clk", pl011_clock_update, s,
|
||||||
ClockUpdate);
|
ClockUpdate);
|
||||||
|
|
||||||
s->read_trigger = 1;
|
|
||||||
s->ifl = 0x12;
|
|
||||||
s->cr = 0x300;
|
|
||||||
s->flags = 0x90;
|
|
||||||
|
|
||||||
s->id = pl011_id_arm;
|
s->id = pl011_id_arm;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -443,11 +438,32 @@ static void pl011_realize(DeviceState *dev, Error **errp)
|
|||||||
pl011_event, NULL, s, NULL, true);
|
pl011_event, NULL, s, NULL, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void pl011_reset(DeviceState *dev)
|
||||||
|
{
|
||||||
|
PL011State *s = PL011(dev);
|
||||||
|
|
||||||
|
s->lcr = 0;
|
||||||
|
s->rsr = 0;
|
||||||
|
s->dmacr = 0;
|
||||||
|
s->int_enabled = 0;
|
||||||
|
s->int_level = 0;
|
||||||
|
s->ilpr = 0;
|
||||||
|
s->ibrd = 0;
|
||||||
|
s->fbrd = 0;
|
||||||
|
s->read_pos = 0;
|
||||||
|
s->read_count = 0;
|
||||||
|
s->read_trigger = 1;
|
||||||
|
s->ifl = 0x12;
|
||||||
|
s->cr = 0x300;
|
||||||
|
s->flags = 0x90;
|
||||||
|
}
|
||||||
|
|
||||||
static void pl011_class_init(ObjectClass *oc, void *data)
|
static void pl011_class_init(ObjectClass *oc, void *data)
|
||||||
{
|
{
|
||||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||||
|
|
||||||
dc->realize = pl011_realize;
|
dc->realize = pl011_realize;
|
||||||
|
dc->reset = pl011_reset;
|
||||||
dc->vmsd = &vmstate_pl011;
|
dc->vmsd = &vmstate_pl011;
|
||||||
device_class_set_props(dc, pl011_properties);
|
device_class_set_props(dc, pl011_properties);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user