Lines Matching +full:cpu +full:- +full:intc
20 #include "exec/address-spaces.h"
22 #include "cpu.h"
25 #include "hw/intc/xlnx-zynqmp-ipi.h"
26 #include "hw/intc/xlnx-pmu-iomod-intc.h"
31 #define TYPE_XLNX_ZYNQMP_PMU_SOC "xlnx-zynqmp-pmu-soc"
54 MicroBlazeCPU cpu; member
55 XlnxPMUIOIntc intc; member
64 object_initialize_child(obj, "pmu-cpu", &s->cpu, TYPE_MICROBLAZE_CPU); in xlnx_zynqmp_pmu_soc_init()
66 object_initialize_child(obj, "intc", &s->intc, TYPE_XLNX_PMU_IO_INTC); in xlnx_zynqmp_pmu_soc_init()
71 object_initialize_child(obj, name, &s->ipi[i], TYPE_XLNX_ZYNQMP_IPI); in xlnx_zynqmp_pmu_soc_init()
80 object_property_set_uint(OBJECT(&s->cpu), "base-vectors", in xlnx_zynqmp_pmu_soc_realize()
82 object_property_set_bool(OBJECT(&s->cpu), "use-stack-protection", true, in xlnx_zynqmp_pmu_soc_realize()
84 object_property_set_uint(OBJECT(&s->cpu), "use-fpu", 0, &error_abort); in xlnx_zynqmp_pmu_soc_realize()
85 object_property_set_uint(OBJECT(&s->cpu), "use-hw-mul", 0, &error_abort); in xlnx_zynqmp_pmu_soc_realize()
86 object_property_set_bool(OBJECT(&s->cpu), "use-barrel", true, in xlnx_zynqmp_pmu_soc_realize()
88 object_property_set_bool(OBJECT(&s->cpu), "use-msr-instr", true, in xlnx_zynqmp_pmu_soc_realize()
90 object_property_set_bool(OBJECT(&s->cpu), "use-pcmp-instr", true, in xlnx_zynqmp_pmu_soc_realize()
92 object_property_set_bool(OBJECT(&s->cpu), "use-mmu", false, &error_abort); in xlnx_zynqmp_pmu_soc_realize()
93 object_property_set_bool(OBJECT(&s->cpu), "little-endian", true, in xlnx_zynqmp_pmu_soc_realize()
95 object_property_set_str(OBJECT(&s->cpu), "version", "8.40.b", in xlnx_zynqmp_pmu_soc_realize()
97 object_property_set_uint(OBJECT(&s->cpu), "pvr", 0, &error_abort); in xlnx_zynqmp_pmu_soc_realize()
98 if (!qdev_realize(DEVICE(&s->cpu), NULL, errp)) { in xlnx_zynqmp_pmu_soc_realize()
102 object_property_set_uint(OBJECT(&s->intc), "intc-intr-size", 0x10, in xlnx_zynqmp_pmu_soc_realize()
104 object_property_set_uint(OBJECT(&s->intc), "intc-level-edge", 0x0, in xlnx_zynqmp_pmu_soc_realize()
106 object_property_set_uint(OBJECT(&s->intc), "intc-positive", 0xffff, in xlnx_zynqmp_pmu_soc_realize()
108 if (!sysbus_realize(SYS_BUS_DEVICE(&s->intc), errp)) { in xlnx_zynqmp_pmu_soc_realize()
111 sysbus_mmio_map(SYS_BUS_DEVICE(&s->intc), 0, XLNX_ZYNQMP_PMU_INTC_ADDR); in xlnx_zynqmp_pmu_soc_realize()
112 sysbus_connect_irq(SYS_BUS_DEVICE(&s->intc), 0, in xlnx_zynqmp_pmu_soc_realize()
113 qdev_get_gpio_in(DEVICE(&s->cpu), MB_CPU_IRQ)); in xlnx_zynqmp_pmu_soc_realize()
117 sysbus_realize(SYS_BUS_DEVICE(&s->ipi[i]), &error_abort); in xlnx_zynqmp_pmu_soc_realize()
118 sysbus_mmio_map(SYS_BUS_DEVICE(&s->ipi[i]), 0, ipi_addr[i]); in xlnx_zynqmp_pmu_soc_realize()
119 sysbus_connect_irq(SYS_BUS_DEVICE(&s->ipi[i]), 0, in xlnx_zynqmp_pmu_soc_realize()
120 qdev_get_gpio_in(DEVICE(&s->intc), ipi_irq[i])); in xlnx_zynqmp_pmu_soc_realize()
128 /* xlnx-zynqmp-pmu-soc causes crashes when cold-plugged twice */ in xlnx_zynqmp_pmu_soc_class_init()
129 dc->user_creatable = false; in xlnx_zynqmp_pmu_soc_class_init()
130 dc->realize = xlnx_zynqmp_pmu_soc_realize; in xlnx_zynqmp_pmu_soc_class_init()
158 memory_region_init_rom(pmu_rom, NULL, "xlnx-zynqmp-pmu.rom", in type_init()
164 memory_region_init_ram(pmu_ram, NULL, "xlnx-zynqmp-pmu.ram", in type_init()
165 machine->ram_size, &error_fatal); in type_init()
175 microblaze_load_kernel(&pmu->cpu, XLNX_ZYNQMP_PMU_RAM_ADDR, in type_init()
176 machine->ram_size, in type_init()
177 machine->initrd_filename, in type_init()
178 machine->dtb, in type_init()
185 mc->desc = "Xilinx ZynqMP PMU machine (big endian)"; in xlnx_zynqmp_pmu_machine_init()
186 mc->deprecation_reason = "big endian support is not tested"; in xlnx_zynqmp_pmu_machine_init()
188 mc->desc = "Xilinx ZynqMP PMU machine (little endian)"; in xlnx_zynqmp_pmu_machine_init()
190 mc->init = xlnx_zynqmp_pmu_init; in xlnx_zynqmp_pmu_machine_init()
193 DEFINE_MACHINE("xlnx-zynqmp-pmu", xlnx_zynqmp_pmu_machine_init)