static void xlnx_zynqmp_ipi_init(Object *obj) { XlnxZynqMPIPI *s = XLNX_ZYNQMP_IPI(obj); DeviceState *dev = DEVICE(obj); SysBusDevice *sbd = SYS_BUS_DEVICE(obj); RegisterInfoArray *reg_array; char *irq_name; int i; memory_region_init(&s->iomem, obj, TYPE_XLNX_ZYNQMP_IPI, R_XLNX_ZYNQMP_IPI_MAX * 4); reg_array = register_init_block32(DEVICE(obj), xlnx_zynqmp_ipi_regs_info, ARRAY_SIZE(xlnx_zynqmp_ipi_regs_info), s->regs_info, s->regs, &xlnx_zynqmp_ipi_ops, XLNX_ZYNQMP_IPI_ERR_DEBUG, R_XLNX_ZYNQMP_IPI_MAX * 4); memory_region_add_subregion(&s->iomem, 0x0, ®_array->mem); sysbus_init_mmio(sbd, &s->iomem); sysbus_init_irq(sbd, &s->irq); for (i = 0; i < NUM_IPIS; i++) { qdev_init_gpio_out_named(dev, &s->irq_trig_out[i], index_array_names[i], 1); irq_name = g_strdup_printf("OBS_%s", index_array_names[i]); qdev_init_gpio_out_named(dev, &s->irq_obs_out[i], irq_name, 1); g_free(irq_name); } }
static void pmc_anlg_init(Object *obj) { PmcAnalog *s = PMC_ANALOG(obj); SysBusDevice *sbd = SYS_BUS_DEVICE(obj); RegisterInfoArray *reg_array; memory_region_init(&s->iomem, obj, TYPE_PMC_ANALOG, PMC_ANLG_R_MAX * 4); reg_array = register_init_block32(DEVICE(obj), pmc_anlg_regs_info, ARRAY_SIZE(pmc_anlg_regs_info), s->regs_info, s->regs, &pmc_anlg_ops, PMC_ANALOG_ERR_DEBUG, PMC_ANLG_R_MAX * 4); memory_region_add_subregion(&s->iomem, 0x0, ®_array->mem); sysbus_init_mmio(sbd, &s->iomem); sysbus_init_irq(sbd, &s->irq_pmc_anlg_imr); }
static void xpio_dci_component_init(Object *obj) { XPIO_DCI_COMPONENT *s = XILINX_XPIO_DCI_COMPONENT(obj); SysBusDevice *sbd = SYS_BUS_DEVICE(obj); RegisterInfoArray *reg_array; memory_region_init(&s->iomem, obj, TYPE_XILINX_XPIO_DCI_COMPONENT, XPIO_DCI_COMPONENT_R_MAX * 4); reg_array = register_init_block32(DEVICE(obj), xpio_dci_component_regs_info, ARRAY_SIZE(xpio_dci_component_regs_info), s->regs_info, s->regs, &xpio_dci_component_ops, XILINX_XPIO_DCI_COMPONENT_ERR_DEBUG, XPIO_DCI_COMPONENT_R_MAX * 4); memory_region_add_subregion(&s->iomem, 0x0, ®_array->mem); sysbus_init_mmio(sbd, &s->iomem); }
static void pmc_tamper_init(Object *obj) { PmcTamper *s = XILINX_PMC_TAMPER(obj); SysBusDevice *sbd = SYS_BUS_DEVICE(obj); RegisterInfoArray *reg_array; unsigned int i; for (i = 0; i < ARRAY_SIZE(s->iomem); i++) { memory_region_init(&s->iomem[i], obj, TYPE_XILINX_PMC_TAMPER, R_MAX * 4); reg_array = register_init_block32(DEVICE(obj), pmc_tamper_regs_info, ARRAY_SIZE(pmc_tamper_regs_info), s->regs_info, s->regs, &pmc_tamper_ops, XILINX_PMC_TAMPER_ERR_DEBUG, R_MAX * 4); memory_region_add_subregion(&s->iomem[i], 0x0, ®_array->mem); sysbus_init_mmio(sbd, &s->iomem[i]); } }