Re: [PATCH 06/11] dt-bindings: add devicetree binding for describing arm64 SDEI firmware

Rob Herring
2017-05-19T01:44:38Z

On Mon, May 15, 2017 at 06:43:54PM +0100, James Morse wrote:
> The Software Delegated Exception Interface (SDEI) is an ARM standard
> for registering callbacks from the platform firmware into the OS.
> This is typically used to implement RAS notifications.
>
> Add a new devicetree binding to describe the SDE firmware interface.
>
> Signed-off-by: James Morse <james.morse@arm.com>
> ---
> Documentation/devicetree/bindings/arm/sdei.txt | 37 ++++++++++++++++++++++++++
> 1 file changed, 37 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/arm/sdei.txt
>
> diff --git a/Documentation/devicetree/bindings/arm/sdei.txt b/Documentation/devicetree/bindings/arm/sdei.txt
> new file mode 100644
> index 000000000000..69220d995286
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/sdei.txt
> @@ -0,0 +1,37 @@
> +* Software Delegated Exception Interface (SDEI)
> +
> +Firmware implementing the SDEI functions described in ARM document number
> +ARM DEN 0054A ("Software Delegated Exception Interface") can be used by
> +Linux to receive notification of events such as those generated by
> +firmware-first error handling.

Why am I reviewing bindings for RAS firmware-first events which is a
server thing? Just curious.

> +
> +The interface provides a number of API functions for registering callbacks
> +and enabling/disabling events. Functions are invoked by trapping to the
> +privilege level of the SDEI firmware (specified as part of the binding
> +below) and passing arguments in a manner similar to that specified by AAPCS:

Shouldn't it be the ARM secure monitor call convention doc (forgot the
name) that you are following?

> +
> + r0 => 32-bit Function ID / return value
> + {r1 - r3} => Parameters
> +
> +Note that the immediate field of the trapping instruction must be set
> +to #0.
> +
> +The SDEI_EVENT_REGISTER function registers a callback in the kernel
> +text to handle the specified event number.
> +
> +Main node required properties:
> +
> + - compatible : should contain:
> + * "arm,sdei-1.0" : For implementations complying to SDEI version 1.x.
> +
> + - method : The method of calling the SDEI firmware. Permitted
> + values are:
> + * "smc" : SMC #0, with the register assignments specified in this
> + binding.
> + * "hvc" : HVC #0, with the register assignments specified in this
> + binding.

When is ARM going to define a firmware interface to determine what
firmware interfaces are available?

> +Example:
> + sdei {

Please specify this should be a child node of /firmware node.

> + compatible = "arm,sdei-1.0";
> + method = "smc";
> + };
> --
> 2.10.1
>