* [GIT PULL] firmware: arm_scmi: Updates for v6.3
@ 2023-01-20 16:21 Sudeep Holla
2023-01-24 21:31 ` patchwork-bot+linux-soc
0 siblings, 1 reply; 2+ messages in thread
From: Sudeep Holla @ 2023-01-20 16:21 UTC (permalink / raw)
To: ARM SoC Team, SoC Team, ALKML
Cc: Sudeep Holla, Arnd Bergmann, Cristian Marussi, Olof Johansson
Hi ARM SoC Team,
Please pull !
The majority of the changes are in -next for a week now and all the reported
build related issues are fixed.
Regards,
Sudeep
-->8
The following changes since commit 1b929c02afd37871d5afb9d498426f83432e71c2:
Linux 6.2-rc1 (2022-12-25 13:41:39 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git tags/scmi-updates-6.3
for you to fetch changes up to 32a55bbdd74e2bb76a76979bc4f37e7e7ebe620d:
firmware: arm_scmi: Clarify raw per-channel ABI documentation (2023-01-20 14:11:38 +0000)
----------------------------------------------------------------
Arm SCMI updates for v6.3
The main addition is a unified userspace interface for SCMI irrespective
of the underlying transport and along with some changed to refactor the
SCMI stack probing sequence.
1. SCMI unified userspace interface
This is to have a unified way of testing an SCMI platform firmware
implementation for compliance, fuzzing etc., from the perspective of
the non-secure OSPM irrespective of the underlying transport supporting
SCMI. It is just for testing/development and not a feature intended fo
use in production.
Currently an SCMI Compliance Suite[1] can only work by injecting SCMI
messages using the mailbox test driver only which makes it transport
specific and can't be used with any other transport like virtio,
smc/hvc, optee, etc. Also the shared memory can be transport specific
and it is better to even abstract/hide those details while providing
the userspace access. So in order to scale with any transport, we need
a unified interface for the same.
In order to achieve that, SCMI "raw mode support" is being added through
debugfs which is more configurable as well. A userspace application
can inject bare SCMI binary messages into the SCMI core stack; such
messages will be routed by the SCMI regular kernel stack to the backend
platform firmware using the configured transport transparently. This
eliminates the to know about the specific underlying transport
internals that will be taken care of by the SCMI core stack itself.
Further no additional changes needed in the device tree like in the
mailbox-test driver.
[1] https://gitlab.arm.com/tests/scmi-tests
2. Refactoring of the SCMI stack probing sequence
On some platforms, SCMI transport can be provide by OPTEE/TEE which
introduces certain dependency in the probe ordering. In order to address
the same, the SCMI bus is split into its own module which continues to
be initialized at subsys_initcall, while the SCMI core stack, including
its various transport backends (like optee, mailbox, virtio, smc), is
now moved into a separate module at module_init level.
This allows the other possibly dependent subsystems to register and/or
access SCMI bus well before the core SCMI stack and its dependent
transport backends.
----------------------------------------------------------------
Cristian Marussi (31):
firmware: arm_scmi: Clear stale xfer->hdr.status
firmware: arm_scmi: Harden shared memory access in fetch_response
firmware: arm_scmi: Harden shared memory access in fetch_notification
firmware: arm_scmi: Fix virtio channels cleanup on shutdown
firmware: arm_scmi: Simplify chan_available transport operation
firmware: arm_scmi: Use dedicated devices to initialize channels
firmware: arm_scmi: Move protocol registration helpers
firmware: arm_scmi: Add common notifier helpers
firmware: arm_scmi: Refactor protocol device creation
firmware: arm_scmi: Move handle get/set helpers
firmware: arm_scmi: Refactor device create/destroy helpers
firmware: arm_scmi: Introduce a new lifecycle for protocol devices
firmware: arm_scmi: Split bus and driver into distinct modules
firmware: arm_scmi: Refactor xfer in-flight registration routines
firmware: arm_scmi: Refactor polling helpers
firmware: arm_scmi: Refactor scmi_wait_for_message_response
firmware: arm_scmi: Add flags field to xfer
firmware: arm_scmi: Add xfer helpers to provide raw access
firmware: arm_scmi: Move errors defs and code to common.h
firmware: arm_scmi: Add internal platform/channel identifiers
include: trace: Add platform and channel instance references
debugfs: Export debugfs_create_str symbol
firmware: arm_scmi: Populate a common SCMI debugfs root
firmware: arm_scmi: Add debugfs ABI documentation for common entries
firmware: arm_scmi: Add core raw transmission support
firmware: arm_scmi: Add debugfs ABI documentation for raw mode
firmware: arm_scmi: Reject SCMI drivers when configured in raw mode
firmware: arm_scmi: Call raw mode hooks from the core stack
firmware: arm_scmi: Add the raw mode co-existence support
firmware: arm_scmi: Add per-channel raw injection support
firmware: arm_scmi: Clarify raw per-channel ABI documentation
Documentation/ABI/testing/debugfs-scmi | 70 ++
Documentation/ABI/testing/debugfs-scmi-raw | 117 +++
drivers/firmware/arm_scmi/Kconfig | 32 +
drivers/firmware/arm_scmi/Makefile | 9 +-
drivers/firmware/arm_scmi/bus.c | 395 ++++++--
drivers/firmware/arm_scmi/common.h | 100 +-
drivers/firmware/arm_scmi/driver.c | 1225 ++++++++++++++---------
drivers/firmware/arm_scmi/mailbox.c | 6 +-
drivers/firmware/arm_scmi/optee.c | 6 +-
drivers/firmware/arm_scmi/protocols.h | 7 +
drivers/firmware/arm_scmi/raw_mode.c | 1443 ++++++++++++++++++++++++++++
drivers/firmware/arm_scmi/raw_mode.h | 31 +
drivers/firmware/arm_scmi/shmem.c | 9 +-
drivers/firmware/arm_scmi/smc.c | 6 +-
drivers/firmware/arm_scmi/virtio.c | 11 +-
fs/debugfs/file.c | 1 +
include/linux/scmi_protocol.h | 5 -
include/trace/events/scmi.h | 18 +-
18 files changed, 2917 insertions(+), 574 deletions(-)
create mode 100644 Documentation/ABI/testing/debugfs-scmi
create mode 100644 Documentation/ABI/testing/debugfs-scmi-raw
create mode 100644 drivers/firmware/arm_scmi/raw_mode.c
create mode 100644 drivers/firmware/arm_scmi/raw_mode.h
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [GIT PULL] firmware: arm_scmi: Updates for v6.3
2023-01-20 16:21 [GIT PULL] firmware: arm_scmi: Updates for v6.3 Sudeep Holla
@ 2023-01-24 21:31 ` patchwork-bot+linux-soc
0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+linux-soc @ 2023-01-24 21:31 UTC (permalink / raw)
To: Sudeep Holla; +Cc: soc
Hello:
This pull request was applied to soc/soc.git (for-next)
by Arnd Bergmann <arnd@arndb.de>:
On Fri, 20 Jan 2023 16:21:52 +0000 you wrote:
> Hi ARM SoC Team,
>
> Please pull !
>
> The majority of the changes are in -next for a week now and all the reported
> build related issues are fixed.
>
> [...]
Here is the summary with links:
- [GIT,PULL] firmware: arm_scmi: Updates for v6.3
https://git.kernel.org/soc/soc/c/f938b29d277a
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-01-24 21:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-20 16:21 [GIT PULL] firmware: arm_scmi: Updates for v6.3 Sudeep Holla
2023-01-24 21:31 ` patchwork-bot+linux-soc
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).