From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: redhat.com, ip: 209.132.183.28, mailfrom: lersek@redhat.com) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by groups.io with SMTP; Wed, 10 Apr 2019 10:26:19 -0700 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 14448308CF84; Wed, 10 Apr 2019 17:26:19 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-121-133.rdu2.redhat.com [10.10.121.133]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2945A104C421; Wed, 10 Apr 2019 17:26:16 +0000 (UTC) Subject: Re: [edk2-devel] [PATCH v2 0/6] Fix PEI Core issue during TemporaryRamMigration To: devel@edk2.groups.io, jordan.l.justen@intel.com Cc: Liu Yu , Ray Ni , Andrew Fish , Leif Lindholm , Michael D Kinney References: <20190410084000.19660-1-jordan.l.justen@intel.com> From: "Laszlo Ersek" Message-ID: <79828ff6-1e8d-96d6-d441-471f34a3828c@redhat.com> Date: Wed, 10 Apr 2019 19:26:16 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20190410084000.19660-1-jordan.l.justen@intel.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Wed, 10 Apr 2019 17:26:19 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 04/10/19 10:39, Jordan Justen wrote: > 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 Performed my usual Linux checks on these, as described in . For building, I used the GCC48 toolchain. > * ArmVirtPkg AARCH64 & ARM on x86_64 Linux Performed a normal boot test, on AARCH64 KVM. For building, I used the GCC5 toolchain (using an oldie 6.1.1 cross-compiler from x86_64). For the series, Regression-tested-by: Laszlo Ersek If a nontrivial update is needed for the series, I don't mind retesting, but only as the last action before pushing. Testing is time consuming and now I'm asking myself if I should have waited for some feedback to arrive first. :) Thanks Laszlo > * 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 >