Skip to content

[FROM linux-imx] firmware: imx: Add DSP IPC protocol interface - #1125

Merged
plbossart merged 1 commit into
thesofproject:topic/sof-devfrom
dbaluta:imx-dsp
Aug 13, 2019
Merged

plbossart merged 1 commit into
thesofproject:topic/sof-devfrom
dbaluta:imx-dsp

Conversation

@dbaluta

@dbaluta dbaluta commented Aug 12, 2019 •

Copy link
Copy Markdown
Collaborator

This patch is already accepted in i.MX ARM maintainer tree and it is queued for 5.4. Merge this into SOF tree also in order for people working on SOF IMX to have less patches to apply.

https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git/commit/?h=for-next&id=ffbf23d50353915dc2622a3b7b4ddc678165f92d

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@nxp.com>
Reviewed-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
@dbaluta dbaluta changed the title [FROM IMX tree] lfirmware: imx: Add DSP IPC protocol interface [FROM linux-imx] firmware: imx: Add DSP IPC protocol interface Aug 12, 2019
@plbossart
plbossart merged commit b45315d into thesofproject:topic/sof-dev Aug 13, 2019
@dbaluta
dbaluta deleted the imx-dsp branch August 10, 2020 09:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants