Lines Matching full:pc

35 static const char *pnv_core_cpu_typename(PnvCore *pc)  in pnv_core_cpu_typename()  argument
37 const char *core_type = object_class_get_name(object_get_class(OBJECT(pc))); in pnv_core_cpu_typename()
45 static void pnv_core_cpu_reset(PnvCore *pc, PowerPCCPU *cpu) in pnv_core_cpu_reset() argument
49 PnvChipClass *pcc = PNV_CHIP_GET_CLASS(pc->chip); in pnv_core_cpu_reset()
60 env->spr[SPR_HRMOR] = pc->hrmor; in pnv_core_cpu_reset()
61 if (pc->big_core) { in pnv_core_cpu_reset()
70 pcc->intc_reset(pc->chip, cpu); in pnv_core_cpu_reset()
195 PnvCore *pc = PNV_CORE(opaque); in pnv_core_power10_xscom_read() local
196 int nr_threads = CPU_CORE(pc)->nr_threads; in pnv_core_power10_xscom_read()
204 PowerPCCPU *cpu = pc->threads[i]; in pnv_core_power10_xscom_read()
211 if (pc->lpar_per_core) { in pnv_core_power10_xscom_read()
219 PowerPCCPU *cpu = pc->threads[i]; in pnv_core_power10_xscom_read()
237 PnvCore *pc = PNV_CORE(opaque); in pnv_core_power10_xscom_write() local
238 int nr_threads = CPU_CORE(pc)->nr_threads; in pnv_core_power10_xscom_write()
245 PowerPCCPU *cpu = pc->threads[i]; in pnv_core_power10_xscom_write()
302 static void pnv_core_cpu_realize(PnvCore *pc, PowerPCCPU *cpu, Error **errp, in pnv_core_cpu_realize() argument
311 PnvChipClass *pcc = PNV_CHIP_GET_CLASS(pc->chip); in pnv_core_cpu_realize()
317 pcc->intc_create(pc->chip, cpu, &local_err); in pnv_core_cpu_realize()
323 core_hwid = object_property_get_uint(OBJECT(pc), "hwid", &error_abort); in pnv_core_cpu_realize()
325 pcc->get_pir_tir(pc->chip, core_hwid, thread_index, &pir, &tir); in pnv_core_cpu_realize()
329 env->chip_index = pc->chip->chip_id; in pnv_core_cpu_realize()
331 if (pc->big_core) { in pnv_core_cpu_realize()
338 if (pc->lpar_per_core) { in pnv_core_cpu_realize()
349 PnvCore *pc = PNV_CORE(dev); in pnv_core_reset() local
353 pnv_core_cpu_reset(pc, pc->threads[i]); in pnv_core_reset()
359 PnvCore *pc = PNV_CORE(OBJECT(dev)); in pnv_core_realize() local
360 PnvCoreClass *pcc = PNV_CORE_GET_CLASS(pc); in pnv_core_realize()
362 const char *typename = pnv_core_cpu_typename(pc); in pnv_core_realize()
368 assert(pc->chip); in pnv_core_realize()
370 pc->threads = g_new(PowerPCCPU *, cc->nr_threads); in pnv_core_realize()
378 pc->threads[i] = POWERPC_CPU(obj); in pnv_core_realize()
384 object_property_add_child(OBJECT(pc), name, obj); in pnv_core_realize()
388 pnv_cpu->pnv_core = pc; in pnv_core_realize()
394 pnv_core_cpu_realize(pc, pc->threads[j], &local_err, j); in pnv_core_realize()
401 pnv_xscom_region_init(&pc->xscom_regs, OBJECT(dev), pcc->xscom_ops, in pnv_core_realize()
402 pc, name, pcc->xscom_size); in pnv_core_realize()
404 qemu_register_reset(pnv_core_reset, pc); in pnv_core_realize()
409 obj = OBJECT(pc->threads[i]); in pnv_core_realize()
412 g_free(pc->threads); in pnv_core_realize()
416 static void pnv_core_cpu_unrealize(PnvCore *pc, PowerPCCPU *cpu) in pnv_core_cpu_unrealize() argument
419 PnvChipClass *pcc = PNV_CHIP_GET_CLASS(pc->chip); in pnv_core_cpu_unrealize()
421 pcc->intc_destroy(pc->chip, cpu); in pnv_core_cpu_unrealize()
430 PnvCore *pc = PNV_CORE(dev); in pnv_core_unrealize() local
434 qemu_unregister_reset(pnv_core_reset, pc); in pnv_core_unrealize()
437 pnv_core_cpu_unrealize(pc, pc->threads[i]); in pnv_core_unrealize()
439 g_free(pc->threads); in pnv_core_unrealize()