From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4001:c06::241; helo=mail-io0-x241.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-io0-x241.google.com (mail-io0-x241.google.com [IPv6:2607:f8b0:4001:c06::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E188322198F60 for ; Tue, 26 Dec 2017 15:01:53 -0800 (PST) Received: by mail-io0-x241.google.com with SMTP id x67so27613547ioi.9 for ; Tue, 26 Dec 2017 15:06:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=xuqoP0x3KajUpVfkA7SS6XXc8dKcCaHaz0znyE7sOmo=; b=KWYFY8/NKbqaAwIcMpoFFQrxsygPAEdcP5xkaOcFhU9XsAjXJwMgmOnb9FfmFyE+gy WhaTz0VAJ9omxA08lA5aDrL+ImYWJW0paUBFWB89P5K27Mx1g/AfTFbHjpL0apa9Gwf5 +oxJjcx/Q5tvMxx+xrDxIaOkL4TdMj0P1FT2s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=xuqoP0x3KajUpVfkA7SS6XXc8dKcCaHaz0znyE7sOmo=; b=nY1y+2qtYZns4CeBbZxHTMaQIAlGiMRl/GpuH/jyneVI8+mbr+cUk4Kwu/kbVfZEPD DX2m71OiUkB0cnApiaZ1xE82bXZpSWMUvITu55Mu2H/u4xoEh7/ylqw/QcxGugidJ1Z7 fGOPEeMxD2CHJlHsjMFuucutYNlfaeLTSqoM2P+Eqs2AjqbQ8LW1i9DnjZLYPJ5GK/PB jGqY/dp3ff6lzdMgBXLa73ST0ID+J0i6f67gcXiznXCVgQRcuGbXyG6p4gzV/iCS45lI kTNwXKCeUQAcXVEDLP7iUnN648JcQLmKr6d73wEyjD18sVh73k6uLRhg3yJMZZbg8Bqn k9Kw== X-Gm-Message-State: AKGB3mKvqD2VjbXDWlZ2yE1kszE1ffqmJiEZw8HdWHnBpCWHahyRZVZ/ ky+OXNW2xbr2zm94yxWiB+l+RFou3ehqi2lftv5zrA== X-Google-Smtp-Source: ACJfBotYQfxFVew/78tiCSmgC2ZUz7FMkeylXemkdcnlx6FELbsYfJkJ+BMakOKwoAC237mD1ggFTREXMxA1YnoFl9c= X-Received: by 10.107.2.212 with SMTP id 203mr30919015ioc.186.1514329607813; Tue, 26 Dec 2017 15:06:47 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.52.14 with HTTP; Tue, 26 Dec 2017 15:06:47 -0800 (PST) In-Reply-To: <7bd00d4b1fa918286d61e069fc68f6bd@mail.gmail.com> References: <20171130152453.19205-1-ard.biesheuvel@linaro.org> <20171130152453.19205-6-ard.biesheuvel@linaro.org> <7bd00d4b1fa918286d61e069fc68f6bd@mail.gmail.com> From: Ard Biesheuvel Date: Tue, 26 Dec 2017 23:06:47 +0000 Message-ID: To: Vladimir Olovyannikov Cc: "edk2-devel@lists.01.org" , Leif Lindholm Subject: Re: [PATCH 5/7] ArmPlatformPkg/MemoryInitPeiLib: don't reserve primary FV in memory X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Dec 2017 23:01:54 -0000 Content-Type: text/plain; charset="UTF-8" On 26 December 2017 at 21:52, Vladimir Olovyannikov wrote: > Hi Ard, Meenakshi, > > I am having a problem I cannot explain the reason for, with this commit on > an ARM64 platform. > > ArmPlatformPkg/MemoryInitPeiLib: don't reserve primary FV in memory > > Now that PrePi no longer exposes its internal code via special HOBs, > we can remove the special handling of the primary FV, which needed to > be reserved so that DXE core could call into the PE/COFF and LZMA > libraries in the PrePi module. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Udit Kumar > Signed-off-by: Meenakshi Aggarwal > [ardb: updated commit log] > Signed-off-by: Ard Biesheuvel > Reviewed-by: Leif Lindholm > > If a Shell is built "as is" from the source tree, there are no issues. > However, if I slightly modify Shell.c like in the following patch: > > diff --git a/ShellPkg/Application/Shell/Shell.c > b/ShellPkg/Application/Shell/Shell.c > index 577e17311bea..bbbdde8ced96 100644 > --- a/ShellPkg/Application/Shell/Shell.c > +++ b/ShellPkg/Application/Shell/Shell.c > @@ -339,6 +339,11 @@ UefiMain ( > EFI_HANDLE ConInHandle; > EFI_SIMPLE_TEXT_INPUT_PROTOCOL *OldConIn; > SPLIT_LIST *Split; > + CHAR16 *DelayStr; > + CHAR16 *NoMapStr; > + UINTN DelayVarSize; > + UINTN NoMapVarSize; > + BOOLEAN SilentStart; > > if (PcdGet8(PcdShellSupportLevel) > 3) { > return (EFI_UNSUPPORTED); > @@ -360,6 +365,7 @@ UefiMain ( > ShellInfoObject.PageBreakEnabled = > PcdGetBool(PcdShellPageBreakDefault); > ShellInfoObject.ViewingSettings.InsertMode = > PcdGetBool(PcdShellInsertModeDefault); > ShellInfoObject.LogScreenCount = PcdGet8 > (PcdShellScreenLogCount ); > + SilentStart = FALSE; > > // > // verify we dont allow for spec violation > @@ -452,6 +458,21 @@ UefiMain ( > goto FreeResources; > } > > + if (!ShellInfoObject.ShellInitSettings.BitUnion.Bits.Delay) { > + // Command line has priority over the variable > + Status = ShellFindEnvVarInList(L"startupdelay", &DelayStr, > &DelayVarSize, NULL); > + if (!EFI_ERROR (Status)) { > + ShellInfoObject.ShellInitSettings.Delay = ShellStrToUintn > (DelayStr); > + } > + } > + > + if (!ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoMap) { > + Status = ShellFindEnvVarInList(L"silentstart", &NoMapStr, > &NoMapVarSize, NULL); > + if (!EFI_ERROR (Status)) { > + SilentStart = (BOOLEAN)ShellStrToUintn (NoMapStr); > + } > + } > + > // > // If shell support level is >= 1 create the mappings and paths > // > @@ -492,7 +513,7 @@ UefiMain ( > // > // Display the version > // > - if (!ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoVersion) { > + if (!ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoVersion && > !SilentStart) { > ShellPrintHiiEx ( > 0, > gST->ConOut->Mode->CursorRow, > @@ -529,7 +550,7 @@ UefiMain ( > // > // Display the mapping > // > - if (PcdGet8(PcdShellSupportLevel) >= 2 && > !ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoMap) { > + if (PcdGet8(PcdShellSupportLevel) >= 2 && > !ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoMap && !SilentStart) { > Status = RunCommand(L"map"); > ASSERT_EFI_ERROR(Status); > } > > Shell fails to load. > Here is an excerpt from the debug log: > > add-symbol-file > /uefi/Build/StingrayPkg/DEBUG_GCC5/AARCH64/ShellPkg/Application/Shell/Shel > l/DEBUG/Shell.dll 0x88480000 > Loading driver at 0x0008847F000 EntryPoint=0x00088480000 Shell.efi > InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 8D095118 > ProtectUefiImageCommon - 0x8D08ED40 > - 0x000000008847F000 - 0x0000000000152000 > SetUefiImageMemoryAttributes - 0x000000008847F000 - 0x0000000000001000 > (0x0000000000004008) > SetUefiImageMemoryAttributes - 0x0000000088480000 - 0x00000000000E6000 > (0x0000000000020008) > SetUefiImageMemoryAttributes - 0x0000000088566000 - 0x000000000006B000 > (0x0000000000004008) > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8D088920 > InstallProtocolInterface: 752F3136-4E16-4FDC-A22A-E5F46812F4CA 8C71AF98 > InstallProtocolInterface: 6302D008-7F9B-4F30-87AC-60C9FEF5DA4E 88566710 > --- Blank lines ----- > 3h > --- Blank lines ----- > > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B A3ABE6B398 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B A3ABE6B398 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B A3ABE6B398 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B A3ABE6B398 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1E18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1E18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1E18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1E18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1E18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1E18 > InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 8C0A1B18 > ASSERT [DxeCore] > /uefi/MdeModulePkg/Core/Dxe/SectionExtraction/CoreSectionExtraction.c(300) > : ((BOOLEAN)(0==1)) > > Here 387477C2-69C7-11D2-8E39-00A0C969723B GUID is > gEfiSimpleTextOutProtocolGuid. > > And there is no way to do source-level debug because FV image cannot be > found in memory at the given location. > As soon as I revert this commit > (8ae5fc182941cf9ff7a222eb0a484088a0db8e2e), everything gets back to > normal. > Could you please explain me what I am doing wrong? > Does this help? --- a/ArmPlatformPkg/PlatformPei/PlatformPeiLib.c +++ b/ArmPlatformPkg/PlatformPei/PlatformPeiLib.c @@ -24,7 +24,7 @@ PlatformPeim ( VOID ) { - BuildFvHob (PcdGet64 (PcdFvBaseAddress), PcdGet32 (PcdFvSize)); + //BuildFvHob (PcdGet64 (PcdFvBaseAddress), PcdGet32 (PcdFvSize)); return EFI_SUCCESS; } (I assume you are using PrePi, and have nothing except the PrePi module in the primary FV)