Lines Matching +full:canfd +full:- +full:2

8  * it under the terms of the GNU General Public License version 2 or
24 #include "hw/arm/xlnx-versal.h"
26 #include "target/arm/cpu-qom.h"
29 #define XLNX_VERSAL_ACPU_TYPE ARM_CPU_TYPE_NAME("cortex-a72")
30 #define XLNX_VERSAL_RCPU_TYPE ARM_CPU_TYPE_NAME("cortex-r5f")
40 object_initialize_child(OBJECT(s), "apu-cluster", &s->fpd.apu.cluster, in versal_create_apu_cpus()
42 qdev_prop_set_uint32(DEVICE(&s->fpd.apu.cluster), "cluster-id", 0); in versal_create_apu_cpus()
44 for (i = 0; i < ARRAY_SIZE(s->fpd.apu.cpu); i++) { in versal_create_apu_cpus()
47 object_initialize_child(OBJECT(&s->fpd.apu.cluster), in versal_create_apu_cpus()
48 "apu-cpu[*]", &s->fpd.apu.cpu[i], in versal_create_apu_cpus()
50 obj = OBJECT(&s->fpd.apu.cpu[i]); in versal_create_apu_cpus()
52 /* Secondary CPUs start in powered-down state */ in versal_create_apu_cpus()
53 object_property_set_bool(obj, "start-powered-off", true, in versal_create_apu_cpus()
57 object_property_set_int(obj, "core-count", ARRAY_SIZE(s->fpd.apu.cpu), in versal_create_apu_cpus()
59 object_property_set_link(obj, "memory", OBJECT(&s->fpd.apu.mr), in versal_create_apu_cpus()
64 qdev_realize(DEVICE(&s->fpd.apu.cluster), NULL, &error_fatal); in versal_create_apu_cpus()
76 int nr_apu_cpus = ARRAY_SIZE(s->fpd.apu.cpu); in versal_create_apu_gic()
79 object_initialize_child(OBJECT(s), "apu-gic", &s->fpd.apu.gic, in versal_create_apu_gic()
81 gicbusdev = SYS_BUS_DEVICE(&s->fpd.apu.gic); in versal_create_apu_gic()
82 gicdev = DEVICE(&s->fpd.apu.gic); in versal_create_apu_gic()
84 qdev_prop_set_uint32(gicdev, "num-cpu", nr_apu_cpus); in versal_create_apu_gic()
85 qdev_prop_set_uint32(gicdev, "num-irq", XLNX_VERSAL_NR_IRQS + 32); in versal_create_apu_gic()
89 qdev_prop_set_array(gicdev, "redist-region-count", redist_region_count); in versal_create_apu_gic()
91 qdev_prop_set_bit(gicdev, "has-security-extensions", true); in versal_create_apu_gic()
93 sysbus_realize(SYS_BUS_DEVICE(&s->fpd.apu.gic), &error_fatal); in versal_create_apu_gic()
99 memory_region_add_subregion(&s->fpd.apu.mr, addrs[i], mr); in versal_create_apu_gic()
103 DeviceState *cpudev = DEVICE(&s->fpd.apu.cpu[i]); in versal_create_apu_gic()
124 qdev_connect_gpio_out_named(cpudev, "gicv3-maintenance-interrupt", in versal_create_apu_gic()
129 sysbus_connect_irq(gicbusdev, i + 2 * nr_apu_cpus, in versal_create_apu_gic()
144 object_initialize_child(OBJECT(s), "rpu-cluster", &s->lpd.rpu.cluster, in versal_create_rpu_cpus()
146 qdev_prop_set_uint32(DEVICE(&s->lpd.rpu.cluster), "cluster-id", 1); in versal_create_rpu_cpus()
148 for (i = 0; i < ARRAY_SIZE(s->lpd.rpu.cpu); i++) { in versal_create_rpu_cpus()
151 object_initialize_child(OBJECT(&s->lpd.rpu.cluster), in versal_create_rpu_cpus()
152 "rpu-cpu[*]", &s->lpd.rpu.cpu[i], in versal_create_rpu_cpus()
154 obj = OBJECT(&s->lpd.rpu.cpu[i]); in versal_create_rpu_cpus()
155 object_property_set_bool(obj, "start-powered-off", true, in versal_create_rpu_cpus()
158 object_property_set_int(obj, "mp-affinity", 0x100 | i, &error_abort); in versal_create_rpu_cpus()
159 object_property_set_int(obj, "core-count", ARRAY_SIZE(s->lpd.rpu.cpu), in versal_create_rpu_cpus()
161 object_property_set_link(obj, "memory", OBJECT(&s->lpd.rpu.mr), in versal_create_rpu_cpus()
166 qdev_realize(DEVICE(&s->lpd.rpu.cluster), NULL, &error_fatal); in versal_create_rpu_cpus()
173 for (i = 0; i < ARRAY_SIZE(s->lpd.iou.uart); i++) { in versal_create_uarts()
180 object_initialize_child(OBJECT(s), name, &s->lpd.iou.uart[i], in versal_create_uarts()
182 dev = DEVICE(&s->lpd.iou.uart[i]); in versal_create_uarts()
187 memory_region_add_subregion(&s->mr_ps, addrs[i], mr); in versal_create_uarts()
200 for (i = 0; i < ARRAY_SIZE(s->lpd.iou.canfd); i++) { in versal_create_canfds()
201 char *name = g_strdup_printf("canfd%d", i); in versal_create_canfds()
205 object_initialize_child(OBJECT(s), name, &s->lpd.iou.canfd[i], in versal_create_canfds()
207 sbd = SYS_BUS_DEVICE(&s->lpd.iou.canfd[i]); in versal_create_canfds()
209 object_property_set_int(OBJECT(&s->lpd.iou.canfd[i]), "ext_clk_freq", in versal_create_canfds()
212 object_property_set_link(OBJECT(&s->lpd.iou.canfd[i]), "canfdbus", in versal_create_canfds()
213 OBJECT(s->lpd.iou.canbus[i]), in versal_create_canfds()
219 memory_region_add_subregion(&s->mr_ps, addrs[i], mr); in versal_create_canfds()
231 object_initialize_child(OBJECT(s), "usb2", &s->lpd.iou.usb, in versal_create_usbs()
233 dev = DEVICE(&s->lpd.iou.usb); in versal_create_usbs()
235 object_property_set_link(OBJECT(dev), "dma", OBJECT(&s->mr_ps), in versal_create_usbs()
238 qdev_prop_set_uint32(dev, "slots", 2); in versal_create_usbs()
243 memory_region_add_subregion(&s->mr_ps, MM_USB_0, mr); in versal_create_usbs()
248 memory_region_add_subregion(&s->mr_ps, MM_USB2_CTRL_REGS, mr); in versal_create_usbs()
255 for (i = 0; i < ARRAY_SIZE(s->lpd.iou.gem); i++) { in versal_create_gems()
263 object_initialize_child(OBJECT(s), name, &s->lpd.iou.gem[i], in versal_create_gems()
265 or_irq = &s->lpd.iou.gem_irq_orgate[i]; in versal_create_gems()
266 object_initialize_child(OBJECT(s), "gem-irq-orgate[*]", in versal_create_gems()
268 dev = DEVICE(&s->lpd.iou.gem[i]); in versal_create_gems()
270 object_property_set_int(OBJECT(dev), "phy-addr", 23, &error_abort); in versal_create_gems()
271 object_property_set_int(OBJECT(dev), "num-priority-queues", 2, in versal_create_gems()
274 "num-lines", 2, &error_fatal); in versal_create_gems()
278 object_property_set_link(OBJECT(dev), "dma", OBJECT(&s->mr_ps), in versal_create_gems()
283 memory_region_add_subregion(&s->mr_ps, addrs[i], mr); in versal_create_gems()
295 for (i = 0; i < ARRAY_SIZE(s->lpd.iou.adma); i++) { in versal_create_admas()
300 object_initialize_child(OBJECT(s), name, &s->lpd.iou.adma[i], in versal_create_admas()
302 dev = DEVICE(&s->lpd.iou.adma[i]); in versal_create_admas()
303 object_property_set_int(OBJECT(dev), "bus-width", 128, &error_abort); in versal_create_admas()
309 memory_region_add_subregion(&s->mr_ps, in versal_create_admas()
322 for (i = 0; i < ARRAY_SIZE(s->pmc.iou.sd); i++) { in versal_create_sds()
326 object_initialize_child(OBJECT(s), "sd[*]", &s->pmc.iou.sd[i], in versal_create_sds()
328 dev = DEVICE(&s->pmc.iou.sd[i]); in versal_create_sds()
330 object_property_set_uint(OBJECT(dev), "sd-spec-version", 3, in versal_create_sds()
338 memory_region_add_subregion(&s->mr_ps, in versal_create_sds()
342 pic[VERSAL_SD0_IRQ_0 + i * 2]); in versal_create_sds()
353 * - RTC in versal_create_pmc_apb_irq_orgate()
354 * - BBRAM in versal_create_pmc_apb_irq_orgate()
355 * - PMC SLCR in versal_create_pmc_apb_irq_orgate()
356 * - CFRAME regs (input 3 - 17 to the orgate) in versal_create_pmc_apb_irq_orgate()
358 object_initialize_child(OBJECT(s), "pmc-apb-irq-orgate", in versal_create_pmc_apb_irq_orgate()
359 &s->pmc.apb_irq_orgate, TYPE_OR_IRQ); in versal_create_pmc_apb_irq_orgate()
360 orgate = DEVICE(&s->pmc.apb_irq_orgate); in versal_create_pmc_apb_irq_orgate()
362 "num-lines", VERSAL_NUM_PMC_APB_IRQS, &error_fatal); in versal_create_pmc_apb_irq_orgate()
372 object_initialize_child(OBJECT(s), "rtc", &s->pmc.rtc, in versal_create_rtc()
374 sbd = SYS_BUS_DEVICE(&s->pmc.rtc); in versal_create_rtc()
378 memory_region_add_subregion(&s->mr_ps, MM_PMC_RTC, mr); in versal_create_rtc()
385 qdev_get_gpio_in(DEVICE(&s->pmc.apb_irq_orgate), 0)); in versal_create_rtc()
393 object_initialize_child(OBJECT(s), "trng", &s->pmc.trng, in versal_create_trng()
395 sbd = SYS_BUS_DEVICE(&s->pmc.trng); in versal_create_trng()
399 memory_region_add_subregion(&s->mr_ps, MM_PMC_TRNG, mr); in versal_create_trng()
405 int nr_xrams = ARRAY_SIZE(s->lpd.xram.ctrl); in versal_create_xrams()
410 object_initialize_child(OBJECT(s), "xram-irq-orgate", in versal_create_xrams()
411 &s->lpd.xram.irq_orgate, TYPE_OR_IRQ); in versal_create_xrams()
412 orgate = DEVICE(&s->lpd.xram.irq_orgate); in versal_create_xrams()
414 "num-lines", nr_xrams, &error_fatal); in versal_create_xrams()
418 for (i = 0; i < ARRAY_SIZE(s->lpd.xram.ctrl); i++) { in versal_create_xrams()
422 object_initialize_child(OBJECT(s), "xram[*]", &s->lpd.xram.ctrl[i], in versal_create_xrams()
424 sbd = SYS_BUS_DEVICE(&s->lpd.xram.ctrl[i]); in versal_create_xrams()
428 memory_region_add_subregion(&s->mr_ps, in versal_create_xrams()
431 memory_region_add_subregion(&s->mr_ps, MM_XRAM + i * MiB, mr); in versal_create_xrams()
441 object_initialize_child_with_props(OBJECT(s), "bbram", &s->pmc.bbram, in versal_create_bbram()
442 sizeof(s->pmc.bbram), TYPE_XLNX_BBRAM, in versal_create_bbram()
444 "crc-zpads", "0", in versal_create_bbram()
446 sbd = SYS_BUS_DEVICE(&s->pmc.bbram); in versal_create_bbram()
449 memory_region_add_subregion(&s->mr_ps, MM_PMC_BBRAM_CTRL, in versal_create_bbram()
452 qdev_get_gpio_in(DEVICE(&s->pmc.apb_irq_orgate), 1)); in versal_create_bbram()
460 OBJECT(&s->pmc.efuse), &error_abort); in versal_realize_efuse_part()
463 memory_region_add_subregion(&s->mr_ps, base, in versal_realize_efuse_part()
469 Object *bits = OBJECT(&s->pmc.efuse); in versal_create_efuse()
470 Object *ctrl = OBJECT(&s->pmc.efuse_ctrl); in versal_create_efuse()
471 Object *cache = OBJECT(&s->pmc.efuse_cache); in versal_create_efuse()
473 object_initialize_child(OBJECT(s), "efuse-ctrl", &s->pmc.efuse_ctrl, in versal_create_efuse()
476 object_initialize_child(OBJECT(s), "efuse-cache", &s->pmc.efuse_cache, in versal_create_efuse()
479 object_initialize_child_with_props(ctrl, "xlnx-efuse@0", bits, in versal_create_efuse()
480 sizeof(s->pmc.efuse), in versal_create_efuse()
482 "efuse-nr", "3", in versal_create_efuse()
483 "efuse-size", "8192", in versal_create_efuse()
497 object_initialize_child(OBJECT(s), "versal-pmc-iou-slcr", &s->pmc.iou.slcr, in versal_create_pmc_iou_slcr()
500 sbd = SYS_BUS_DEVICE(&s->pmc.iou.slcr); in versal_create_pmc_iou_slcr()
503 memory_region_add_subregion(&s->mr_ps, MM_PMC_PMC_IOU_SLCR, in versal_create_pmc_iou_slcr()
507 qdev_get_gpio_in(DEVICE(&s->pmc.apb_irq_orgate), 2)); in versal_create_pmc_iou_slcr()
517 memory_region_init(&s->pmc.iou.ospi.linear_mr, OBJECT(s), in versal_create_ospi()
518 "versal-ospi-linear-mr" , MM_PMC_OSPI_DAC_SIZE); in versal_create_ospi()
520 object_initialize_child(OBJECT(s), "versal-ospi", &s->pmc.iou.ospi.ospi, in versal_create_ospi()
523 mr_dac = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->pmc.iou.ospi.ospi), 1); in versal_create_ospi()
524 memory_region_add_subregion(&s->pmc.iou.ospi.linear_mr, 0x0, mr_dac); in versal_create_ospi()
527 object_initialize_child(OBJECT(s), "versal-ospi-dma-dst", in versal_create_ospi()
528 &s->pmc.iou.ospi.dma_dst, in versal_create_ospi()
531 object_property_set_link(OBJECT(&s->pmc.iou.ospi.dma_dst), in versal_create_ospi()
535 sbd = SYS_BUS_DEVICE(&s->pmc.iou.ospi.dma_dst); in versal_create_ospi()
538 memory_region_add_subregion(&s->mr_ps, MM_PMC_OSPI_DMA_DST, in versal_create_ospi()
542 object_initialize_child(OBJECT(s), "versal-ospi-dma-src", in versal_create_ospi()
543 &s->pmc.iou.ospi.dma_src, in versal_create_ospi()
546 object_property_set_bool(OBJECT(&s->pmc.iou.ospi.dma_src), "is-dst", in versal_create_ospi()
549 object_property_set_link(OBJECT(&s->pmc.iou.ospi.dma_src), in versal_create_ospi()
552 object_property_set_link(OBJECT(&s->pmc.iou.ospi.dma_src), in versal_create_ospi()
553 "stream-connected-dma", in versal_create_ospi()
554 OBJECT(&s->pmc.iou.ospi.dma_dst), in versal_create_ospi()
557 sbd = SYS_BUS_DEVICE(&s->pmc.iou.ospi.dma_src); in versal_create_ospi()
560 memory_region_add_subregion(&s->mr_ps, MM_PMC_OSPI_DMA_SRC, in versal_create_ospi()
564 object_property_set_link(OBJECT(&s->pmc.iou.ospi.ospi), "dma-src", in versal_create_ospi()
565 OBJECT(&s->pmc.iou.ospi.dma_src), &error_abort); in versal_create_ospi()
567 sbd = SYS_BUS_DEVICE(&s->pmc.iou.ospi.ospi); in versal_create_ospi()
570 memory_region_add_subregion(&s->mr_ps, MM_PMC_OSPI, in versal_create_ospi()
573 memory_region_add_subregion(&s->mr_ps, MM_PMC_OSPI_DAC, in versal_create_ospi()
574 &s->pmc.iou.ospi.linear_mr); in versal_create_ospi()
577 ospi_mux_sel = qdev_get_gpio_in_named(DEVICE(&s->pmc.iou.ospi.ospi), in versal_create_ospi()
578 "ospi-mux-sel", 0); in versal_create_ospi()
579 qdev_connect_gpio_out_named(DEVICE(&s->pmc.iou.slcr), "ospi-mux-sel", 0, in versal_create_ospi()
583 object_initialize_child(OBJECT(s), "ospi-irq-orgate", in versal_create_ospi()
584 &s->pmc.iou.ospi.irq_orgate, TYPE_OR_IRQ); in versal_create_ospi()
585 object_property_set_int(OBJECT(&s->pmc.iou.ospi.irq_orgate), in versal_create_ospi()
586 "num-lines", NUM_OSPI_IRQ_LINES, &error_fatal); in versal_create_ospi()
588 orgate = DEVICE(&s->pmc.iou.ospi.irq_orgate); in versal_create_ospi()
591 sysbus_connect_irq(SYS_BUS_DEVICE(&s->pmc.iou.ospi.ospi), 0, in versal_create_ospi()
593 sysbus_connect_irq(SYS_BUS_DEVICE(&s->pmc.iou.ospi.dma_src), 0, in versal_create_ospi()
595 sysbus_connect_irq(SYS_BUS_DEVICE(&s->pmc.iou.ospi.dma_dst), 0, in versal_create_ospi()
596 qdev_get_gpio_in(orgate, 2)); in versal_create_ospi()
637 [2] = { 38498, 3841, 15361, 13, 7, 3, 1 }, in versal_create_cfu()
642 object_initialize_child(OBJECT(s), "cfu-fdro", &s->pmc.cfu_fdro, in versal_create_cfu()
644 sbd = SYS_BUS_DEVICE(&s->pmc.cfu_fdro); in versal_create_cfu()
647 memory_region_add_subregion(&s->mr_ps, MM_PMC_CFU_FDRO, in versal_create_cfu()
651 for (i = 0; i < ARRAY_SIZE(s->pmc.cframe); i++) { in versal_create_cfu()
654 object_initialize_child(OBJECT(s), name, &s->pmc.cframe[i], in versal_create_cfu()
657 sbd = SYS_BUS_DEVICE(&s->pmc.cframe[i]); in versal_create_cfu()
658 dev = DEVICE(&s->pmc.cframe[i]); in versal_create_cfu()
661 object_property_set_int(OBJECT(dev), "blktype0-frames", in versal_create_cfu()
664 object_property_set_int(OBJECT(dev), "blktype1-frames", in versal_create_cfu()
667 object_property_set_int(OBJECT(dev), "blktype2-frames", in versal_create_cfu()
670 object_property_set_int(OBJECT(dev), "blktype3-frames", in versal_create_cfu()
673 object_property_set_int(OBJECT(dev), "blktype4-frames", in versal_create_cfu()
676 object_property_set_int(OBJECT(dev), "blktype5-frames", in versal_create_cfu()
679 object_property_set_int(OBJECT(dev), "blktype6-frames", in versal_create_cfu()
683 object_property_set_link(OBJECT(dev), "cfu-fdro", in versal_create_cfu()
684 OBJECT(&s->pmc.cfu_fdro), &error_fatal); in versal_create_cfu()
688 memory_region_add_subregion(&s->mr_ps, cframe_addr[i].reg_base, in versal_create_cfu()
690 memory_region_add_subregion(&s->mr_ps, cframe_addr[i].fdri_base, in versal_create_cfu()
693 qdev_get_gpio_in(DEVICE(&s->pmc.apb_irq_orgate), in versal_create_cfu()
698 object_initialize_child(OBJECT(s), "cframe_bcast", &s->pmc.cframe_bcast, in versal_create_cfu()
701 sbd = SYS_BUS_DEVICE(&s->pmc.cframe_bcast); in versal_create_cfu()
702 dev = DEVICE(&s->pmc.cframe_bcast); in versal_create_cfu()
704 for (i = 0; i < ARRAY_SIZE(s->pmc.cframe); i++) { in versal_create_cfu()
707 OBJECT(&s->pmc.cframe[i]), &error_fatal); in versal_create_cfu()
712 memory_region_add_subregion(&s->mr_ps, MM_PMC_CFRAME_BCAST_REG, in versal_create_cfu()
714 memory_region_add_subregion(&s->mr_ps, MM_PMC_CFRAME_BCAST_FDRI, in versal_create_cfu()
718 object_initialize_child(OBJECT(s), "cfu-apb", &s->pmc.cfu_apb, in versal_create_cfu()
720 sbd = SYS_BUS_DEVICE(&s->pmc.cfu_apb); in versal_create_cfu()
721 dev = DEVICE(&s->pmc.cfu_apb); in versal_create_cfu()
723 for (i = 0; i < ARRAY_SIZE(s->pmc.cframe); i++) { in versal_create_cfu()
726 OBJECT(&s->pmc.cframe[i]), &error_fatal); in versal_create_cfu()
730 memory_region_add_subregion(&s->mr_ps, MM_PMC_CFU_APB, in versal_create_cfu()
732 memory_region_add_subregion(&s->mr_ps, MM_PMC_CFU_STREAM, in versal_create_cfu()
734 memory_region_add_subregion(&s->mr_ps, MM_PMC_CFU_STREAM_2, in versal_create_cfu()
735 sysbus_mmio_get_region(sbd, 2)); in versal_create_cfu()
739 object_initialize_child(OBJECT(s), "cfu-sfr", &s->pmc.cfu_sfr, in versal_create_cfu()
742 sbd = SYS_BUS_DEVICE(&s->pmc.cfu_sfr); in versal_create_cfu()
744 object_property_set_link(OBJECT(&s->pmc.cfu_sfr), in versal_create_cfu()
745 "cfu", OBJECT(&s->pmc.cfu_apb), &error_abort); in versal_create_cfu()
748 memory_region_add_subregion(&s->mr_ps, MM_PMC_CFU_SFR, in versal_create_cfu()
757 object_initialize_child(OBJECT(s), "crl", &s->lpd.crl, in versal_create_crl()
759 sbd = SYS_BUS_DEVICE(&s->lpd.crl); in versal_create_crl()
761 for (i = 0; i < ARRAY_SIZE(s->lpd.rpu.cpu); i++) { in versal_create_crl()
764 object_property_set_link(OBJECT(&s->lpd.crl), in versal_create_crl()
765 name, OBJECT(&s->lpd.rpu.cpu[i]), in versal_create_crl()
769 for (i = 0; i < ARRAY_SIZE(s->lpd.iou.gem); i++) { in versal_create_crl()
772 object_property_set_link(OBJECT(&s->lpd.crl), in versal_create_crl()
773 name, OBJECT(&s->lpd.iou.gem[i]), in versal_create_crl()
777 for (i = 0; i < ARRAY_SIZE(s->lpd.iou.adma); i++) { in versal_create_crl()
780 object_property_set_link(OBJECT(&s->lpd.crl), in versal_create_crl()
781 name, OBJECT(&s->lpd.iou.adma[i]), in versal_create_crl()
785 for (i = 0; i < ARRAY_SIZE(s->lpd.iou.uart); i++) { in versal_create_crl()
788 object_property_set_link(OBJECT(&s->lpd.crl), in versal_create_crl()
789 name, OBJECT(&s->lpd.iou.uart[i]), in versal_create_crl()
793 object_property_set_link(OBJECT(&s->lpd.crl), in versal_create_crl()
794 "usb", OBJECT(&s->lpd.iou.usb), in versal_create_crl()
798 memory_region_add_subregion(&s->mr_ps, MM_CRL, in versal_create_crl()
808 uint64_t size = memory_region_size(s->cfg.mr_ddr); in versal_map_ddr()
822 assert(ARRAY_SIZE(addr_ranges) == ARRAY_SIZE(s->noc.mr_ddr_ranges)); in versal_map_ddr()
828 name = g_strdup_printf("noc-ddr-range%d", i); in versal_map_ddr()
830 memory_region_init_alias(&s->noc.mr_ddr_ranges[i], OBJECT(s), in versal_map_ddr()
831 name, s->cfg.mr_ddr, in versal_map_ddr()
835 memory_region_add_subregion(&s->mr_ps, addr_ranges[i].base, in versal_map_ddr()
836 &s->noc.mr_ddr_ranges[i]); in versal_map_ddr()
838 size -= mapsize; in versal_map_ddr()
884 versal_unimp_area(s, "psm", &s->mr_ps, in versal_unimp()
885 MM_PSM_START, MM_PSM_END - MM_PSM_START); in versal_unimp()
886 versal_unimp_area(s, "crf", &s->mr_ps, in versal_unimp()
888 versal_unimp_area(s, "apu", &s->mr_ps, in versal_unimp()
890 versal_unimp_area(s, "crp", &s->mr_ps, in versal_unimp()
892 versal_unimp_area(s, "iou-scntr", &s->mr_ps, in versal_unimp()
894 versal_unimp_area(s, "iou-scntr-seucre", &s->mr_ps, in versal_unimp()
898 "sd-emmc-sel-dummy", 2); in versal_unimp()
900 "qspi-ospi-mux-sel-dummy", 1); in versal_unimp()
902 "irq-parity-imr-dummy", 1); in versal_unimp()
904 gpio_in = qdev_get_gpio_in_named(DEVICE(s), "sd-emmc-sel-dummy", 0); in versal_unimp()
905 qdev_connect_gpio_out_named(DEVICE(&s->pmc.iou.slcr), "sd-emmc-sel", 0, in versal_unimp()
908 gpio_in = qdev_get_gpio_in_named(DEVICE(s), "sd-emmc-sel-dummy", 1); in versal_unimp()
909 qdev_connect_gpio_out_named(DEVICE(&s->pmc.iou.slcr), "sd-emmc-sel", 1, in versal_unimp()
912 gpio_in = qdev_get_gpio_in_named(DEVICE(s), "qspi-ospi-mux-sel-dummy", 0); in versal_unimp()
913 qdev_connect_gpio_out_named(DEVICE(&s->pmc.iou.slcr), in versal_unimp()
914 "qspi-ospi-mux-sel", 0, in versal_unimp()
917 gpio_in = qdev_get_gpio_in_named(DEVICE(s), "irq-parity-imr-dummy", 0); in versal_unimp()
918 qdev_connect_gpio_out_named(DEVICE(&s->pmc.iou.slcr), in versal_unimp()
951 memory_region_init_ram(&s->lpd.mr_ocm, OBJECT(s), "ocm", in versal_realize()
954 memory_region_add_subregion_overlap(&s->mr_ps, MM_OCM, &s->lpd.mr_ocm, 0); in versal_realize()
955 memory_region_add_subregion_overlap(&s->fpd.apu.mr, 0, &s->mr_ps, 0); in versal_realize()
956 memory_region_add_subregion_overlap(&s->lpd.rpu.mr, 0, in versal_realize()
957 &s->lpd.rpu.mr_ps_alias, 0); in versal_realize()
964 memory_region_init(&s->fpd.apu.mr, obj, "mr-apu", UINT64_MAX); in versal_init()
965 memory_region_init(&s->lpd.rpu.mr, obj, "mr-rpu", UINT64_MAX); in versal_init()
966 memory_region_init(&s->mr_ps, obj, "mr-ps-switch", UINT64_MAX); in versal_init()
967 memory_region_init_alias(&s->lpd.rpu.mr_ps_alias, OBJECT(s), in versal_init()
968 "mr-rpu-ps-alias", &s->mr_ps, 0, UINT64_MAX); in versal_init()
985 dc->realize = versal_realize; in versal_class_init()
987 /* No VMSD since we haven't got any top-level SoC state to save. */ in versal_class_init()