Re: [PATCH V2] firmware: arm_scmi: Make scmi core independent of transport type

From: Viresh Kumar
Date: Tue Jan 14 2020 - 06:11:15 EST


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 ?

--
viresh