Lines Matching refs:sbe
128 static void pnv_sbe_set_host_doorbell(PnvSBE *sbe, uint64_t val) in pnv_sbe_set_host_doorbell() argument
131 sbe->host_doorbell = val; in pnv_sbe_set_host_doorbell()
134 qemu_set_irq(sbe->psi_irq, !!val); in pnv_sbe_set_host_doorbell()
198 PnvSBE *sbe = opaque; in sbe_timer() local
202 pnv_sbe_set_host_doorbell(sbe, sbe->host_doorbell | SBE_HOST_TIMER_EXPIRY); in sbe_timer()
205 static void do_sbe_msg(PnvSBE *sbe) in do_sbe_msg() argument
214 msg.reg[i] = sbe->mbox[i]; in do_sbe_msg()
224 pnv_sbe_set_host_doorbell(sbe, sbe->host_doorbell | SBE_HOST_MSG_READ); in do_sbe_msg()
232 timer_mod(sbe->timer, qemu_clock_get_us(QEMU_CLOCK_VIRTUAL) + us); in do_sbe_msg()
236 timer_del(sbe->timer); in do_sbe_msg()
244 static void pnv_sbe_set_sbe_doorbell(PnvSBE *sbe, uint64_t val) in pnv_sbe_set_sbe_doorbell() argument
247 sbe->sbe_doorbell = val; in pnv_sbe_set_sbe_doorbell()
250 sbe->sbe_doorbell &= ~HOST_SBE_MSG_WAITING; in pnv_sbe_set_sbe_doorbell()
251 do_sbe_msg(sbe); in pnv_sbe_set_sbe_doorbell()
258 PnvSBE *sbe = PNV_SBE(opaque); in pnv_sbe_power9_xscom_mbox_read() local
264 val = sbe->mbox[idx]; in pnv_sbe_power9_xscom_mbox_read()
268 val = sbe->sbe_doorbell; in pnv_sbe_power9_xscom_mbox_read()
271 val = sbe->host_doorbell; in pnv_sbe_power9_xscom_mbox_read()
287 PnvSBE *sbe = PNV_SBE(opaque); in pnv_sbe_power9_xscom_mbox_write() local
294 sbe->mbox[idx] = val; in pnv_sbe_power9_xscom_mbox_write()
298 pnv_sbe_set_sbe_doorbell(sbe, val); in pnv_sbe_power9_xscom_mbox_write()
301 pnv_sbe_set_sbe_doorbell(sbe, sbe->sbe_doorbell & val); in pnv_sbe_power9_xscom_mbox_write()
304 pnv_sbe_set_sbe_doorbell(sbe, sbe->sbe_doorbell | val); in pnv_sbe_power9_xscom_mbox_write()
308 pnv_sbe_set_host_doorbell(sbe, val); in pnv_sbe_power9_xscom_mbox_write()
311 pnv_sbe_set_host_doorbell(sbe, sbe->host_doorbell & val); in pnv_sbe_power9_xscom_mbox_write()
314 pnv_sbe_set_host_doorbell(sbe, sbe->host_doorbell | val); in pnv_sbe_power9_xscom_mbox_write()
373 PnvSBE *sbe = PNV_SBE(dev); in pnv_sbe_realize() local
374 PnvSBEClass *psc = PNV_SBE_GET_CLASS(sbe); in pnv_sbe_realize()
377 pnv_xscom_region_init(&sbe->xscom_ctrl_regs, OBJECT(dev), in pnv_sbe_realize()
378 psc->xscom_ctrl_ops, sbe, "xscom-sbe-ctrl", in pnv_sbe_realize()
380 pnv_xscom_region_init(&sbe->xscom_mbox_regs, OBJECT(dev), in pnv_sbe_realize()
381 psc->xscom_mbox_ops, sbe, "xscom-sbe-mbox", in pnv_sbe_realize()
384 qdev_init_gpio_out(dev, &sbe->psi_irq, 1); in pnv_sbe_realize()
386 sbe->timer = timer_new_us(QEMU_CLOCK_VIRTUAL, sbe_timer, sbe); in pnv_sbe_realize()