Messages in this thread | | | From | Peng Fan <> | Subject | RE: [PATCH V2] firmware: arm_scmi: Make scmi core independent of transport type | Date | Wed, 15 Jan 2020 08:20:26 +0000 |
| |
> Subject: Re: [PATCH V2] firmware: arm_scmi: Make scmi core independent of > transport type > > On Tue, Jan 14, 2020 at 12:11 PM Viresh Kumar <viresh.kumar@linaro.org> > wrote: > > > > On 14-01-20, 10:56, Arnd Bergmann wrote: > > > My point was that you cannot mix __iomem accesses with pointer > > > accesses. As I understood it, the current version uses a pointer to > > > a > > > > The current version is stupid as I misunderstood the whole __iomem > > thing and just dropped it :) > > > > > hardware mailbox with structured data, so you have to use ioremap() > > > to get a token you can pass into ioread(), but (some of) the new > > > transport types would just be backed by regular RAM, on which this > > > is not a well-defined operation and you have to use memremap() and > > > memcpy() instead. > > > > Okay, I think I understand that a bit now. So here are the things > > which I may need to do now: > > > > - Maybe move payload to struct scmi_mailbox structure, as that is the > > transport dependent structure.. > > > > - Do ioremap, etc in mailbox.c only instead of driver.c > > > > - Provide more ops in struct scmi_transport_ops to provide read/write > > helpers to the payload and implement the ones based on > > ioread/iowrite in mailbox.c .. > > > > Am I thinking in the right direction now ? > > That sounds about right. What I'm still not sure about is whether the current > kernel code is actually correct and should use iomeap() in the first place. Can > you confirm that all current hardware implementations actually use MMIO > type registers here rather than just rely on a buffer in RAM?
i.MX8(alought not use SCMI) use MU(message unit) to transfer data between Acore and Mcore firmware, not using shared memory.
Thanks, Peng.
> > Arnd > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.infr > adead.org%2Fmailman%2Flistinfo%2Flinux-arm-kernel&data=02%7C01 > %7Cpeng.fan%40nxp.com%7C1b3e0ec89bde469abfd008d798e36c89%7C686 > ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637145974848395212&a > mp;sdata=PKDDHvz0M45%2B31vSfWCxwxiDEEY8tQxkmL9AzfzRoSM%3D&a > mp;reserved=0
| |