Documentation/devicetree/bindings/arm/firmware/sdei.txt

Source file repositories/reference/linux-study-clean/Documentation/devicetree/bindings/arm/firmware/sdei.txt

File Facts

System
Linux kernel
Corpus path
Documentation/devicetree/bindings/arm/firmware/sdei.txt
Extension
.txt
Size
1493 bytes
Lines
43
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

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, or from an IRQ that has been promoted to
a firmware-assisted NMI.

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 specified by the "SMC Calling
Convention (ARM DEN 0028B):

	 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.

The sdei node should be a child node of '/firmware' and have 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.
Example:
	firmware {
		sdei {
			compatible	= "arm,sdei-1.0";
			method		= "smc";
		};
	};

Annotation

Implementation Notes