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