Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cris-mirror.git] / Documentation / devicetree / bindings / arm / firmware / sdei.txt
blobee3f0ff49889452a5ece6cb4cc79abcaa001be4f
1 * Software Delegated Exception Interface (SDEI)
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.
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):
15          r0             => 32-bit Function ID / return value
16         {r1 - r3}       => Parameters
18 Note that the immediate field of the trapping instruction must be set
19 to #0.
21 The SDEI_EVENT_REGISTER function registers a callback in the kernel
22 text to handle the specified event number.
24 The sdei node should be a child node of '/firmware' and have required
25 properties:
27  - compatible    : should contain:
28         * "arm,sdei-1.0" : For implementations complying to SDEI version 1.x.
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         };