RE: [PATCH V10 0/2] mailbox: arm: introduce smc triggered mailbox
From: Peng Fan
Date: Fri Nov 08 2019 - 04:33:21 EST
Hi Jass,
> Subject: RE: [PATCH V10 0/2] mailbox: arm: introduce smc triggered mailbox
Sorry to ping again. Would you queue this patch set into your next tree for 5.5?
Thanks,
Peng.
>
> Hi Jassi,
>
> > Subject: [PATCH V10 0/2] mailbox: arm: introduce smc triggered mailbox
>
> Are you fine with this patch set?
>
> Thanks,
> Peng.
>
> >
> > From: Peng Fan <peng.fan@xxxxxxx>
> >
> > V10:
> > - Add R-b tag from Andre, Rob and Florian
> > - Two minor fixes
> > - Drop "passed from consumers" in patch 1/2 per Andre's comments
> > - Drop interrupts.h in patch 2/2 per Andre's comments
> >
> > V9:
> > - Add Florian's R-b tag in patch 1/2
> > - Mark arm,func-id as a required property per Andre's comments in
> > patch 1/2.
> > - Make invoke_smc_mbox_fn as a private entry in a channal per Florian's
> > comments in pach 2/2
> > - Include linux/types.h in arm-smccc-mbox.h in patch 2/2
> > - Drop function_id from arm_smccc_mbox_cmd since func-id is from DT
> > in patch 2/2/.
> >
> > Andre,
> > I have marked arm,func-id as a required property and dropped
> > function-id
> > from client, please see whether you are happy with the patchset.
> > Hope we could finalize and get patches land in.
> >
> > Thanks,
> > Peng.
> >
> > V8:
> > Add missed arm-smccc-mbox.h
> >
> > V7:
> > Typo fix
> > #mbox-cells changed to 0
> > Add a new header file arm-smccc-mbox.h Use ARM_SMCCC_IS_64
> >
> > Andre,
> > The function_id is still kept in arm_smccc_mbox_cmd, because
> > arm,func-id property is optional, so clients could pass function_id to mbox
> driver.
> >
> > V6:
> > Switch to per-channel a mbox controller Drop arm,num-chans,
> > transports, method Add arm,hvc-mbox compatible Fix smc/hvc args, drop
> > client id and use correct type.
> > https://patchwork.kernel.org/cover/11146641/
> >
> > V5:
> > yaml fix
> > https://patchwork.kernel.org/cover/11117741/
> >
> > V4:
> > yaml fix for num-chans in patch 1/2.
> > https://patchwork.kernel.org/cover/11116521/
> >
> > V3:
> > Drop interrupt
> > Introduce transports for mem/reg usage Add chan-id for mem usage
> > Convert to yaml format https://patchwork.kernel.org/cover/11043541/
> >
> > V2:
> > This is a modified version from Andre Przywara's patch series
> > https://lore.kernel.org/patchwork/cover/812997/.
> > The modification are mostly:
> > Introduce arm,num-chans
> > Introduce arm_smccc_mbox_cmd
> > txdone_poll and txdone_irq are both set to false arm,func-ids are
> > kept, but as an optional property.
> > Rewords SCPI to SCMI, because I am trying SCMI over SMC, not SCPI.
> > Introduce interrupts notification.
> >
> > [1] is a draft implementation of i.MX8MM SCMI ATF implementation that
> > use smc as mailbox, power/clk is included, but only part of clk has
> > been implemented to work with hardware, power domain only supports get
> > name for now.
> >
> > The traditional Linux mailbox mechanism uses some kind of dedicated
> > hardware IP to signal a condition to some other processing unit,
> > typically a dedicated management processor.
> > This mailbox feature is used for instance by the SCMI protocol to
> > signal a request for some action to be taken by the management processor.
> > However some SoCs does not have a dedicated management core to
> provide
> > those services. In order to service TEE and to avoid linux shutdown
> > power and clock that used by TEE, need let firmware to handle power
> > and clock, the firmware here is ARM Trusted Firmware that could also run
> SCMI service.
> >
> > The existing SCMI implementation uses a rather flexible shared memory
> > region to communicate commands and their parameters, it still requires
> > a mailbox to actually trigger the action.
> >
> > This patch series provides a Linux mailbox compatible service which
> > uses smc calls to invoke firmware code, for instance taking care of SCMI
> requests.
> > The actual requests are still communicated using the standard SCMI way
> > of shared memory regions, but a dedicated mailbox hardware IP can be
> > replaced via this new driver.
> >
> > This simple driver uses the architected SMC calling convention to
> > trigger firmware services, also allows for using "HVC" calls to call
> > into hypervisors or firmware layers running in the EL2 exception level.
> >
> > Patch 1 contains the device tree binding documentation, patch 2
> > introduces the actual mailbox driver.
> >
> > Please note that this driver just provides a generic mailbox
> > mechanism, It could support synchronous TX/RX, or synchronous TX with
> asynchronous RX.
> > And while providing SCMI services was the reason for this exercise,
> > this driver is in no way bound to this use case, but can be used
> > generically where the OS wants to signal a mailbox condition to firmware or
> a hypervisor.
> > Also the driver is in no way meant to replace any existing firmware
> > interface, but actually to complement existing interfaces.
> >
> > [1] https://github.com/MrVan/arm-trusted-firmware/tree/scmi
> >
> >
> >
> > Peng Fan (2):
> > dt-bindings: mailbox: add binding doc for the ARM SMC/HVC mailbox
> > mailbox: introduce ARM SMC based mailbox
> >
> > .../devicetree/bindings/mailbox/arm-smc.yaml | 96
> > ++++++++++++
> > drivers/mailbox/Kconfig | 7 +
> > drivers/mailbox/Makefile | 2 +
> > drivers/mailbox/arm-smc-mailbox.c | 166
> > +++++++++++++++++++++
> > include/linux/mailbox/arm-smccc-mbox.h | 20 +++
> > 5 files changed, 291 insertions(+)
> > create mode 100644
> > Documentation/devicetree/bindings/mailbox/arm-smc.yaml
> > create mode 100644 drivers/mailbox/arm-smc-mailbox.c create mode
> > 100644 include/linux/mailbox/arm-smccc-mbox.h
> >
> > --
> > 2.16.4