Re: [PATCH v3 15/22] firmware: arm_scmi: abstract mailbox interface

From: Arnd Bergmann
Date: Wed Oct 04 2017 - 07:24:09 EST

On Thu, Sep 28, 2017 at 3:11 PM, Sudeep Holla <sudeep.holla@xxxxxxx> wrote:
> Some of the mailbox controller expects controller specific data in order
> to implement simple doorbell mechanism as expected by SCMI specification.
> This patch creates a shim layer to abstract the mailbox interface so
> that it can support any mailbox controller. It also provides default
> implementation which maps to standard mailbox client APIs, so that
> controllers implementing doorbell mechanism need not require any
> additional layer.
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>

Another level? Now we have three levels of stacked mailboxes, with
the highest level being the combined mailbox/memory, then the shim,
and below it the hardware mailbox.

Can you try to come up with a way to do this with fewer abstractions?

Maybe you could assume that the mailbox itself can take variable-length
data packets, and then use the shim here for those that require
something else?