mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
hw/arm/xlnx-versal: Connect the CFU_APB, CFU_FDRO and CFU_SFR
Connect the Configuration Frame Unit (CFU_APB, CFU_FDRO and CFU_SFR) to the Versal machine. Signed-off-by: Francisco Iglesias <francisco.iglesias@amd.com> Acked-by: Edgar E. Iglesias <edgar@zeroasic.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20230831165701.2016397-8-francisco.iglesias@amd.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
eadd3343c4
commit
b286d08aa1
2 changed files with 58 additions and 0 deletions
|
@ -570,6 +570,47 @@ static void versal_create_ospi(Versal *s, qemu_irq *pic)
|
|||
qdev_connect_gpio_out(orgate, 0, pic[VERSAL_OSPI_IRQ]);
|
||||
}
|
||||
|
||||
static void versal_create_cfu(Versal *s, qemu_irq *pic)
|
||||
{
|
||||
SysBusDevice *sbd;
|
||||
|
||||
/* CFU FDRO */
|
||||
object_initialize_child(OBJECT(s), "cfu-fdro", &s->pmc.cfu_fdro,
|
||||
TYPE_XLNX_VERSAL_CFU_FDRO);
|
||||
sbd = SYS_BUS_DEVICE(&s->pmc.cfu_fdro);
|
||||
|
||||
sysbus_realize(sbd, &error_fatal);
|
||||
memory_region_add_subregion(&s->mr_ps, MM_PMC_CFU_FDRO,
|
||||
sysbus_mmio_get_region(sbd, 0));
|
||||
|
||||
/* CFU APB */
|
||||
object_initialize_child(OBJECT(s), "cfu-apb", &s->pmc.cfu_apb,
|
||||
TYPE_XLNX_VERSAL_CFU_APB);
|
||||
sbd = SYS_BUS_DEVICE(&s->pmc.cfu_apb);
|
||||
|
||||
sysbus_realize(sbd, &error_fatal);
|
||||
memory_region_add_subregion(&s->mr_ps, MM_PMC_CFU_APB,
|
||||
sysbus_mmio_get_region(sbd, 0));
|
||||
memory_region_add_subregion(&s->mr_ps, MM_PMC_CFU_STREAM,
|
||||
sysbus_mmio_get_region(sbd, 1));
|
||||
memory_region_add_subregion(&s->mr_ps, MM_PMC_CFU_STREAM_2,
|
||||
sysbus_mmio_get_region(sbd, 2));
|
||||
sysbus_connect_irq(sbd, 0, pic[VERSAL_CFU_IRQ_0]);
|
||||
|
||||
/* CFU SFR */
|
||||
object_initialize_child(OBJECT(s), "cfu-sfr", &s->pmc.cfu_sfr,
|
||||
TYPE_XLNX_VERSAL_CFU_SFR);
|
||||
|
||||
sbd = SYS_BUS_DEVICE(&s->pmc.cfu_sfr);
|
||||
|
||||
object_property_set_link(OBJECT(&s->pmc.cfu_sfr),
|
||||
"cfu", OBJECT(&s->pmc.cfu_apb), &error_abort);
|
||||
|
||||
sysbus_realize(sbd, &error_fatal);
|
||||
memory_region_add_subregion(&s->mr_ps, MM_PMC_CFU_SFR,
|
||||
sysbus_mmio_get_region(sbd, 0));
|
||||
}
|
||||
|
||||
static void versal_create_crl(Versal *s, qemu_irq *pic)
|
||||
{
|
||||
SysBusDevice *sbd;
|
||||
|
@ -763,6 +804,7 @@ static void versal_realize(DeviceState *dev, Error **errp)
|
|||
versal_create_pmc_iou_slcr(s, pic);
|
||||
versal_create_ospi(s, pic);
|
||||
versal_create_crl(s, pic);
|
||||
versal_create_cfu(s, pic);
|
||||
versal_map_ddr(s);
|
||||
versal_unimp(s);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue