Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Docs: dt: add devicetree binding for describing arm64 SDEI firmware

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

Add a new devicetree binding to describe the SDE firmware interface.

Signed-off-by: James Morse <james.morse@arm.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>

authored by

James Morse and committed by
Catalin Marinas
86f04f64 1f742679

+42
+42
Documentation/devicetree/bindings/arm/firmware/sdei.txt
··· 1 + * Software Delegated Exception Interface (SDEI) 2 + 3 + Firmware implementing the SDEI functions described in ARM document number 4 + ARM DEN 0054A ("Software Delegated Exception Interface") can be used by 5 + Linux to receive notification of events such as those generated by 6 + firmware-first error handling, or from an IRQ that has been promoted to 7 + a firmware-assisted NMI. 8 + 9 + The interface provides a number of API functions for registering callbacks 10 + and enabling/disabling events. Functions are invoked by trapping to the 11 + privilege level of the SDEI firmware (specified as part of the binding 12 + below) and passing arguments in a manner specified by the "SMC Calling 13 + Convention (ARM DEN 0028B): 14 + 15 + r0 => 32-bit Function ID / return value 16 + {r1 - r3} => Parameters 17 + 18 + Note that the immediate field of the trapping instruction must be set 19 + to #0. 20 + 21 + The SDEI_EVENT_REGISTER function registers a callback in the kernel 22 + text to handle the specified event number. 23 + 24 + The sdei node should be a child node of '/firmware' and have required 25 + properties: 26 + 27 + - compatible : should contain: 28 + * "arm,sdei-1.0" : For implementations complying to SDEI version 1.x. 29 + 30 + - method : The method of calling the SDEI firmware. Permitted 31 + values are: 32 + * "smc" : SMC #0, with the register assignments specified in this 33 + binding. 34 + * "hvc" : HVC #0, with the register assignments specified in this 35 + binding. 36 + Example: 37 + firmware { 38 + sdei { 39 + compatible = "arm,sdei-1.0"; 40 + method = "smc"; 41 + }; 42 + };