mbox series

[v3,0/7] Expose SCMI Transport properties

Message ID 20241028120151.1301177-1-cristian.marussi@arm.com (mailing list archive)
Headers show
Series Expose SCMI Transport properties | expand

Message

Cristian Marussi Oct. 28, 2024, 12:01 p.m. UTC
Hi,

SCMI transports are characterized by a number of properties: the values
assumed by some of them tightly depend on the choices taken at design
time and on the overall archiecture of the specific platform: things like
timeouts, maximum message size and number of in-flight messages are closely
tied to the architecture of the platform like number of SCMI agents on the
system, physical memory available to the SCMI server...so on and so forth.

Moreover, since the SCMI specification does not delve into the details
of specific transports, that are, indeed, outside the scope of the
specification itself, such characteristics are NOT even discoverable
at run-time on an SCMI platform.

Currently such properties are simple default values defined at build time,
but the increasing number and variety of platforms using SCMI with a wide
range of designs has increased the need to have a way to describe such
properties across all these platforms.

This series, at first removes a few ambiguities in how some of the current
built-in properties are interpreted, then lays out a way for the core to
propagate back to the transports any possible setting gathered at runtime
from devicetree and finally introduce a pair of new properties used to
describe such per-platform transport characteristics.

Based on v6.12-rc3.

V3 adds 2 additional patches to fix an already existing similar property
that was missing the vendor prefix.

Any feedback welcome.

Thanks,
Cristian

---
v2 --> v3
- unified SHMEM_PAYLOAD_SIZE definition
- fixed format-string
- added reviewed tags
- added missing vendor to existing max-rx-timeout-ms
v1 --> v2
- added arm, vendor prefix to new DT bindings props
- clarified arm,max-msg bindings meaning
- removed useless warning on advised minimum size on arm,max-msg-size
- fixed maintainers CC list
- removed CCed maintainers from commit log
- using new prefixed arm, props



Cristian Marussi (7):
  firmware: arm_scmi: Account for SHMEM memory overhead
  firmware: arm_scmi: Calculate virtio PDU max size dynamically
  dt-bindings: firmware: arm,scmi: Introduce more transport properties
  firmware: arm_scmi: Use max_msg and max_msg_size devicetree properties
  firmware: arm_scmi: Relocate atomic_threshold to scmi_desc
  dt-bindings: firmware: arm,scmi: Add missing vendor string
  firmware: arm_scmi: Use vendor string in max-rx-timeout-ms

 .../bindings/firmware/arm,scmi.yaml           | 17 ++++++-
 drivers/firmware/arm_scmi/common.h            | 13 +++++-
 drivers/firmware/arm_scmi/driver.c            | 46 +++++++++++--------
 drivers/firmware/arm_scmi/shmem.c             |  7 +++
 .../firmware/arm_scmi/transports/mailbox.c    |  2 +-
 drivers/firmware/arm_scmi/transports/optee.c  |  8 ++--
 drivers/firmware/arm_scmi/transports/smc.c    |  2 +-
 drivers/firmware/arm_scmi/transports/virtio.c | 15 +++---
 8 files changed, 74 insertions(+), 36 deletions(-)

Comments

Sudeep Holla Nov. 6, 2024, 7:26 a.m. UTC | #1
On Mon, 28 Oct 2024 12:01:44 +0000, Cristian Marussi wrote:
> SCMI transports are characterized by a number of properties: the values
> assumed by some of them tightly depend on the choices taken at design
> time and on the overall archiecture of the specific platform: things like
> timeouts, maximum message size and number of in-flight messages are closely
> tied to the architecture of the platform like number of SCMI agents on the
> system, physical memory available to the SCMI server...so on and so forth.
> 
> [...]

Applied to sudeep.holla/linux (for-next/scmi/updates), thanks!

[1/7] firmware: arm_scmi: Account for SHMEM memory overhead
      https://git.kernel.org/sudeep.holla/c/5c14f38893d0
[2/7] firmware: arm_scmi: Calculate virtio PDU max size dynamically
      https://git.kernel.org/sudeep.holla/c/3229e33311f8
[3/7] dt-bindings: firmware: arm,scmi: Introduce more transport properties
      https://git.kernel.org/sudeep.holla/c/5654d37268bc
[4/7] firmware: arm_scmi: Use max_msg and max_msg_size devicetree properties
      https://git.kernel.org/sudeep.holla/c/c091de2d383a
[5/7] firmware: arm_scmi: Relocate atomic_threshold to scmi_desc
      https://git.kernel.org/sudeep.holla/c/112ffc78dc8f

(The below 2 were applied as fixes and sent for v6.12, sorry I missed
to send confirmation earlier)

[6/7] dt-bindings: firmware: arm,scmi: Add missing vendor string
      https://git.kernel.org/sudeep.holla/c/7bf46ec090b9
[7/7] firmware: arm_scmi: Use vendor string in max-rx-timeout-ms
      https://git.kernel.org/sudeep.holla/c/54962707f8b8

--
Regards,
Sudeep