public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Jordan Justen <jordan.l.justen@intel.com>
To: edk2-devel@lists.01.org
Cc: Jordan Justen <jordan.l.justen@intel.com>,
	Andrew Fish <afish@apple.com>, Ray Ni <ray.ni@intel.com>
Subject: [PATCH 03/10] EmulatorPkg/Sec: Replace assembly temp-ram support with C code
Date: Sun, 17 Feb 2019 20:11:34 -0800	[thread overview]
Message-ID: <20190218041141.21363-4-jordan.l.justen@intel.com> (raw)
In-Reply-To: <20190218041141.21363-1-jordan.l.justen@intel.com>

OvmfPkg uses similar code based on SetJump/LongJump.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Ray Ni <ray.ni@intel.com>
---
 EmulatorPkg/Sec/Ia32/SwitchRam.S   | 95 ------------------------------
 EmulatorPkg/Sec/Ia32/SwitchRam.asm | 94 -----------------------------
 EmulatorPkg/Sec/Ia32/TempRam.c     | 65 --------------------
 EmulatorPkg/Sec/Sec.c              | 64 +++++++++++++++++++-
 EmulatorPkg/Sec/Sec.inf            | 13 +---
 EmulatorPkg/Sec/X64/SwitchRam.S    | 72 ----------------------
 EmulatorPkg/Sec/X64/SwitchRam.asm  | 76 ------------------------
 7 files changed, 66 insertions(+), 413 deletions(-)
 delete mode 100644 EmulatorPkg/Sec/Ia32/SwitchRam.S
 delete mode 100644 EmulatorPkg/Sec/Ia32/SwitchRam.asm
 delete mode 100644 EmulatorPkg/Sec/Ia32/TempRam.c
 delete mode 100644 EmulatorPkg/Sec/X64/SwitchRam.S
 delete mode 100644 EmulatorPkg/Sec/X64/SwitchRam.asm

