From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4864:20::d44; helo=mail-io1-xd44.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) (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 60EDB2116527B for ; Thu, 22 Nov 2018 03:37:59 -0800 (PST) Received: by mail-io1-xd44.google.com with SMTP id f6so6422542iob.1 for ; Thu, 22 Nov 2018 03:37:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=aeMLuQoymrTyxTnGNnLf93lM373/BTvInpu3ayowP4s=; b=hUhDLI/6xydaqBXfP008rXsKwfyMUNEecmgs+VRdsdcnlXEAOwiUwlbiUIZ4gwaBT4 Y0K8LRbFGHEgvHdLXzoJ2WYiPdc+OdobcsbWZlK+ULx0Dddxn4JutwmkkHefgIcpT9L+ ZfVkLH+ZcMwLQhZNzyZzHM5PIiMlVIIG5l8yM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aeMLuQoymrTyxTnGNnLf93lM373/BTvInpu3ayowP4s=; b=otn2JW6ZpPnWXJIZxT9ho36mmcbHlOwAOUTEkBCsl0bqQi29WLTNWQlMTXh0ACxg0J Gj9x3RBXQTD+7SP4QqbryRXX3ikYB6GnKJ8eyIQY+kJcdSpgmUaGQ1ECGw2/4Du2kx+P hAJrfYF5MSdlOHjZjZbHaBd4PSbWBufNuqbe82gp9rfQM8TL+GQCz18Zrm6cIxyPn++z NUvm64kG4EvImNoOxLEWch3BizfQLwSD6zlQL00E8X+RDFKhPIEXOes3cIjRFuhQDNk0 WY0coBKzjGBBRs3c9l+BZVZyTWdqz/T9I11yTO7Er8F6itt17qhB2Empww750s0xPJD/ TsMQ== X-Gm-Message-State: AA+aEWbDio8ZbEb9ZiXzqmYOZKBe1dwmgcgvqgQaUQ9H2EU6FsTgGDRb nz+tplXwEfFKaYt1au9k38UZN72yGVTivwZp9QkGyw== X-Google-Smtp-Source: AFSGD/U8bPX6dG1DMN27LCh9BH2C+Imh7fRALomJMFekeymr+tcTeRyFmTai+NGxh1ffJ0u2AwWOYUxP2OjdfnhV+Jg= X-Received: by 2002:a6b:5d01:: with SMTP id r1mr7514769iob.170.1542886678730; Thu, 22 Nov 2018 03:37:58 -0800 (PST) MIME-Version: 1.0 References: <20181121120145.3148-1-ard.biesheuvel@linaro.org> In-Reply-To: From: Ard Biesheuvel Date: Thu, 22 Nov 2018 12:37:46 +0100 Message-ID: To: Chandni Cherukuri Cc: Thomas Panakamattam Abraham , "edk2-devel@lists.01.org" , Nariman Poushin Subject: Re: [PATCH edk2-platforms 0/3] drop GUIDs from NOR flash bank descriptors X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Nov 2018 11:38:00 -0000 Content-Type: text/plain; charset="UTF-8" On Thu, 22 Nov 2018 at 12:19, chandni cherukuri wrote: > > On Thu, Nov 22, 2018 at 1:20 PM Ard Biesheuvel > wrote: > > > > On Thu, 22 Nov 2018 at 05:01, Thomas Abraham wrote: > > > > > > Hi Ard, > > > > > > On Thu, Nov 22, 2018 at 3:46 AM Ard Biesheuvel > > > wrote: > > > > > > > > On Wed, 21 Nov 2018 at 14:48, Thomas Abraham wrote: > > > > > > > > > > Hi Ard, > > > > > > > > > > On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel > > > > > wrote: > > > > > > > > > > > > Align edk2-platform with upcoming changes to EDK2 to get rid of per-bank > > > > > > NOR flash GUIDs. > > > > > > > > > > > > Ard Biesheuvel (3): > > > > > > Platform/ARM: replace hardcoded VenHW() device paths referring to NOR > > > > > > flash > > > > > > Silicon/SynQuacer: drop per-bank NOR flash GUIDs > > > > > > Platform/ARM: drop per-bank NOR flash GUIDs > > > > > > > > > > > > Platform/ARM/JunoPkg/ArmJuno.dec | 2 +- > > > > > > Platform/ARM/JunoPkg/ArmJuno.dsc | 2 +- > > > > > > .../JunoPkg/Library/NorFlashJunoLib/NorFlashJuno.c | 2 -- > > > > > > .../ARM/SgiPkg/Library/NorFlashLib/NorFlashLib.c | 2 -- > > > > > > Platform/ARM/SgiPkg/SgiPlatform.dsc | 2 +- > > > > > > Platform/ARM/VExpressPkg/ArmVExpress-CTA15-A7.dsc | 2 +- > > > > > > Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc | 2 +- > > > > > > .../NorFlashArmVExpressLib/NorFlashArmVExpress.c | 4 ---- > > > > > > .../SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c | 14 +++++++------- > > > > > > .../SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.h | 3 +++ > > > > > > .../NorFlashSynQuacerLib/NorFlashSynQuacer.c | 6 ------ > > > > > > 11 files changed, 15 insertions(+), 26 deletions(-) > > > > > > > > > > Tested this patch series and "[PATCH v2 0/5] ArmPlatformPkg, > > > > > ArmVirtPkg: discover NOR flash banks from DTB" patch series on the > > > > > Juno board. With these patches applied, the boot fails on Juno board > > > > > with the following messages. I have not yet tried to debug the issue > > > > > but wanted to let you know this. > > > > > > > > > > [...] > > > > > Loading driver at 0x000F830C000 EntryPoint=0x000F831B2AC IScsiDxe.efi > > > > > add-symbol-file > > > > > /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe/DEBUG/Udp4Dxe.dll > > > > > 0xF8300000 > > > > > Loading driver at 0x000F82FF000 EntryPoint=0x000F8306DF0 Udp4Dxe.efi > > > > > add-symbol-file > > > > > /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/FdtPlatformDxe/FdtPlatformDxe/DEBUG/FdtPlatformDxe.dll > > > > > 0xF82EE000 > > > > > Loading driver at 0x000F82ED000 EntryPoint=0x000F82F76EC FdtPlatformDxe.efi > > > > > Found image: fip in block 5. > > > > > Found image: norkern in block 20. > > > > > Found image: ramdisk.img in block 116. > > > > > Found image: hdlcdclk in block 151. > > > > > Found image: selftest in block 152. > > > > > Found image: board.dtb in block 156. > > > > > Found image: scp_bl1 in block 249. > > > > > Found image: bl1 in block 251. > > > > > Found image: startup.nsh in block 252. > > > > > ASSERT [BootMonFs] > > > > > /home/thopan01/devel/juno/uefi/uefi/edk2/MdePkg/Library/BaseLib/String.c(173): > > > > > ((UINTN) String & 0x00000001) == 0 > > > > > > > > > > > > > Hi Thomas, > > > > > > > > Thanks for testing. > > > > > > > > Could you please apply this patch and re-test: > > > > > > > > --- a/Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc > > > > +++ b/Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc > > > > @@ -299,7 +299,7 @@ > > > > !if $(TARGET) == RELEASE > > > > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21 > > > > !else > > > > - gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f > > > > + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x3f > > > > !endif > > > > > > > > # DEBUG_INIT 0x00000001 // Initialization > > > > > > > > This will produce a backtrace when an ASSERT() is triggered, and from > > > > this we can figure out what the call stack looks like exactly (The > > > > ASSERT() occurs in StrLen (), which is called with a misaligned > > > > unicode string, but I cannot figure out where the call is made) > > > > > > > > Please share the backtrace and all the .dlls listed in it if you can please. > > > > > > The following is the log with the above diff applied on top of your > > > patch series. > > > > > > > Thanks! > > > > Could you please share the output of > > > > nm -n /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/BootMonFs/BootMonFs/DEBUG/BootMonFs.dll > > > > as well so I can cross reference the addresses with the functions? Thanks. > > > > > Hi Ard, > > With the following diff applied on top of your patches we see that the > ASSERT no longer comes in Juno and it boots till the UEFI Shell. > > --- a/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.c > +++ b/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.c > @@ -129,7 +129,7 @@ NorFlashCreateInstance ( > Instance->Media.LastBlock = (NorFlashSize / BlockSize)-1; > > CopyGuid (&Instance->DevicePath.Vendor.Guid, &gEfiCallerIdGuid); > - Instance->DevicePath.Index = (UINT8)Index; > + Instance->DevicePath.Index = (UINT16)Index;^M > > Instance->ShadowBuffer = AllocateRuntimePool (BlockSize);; > if (Instance->ShadowBuffer == NULL) { > diff --git a/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.h > b/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.h > index 8886aa4..c40255e 100644 > --- a/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.h > +++ b/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.h > @@ -125,7 +125,7 @@ typedef struct _NOR_FLASH_INSTANCE > NOR_FLASH_INSTANCE; > #pragma pack(1) > typedef struct { > VENDOR_DEVICE_PATH Vendor; > - UINT8 Index; > + UINT16 Index;^M > EFI_DEVICE_PATH_PROTOCOL End; > } NOR_FLASH_DEVICE_PATH; > #pragma pack() > Thank you! That is really helpful. However, it still means there is a bug in the BootMonFs driver somewhere, so I'd still like a peek at the symbols. Could you please share the backtrace and the results of nm -n Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/BootMonFs/BootMonFs/DEBUG/BootMonFs.dll for the failing case? Thanks.