* 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, 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"; 
 | 
        }; 
 | 
    }; 
 |