From: Jordan Justen <jordan.l.justen@intel.com>
To: edk2-devel@lists.01.org
Cc: Jordan Justen <jordan.l.justen@intel.com>,
Liu Yu <pedroa.liu@outlook.com>, Andrew Fish <afish@apple.com>,
Anthony Perard <anthony.perard@citrix.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Hao Wu <hao.a.wu@intel.com>, Jian J Wang <jian.j.wang@intel.com>,
Julien Grall <julien.grall@linaro.org>,
Laszlo Ersek <lersek@redhat.com>, Ray Ni <ray.ni@intel.com>,
Star Zeng <star.zeng@intel.com>
Subject: [PATCH 00/10] Fix PEI Core issue during TemporaryRamMigration
Date: Sun, 17 Feb 2019 20:11:31 -0800 [thread overview]
Message-ID: <20190218041141.21363-1-jordan.l.justen@intel.com> (raw)
https://github.com/jljusten/edk2.git temp-ram-support
This series fixes an issue that, while rare, is possible based on the
way the TemporaryRamSupport PPI is defined along with how it is used
by the PEI Core.
Liu Yu reported a boot issue with EmulatorPkg, which I believe was
caused by this issue.
The details of the issue are described in the commit message of the
"MdeModePkg/Core/Pei: Add code path to allow assembly temp-ram
migration" patch.
Along with this, I added a few Temporary RAM patches for EmulatorPkg
and OvmfPkg.
Cc: Liu Yu <pedroa.liu@outlook.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Julien Grall <julien.grall@linaro.org>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Jordan Justen (10):
EmulatorPkg/build.sh: Fix missing usage of -b BUILDTARGET parameter
EmulatorPkg/Unix/Host: Use PcdInitValueInTempStack to init temp-ram
EmulatorPkg/Sec: Replace assembly temp-ram support with C code
EmulatorPkg/Sec: Disable optimizations for TemporaryRamMigration
function
OvmfPkg/Sec: Swap TemporaryRam Stack and Heap locations
OvmfPkg/Sec: Disable optimizations for TemporaryRamMigration
MdeModePkg/Core/Pei: Add code path to allow assembly temp-ram
migration
MdeModulePkg/Core/Pei: Use assembly for X64 TemporaryRamMigration
MdeModulePkg/Core/Pei: Use assembly for IA32 TemporaryRamMigration
OvmfPkg/Sec: Fill Temp Ram after TemporaryRamMigration
EmulatorPkg/Sec/Ia32/SwitchRam.S | 95 -------------------
EmulatorPkg/Sec/Ia32/SwitchRam.asm | 94 ------------------
EmulatorPkg/Sec/Ia32/TempRam.c | 65 -------------
EmulatorPkg/Sec/Sec.c | 76 ++++++++++++++-
EmulatorPkg/Sec/Sec.inf | 13 +--
EmulatorPkg/Sec/X64/SwitchRam.S | 72 --------------
EmulatorPkg/Sec/X64/SwitchRam.asm | 76 ---------------
EmulatorPkg/Unix/Host/Host.c | 2 +-
EmulatorPkg/Unix/Host/Host.inf | 1 +
EmulatorPkg/build.sh | 10 +-
MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 59 ++++++++----
.../Dispatcher/Ia32/TemporaryRamMigration.S | 72 ++++++++++++++
.../Ia32/TemporaryRamMigration.nasm | 78 +++++++++++++++
.../Pei/Dispatcher/TemporaryRamMigration.c | 52 ++++++++++
.../Dispatcher/X64/TemporaryRamMigration.S | 69 ++++++++++++++
.../Dispatcher/X64/TemporaryRamMigration.nasm | 75 +++++++++++++++
MdeModulePkg/Core/Pei/PeiMain.h | 52 ++++++++++
MdeModulePkg/Core/Pei/PeiMain.inf | 14 +++
OvmfPkg/Sec/Ia32/SecEntry.nasm | 2 +-
OvmfPkg/Sec/SecMain.c | 59 ++++++++----
OvmfPkg/Sec/X64/SecEntry.nasm | 2 +-
21 files changed, 577 insertions(+), 461 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
create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/Ia32/TemporaryRamMigration.S
create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/Ia32/TemporaryRamMigration.nasm
create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/TemporaryRamMigration.c
create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/X64/TemporaryRamMigration.S
create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/X64/TemporaryRamMigration.nasm
--
2.20.0.rc1
next reply other threads:[~2019-02-18 4:11 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-18 4:11 Jordan Justen [this message]
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 ` [PATCH 03/10] EmulatorPkg/Sec: Replace assembly temp-ram support with C code Jordan Justen
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-1-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