Lines Matching refs:sms

159 static uint64_t sbsa_ref_cpu_mp_affinity(SBSAMachineState *sms, int idx)  in sbsa_ref_cpu_mp_affinity()  argument
165 static void sbsa_fdt_add_gic_node(SBSAMachineState *sms) in sbsa_fdt_add_gic_node() argument
170 qemu_fdt_add_subnode(sms->fdt, intc_nodename); in sbsa_fdt_add_gic_node()
171 qemu_fdt_setprop_sized_cells(sms->fdt, intc_nodename, "reg", in sbsa_fdt_add_gic_node()
177 qemu_fdt_add_subnode(sms->fdt, its_nodename); in sbsa_fdt_add_gic_node()
178 qemu_fdt_setprop_sized_cells(sms->fdt, its_nodename, "reg", in sbsa_fdt_add_gic_node()
189 static void create_fdt(SBSAMachineState *sms) in create_fdt() argument
191 void *fdt = create_device_tree(&sms->fdt_size); in create_fdt()
192 const MachineState *ms = MACHINE(sms); in create_fdt()
201 sms->fdt = fdt; in create_fdt()
255 qemu_fdt_add_subnode(sms->fdt, "/cpus"); in create_fdt()
256 qemu_fdt_setprop_cell(sms->fdt, "/cpus", "#address-cells", 2); in create_fdt()
257 qemu_fdt_setprop_cell(sms->fdt, "/cpus", "#size-cells", 0x0); in create_fdt()
259 for (cpu = sms->smp_cpus - 1; cpu >= 0; cpu--) { in create_fdt()
263 uint64_t mpidr = sbsa_ref_cpu_mp_affinity(sms, cpu); in create_fdt()
265 qemu_fdt_add_subnode(sms->fdt, nodename); in create_fdt()
266 qemu_fdt_setprop_u64(sms->fdt, nodename, "reg", mpidr); in create_fdt()
269 qemu_fdt_setprop_cell(sms->fdt, nodename, "numa-node-id", in create_fdt()
277 qemu_fdt_add_subnode(sms->fdt, "/cpus/topology"); in create_fdt()
279 qemu_fdt_setprop_cell(sms->fdt, "/cpus/topology", "sockets", ms->smp.sockets); in create_fdt()
280 qemu_fdt_setprop_cell(sms->fdt, "/cpus/topology", "clusters", ms->smp.clusters); in create_fdt()
281 qemu_fdt_setprop_cell(sms->fdt, "/cpus/topology", "cores", ms->smp.cores); in create_fdt()
282 qemu_fdt_setprop_cell(sms->fdt, "/cpus/topology", "threads", ms->smp.threads); in create_fdt()
284 sbsa_fdt_add_gic_node(sms); in create_fdt()
289 static PFlashCFI01 *sbsa_flash_create1(SBSAMachineState *sms, in sbsa_flash_create1() argument
308 object_property_add_child(OBJECT(sms), name, OBJECT(dev)); in sbsa_flash_create1()
309 object_property_add_alias(OBJECT(sms), alias_prop_name, in sbsa_flash_create1()
314 static void sbsa_flash_create(SBSAMachineState *sms) in sbsa_flash_create() argument
316 sms->flash[0] = sbsa_flash_create1(sms, "sbsa.flash0", "pflash0"); in sbsa_flash_create()
317 sms->flash[1] = sbsa_flash_create1(sms, "sbsa.flash1", "pflash1"); in sbsa_flash_create()
336 static void sbsa_flash_map(SBSAMachineState *sms, in sbsa_flash_map() argument
349 sbsa_flash_map1(sms->flash[0], flashbase, flashsize, in sbsa_flash_map()
351 sbsa_flash_map1(sms->flash[1], flashbase + flashsize, flashsize, in sbsa_flash_map()
355 static bool sbsa_firmware_init(SBSAMachineState *sms, in sbsa_firmware_init() argument
364 for (i = 0; i < ARRAY_SIZE(sms->flash); i++) { in sbsa_firmware_init()
365 pflash_cfi01_legacy_drive(sms->flash[i], in sbsa_firmware_init()
369 sbsa_flash_map(sms, sysmem, secure_sysmem); in sbsa_firmware_init()
371 pflash_blk0 = pflash_cfi01_get_blk(sms->flash[0]); in sbsa_firmware_init()
373 bios_name = MACHINE(sms)->firmware; in sbsa_firmware_init()
393 mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(sms->flash[0]), 0); in sbsa_firmware_init()
405 static void create_secure_ram(SBSAMachineState *sms, in create_secure_ram() argument
417 static void create_its(SBSAMachineState *sms) in create_its() argument
424 object_property_set_link(OBJECT(dev), "parent-gicv3", OBJECT(sms->gic), in create_its()
430 static void create_gic(SBSAMachineState *sms, MemoryRegion *mem) in create_gic() argument
432 unsigned int smp_cpus = MACHINE(sms)->smp.cpus; in create_gic()
441 sms->gic = qdev_new(gictype); in create_gic()
442 qdev_prop_set_uint32(sms->gic, "revision", 3); in create_gic()
443 qdev_prop_set_uint32(sms->gic, "num-cpu", smp_cpus); in create_gic()
448 qdev_prop_set_uint32(sms->gic, "num-irq", NUM_IRQS + 32); in create_gic()
449 qdev_prop_set_bit(sms->gic, "has-security-extensions", true); in create_gic()
457 qdev_prop_set_array(sms->gic, "redist-region-count", redist_region_count); in create_gic()
459 object_property_set_link(OBJECT(sms->gic), "sysmem", in create_gic()
461 qdev_prop_set_bit(sms->gic, "has-lpi", true); in create_gic()
463 gicbusdev = SYS_BUS_DEVICE(sms->gic); in create_gic()
493 qdev_get_gpio_in(sms->gic, in create_gic()
498 qdev_get_gpio_in(sms->gic, in create_gic()
503 qdev_get_gpio_in(sms->gic, in create_gic()
515 create_its(sms); in create_gic()
518 static void create_uart(const SBSAMachineState *sms, int uart, in create_uart() argument
530 sysbus_connect_irq(s, 0, qdev_get_gpio_in(sms->gic, irq)); in create_uart()
533 static void create_rtc(const SBSAMachineState *sms) in create_rtc() argument
538 sysbus_create_simple("pl031", base, qdev_get_gpio_in(sms->gic, irq)); in create_rtc()
541 static void create_wdt(const SBSAMachineState *sms) in create_wdt() argument
553 sysbus_connect_irq(s, 0, qdev_get_gpio_in(sms->gic, irq)); in create_wdt()
567 static void create_gpio(const SBSAMachineState *sms) in create_gpio() argument
574 qdev_get_gpio_in(sms->gic, irq)); in create_gpio()
583 static void create_ahci(const SBSAMachineState *sms) in create_ahci() argument
595 sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, qdev_get_gpio_in(sms->gic, irq)); in create_ahci()
602 static void create_xhci(const SBSAMachineState *sms) in create_xhci() argument
611 sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, qdev_get_gpio_in(sms->gic, irq)); in create_xhci()
614 static void create_smmu(const SBSAMachineState *sms, PCIBus *bus) in create_smmu() argument
630 qdev_get_gpio_in(sms->gic, irq + i)); in create_smmu()
634 static void create_pcie(SBSAMachineState *sms) in create_pcie() argument
644 MachineClass *mc = MACHINE_GET_CLASS(sms); in create_pcie()
680 qdev_get_gpio_in(sms->gic, irq + i)); in create_pcie()
690 create_smmu(sms, pci->bus); in create_pcie()
716 SBSAMachineState *sms = SBSA_MACHINE(machine); in sbsa_ref_init() local
739 firmware_loaded = sbsa_firmware_init(sms, sysmem, secure_sysmem); in sbsa_ref_init()
745 sms->psci_conduit = QEMU_PSCI_CONDUIT_DISABLED; in sbsa_ref_init()
756 sms->smp_cpus = smp_cpus; in sbsa_ref_init()
803 create_fdt(sms); in sbsa_ref_init()
805 create_secure_ram(sms, secure_sysmem); in sbsa_ref_init()
807 create_gic(sms, sysmem); in sbsa_ref_init()
809 create_uart(sms, SBSA_UART, sysmem, serial_hd(0)); in sbsa_ref_init()
810 create_uart(sms, SBSA_SECURE_UART, secure_sysmem, serial_hd(1)); in sbsa_ref_init()
812 create_uart(sms, SBSA_SECURE_UART_MM, secure_sysmem, serial_hd(2)); in sbsa_ref_init()
814 create_rtc(sms); in sbsa_ref_init()
816 create_wdt(sms); in sbsa_ref_init()
818 create_gpio(sms); in sbsa_ref_init()
820 create_ahci(sms); in sbsa_ref_init()
822 create_xhci(sms); in sbsa_ref_init()
824 create_pcie(sms); in sbsa_ref_init()
828 sms->bootinfo.ram_size = machine->ram_size; in sbsa_ref_init()
829 sms->bootinfo.board_id = -1; in sbsa_ref_init()
830 sms->bootinfo.loader_start = sbsa_ref_memmap[SBSA_MEM].base; in sbsa_ref_init()
831 sms->bootinfo.get_dtb = sbsa_ref_dtb; in sbsa_ref_init()
832 sms->bootinfo.firmware_loaded = firmware_loaded; in sbsa_ref_init()
833 arm_load_kernel(ARM_CPU(first_cpu), machine, &sms->bootinfo); in sbsa_ref_init()
839 SBSAMachineState *sms = SBSA_MACHINE(ms); in sbsa_ref_possible_cpu_arch_ids() local
853 sbsa_ref_cpu_mp_affinity(sms, n); in sbsa_ref_possible_cpu_arch_ids()
878 SBSAMachineState *sms = SBSA_MACHINE(obj); in sbsa_ref_instance_init() local
880 sbsa_flash_create(sms); in sbsa_ref_instance_init()