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

Rob Herring robh at kernel.org
Thu May 18 18:48:04 PDT 2017


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 at 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
> 



More information about the linux-arm-kernel mailing list