firmware: smccc: Add support for Live Firmware Activation (LFA)
The Arm Live Firmware Activation (LFA) is a specification [1] to describe activating firmware components without a reboot. Those components (like TF-A's BL31, EDK-II, TF-RMM, secure paylods) would be updated the usual way: via fwupd, FF-A or other secure storage methods, or via some IMPDEF Out-Of-Bound method. The user can then activate this new firmware, at system runtime, without requiring a reboot. The specification covers the SMCCC interface to list and query available components and eventually trigger the activation. Add a new directory under /sys/firmware to present firmware components capable of live activation. Each of them is a directory under lfa/, and is identified via its GUID. The activation will be triggered by echoing "1" into the "activate" file: ========================================== /sys/firmware/lfa # ls -l . 6c* .: total 0 drwxr-xr-x 2 0 0 0 May 30 13:31 47d4086d-4cfe-9846-9b95-2950cbbd5a00 drwxr-xr-x 2 0 0 0 May 30 13:31 6c0762a6-12f2-4b56-92cb-ba8f633606d9 drwxr-xr-x 2 0 0 0 May 30 13:31 d6d0eea7-fcea-d54b-9782-9934f234b6e4 6c0762a6-12f2-4b56-92cb-ba8f633606d9: total 0 --w------- 1 0 0 4096 May 30 13:31 activate -r--r--r-- 1 0 0 4096 May 30 13:31 activation_capable -r--r--r-- 1 0 0 4096 May 30 13:31 activation_pending --w------- 1 0 0 4096 May 30 13:31 cancel -r--r--r-- 1 0 0 4096 May 30 13:31 cpu_rendezvous -r--r--r-- 1 0 0 4096 May 30 13:31 may_reset_cpu -r--r--r-- 1 0 0 4096 May 30 13:31 name /sys/firmware/lfa/6c0762a6-12f2-4b56-92cb-ba8f633606d9 # grep . * grep: activate: Permission denied activation_capable:1 activation_pending:1 grep: cancel: Permission denied cpu_rendezvous:1 may_reset_cpu:0 name:rmm /sys/firmware/lfa/6c0762a6-12f2-4b56-92cb-ba8f633606d9 # echo 1 > activate [ 2825.797871] Arm LFA: firmware activation succeeded. /sys/firmware/lfa/6c0762a6-12f2-4b56-92cb-ba8f633606d9 # ========================================== [1] https://developer.arm.com/documentation/den0147/latest/ Signed-off-by:Salman Nabi <salman.nabi@arm.com> [Andre: add actual activation routine, cleanups] Signed-off-by:
Andre Przywara <andre.przywara@arm.com>
Loading
Please register or sign in to comment