Lines Matching refs:lvms
53 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj); in virt_get_veiointc() local
54 OnOffAuto veiointc = lvms->veiointc; in virt_get_veiointc()
62 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj); in virt_set_veiointc() local
64 visit_type_OnOffAuto(v, name, &lvms->veiointc, errp); in virt_set_veiointc()
67 static PFlashCFI01 *virt_flash_create1(LoongArchVirtMachineState *lvms, in virt_flash_create1() argument
82 object_property_add_child(OBJECT(lvms), name, OBJECT(dev)); in virt_flash_create1()
83 object_property_add_alias(OBJECT(lvms), alias_prop_name, in virt_flash_create1()
88 static void virt_flash_create(LoongArchVirtMachineState *lvms) in virt_flash_create() argument
90 lvms->flash[0] = virt_flash_create1(lvms, "virt.flash0", "pflash0"); in virt_flash_create()
91 lvms->flash[1] = virt_flash_create1(lvms, "virt.flash1", "pflash1"); in virt_flash_create()
117 static void virt_flash_map(LoongArchVirtMachineState *lvms, in virt_flash_map() argument
120 PFlashCFI01 *flash0 = lvms->flash[0]; in virt_flash_map()
121 PFlashCFI01 *flash1 = lvms->flash[1]; in virt_flash_map()
127 static void virt_build_smbios(LoongArchVirtMachineState *lvms) in virt_build_smbios() argument
129 MachineState *ms = MACHINE(lvms); in virt_build_smbios()
130 MachineClass *mc = MACHINE_GET_CLASS(lvms); in virt_build_smbios()
135 if (!lvms->fw_cfg) { in virt_build_smbios()
147 fw_cfg_add_file(lvms->fw_cfg, "etc/smbios/smbios-tables", in virt_build_smbios()
149 fw_cfg_add_file(lvms->fw_cfg, "etc/smbios/smbios-anchor", in virt_build_smbios()
156 LoongArchVirtMachineState *lvms = container_of(notifier, in virt_done() local
158 virt_build_smbios(lvms); in virt_done()
159 virt_acpi_setup(lvms); in virt_done()
160 virt_fdt_setup(lvms); in virt_done()
188 LoongArchVirtMachineState *lvms) in create_acpi_ged() argument
191 MachineState *ms = MACHINE(lvms); in create_acpi_ged()
192 MachineClass *mc = MACHINE_GET_CLASS(lvms); in create_acpi_ged()
249 LoongArchVirtMachineState *lvms) in virt_devices_init() argument
251 MachineClass *mc = MACHINE_GET_CLASS(lvms); in virt_devices_init()
263 lvms->pci_bus = pci_bus; in virt_devices_init()
320 lvms->acpi_ged = create_acpi_ged(pch_pic, lvms); in virt_devices_init()
322 lvms->platform_bus_dev = create_platform_bus(pch_pic); in virt_devices_init()
325 static void virt_cpu_irq_init(LoongArchVirtMachineState *lvms) in virt_cpu_irq_init() argument
328 MachineState *ms = MACHINE(lvms); in virt_cpu_irq_init()
341 hotplug_handler_plug(HOTPLUG_HANDLER(lvms->ipi), DEVICE(cs), in virt_cpu_irq_init()
343 hotplug_handler_plug(HOTPLUG_HANDLER(lvms->extioi), DEVICE(cs), in virt_cpu_irq_init()
348 static void virt_irq_init(LoongArchVirtMachineState *lvms) in virt_irq_init() argument
401 lvms->ipi = ipi; in virt_irq_init()
405 memory_region_add_subregion(&lvms->system_iocsr, SMP_IPI_MAILBOX, in virt_irq_init()
407 memory_region_add_subregion(&lvms->system_iocsr, MAIL_SEND_ADDR, in virt_irq_init()
412 lvms->extioi = extioi; in virt_irq_init()
413 if (virt_is_veiointc_enabled(lvms)) { in virt_irq_init()
417 memory_region_add_subregion(&lvms->system_iocsr, APIC_BASE, in virt_irq_init()
419 if (virt_is_veiointc_enabled(lvms)) { in virt_irq_init()
420 memory_region_add_subregion(&lvms->system_iocsr, EXTIOI_VIRT_BASE, in virt_irq_init()
424 virt_cpu_irq_init(lvms); in virt_irq_init()
452 virt_devices_init(pch_pic, lvms); in virt_irq_init()
455 static void virt_firmware_init(LoongArchVirtMachineState *lvms) in virt_firmware_init() argument
457 char *filename = MACHINE(lvms)->firmware; in virt_firmware_init()
463 lvms->bios_loaded = false; in virt_firmware_init()
466 for (i = 0; i < ARRAY_SIZE(lvms->flash); i++) { in virt_firmware_init()
467 pflash_cfi01_legacy_drive(lvms->flash[i], in virt_firmware_init()
471 virt_flash_map(lvms, get_system_memory()); in virt_firmware_init()
473 pflash_blk0 = pflash_cfi01_get_blk(lvms->flash[0]); in virt_firmware_init()
481 lvms->bios_loaded = true; in virt_firmware_init()
492 mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(lvms->flash[0]), 0); in virt_firmware_init()
499 lvms->bios_loaded = true; in virt_firmware_init()
507 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(opaque); in virt_iocsr_misc_write() local
512 if (!virt_is_veiointc_enabled(lvms)) { in virt_iocsr_misc_write()
516 features = address_space_ldl(&lvms->as_iocsr, in virt_iocsr_misc_write()
526 address_space_stl(&lvms->as_iocsr, in virt_iocsr_misc_write()
541 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(opaque); in virt_iocsr_misc_read() local
562 if (!virt_is_veiointc_enabled(lvms)) { in virt_iocsr_misc_read()
567 features = address_space_ldl(&lvms->as_iocsr, in virt_iocsr_misc_read()
659 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(machine); in virt_init() local
670 memory_region_init_io(&lvms->system_iocsr, OBJECT(machine), NULL, in virt_init()
672 address_space_init(&lvms->as_iocsr, &lvms->system_iocsr, "IOCSR"); in virt_init()
673 memory_region_init_io(&lvms->iocsr_mem, OBJECT(machine), in virt_init()
676 memory_region_add_subregion(&lvms->system_iocsr, 0, &lvms->iocsr_mem); in virt_init()
698 memory_region_init_alias(&lvms->lowmem, NULL, "loongarch.lowram", in virt_init()
700 memory_region_add_subregion(address_space_mem, base, &lvms->lowmem); in virt_init()
704 memory_region_init_alias(&lvms->highmem, NULL, "loongarch.highram", in virt_init()
706 memory_region_add_subregion(address_space_mem, base, &lvms->highmem); in virt_init()
730 virt_firmware_init(lvms); in virt_init()
733 lvms->fw_cfg = virt_fw_cfg_init(ram_size, machine); in virt_init()
734 rom_set_fw(lvms->fw_cfg); in virt_init()
735 if (lvms->fw_cfg != NULL) { in virt_init()
736 fw_cfg_add_file(lvms->fw_cfg, "etc/memmap", in virt_init()
742 virt_irq_init(lvms); in virt_init()
743 lvms->machine_done.notify = virt_done; in virt_init()
744 qemu_add_machine_init_done_notifier(&lvms->machine_done); in virt_init()
746 lvms->powerdown_notifier.notify = virt_powerdown_req; in virt_init()
747 qemu_register_powerdown_notifier(&lvms->powerdown_notifier); in virt_init()
749 lvms->bootinfo.ram_size = ram_size; in virt_init()
750 loongarch_load_kernel(machine, &lvms->bootinfo); in virt_init()
756 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj); in virt_get_acpi() local
757 OnOffAuto acpi = lvms->acpi; in virt_get_acpi()
765 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj); in virt_set_acpi() local
767 visit_type_OnOffAuto(v, name, &lvms->acpi, errp); in virt_set_acpi()
772 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj); in virt_get_oem_id() local
774 return g_strdup(lvms->oem_id); in virt_get_oem_id()
779 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj); in virt_set_oem_id() local
788 strncpy(lvms->oem_id, value, 6); in virt_set_oem_id()
793 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj); in virt_get_oem_table_id() local
795 return g_strdup(lvms->oem_table_id); in virt_get_oem_table_id()
801 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj); in virt_set_oem_table_id() local
809 strncpy(lvms->oem_table_id, value, 8); in virt_set_oem_table_id()
814 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj); in virt_initfn() local
817 lvms->veiointc = ON_OFF_AUTO_OFF; in virt_initfn()
819 lvms->acpi = ON_OFF_AUTO_AUTO; in virt_initfn()
820 lvms->oem_id = g_strndup(ACPI_BUILD_APPNAME6, 6); in virt_initfn()
821 lvms->oem_table_id = g_strndup(ACPI_BUILD_APPNAME8, 8); in virt_initfn()
822 virt_flash_create(lvms); in virt_initfn()
896 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev); in virt_cpu_pre_plug() local
904 if (lvms->acpi_ged) { in virt_cpu_pre_plug()
949 cpu->env.address_space_iocsr = &lvms->as_iocsr; in virt_cpu_pre_plug()
958 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev); in virt_cpu_unplug_request() local
969 hotplug_handler_unplug_request(HOTPLUG_HANDLER(lvms->acpi_ged), dev, errp); in virt_cpu_unplug_request()
977 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev); in virt_cpu_unplug() local
980 hotplug_handler_unplug(HOTPLUG_HANDLER(lvms->ipi), dev, &error_abort); in virt_cpu_unplug()
981 hotplug_handler_unplug(HOTPLUG_HANDLER(lvms->extioi), dev, &error_abort); in virt_cpu_unplug()
984 hotplug_handler_unplug(HOTPLUG_HANDLER(lvms->acpi_ged), dev, &error_abort); in virt_cpu_unplug()
986 cpu_slot = virt_find_cpu_slot(MACHINE(lvms), cpu->phy_id); in virt_cpu_unplug()
995 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev); in virt_cpu_plug() local
997 if (lvms->ipi) { in virt_cpu_plug()
998 hotplug_handler_plug(HOTPLUG_HANDLER(lvms->ipi), dev, &error_abort); in virt_cpu_plug()
1001 if (lvms->extioi) { in virt_cpu_plug()
1002 hotplug_handler_plug(HOTPLUG_HANDLER(lvms->extioi), dev, &error_abort); in virt_cpu_plug()
1005 if (lvms->acpi_ged) { in virt_cpu_plug()
1006 hotplug_handler_plug(HOTPLUG_HANDLER(lvms->acpi_ged), dev, in virt_cpu_plug()
1010 cpu_slot = virt_find_cpu_slot(MACHINE(lvms), cpu->phy_id); in virt_cpu_plug()
1040 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev); in virt_mem_unplug_request() local
1043 hotplug_handler_unplug_request(HOTPLUG_HANDLER(lvms->acpi_ged), dev, in virt_mem_unplug_request()
1060 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev); in virt_mem_unplug() local
1062 hotplug_handler_unplug(HOTPLUG_HANDLER(lvms->acpi_ged), dev, errp); in virt_mem_unplug()
1063 pc_dimm_unplug(PC_DIMM(dev), MACHINE(lvms)); in virt_mem_unplug()
1080 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev); in virt_mem_plug() local
1082 pc_dimm_plug(PC_DIMM(dev), MACHINE(lvms)); in virt_mem_plug()
1083 hotplug_handler_plug(HOTPLUG_HANDLER(lvms->acpi_ged), in virt_mem_plug()
1090 LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(hotplug_dev); in virt_device_plug_cb() local
1091 MachineClass *mc = MACHINE_GET_CLASS(lvms); in virt_device_plug_cb()
1095 if (lvms->platform_bus_dev) { in virt_device_plug_cb()
1096 pbus = PLATFORM_BUS_DEVICE(lvms->platform_bus_dev); in virt_device_plug_cb()