[PATCH v6 11/14] reboot: Secure Launch SEXIT support on reboot paths

Daniel P. Smith dpsmith at apertussolutions.com
Mon May 15 18:23:32 PDT 2023


On 5/15/23 14:16, Ross Philipson wrote:
> On 5/12/23 07:40, Matthew Garrett wrote:
>> On Thu, May 04, 2023 at 02:50:20PM +0000, Ross Philipson wrote:
>>> If the MLE kernel is being powered off, rebooted or halted,
>>> then SEXIT must be called. Note that the SEXIT GETSEC leaf
>>> can only be called after a machine_shutdown() has been done on
>>> these paths. The machine_shutdown() is not called on a few paths
>>> like when poweroff action does not have a poweroff callback (into
>>> ACPI code) or when an emergency reset is done. In these cases,
>>> just the TXT registers are finalized but SEXIT is skipped.
>>
>> What are the consequences of SEXIT not being called, and why is it ok to
>> skip it in these circumstances?
> 
> Well the system is resetting so there are no real consequences. The 
> problem on those two paths is that the APs have not been halted with a 
> machine_shutdown() and that is a precondition to issuing GETSEC[SEXIT]. 
> Only the BSP should be active and SEXIT must be done on it.

To expand on this just a bit further. On all paths we were able to 
identify, the SECRETS bit is cleared, memconfig is unlocked, and the 
private registers are all closed. This makes the system as safe as 
possible to go through a power event and be able to come back up on the 
other side. The clean way is to always go through an SEXIT before a 
power event, but as Ross highlighted this can only be done after the APs 
have been halted.

v/r,
dps



More information about the kexec mailing list