Back to home page

OSCL-LXR

 
 

    


0001 * Software Delegated Exception Interface (SDEI)
0002 
0003 Firmware implementing the SDEI functions described in ARM document number
0004 ARM DEN 0054A ("Software Delegated Exception Interface") can be used by
0005 Linux to receive notification of events such as those generated by
0006 firmware-first error handling, or from an IRQ that has been promoted to
0007 a firmware-assisted NMI.
0008 
0009 The interface provides a number of API functions for registering callbacks
0010 and enabling/disabling events. Functions are invoked by trapping to the
0011 privilege level of the SDEI firmware (specified as part of the binding
0012 below) and passing arguments in a manner specified by the "SMC Calling
0013 Convention (ARM DEN 0028B):
0014 
0015          r0             => 32-bit Function ID / return value
0016         {r1 - r3}       => Parameters
0017 
0018 Note that the immediate field of the trapping instruction must be set
0019 to #0.
0020 
0021 The SDEI_EVENT_REGISTER function registers a callback in the kernel
0022 text to handle the specified event number.
0023 
0024 The sdei node should be a child node of '/firmware' and have required
0025 properties:
0026 
0027  - compatible    : should contain:
0028         * "arm,sdei-1.0" : For implementations complying to SDEI version 1.x.
0029 
0030  - method        : The method of calling the SDEI firmware. Permitted
0031                    values are:
0032         * "smc" : SMC #0, with the register assignments specified in this
0033                   binding.
0034         * "hvc" : HVC #0, with the register assignments specified in this
0035                   binding.
0036 Example:
0037         firmware {
0038                 sdei {
0039                         compatible      = "arm,sdei-1.0";
0040                         method          = "smc";
0041                 };
0042         };