On 6/26/19 6:31 AM, Peng Fan wrote: >>> The firmware driver might not have func-id, such as SCMI/SCPI. >>> So add an optional func-id to let smc mailbox driver could >>> use smc SiP func id. >>> >> There is no end to conforming to protocols. Controller drivers should >> be written having no particular client in mind. > > If the func-id needs be passed from user, then the chan_id suggested > by Sudeep should also be passed from user, not in mailbox driver. > > Jassi, so from your point, arm_smc_send_data just send a0 - a6 > to firmware, right? > > Sudeep, Andre, Florian, > > What's your suggestion? SCMI not support, do you have > plan to add smc transport in SCMI? On the platforms that I work with, we have taken the liberty of implementing SCMI in our monitor firmware because the other MCU we use for dynamic voltage and frequency scaling did not have enough memory to support that and we still had the ability to make that firmware be trusted enough we could give it power management responsibilities. I would certainly feel more comfortable if the SCMI specification was amended to indicate that the Agent could be such a software entity, still residing on the same host CPU as the Platform(s), but if not, that's fine. This has lead us to implement a mailbox driver that uses a proprietary SMC call for the P2A path ("tx" channel) and the return being done via either that same SMC or through SGI. You can take a look at it in our downstream tree here actually: https://github.com/Broadcom/stblinux-4.9/blob/master/linux/drivers/mailbox/brcmstb-mailbox.c If we can get rid of our own driver and uses a standard SMC based mailbox driver that supports our use case that involves interrupts (we can always change their kind without our firmware/boot loader since FDT is generated from that component), that would be great. -- Florian