Page MenuHomeFreeBSD

scmi: Implement scmi_clknode_recalc_freq method
ClosedPublic

Authored by cristian.marussi_arm.com on Dec 13 2023, 6:37 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Nov 6, 10:59 AM
Unknown Object (File)
Mon, Nov 4, 10:43 PM
Unknown Object (File)
Mon, Nov 4, 10:43 PM
Unknown Object (File)
Mon, Nov 4, 10:26 PM
Unknown Object (File)
Thu, Oct 24, 7:07 PM
Unknown Object (File)
Mon, Oct 21, 10:16 AM
Unknown Object (File)
Sat, Oct 19, 6:58 AM
Unknown Object (File)
Thu, Oct 17, 4:13 PM
Subscribers

Details

Summary

Allow the SCMI clock frequency to be queried back, useful for testing
the IRQ path via sysctl access.

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

SCMI: Add support for multiple transports and add VirtIO/SMC transports

"A Summary of what is going on with this series/stack."

The current freeBSD SCMI stack supports some basic SCMI v3.1 functionalities
using an ARM MHU Mailbox as the underlying SCMI transport.

In order to improve/extend the freeBSD SCMI support, it proves useful to
add at first the support for a VirtIO based transport since this allows
running the freeBSD SCMI agent as a guest in a virtualized environment
which in turn enables the freeBSD agent to talk with virtualized SCMI
platform servers that can be more complex and developed than the actual
SCMI server available on a real physical platform like Morello.

In other words, SCMI VirtIO support eases further development and
debugging.

VirtIO SCMI device definition and behaviour is specified in the VirtIO
standard since v1.2.

https://docs.oasis-open.org/virtio/virtio/v1.2/csd01/virtio-v1.2-csd01.pdf

In order to enable SCMI VirtIO this series mainly:

  • adds support for querying clock frequencies via the existing SCMI CLK driver, since this is needed to test the SCMI functionalities on the IRQ path after boot
  • extends the freeBSD SCMI core to allow for multiple SCMI transport backends to be used introducing new scmi_if.m interface methods
  • adds a number of missing core SCMI features related to message handling that will be needed by the following SCMI VirtIO support (and by other future developments like SCMI Async-Cmds and Notifications)
  • add a VirtIO transport
  • add an SMC transport

Each patch has been tested for regression on an ARM Morello board to verify
the functionality of the original SCMI Mailbox transport after all these core
changes.

The new SCMI VirtIO transport has been tested in a virtualized environment
running against both an emulated server setup and an official SCP SCMI server
fw platform.

The new SCMI SMC transport is untested as of now.

This revision is now accepted and ready to land.Jan 8 2024, 5:10 PM