You should refer in drivers/mailbox/imx-mailbox.c and rpmsg framework;
We register mbox into mailbox framework
priv->mbox.dev = dev;
priv->mbox.ops = &imx_mu_ops;
priv->mbox.chans = priv->mbox_chans;
priv->mbox.txdone_irq = true;
platform_set_drvdata(pdev, priv);
ret = devm_mbox_controller_register(dev, &priv->mbox);
and use mbox_xxx_xxx in imx-rpmsg to get data.
The interrupt is handled by imx-mailbox and call the callback(rpmsg_tty_cb/rpmsg_pingpong_cb) in rpmsg driver we defined. If you need report it to kernel layer, you need refer the drivers/rpmsg/imx_rpmsg_pingpong.c or drivers/rpmsg/imx_rpmsg_tty.c to write your driver to report status to userspace and handle it . In this process, you may need modify mailbox driver.
Or you can just read the MU registers in userspace