[RFC PATCH v3 0/8] scpi: Add SCPI registry to handle legacy protocol
Frank Wang
frank.wang at rock-chips.com
Wed Aug 10 03:19:59 PDT 2016
Hi Neil,
On 2016/8/9 18:29, Neil Armstrong wrote:
> This patchset aims to support the legacy SCPI firmware implementation that
> was
> delivered as early technology preview for the JUNO platform.
>
> Finally a stable, maintained and public implementation for the SCPI protocol
> has been upstreamed part of the JUNO support and it is the recommended way
> of implementing SCP communication on ARMv8 platforms.
>
> The Amlogic GXBB platform is using this legacy protocol, as the RK3368 &
> RK3399
> platforms. Only the GXBB example is provided here, but it's unclear if other
> Amlogic ARMv8 based SoCs uses this legacy procotol.
>
> In order to support the legacy protocol :
> - Move the scpi_get_ops to a thin registry layer
> - Change the arm_scpi.c to use the registry layer
> - Add a separate config option to build the registry layer
> - Add the legacy SCPI driver based on the new implementation
> - For example, add the Amlogic GXBB MHU and SCPI DT cpufreq & sensors nodes
>
> Changes since RFC v2 at https://lkml.org/lkml/2016/6/21/324 :
> - Moved MHU to a separate patchset posted at
> http://lkml.kernel.org/r/1470732737-18391-1-git-send-email-narmstrong@baylib
> re.com
> - Added a vendor send_message callback into scpi_ops to implement vendor
> commands
> - Implement EXT commands on arm scpi as vendor send_command
> - Added Rockchip variant mailbox handling
Two questions,
1. For legacy_scpi, I saw you have implemented .vendor_send_message api,
however, it seems that does not distinguish standard and extended
command, so it may be misleading if the vendor send out a non-standard
command from their own driver module.
2. For arm_scpi, it have already distinguished standard and extended
command, but unfortunately, there was no rockchip_scpi_xfer structure
something like in legacy_scpi driver, so if some vendor (just like
Rockchip :-)) wanna switch the driver from legacy_scpi to arm_scpi,
maybe this is a bit problem, how do you think?
BR.
Frank
> Initial RFC discution tread can be found at
> https://lkml.org/lkml/2016/5/26/111
>
> @Sudeep: I know you wished I merged the legacy into the arm_scpi, but can
> you take a look at the vendor extension and how I implemented the rockchip
> mailbox handling ?
>
> Neil Armstrong (8):
> firmware: Add a SCPI registry to handle multiple implementations
> firmware: scpi: Switch arm_scpi to use new registry
> scpi: Add vendor_send_message to enable access to vendor commands
> firmware: arm_scpi: Enable vendor_send_message as ext commands
> firmware: Add legacy SCPI protocol driver
> dt-bindings: arm: Update arm,scpi bindings with Meson GXBB SCPI
> ARM64: dts: meson-gxbb: Add SRAM node
> ARM64: dts: meson-gxbb: Add SCPI with cpufreq & sensors Nodes
>
> Documentation/devicetree/bindings/arm/arm,scpi.txt | 8 +-
> arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 45 ++
> drivers/firmware/Kconfig | 24 +
> drivers/firmware/Makefile | 2 +
> drivers/firmware/arm_scpi.c | 40 +-
> drivers/firmware/legacy_scpi.c | 710
> +++++++++++++++++++++
> drivers/firmware/scpi.c | 94 +++
> include/linux/scpi_protocol.h | 20 +-
> 8 files changed, 928 insertions(+), 15 deletions(-)
> create mode 100644 drivers/firmware/legacy_scpi.c
> create mode 100644 drivers/firmware/scpi.c
>
More information about the linux-amlogic
mailing list