+ +------------------------------+<------- PcdS3BootScriptTablePrivateDataPtr\r
+ | SCRIPT_TABLE_PRIVATE_DATA | (mS3BootScriptTablePtr, Before SmmReadyToLock)\r
+ | TableBase |--- PcdS3BootScriptTablePrivateSmmDataPtr\r
+ | TableLength |--|-- (mS3BootScriptTablePtr = mS3BootScriptTableSmmPtr, After SmmReadyToLock InSmm)\r
+ | TableMemoryPageNumber |--|-|----\r
+ | AtRuntime | | | |\r
+ | InSmm | | | |\r
+ | BootTimeScriptLength |--|-|---|---\r
+ | SmmLocked | | | | |\r
+ | BackFromS3 | | | | |\r
+ +------------------------------+ | | | |\r
+ | | | |\r
+ +------------------------------+<-- | | |\r
+ | EFI_BOOT_SCRIPT_TABLE_HEADER | | | |\r
+ | TableLength |----|-- | |\r
+ +------------------------------+ | | | |\r
+ | ...... | | | | |\r
+ +------------------------------+<---- | | |\r
+ | EFI_BOOT_SCRIPT_TERMINATE | | | |\r
+ +------------------------------+<------ | |\r
+ | |\r
+ | |\r
+ mBootScriptDataBootTimeGuid LockBox: | |\r
+ Used to restore data after back from S3| |\r
+ to handle potential INSERT boot script | |\r
+ at runtime. | |\r
+ +------------------------------+ | |\r
+ | Boot Time Boot Script | | |\r
+ | Before SmmReadyToLock | | |\r
+ | | | |\r
+ | | | |\r
+ +------------------------------+ | |\r
+ | Boot Time Boot Script | | |\r
+ | After SmmReadyToLock InSmm | | |\r
+ | | | |\r
+ +------------------------------+<-------|--|\r
+ | |\r
+ | |\r
+ mBootScriptDataGuid LockBox: (IN_PLACE) | |\r
+ Used to restore data at S3 resume. | |\r
+ +------------------------------+ | |\r
+ | Boot Time Boot Script | | |\r
+ | Before SmmReadyToLock | | |\r
+ | | | |\r
+ | | | |\r
+ +------------------------------+ | |\r
+ | Boot Time Boot Script | | |\r
+ | After SmmReadyToLock InSmm | | |\r
+ | | | |\r
+ +------------------------------+<-------|---\r
+ | Runtime Boot Script | |\r
+ | After SmmReadyToLock InSmm | |\r
+ +------------------------------+ |\r
+ | ...... | |\r
+ +------------------------------+<--------\r
+\r
+\r
+ mBootScriptTableBaseGuid LockBox: (IN_PLACE)\r
+ +------------------------------+\r
+ | mS3BootScriptTablePtr-> |\r
+ | TableBase |\r
+ +------------------------------+\r
+\r
+\r
+ mBootScriptSmmPrivateDataGuid LockBox: (IN_PLACE)\r
+ SMM private data with BackFromS3 = TRUE\r
+ at runtime. S3 will help restore it to\r
+ tell the Library the system is back from S3.\r
+ +------------------------------+\r