diff --git a/EmulatorPkg/Sec/Ia32/SwitchRam.S b/EmulatorPkg/Sec/Ia32/SwitchRam.S
deleted file mode 100644
index 39304daef1..0000000000
--- a/EmulatorPkg/Sec/Ia32/SwitchRam.S
+++ /dev/null
@@ -1,95 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http:#opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   Stack.asm
-#
-# Abstract:
-#
-#   Switch the stack from temporary memory to permenent memory.
-#
-#------------------------------------------------------------------------------
-
- .text
-
-
-//------------------------------------------------------------------------------
-// VOID
-// EFIAPI
-// SecSwitchStack (
-//   UINT32   TemporaryMemoryBase,
-//   UINT32   PermenentMemoryBase
-//   )//
-//------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(SecSwitchStack)
-ASM_PFX(SecSwitchStack):
-#
-# Save three register: eax, ebx, ecx
-#
-    push  %eax
-    push  %ebx
-    push  %ecx
-    push  %edx
-
-#
-# !!CAUTION!! this function address's is pushed into stack after
-# migration of whole temporary memory, so need save it to permenent
-# memory at first!
-#
-
-    movl  20(%esp), %ebx            # Save the first parameter
-    movl  24(%esp), %ecx            # Save the second parameter
-
-#
-# Save this function's return address into permenent memory at first.
-# Then, Fixup the esp point to permenent memory
-#
-
-    movl  %esp, %eax
-    subl  %ebx, %eax
-    addl  %ecx, %eax
-    movl  (%esp), %edx                 # copy pushed register's value to permenent memory
-    movl  %edx, (%eax)
-    movl  4(%esp), %edx
-    movl  %edx, 4(%eax)
-    movl  8(%esp), %edx
-    movl  %edx, 8(%eax)
-    movl  12(%esp), %edx
-    movl  %edx, 12(%eax)
-    movl  16(%esp), %edx
-    movl  %edx, 16(%eax)
-    movl  %eax, %esp                   # From now, esp is pointed to permenent memory
-
-#
-# Fixup the ebp point to permenent memory
-#
-#ifndef __APPLE__
-    movl   %ebp, %eax
-    subl   %ebx, %eax
-    addl   %ecx, %eax
-    movl   %eax, %ebp                  # From now, ebp is pointed to permenent memory
-
-#
-# Fixup callee's ebp point for PeiDispatch
-#
-    movl   (%ebp), %eax
-    subl   %ebx, %eax
-    addl   %ecx, %eax
-    movl   %eax, (%ebp)                # From now, Temporary's PPI caller's stack is in permenent memory
-#endif
-
-    pop   %edx
-    pop   %ecx
-    pop   %ebx
-    pop   %eax
-    ret
-
diff --git a/EmulatorPkg/Sec/Ia32/SwitchRam.asm b/EmulatorPkg/Sec/Ia32/SwitchRam.asm
deleted file mode 100644
index 731ee0ffdb..0000000000
--- a/EmulatorPkg/Sec/Ia32/SwitchRam.asm
+++ /dev/null
@@ -1,94 +0,0 @@
-;------------------------------------------------------------------------------
-;
-; Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
-; This program and the accompanying materials
-; are licensed and made available under the terms and conditions of the BSD License
-; which accompanies this distribution.  The full text of the license may be found at
-; http://opensource.org/licenses/bsd-license.php
-;
-; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-;
-; Module Name:
-;
-;   Stack.asm
-;
-; Abstract:
-;
-;   Switch the stack from temporary memory to permenent memory.
-;
-;------------------------------------------------------------------------------
-
-    .586p
-    .model  flat,C
-    .code
-
-;------------------------------------------------------------------------------
-; VOID
-; EFIAPI
-; SecSwitchStack (
-;   UINT32   TemporaryMemoryBase,
-;   UINT32   PermenentMemoryBase
-;   );
-;------------------------------------------------------------------------------
-SecSwitchStack   PROC
-    ;
-    ; Save three register: eax, ebx, ecx
-    ;
-    push  eax
-    push  ebx
-    push  ecx
-    push  edx
-
-    ;
-    ; !!CAUTION!! this function address's is pushed into stack after
-    ; migration of whole temporary memory, so need save it to permenent
-    ; memory at first!
-    ;
-
-    mov   ebx, [esp + 20]          ; Save the first parameter
-    mov   ecx, [esp + 24]          ; Save the second parameter
-
-    ;
-    ; Save this function's return address into permenent memory at first.
-    ; Then, Fixup the esp point to permenent memory
-    ;
-    mov   eax, esp
-    sub   eax, ebx
-    add   eax, ecx
-    mov   edx, dword ptr [esp]         ; copy pushed register's value to permenent memory
-    mov   dword ptr [eax], edx
-    mov   edx, dword ptr [esp + 4]
-    mov   dword ptr [eax + 4], edx
-    mov   edx, dword ptr [esp + 8]
-    mov   dword ptr [eax + 8], edx
-    mov   edx, dword ptr [esp + 12]
-    mov   dword ptr [eax + 12], edx
-    mov   edx, dword ptr [esp + 16]    ; Update this function's return address into permenent memory
-    mov   dword ptr [eax + 16], edx
-    mov   esp, eax                     ; From now, esp is pointed to permenent memory
-
-    ;
-    ; Fixup the ebp point to permenent memory
-    ;
-    mov   eax, ebp
-    sub   eax, ebx
-    add   eax, ecx
-    mov   ebp, eax                ; From now, ebp is pointed to permenent memory
-
-    ;
-    ; Fixup callee's ebp point for PeiDispatch
-    ;
-    mov   eax, dword ptr [ebp]
-    sub   eax, ebx
-    add   eax, ecx
-    mov   dword ptr [ebp], eax    ; From now, Temporary's PPI caller's stack is in permenent memory
-
-    pop   edx
-    pop   ecx
-    pop   ebx
-    pop   eax
-    ret
-SecSwitchStack   ENDP
-
-    END
diff --git a/EmulatorPkg/Sec/Ia32/TempRam.c b/EmulatorPkg/Sec/Ia32/TempRam.c
deleted file mode 100644
index 591354970b..0000000000
--- a/EmulatorPkg/Sec/Ia32/TempRam.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*++ @file
-  Temp RAM PPI
-
-Copyright (c) 2011, Apple Inc. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution.  The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include <PiPei.h>
-#include <Library/DebugLib.h>
-#include <Library/BaseMemoryLib.h>
-
-#include <Ppi/TemporaryRamSupport.h>
-
-VOID
-EFIAPI
-SecSwitchStack (
-  UINT32   TemporaryMemoryBase,
-  UINT32   PermenentMemoryBase
-  );
-
-
-EFI_STATUS
-EFIAPI
-SecTemporaryRamSupport (
-  IN CONST EFI_PEI_SERVICES   **PeiServices,
-  IN EFI_PHYSICAL_ADDRESS     TemporaryMemoryBase,
-  IN EFI_PHYSICAL_ADDRESS     PermanentMemoryBase,
-  IN UINTN                    CopySize
-  )
-{
-  //
-  // Migrate the whole temporary memory to permanent memory.
-  //
-  CopyMem (
-    (VOID*)(UINTN)PermanentMemoryBase,
-    (VOID*)(UINTN)TemporaryMemoryBase,
-    CopySize
-    );
-
-  //
-  // SecSwitchStack function must be invoked after the memory migration
-  // immediately, also we need fixup the stack change caused by new call into
-  // permanent memory.
-  //
-  SecSwitchStack ((UINT32) TemporaryMemoryBase, (UINT32) PermanentMemoryBase);
-
-  //
-  // We need *not* fix the return address because currently,
-  // The PeiCore is executed in flash.
-  //
-
-  //
-  // Simulate to invalid temporary memory, terminate temporary memory
-  //
-  //ZeroMem ((VOID*)(UINTN)TemporaryMemoryBase, CopySize);
-
-  return EFI_SUCCESS;
-}
diff --git a/EmulatorPkg/Sec/Sec.c b/EmulatorPkg/Sec/Sec.c
index 4132e9d9b7..bd61e5ac4a 100644
--- a/EmulatorPkg/Sec/Sec.c
+++ b/EmulatorPkg/Sec/Sec.c
@@ -4,6 +4,8 @@
   The OS application will call the SEC with the PEI Entry Point API.
 
 Copyright (c) 2011, Apple Inc. All rights reserved.<BR>
