mirror of https://gitee.com/openkylin/qemu.git
STM32F205: Remove the individual device variables
Cleanup the individual DeviceState and SysBusDevice variables to re-use the same variable for each device. Signed-off-by: Alistair Francis <alistair@alistair23.me> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Message-id: fc5d75a57d320b69704df2c1146ff0fd482e4a88.1474742262.git.alistair@alistair23.me Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
1bb4710705
commit
81fed1d017
|
@ -62,8 +62,8 @@ static void stm32f205_soc_initfn(Object *obj)
|
||||||
static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
|
static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
|
||||||
{
|
{
|
||||||
STM32F205State *s = STM32F205_SOC(dev_soc);
|
STM32F205State *s = STM32F205_SOC(dev_soc);
|
||||||
DeviceState *syscfgdev, *usartdev, *timerdev, *nvic;
|
DeviceState *dev, *nvic;
|
||||||
SysBusDevice *syscfgbusdev, *usartbusdev, *timerbusdev;
|
SysBusDevice *busdev;
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -94,44 +94,43 @@ static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
|
||||||
s->kernel_filename, s->cpu_model);
|
s->kernel_filename, s->cpu_model);
|
||||||
|
|
||||||
/* System configuration controller */
|
/* System configuration controller */
|
||||||
syscfgdev = DEVICE(&s->syscfg);
|
dev = DEVICE(&s->syscfg);
|
||||||
object_property_set_bool(OBJECT(&s->syscfg), true, "realized", &err);
|
object_property_set_bool(OBJECT(&s->syscfg), true, "realized", &err);
|
||||||
if (err != NULL) {
|
if (err != NULL) {
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
syscfgbusdev = SYS_BUS_DEVICE(syscfgdev);
|
busdev = SYS_BUS_DEVICE(dev);
|
||||||
sysbus_mmio_map(syscfgbusdev, 0, 0x40013800);
|
sysbus_mmio_map(busdev, 0, 0x40013800);
|
||||||
sysbus_connect_irq(syscfgbusdev, 0, qdev_get_gpio_in(nvic, 71));
|
sysbus_connect_irq(busdev, 0, qdev_get_gpio_in(nvic, 71));
|
||||||
|
|
||||||
/* Attach UART (uses USART registers) and USART controllers */
|
/* Attach UART (uses USART registers) and USART controllers */
|
||||||
for (i = 0; i < STM_NUM_USARTS; i++) {
|
for (i = 0; i < STM_NUM_USARTS; i++) {
|
||||||
usartdev = DEVICE(&(s->usart[i]));
|
dev = DEVICE(&(s->usart[i]));
|
||||||
qdev_prop_set_chr(usartdev, "chardev", i < MAX_SERIAL_PORTS ? serial_hds[i] : NULL);
|
qdev_prop_set_chr(dev, "chardev",
|
||||||
|
i < MAX_SERIAL_PORTS ? serial_hds[i] : NULL);
|
||||||
object_property_set_bool(OBJECT(&s->usart[i]), true, "realized", &err);
|
object_property_set_bool(OBJECT(&s->usart[i]), true, "realized", &err);
|
||||||
if (err != NULL) {
|
if (err != NULL) {
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
usartbusdev = SYS_BUS_DEVICE(usartdev);
|
busdev = SYS_BUS_DEVICE(dev);
|
||||||
sysbus_mmio_map(usartbusdev, 0, usart_addr[i]);
|
sysbus_mmio_map(busdev, 0, usart_addr[i]);
|
||||||
sysbus_connect_irq(usartbusdev, 0,
|
sysbus_connect_irq(busdev, 0, qdev_get_gpio_in(nvic, usart_irq[i]));
|
||||||
qdev_get_gpio_in(nvic, usart_irq[i]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Timer 2 to 5 */
|
/* Timer 2 to 5 */
|
||||||
for (i = 0; i < STM_NUM_TIMERS; i++) {
|
for (i = 0; i < STM_NUM_TIMERS; i++) {
|
||||||
timerdev = DEVICE(&(s->timer[i]));
|
dev = DEVICE(&(s->timer[i]));
|
||||||
qdev_prop_set_uint64(timerdev, "clock-frequency", 1000000000);
|
qdev_prop_set_uint64(dev, "clock-frequency", 1000000000);
|
||||||
object_property_set_bool(OBJECT(&s->timer[i]), true, "realized", &err);
|
object_property_set_bool(OBJECT(&s->timer[i]), true, "realized", &err);
|
||||||
if (err != NULL) {
|
if (err != NULL) {
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
timerbusdev = SYS_BUS_DEVICE(timerdev);
|
busdev = SYS_BUS_DEVICE(dev);
|
||||||
sysbus_mmio_map(timerbusdev, 0, timer_addr[i]);
|
sysbus_mmio_map(busdev, 0, timer_addr[i]);
|
||||||
sysbus_connect_irq(timerbusdev, 0,
|
sysbus_connect_irq(busdev, 0, qdev_get_gpio_in(nvic, timer_irq[i]));
|
||||||
qdev_get_gpio_in(nvic, timer_irq[i]));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue