Re: [PATCH v4] firmware: imx: Add DSP IPC protocol interface

From: Shawn Guo
Date: Mon Aug 12 2019 - 09:19:59 EST


On Thu, Aug 01, 2019 at 12:56:36PM +0300, Daniel Baluta wrote:
> Some of i.MX8 processors (e.g i.MX8QM, i.MX8QXP) contain
> the Tensilica HiFi4 DSP for advanced pre- and post-audio
> processing.
>
> The communication between Host CPU and DSP firmware is
> taking place using a shared memory area for message passing
> and a dedicated Messaging Unit for notifications.
>
> DSP IPC protocol offers a doorbell interface using
> imx-mailbox API.
>
> We use 4 MU channels (2 x TXDB, 2 x RXDB) to implement a
> request-reply protocol.
>
> Connection 0 (txdb0, rxdb0):
> - Host writes messasge to shared memory [SHMEM]
> - Host sends a request [MU]
> - DSP handles request [SHMEM]
> - DSP sends reply [MU]
>
> Connection 1 (txdb1, rxdb1):
> - DSP writes a message to shared memory [SHMEM]
> - DSP sends a request [MU]
> - Host handles request [SHMEM]
> - Host sends reply [MU]
>
> The protocol interface will be used by a Host client to
> communicate with the DSP. First client will be the i.MX8
> part from Sound Open Firmware infrastructure.
>
> The protocol offers the following interface:
>
> On Tx:
> - imx_dsp_ring_doorbell, will be called to notify the DSP
> that it needs to handle a request.
>
> On Rx:
> - clients need to provide two callbacks:
> .handle_reply
> .handle_request
> - the callbacks will be used by the protocol on
> notification arrival from DSP.
>
> Signed-off-by: Daniel Baluta <daniel.baluta@xxxxxxx>

Applied, thanks.