+Copyright (c) 2018 - 2019, Intel Corporation. All rights reserved.<BR>
+
 This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD License
 which accompanies this distribution.  The full text of the license may be found at
@@ -17,9 +19,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include "Sec.h"
 
 
+EFI_STATUS
+EFIAPI
+TemporaryRamMigration (
+  IN CONST EFI_PEI_SERVICES   **PeiServices,
+  IN EFI_PHYSICAL_ADDRESS     TemporaryMemoryBase,
+  IN EFI_PHYSICAL_ADDRESS     PermanentMemoryBase,
+  IN UINTN                    CopySize
+  );
 
 EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI mSecTemporaryRamSupportPpi = {
-  SecTemporaryRamSupport
+  TemporaryRamMigration
 };
 
 
@@ -31,6 +41,58 @@ EFI_PEI_PPI_DESCRIPTOR  gPrivateDispatchTable[] = {
   }
 };
 
+EFI_STATUS
+EFIAPI
+TemporaryRamMigration (
+  IN CONST EFI_PEI_SERVICES   **PeiServices,
+  IN EFI_PHYSICAL_ADDRESS     TemporaryMemoryBase,
+  IN EFI_PHYSICAL_ADDRESS     PermanentMemoryBase,
+  IN UINTN                    CopySize
+  )
+{
+  BASE_LIBRARY_JUMP_BUFFER         JumpBuffer;
+  INTN                             OldToNewStackDelta;
+
+  DEBUG ((DEBUG_INFO,
+    "TemporaryRamMigration(0x%Lx, 0x%Lx, 0x%Lx)\n",
+    TemporaryMemoryBase,
+    PermanentMemoryBase,
+    (UINT64)CopySize
+    ));
+
+  OldToNewStackDelta = (INTN)PermanentMemoryBase - (INTN)TemporaryMemoryBase;
+
+  CopyMem (
+    (VOID*)(UINTN) PermanentMemoryBase,
+    (VOID*)(UINTN) TemporaryMemoryBase,
+    CopySize
+    );
+
+  //
+  // Use SetJump()/LongJump() to switch to a new stack.
+  //
+  if (SetJump (&JumpBuffer) == 0) {
+#if defined (MDE_CPU_IA32)
+    JumpBuffer.Esp = JumpBuffer.Esp + OldToNewStackDelta;
+    JumpBuffer.Ebp = JumpBuffer.Ebp + OldToNewStackDelta;
+#endif
+#if defined (MDE_CPU_X64)
+    JumpBuffer.Rsp = JumpBuffer.Rsp + OldToNewStackDelta;
+    JumpBuffer.Rbp = JumpBuffer.Rbp + OldToNewStackDelta;
+#endif
+    LongJump (&JumpBuffer, (UINTN)-1);
+  }
+
+  //
+  // Initialize Temporary RAM to a bad value to make sure it will not
+  // be used after migration.
+  //
+  SetMem32 (
+    (VOID*)(UINTN)TemporaryMemoryBase, CopySize,
+    PcdGet32 (PcdInitValueInTempStack));
+
+  return EFI_SUCCESS;
+}
 
 
 /**
diff --git a/EmulatorPkg/Sec/Sec.inf b/EmulatorPkg/Sec/Sec.inf
index d253fd724e..93c09d248a 100644
--- a/EmulatorPkg/Sec/Sec.inf
+++ b/EmulatorPkg/Sec/Sec.inf
@@ -3,7 +3,7 @@
 #
 # Main executable file of Unix Emulator that loads PEI core after initialization finished.
 # Portions copyright (c) 2011, Apple Inc. All rights reserved.<BR>
-# Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2012 - 2019, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
@@ -26,17 +26,9 @@
 [Sources]
   Sec.c
 
-[Sources.X64]
-  X64/SwitchRam.asm
-  X64/SwitchRam.S
-
-[Sources.IA32]
-  Ia32/TempRam.c
-  Ia32/SwitchRam.asm
-  Ia32/SwitchRam.S
-
 [Packages]
   MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
   EmulatorPkg/EmulatorPkg.dec
 
 [LibraryClasses]
@@ -50,4 +42,5 @@
   gEfiTemporaryRamSupportPpiGuid
 
 [Pcd]
+  gEfiMdeModulePkgTokenSpaceGuid.PcdInitValueInTempStack
   gEmulatorPkgTokenSpaceGuid.PcdPeiServicesTablePage
diff --git a/EmulatorPkg/Sec/X64/SwitchRam.S b/EmulatorPkg/Sec/X64/SwitchRam.S
deleted file mode 100644
index 9ed1f911e7..0000000000
--- a/EmulatorPkg/Sec/X64/SwitchRam.S
+++ /dev/null
@@ -1,72 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
-# Portitions copyright (c) 2011, Apple Inc. All rights reserved.
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#------------------------------------------------------------------------------
-
-
-
-//  EFI_STATUS
-//  EFIAPI
-//  SecTemporaryRamSupport (
-//    IN CONST EFI_PEI_SERVICES   **PeiServices,         // %rcx
-//    IN EFI_PHYSICAL_ADDRESS     TemporaryMemoryBase,   // %rdx
-//    IN EFI_PHYSICAL_ADDRESS     PermanentMemoryBase,   // %r8
-//    IN UINTN                    CopySize               // %r9
-//    )
-//
-ASM_GLOBAL ASM_PFX(SecTemporaryRamSupport)
-ASM_PFX(SecTemporaryRamSupport):
-  // Adjust callers %rbp to account for stack move
-  subq    %rdx, %rbp     // Calc offset of %rbp in Temp Memory
-  addq    %r8,  %rbp     // add in permanent base to offset
-
-  pushq   %rbp           // stack frame is for the debugger
-  movq    %rsp, %rbp
-
-  pushq   %rdx          // Save TemporaryMemoryBase
-  pushq   %r8           // Save PermanentMemoryBase
-  pushq   %r9           // Save CopySize
-
-  //
-  // Copy all of temp RAM to permanent memory, including stack
-  //
-  // CopyMem (PermanentMemoryBase, TemporaryMemoryBase, CopySize);
-  //          %rcx,                %rdx,                %r8
-  movq    %r8,  %rcx    // Shift arguments
-  movq    %r9,  %r8
-  subq    $0x28, %rsp   // Allocate register spill area & 16-byte align stack
-  call    ASM_PFX(CopyMem)
-  // Temp mem stack now copied to permanent location. %esp still in temp memory
-  addq    $0x28, %rsp
-
-  popq    %r9           // CopySize (old stack)
-  popq    %r8           // PermanentMemoryBase (old stack)
-  popq    %rdx          // TemporaryMemoryBase (old stack)
-
-  movq    %rsp, %rcx    // Move to new stack
-  subq    %rdx, %rcx    // Calc offset of stack in Temp Memory
-  addq    %r8,  %rcx    // Calc PermanentMemoryBase address
-  movq    %rcx, %rsp    // Update stack
-  // Stack now points to permanent memory
-
-  // ZeroMem (TemporaryMemoryBase /* rcx */, CopySize /* rdx */);
-  movq    %rdx, %rcx
-  movq    %r9,  %rdx
-  subq    $0x28, %rsp   // Allocate register spill area & 16-byte align stack
-  call    ASM_PFX(ZeroMem)
-  addq    $0x28, %rsp
-
-  // This data comes off the NEW stack
-  popq    %rbp
-  ret
-
-
diff --git a/EmulatorPkg/Sec/X64/SwitchRam.asm b/EmulatorPkg/Sec/X64/SwitchRam.asm
deleted file mode 100644
index d1a7b943fd..0000000000
--- a/EmulatorPkg/Sec/X64/SwitchRam.asm
+++ /dev/null
@@ -1,76 +0,0 @@
-;------------------------------------------------------------------------------
-;
-; Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
-; Portitions copyright (c) 2011, Apple Inc. All rights reserved.
-; This program and the accompanying materials
-; are licensed and made available under the terms and conditions of the BSD License
-; which accompanies this distribution.  The full text of the license may be found at
-; http://opensource.org/licenses/bsd-license.php.
-;
-; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-;
-;------------------------------------------------------------------------------
-
-EXTERN CopyMem:PROC
-EXTERN ZeroMem:PROC
-
-    .code
-
-;------------------------------------------------------------------------------
-;  EFI_STATUS
-;  EFIAPI
-;  SecTemporaryRamSupport (
-;    IN CONST EFI_PEI_SERVICES   **PeiServices,         // %rcx
-;    IN EFI_PHYSICAL_ADDRESS     TemporaryMemoryBase,   // %rdx
-;    IN EFI_PHYSICAL_ADDRESS     PermanentMemoryBase,   // %r8
-;    IN UINTN                    CopySize               // %r9
-;    )
-;------------------------------------------------------------------------------
-SecTemporaryRamSupport PROC
-  ; Adjust callers %rbp to account for stack move
-  sub     rbp, rdx      ; Calc offset of %rbp in Temp Memory
-  add     rbp, r8       ; add in permanent base to offset
-
-  push    rbp           ; stack frame is for the debugger
-  mov     rbp, rsp
-
-  push    rdx           ; Save TemporaryMemoryBase
-  push    r8            ; Save PermanentMemoryBase
-  push    r9            ; Save CopySize
-
-  ;
-  ; Copy all of temp RAM to permanent memory, including stack
-  ;
-  ; CopyMem (PermanentMemoryBase, TemporaryMemoryBase, CopySize);
-  ;          %rcx,                %rdx,                %r8
-  mov     rcx, r8       ; Shift arguments
-  mov     r8, r9
-  sub     rsp, 028h     ; Allocate register spill area & 16-byte align stack
-  call    CopyMem
-  ; Temp mem stack now copied to permanent location. %esp still in temp memory
-  add     rsp, 028h
-
-  pop     r9            ; CopySize (old stack)
-  pop     r8            ; PermanentMemoryBase (old stack)
-  pop     rdx           ; TemporaryMemoryBase (old stack)
-
-  mov     rcx, rsp      ; Move to new stack
-  sub     rcx, rdx      ; Calc offset of stack in Temp Memory
-  add     rcx, r8       ; Calc PermanentMemoryBase address
-  mov     rsp, rcx      ; Update stack
-  ; Stack now points to permanent memory
-
-  ; ZeroMem (TemporaryMemoryBase /* rcx */, CopySize /* rdx */);
-  mov     rcx, rdx
-  mov     rdx, r9
-  sub     rsp, 028h     ; Allocate register spill area & 16-byte align stack
-  call    ZeroMem
-  add     rsp, 028h
-
-  ; This data comes off the NEW stack
-  pop     rbp
-  ret
-SecTemporaryRamSupport ENDP
-
-  END
-- 
2.20.0.rc1



  parent reply	other threads:[~2019-02-18  4:12 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-18  4:11 [PATCH 00/10] Fix PEI Core issue during TemporaryRamMigration Jordan Justen
2019-02-18  4:11 ` [PATCH 01/10] EmulatorPkg/build.sh: Fix missing usage of -b BUILDTARGET parameter Jordan Justen
2019-02-18  4:11 ` [PATCH 02/10] EmulatorPkg/Unix/Host: Use PcdInitValueInTempStack to init temp-ram Jordan Justen
2019-02-18  4:11 ` Jordan Justen [this message]
2019-02-18  4:11 ` [PATCH 04/10] EmulatorPkg/Sec: Disable optimizations for TemporaryRamMigration function Jordan Justen
2019-02-18  4:11 ` [PATCH 05/10] OvmfPkg/Sec: Swap TemporaryRam Stack and Heap locations Jordan Justen
2019-02-18 12:58   ` Laszlo Ersek
2019-02-18  4:11 ` [PATCH 06/10] OvmfPkg/Sec: Disable optimizations for TemporaryRamMigration Jordan Justen
2019-02-18  7:53   ` Ard Biesheuvel
2019-02-18  9:08     ` Jordan Justen
2019-02-18  9:32       ` Ard Biesheuvel
2019-02-18 13:01         ` Laszlo Ersek
2019-02-19 22:50         ` Brian J. Johnson
2019-02-19 23:58           ` Jordan Justen
2019-02-20  8:52         ` Jordan Justen
2019-02-20  8:59           ` Ard Biesheuvel
2019-02-18  4:11 ` [PATCH 07/10] MdeModePkg/Core/Pei: Add code path to allow assembly temp-ram migration Jordan Justen
2019-02-18  4:11 ` [PATCH 08/10] MdeModulePkg/Core/Pei: Use assembly for X64 TemporaryRamMigration Jordan Justen
2019-02-18  4:11 ` [PATCH 09/10] MdeModulePkg/Core/Pei: Use assembly for IA32 TemporaryRamMigration Jordan Justen
2019-02-18  4:11 ` [PATCH 10/10] OvmfPkg/Sec: Fill Temp Ram after TemporaryRamMigration Jordan Justen
2019-02-18 13:15   ` Laszlo Ersek
2019-02-19  2:46 ` [PATCH 00/10] Fix PEI Core issue during TemporaryRamMigration Ni, Ray
2019-02-19 13:25   ` Gao, Liming
2019-02-20 13:27     ` Ni, Ray
2019-02-20 17:43       ` Jordan Justen
2019-02-21  0:15         ` Ni, Ray
2019-02-21  1:03           ` Jordan Justen
2019-02-21  4:43             ` Ni, Ray
2019-02-19 19:27   ` Jordan Justen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190218041141.21363-4-jordan.l.justen@intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox