/openbmc/qemu/hw/ppc/ |
H A D | spapr_irq.c | 34 static void spapr_irq_msi_init(SpaprMachineState *spapr) in spapr_irq_msi_init() argument 36 if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { in spapr_irq_msi_init() 41 spapr->irq_map_nr = spapr_irq_nr_msis(spapr); in spapr_irq_msi_init() 42 spapr->irq_map = bitmap_new(spapr->irq_map_nr); in spapr_irq_msi_init() 45 int spapr_irq_msi_alloc(SpaprMachineState *spapr, uint32_t num, bool align, in spapr_irq_msi_alloc() argument 58 irq = bitmap_find_next_zero_area(spapr->irq_map, spapr->irq_map_nr, 0, num, in spapr_irq_msi_alloc() 60 if (irq == spapr->irq_map_nr) { in spapr_irq_msi_alloc() 65 bitmap_set(spapr->irq_map, irq, num); in spapr_irq_msi_alloc() 70 void spapr_irq_msi_free(SpaprMachineState *spapr, int irq, uint32_t num) in spapr_irq_msi_free() argument 72 bitmap_clear(spapr->irq_map, irq - SPAPR_IRQ_MSI, num); in spapr_irq_msi_free() [all …]
|
H A D | spapr_vof.c | 17 target_ulong spapr_h_vof_client(PowerPCCPU *cpu, SpaprMachineState *spapr, in spapr_h_vof_client() argument 20 int ret = vof_client_call(MACHINE(spapr), spapr->vof, spapr->fdt_blob, in spapr_h_vof_client() 29 void spapr_vof_client_dt_finalize(SpaprMachineState *spapr, void *fdt) in spapr_vof_client_dt_finalize() argument 31 g_autofree char *stdout_path = spapr_vio_stdout_path(spapr->vio_bus); in spapr_vof_client_dt_finalize() 33 vof_build_dt(fdt, spapr->vof); in spapr_vof_client_dt_finalize() 35 if (spapr->vof->bootargs) { in spapr_vof_client_dt_finalize() 43 _FDT(fdt_setprop_string(fdt, chosen, "bootargs", spapr->vof->bootargs)); in spapr_vof_client_dt_finalize() 52 _FDT(vof_client_open_store(fdt, spapr->vof, "/chosen", "stdout", in spapr_vof_client_dt_finalize() 57 void spapr_vof_reset(SpaprMachineState *spapr, void *fdt, Error **errp) in spapr_vof_reset() argument 60 Vof *vof = spapr->vof; in spapr_vof_reset() [all …]
|
H A D | spapr.c | 119 static int spapr_vcpu_id(SpaprMachineState *spapr, int cpu_index) in spapr_vcpu_id() argument 121 MachineState *ms = MACHINE(spapr); in spapr_vcpu_id() 124 assert(spapr->vsmt); in spapr_vcpu_id() 126 (cpu_index / smp_threads) * spapr->vsmt + cpu_index % smp_threads; in spapr_vcpu_id() 128 static bool spapr_is_thread0_in_vcore(SpaprMachineState *spapr, in spapr_is_thread0_in_vcore() argument 131 assert(spapr->vsmt); in spapr_is_thread0_in_vcore() 132 return spapr_get_vcpu_id(cpu) % spapr->vsmt == 0; in spapr_is_thread0_in_vcore() 135 int spapr_max_server_number(SpaprMachineState *spapr) in spapr_max_server_number() argument 137 MachineState *ms = MACHINE(spapr); in spapr_max_server_number() 139 assert(spapr->vsmt); in spapr_max_server_number() [all …]
|
H A D | spapr_numa.c | 24 static int get_max_dist_ref_points(SpaprMachineState *spapr) in get_max_dist_ref_points() argument 26 if (spapr_ovec_test(spapr->ov5_cas, OV5_FORM2_AFFINITY)) { in get_max_dist_ref_points() 36 static int get_numa_assoc_size(SpaprMachineState *spapr) in get_numa_assoc_size() argument 38 if (spapr_ovec_test(spapr->ov5_cas, OV5_FORM2_AFFINITY)) { in get_numa_assoc_size() 51 static int get_vcpu_assoc_size(SpaprMachineState *spapr) in get_vcpu_assoc_size() argument 53 return get_numa_assoc_size(spapr) + 1; in get_vcpu_assoc_size() 60 static const uint32_t *get_associativity(SpaprMachineState *spapr, int node_id) in get_associativity() argument 62 if (spapr_ovec_test(spapr->ov5_cas, OV5_FORM2_AFFINITY)) { in get_associativity() 63 return spapr->FORM2_assoc_array[node_id]; in get_associativity() 65 return spapr->FORM1_assoc_array[node_id]; in get_associativity() [all …]
|
H A D | spapr_hcall.c | 27 bool is_ram_address(SpaprMachineState *spapr, hwaddr addr) in is_ram_address() argument 29 MachineState *machine = MACHINE(spapr); in is_ram_address() 82 SpaprMachineState *spapr, in h_resize_hpt_prepare() argument 91 if (spapr->resize_hpt == SPAPR_RESIZE_HPT_DISABLED) { in h_resize_hpt_prepare() 95 if (!spapr->htab_shift) { in h_resize_hpt_prepare() 110 current_ram_size = MACHINE(spapr)->ram_size + get_plugged_memory_size(); in h_resize_hpt_prepare() 127 return vhyp_mmu_resize_hpt_prepare(cpu, spapr, shift); in h_resize_hpt_prepare() 146 void push_sregs_to_kvm_pr(SpaprMachineState *spapr) in push_sregs_to_kvm_pr() argument 155 if (!kvm_enabled() || !spapr->htab) { in push_sregs_to_kvm_pr() 165 SpaprMachineState *spapr, in h_resize_hpt_commit() argument [all …]
|
H A D | spapr_caps.c | 66 void (*apply)(SpaprMachineState *spapr, uint8_t val, Error **errp); 67 void (*cpu_apply)(SpaprMachineState *spapr, PowerPCCPU *cpu, 76 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_cap_get_bool() local 77 bool value = spapr_get_cap(spapr, cap->index) == SPAPR_CAP_ON; in spapr_cap_get_bool() 86 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_cap_set_bool() local 93 spapr->cmd_line_caps[cap->index] = true; in spapr_cap_set_bool() 94 spapr->eff.caps[cap->index] = value ? SPAPR_CAP_ON : SPAPR_CAP_OFF; in spapr_cap_set_bool() 102 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_cap_get_string() local 104 uint8_t value = spapr_get_cap(spapr, cap->index); in spapr_cap_get_string() 120 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_cap_set_string() local [all …]
|
H A D | spapr_events.c | 373 void spapr_dt_events(SpaprMachineState *spapr, void *fdt) in spapr_dt_events() argument 377 SpaprEventSource *events = spapr->event_sources; in spapr_dt_events() 411 rtas_event_log_to_source(SpaprMachineState *spapr, int log_type) in rtas_event_log_to_source() argument 415 g_assert(spapr->event_sources); in rtas_event_log_to_source() 419 source = spapr_event_sources_get_source(spapr->event_sources, in rtas_event_log_to_source() 421 if (spapr_ovec_test(spapr->ov5_cas, OV5_HP_EVT)) { in rtas_event_log_to_source() 427 source = spapr_event_sources_get_source(spapr->event_sources, in rtas_event_log_to_source() 437 static int rtas_event_log_to_irq(SpaprMachineState *spapr, int log_type) in rtas_event_log_to_irq() argument 441 source = rtas_event_log_to_source(spapr, log_type); in rtas_event_log_to_irq() 453 static void rtas_event_log_queue(SpaprMachineState *spapr, in rtas_event_log_queue() argument [all …]
|
H A D | spapr_rtas.c | 54 static void rtas_display_character(PowerPCCPU *cpu, SpaprMachineState *spapr, in rtas_display_character() argument 60 SpaprVioDevice *sdev = vty_lookup(spapr, 0); in rtas_display_character() 70 static void rtas_power_off(PowerPCCPU *cpu, SpaprMachineState *spapr, in rtas_power_off() argument 83 static void rtas_system_reboot(PowerPCCPU *cpu, SpaprMachineState *spapr, in rtas_system_reboot() argument 97 SpaprMachineState *spapr, in rtas_query_cpu_stopped_state() argument 127 static void rtas_start_cpu(PowerPCCPU *callcpu, SpaprMachineState *spapr, in rtas_start_cpu() argument 203 static void rtas_stop_self(PowerPCCPU *cpu, SpaprMachineState *spapr, in rtas_stop_self() argument 224 static void rtas_ibm_suspend_me(PowerPCCPU *cpu, SpaprMachineState *spapr, in rtas_ibm_suspend_me() argument 268 SpaprMachineState *spapr, in rtas_ibm_get_system_parameter() argument 274 MachineState *ms = MACHINE(spapr); in rtas_ibm_get_system_parameter() [all …]
|
H A D | spapr_vhyp_mmu.c | 19 static target_ulong h_enter(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_enter() argument 39 if (is_ram_address(spapr, raddr)) { in h_enter() 130 static target_ulong h_remove(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_remove() argument 178 static target_ulong h_bulk_remove(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_bulk_remove() argument 230 static target_ulong h_protect(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_protect() argument 269 static target_ulong h_read(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_read() argument 348 static void cancel_hpt_prepare(SpaprMachineState *spapr) in cancel_hpt_prepare() argument 350 SpaprPendingHpt *pending = spapr->pending_hpt; in cancel_hpt_prepare() 353 spapr->pending_hpt = NULL; in cancel_hpt_prepare() 369 SpaprMachineState *spapr, in vhyp_mmu_resize_hpt_prepare() argument [all …]
|
H A D | spapr_nested.c | 13 void spapr_nested_reset(SpaprMachineState *spapr) in spapr_nested_reset() argument 15 if (spapr_get_cap(spapr, SPAPR_CAP_NESTED_KVM_HV)) { in spapr_nested_reset() 18 } else if (spapr_get_cap(spapr, SPAPR_CAP_NESTED_PAPR)) { in spapr_nested_reset() 19 spapr->nested.capabilities_set = false; in spapr_nested_reset() 24 spapr->nested.api = 0; in spapr_nested_reset() 28 uint8_t spapr_nested_api(SpaprMachineState *spapr) in spapr_nested_api() argument 30 return spapr->nested.api; in spapr_nested_api() 35 bool spapr_get_pate_nested_hv(SpaprMachineState *spapr, PowerPCCPU *cpu, in spapr_get_pate_nested_hv() argument 42 patb = spapr->nested.ptcr & PTCR_PATB; in spapr_get_pate_nested_hv() 43 pats = spapr->nested.ptcr & PTCR_PATS; in spapr_get_pate_nested_hv() [all …]
|
H A D | spapr_pci.c | 66 SpaprPhbState *spapr_pci_find_phb(SpaprMachineState *spapr, uint64_t buid) in spapr_pci_find_phb() argument 70 QLIST_FOREACH(sphb, &spapr->phbs, list) { in spapr_pci_find_phb() 80 PCIDevice *spapr_pci_find_dev(SpaprMachineState *spapr, uint64_t buid, in spapr_pci_find_dev() argument 83 SpaprPhbState *sphb = spapr_pci_find_phb(spapr, buid); in spapr_pci_find_dev() 101 static void finish_read_pci_config(SpaprMachineState *spapr, uint64_t buid, in finish_read_pci_config() argument 114 pci_dev = spapr_pci_find_dev(spapr, buid, addr); in finish_read_pci_config() 131 static void rtas_ibm_read_pci_config(PowerPCCPU *cpu, SpaprMachineState *spapr, in rtas_ibm_read_pci_config() argument 148 finish_read_pci_config(spapr, buid, addr, size, rets); in rtas_ibm_read_pci_config() 151 static void rtas_read_pci_config(PowerPCCPU *cpu, SpaprMachineState *spapr, in rtas_read_pci_config() argument 166 finish_read_pci_config(spapr, 0, addr, size, rets); in rtas_read_pci_config() [all …]
|
H A D | spapr_vio.c | 159 static target_ulong h_reg_crq(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_reg_crq() argument 165 SpaprVioDevice *dev = spapr_vio_find_by_reg(spapr->vio_bus, reg); in h_reg_crq() 215 static target_ulong h_free_crq(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_free_crq() argument 219 SpaprVioDevice *dev = spapr_vio_find_by_reg(spapr->vio_bus, reg); in h_free_crq() 229 static target_ulong h_send_crq(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_send_crq() argument 235 SpaprVioDevice *dev = spapr_vio_find_by_reg(spapr->vio_bus, reg); in h_send_crq() 252 static target_ulong h_enable_crq(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_enable_crq() argument 256 SpaprVioDevice *dev = spapr_vio_find_by_reg(spapr->vio_bus, reg); in h_enable_crq() 330 static void rtas_set_tce_bypass(PowerPCCPU *cpu, SpaprMachineState *spapr, in rtas_set_tce_bypass() argument 335 SpaprVioBus *bus = spapr->vio_bus; in rtas_set_tce_bypass() [all …]
|
H A D | spapr_rtas_ddw.c | 94 SpaprMachineState *spapr, in rtas_ibm_query_pe_dma_window() argument 109 sphb = spapr_pci_find_phb(spapr, buid); in rtas_ibm_query_pe_dma_window() 144 SpaprMachineState *spapr, in rtas_ibm_create_pe_dma_window() argument 161 sphb = spapr_pci_find_phb(spapr, buid); in rtas_ibm_create_pe_dma_window() 221 SpaprMachineState *spapr, in rtas_ibm_remove_pe_dma_window() argument 271 SpaprMachineState *spapr, in rtas_ibm_reset_pe_dma_window() argument 286 sphb = spapr_pci_find_phb(spapr, buid); in rtas_ibm_reset_pe_dma_window()
|
H A D | spapr_cpu_core.c | 36 SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); in spapr_reset_vcpu() local 77 spapr_caps_cpu_apply(spapr, cpu); in spapr_reset_vcpu() 83 spapr_irq_cpu_intc_reset(spapr, cpu); in spapr_reset_vcpu() 260 static bool spapr_realize_vcpu(PowerPCCPU *cpu, SpaprMachineState *spapr, in spapr_realize_vcpu() argument 270 cpu_ppc_set_vhyp(cpu, PPC_VIRTUAL_HYPERVISOR(spapr)); in spapr_realize_vcpu() 281 if (spapr_irq_cpu_intc_create(spapr, cpu, errp) < 0) { in spapr_realize_vcpu() 334 SpaprMachineState *spapr = in spapr_cpu_core_realize() local 341 if (!spapr) { in spapr_cpu_core_realize() 357 if (!cpu || !spapr_realize_vcpu(cpu, spapr, sc, i, errp)) { in spapr_cpu_core_realize()
|
H A D | spapr_nvdimm.c | 142 static int spapr_dt_nvdimm(SpaprMachineState *spapr, void *fdt, in spapr_dt_nvdimm() argument 172 spapr_numa_write_associativity_dt(spapr, fdt, child_offset, node); in spapr_dt_nvdimm() 207 int spapr_pmem_dt_populate(SpaprDrc *drc, SpaprMachineState *spapr, in spapr_pmem_dt_populate() argument 212 *fdt_start_offset = spapr_dt_nvdimm(spapr, fdt, 0, nvdimm); in spapr_pmem_dt_populate() 217 void spapr_dt_persistent_memory(SpaprMachineState *spapr, void *fdt) in spapr_dt_persistent_memory() argument 235 spapr_dt_nvdimm(spapr, fdt, offset, nvdimm); in spapr_dt_persistent_memory() 243 SpaprMachineState *spapr, in h_scm_read_metadata() argument 298 SpaprMachineState *spapr, in h_scm_write_metadata() argument 360 static target_ulong h_scm_bind_mem(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_scm_bind_mem() argument 657 static target_ulong h_scm_flush(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_scm_flush() argument [all …]
|
/openbmc/qemu/include/hw/ppc/ |
H A D | spapr_irq.h | 82 void spapr_irq_update_active_intc(struct SpaprMachineState *spapr); 84 int spapr_irq_cpu_intc_create(struct SpaprMachineState *spapr, 86 void spapr_irq_cpu_intc_reset(struct SpaprMachineState *spapr, PowerPCCPU *cpu); 87 void spapr_irq_cpu_intc_destroy(struct SpaprMachineState *spapr, PowerPCCPU *cpu); 88 void spapr_irq_print_info(struct SpaprMachineState *spapr, GString *buf); 89 void spapr_irq_dt(struct SpaprMachineState *spapr, uint32_t nr_servers, 92 uint32_t spapr_irq_nr_msis(struct SpaprMachineState *spapr); 93 int spapr_irq_msi_alloc(struct SpaprMachineState *spapr, uint32_t num, bool align, 95 void spapr_irq_msi_free(struct SpaprMachineState *spapr, int irq, uint32_t num); 107 void spapr_irq_init(struct SpaprMachineState *spapr, Error **errp); [all …]
|
H A D | spapr.h | 157 bool (*phb_placement)(SpaprMachineState *spapr, uint32_t index, 650 SpaprMachineState *spapr, 653 SpaprMachineState *spapr, 656 bool is_ram_address(SpaprMachineState *spapr, hwaddr addr); 657 void push_sregs_to_kvm_pr(SpaprMachineState *spapr); 826 void spapr_load_rtas(SpaprMachineState *spapr, void *fdt, hwaddr addr); 894 void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space); 897 void close_htab_fd(SpaprMachineState *spapr); 898 void spapr_setup_hpt(SpaprMachineState *spapr); 899 void spapr_free_hpt(SpaprMachineState *spapr); [all …]
|
H A D | spapr_numa.h | 25 void spapr_numa_associativity_init(SpaprMachineState *spapr, 27 void spapr_numa_associativity_check(SpaprMachineState *spapr); 28 void spapr_numa_write_rtas_dt(SpaprMachineState *spapr, void *fdt, int rtas); 29 void spapr_numa_write_associativity_dt(SpaprMachineState *spapr, void *fdt, 31 int spapr_numa_fixup_cpu_dt(SpaprMachineState *spapr, void *fdt, 33 int spapr_numa_write_assoc_lookup_arrays(SpaprMachineState *spapr, void *fdt,
|
/openbmc/qemu/hw/intc/ |
H A D | xics_spapr.c | 42 static bool check_emulated_xics(SpaprMachineState *spapr, const char *func) in check_emulated_xics() argument 44 if (spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT) || in check_emulated_xics() 54 #define CHECK_EMULATED_XICS_HCALL(spapr) \ argument 56 if (!check_emulated_xics((spapr), __func__)) { \ 61 static target_ulong h_cppr(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_cppr() argument 66 CHECK_EMULATED_XICS_HCALL(spapr); in h_cppr() 72 static target_ulong h_ipi(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_ipi() argument 76 ICPState *icp = xics_icp_get(XICS_FABRIC(spapr), args[0]); in h_ipi() 78 CHECK_EMULATED_XICS_HCALL(spapr); in h_ipi() 88 static target_ulong h_xirr(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_xirr() argument [all …]
|
H A D | spapr_xive.c | 935 SpaprMachineState *spapr, in h_int_get_source_info() argument 939 SpaprXive *xive = spapr->xive; in h_int_get_source_info() 946 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_get_source_info() 1047 SpaprMachineState *spapr, in h_int_set_source_config() argument 1051 SpaprXive *xive = spapr->xive; in h_int_set_source_config() 1063 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_set_source_config() 1156 SpaprMachineState *spapr, in h_int_get_source_config() argument 1160 SpaprXive *xive = spapr->xive; in h_int_get_source_config() 1170 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_get_source_config() 1231 SpaprMachineState *spapr, in h_int_get_queue_info() argument [all …]
|
/openbmc/qemu/hw/watchdog/ |
H A D | spapr_watchdog.c | 87 static target_ulong watchdog_stop_all(SpaprMachineState *spapr) in watchdog_stop_all() argument 92 for (i = 1; i <= ARRAY_SIZE(spapr->wds); ++i) { in watchdog_stop_all() 93 target_ulong r = watchdog_stop(i, &spapr->wds[i - 1]); in watchdog_stop_all() 107 SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); in watchdog_expired() local 108 unsigned num = w - spapr->wds; in watchdog_expired() 110 g_assert(num < ARRAY_SIZE(spapr->wds)); in watchdog_expired() 126 watchdog_stop_all(spapr); in watchdog_expired() 131 SpaprMachineState *spapr, in h_watchdog() argument 148 if (watchdogNumber > ARRAY_SIZE(spapr->wds)) { in h_watchdog() 155 w = &spapr->wds[watchdogNumber - 1]; in h_watchdog() [all …]
|
/openbmc/qemu/hw/char/ |
H A D | spapr_vty.c | 104 static target_ulong h_put_term_char(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_put_term_char() argument 114 sdev = vty_lookup(spapr, reg); in h_put_term_char() 131 static target_ulong h_get_term_char(PowerPCCPU *cpu, SpaprMachineState *spapr, in h_get_term_char() argument 141 sdev = vty_lookup(spapr, reg); in h_get_term_char() 244 SpaprVioDevice *vty_lookup(SpaprMachineState *spapr, target_ulong reg) in vty_lookup() argument 248 sdev = spapr_vio_find_by_reg(spapr->vio_bus, reg); in vty_lookup() 255 return spapr_vty_get_default(spapr->vio_bus); in vty_lookup()
|
/openbmc/qemu/docs/system/ppc/ |
H A D | pseries.rst | 105 * ``spapr-vlan`` : a virtual network interface. 106 * ``spapr-vscsi`` : a virtual SCSI disk interface. 107 * ``spapr-rng`` : a pseudo-device for passing random number generator data to the 110 * ``spapr-vty``: a virtual teletype. 111 * ``spapr-pci-host-bridge``: a PCI host bridge. 112 * ``tpm-spapr``: a Trusted Platform Module (TPM). 113 * ``spapr-tpm-proxy``: a TPM proxy. 126 * A NVRAM device (``spapr-nvram``). 127 * A virtual teletype (``spapr-vty``). 128 * A PCI host bridge (``spapr-pci-host-bridge``). [all …]
|
/openbmc/qemu/include/hw/pci-host/ |
H A D | spapr.h | 105 int spapr_dt_phb(SpaprMachineState *spapr, SpaprPhbState *phb, 110 SpaprPhbState *spapr_pci_find_phb(SpaprMachineState *spapr, uint64_t buid); 111 PCIDevice *spapr_pci_find_dev(SpaprMachineState *spapr, uint64_t buid, 116 int spapr_pci_dt_populate(SpaprDrc *drc, SpaprMachineState *spapr,
|
/openbmc/qemu/tests/qtest/libqos/ |
H A D | meson.build | 13 # spapr 14 'malloc-spapr.c', 15 'libqos-spapr.c', 17 'pci-spapr.c',
|