From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: jordan.l.justen@intel.com) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by groups.io with SMTP; Wed, 10 Apr 2019 01:41:10 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Apr 2019 01:41:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,332,1549958400"; d="scan'208";a="130116353" Received: from askirtik-mobl1.amr.corp.intel.com (HELO jljusten-skl.amr.corp.intel.com) ([10.254.188.249]) by orsmga007.jf.intel.com with ESMTP; 10 Apr 2019 01:41:09 -0700 From: "Jordan Justen" To: devel@edk2.groups.io Cc: Jordan Justen , Liu Yu , Ray Ni , Andrew Fish , Laszlo Ersek , Leif Lindholm , Michael D Kinney Subject: [PATCH v2 0/6] Fix PEI Core issue during TemporaryRamMigration Date: Wed, 10 Apr 2019 01:39:54 -0700 Message-Id: <20190410084000.19660-1-jordan.l.justen@intel.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit https://github.com/jljusten/edk2.git temp-ram-support-v2 https://github.com/jljusten/edk2/commits/temp-ram-support-v2 v2: * Add AARCH64 and ARM assembly * Drop IA32 and X64 .S source files * Adjust PEI_CORE_TEMPORARY_RAM_TRANSITION pointer in the assembly code based on the stack pointer change before & after TemporaryRamSupport->TemporaryRamMigration * Drop extra cleanup patches for OvmfPkg & EmulatorPkg. These were just complicating the series. 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 "MdeModulePkg/Core/Pei: Add interface for assembly based TemporaryRamSupport" patch. Testing: I tested building and booting in several scenarios: * OVMF IA32 & X64 on Linux * ArmVirtPkg AARCH64 & ARM on x86_64 Linux * EmulatorPkg IA32 & X64 on Linux Untested: * My system does not reproduce the issue that Liu Yu reported with EmulatorPkg, so I can't say that I have verified that issue. * Building on windows * AARCH64/ARM TemporaryRamMigration.asm sources Cc: Liu Yu Cc: Ray Ni Cc: Andrew Fish Cc: Laszlo Ersek Cc: Leif Lindholm Cc: Michael D Kinney Jordan Justen (6): MdeModulePkg/Core/Pei: Add interface for assembly based TemporaryRamSupport MdeModulePkg/Core/Pei: Add AARCH64 assembly for TemporaryRamMigration MdeModulePkg/Core/Pei: Add ARM assembly for TemporaryRamMigration MdeModulePkg/Core/Pei: Add IA32 assembly for TemporaryRamMigration MdeModulePkg/Core/Pei: Add X64 assembly for TemporaryRamMigration MdeModulePkg/Core/Pei: Use code path for assembly based TemporaryRamSupport .../AArch64/TemporaryRamMigration.S | 63 +++++++++++++++ .../AArch64/TemporaryRamMigration.asm | 63 +++++++++++++++ .../Dispatcher/Arm/TemporaryRamMigration.S | 68 ++++++++++++++++ .../Dispatcher/Arm/TemporaryRamMigration.asm | 68 ++++++++++++++++ MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 59 +++++++++----- .../Ia32/TemporaryRamMigration.nasm | 77 +++++++++++++++++++ .../Dispatcher/X64/TemporaryRamMigration.nasm | 74 ++++++++++++++++++ MdeModulePkg/Core/Pei/PeiMain.h | 52 +++++++++++++ MdeModulePkg/Core/Pei/PeiMain.inf | 15 ++++ 9 files changed, 518 insertions(+), 21 deletions(-) create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/AArch64/TemporaryRamMigration.S create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/AArch64/TemporaryRamMigration.asm create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/Arm/TemporaryRamMigration.S create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/Arm/TemporaryRamMigration.asm create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/Ia32/TemporaryRamMigration.nasm create mode 100644 MdeModulePkg/Core/Pei/Dispatcher/X64/TemporaryRamMigration.nasm -- 2.20.1