Message ID | 20181121120145.3148-1-ard.biesheuvel@linaro.org |
---|---|
Headers | show |
Series | drop GUIDs from NOR flash bank descriptors | expand |
Hi Ard, On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel <ard.biesheuvel@linaro.org> 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 Thanks, Thomas. > > -- > 2.17.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On Wed, 21 Nov 2018 at 14:48, Thomas Abraham <thomas.abraham@arm.com> wrote: > > Hi Ard, > > On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel > <ard.biesheuvel@linaro.org> 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. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Hi Ard, On Thu, Nov 22, 2018 at 3:46 AM Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: > > On Wed, 21 Nov 2018 at 14:48, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > Hi Ard, > > > > On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel > > <ard.biesheuvel@linaro.org> 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. Loading driver at 0x000F8309000 EntryPoint=0x000F83182A4 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 0xF82FD000 Loading driver at 0x000F82FC000 EntryPoint=0x000F8303DE8 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 0xF82EA000 Loading driver at 0x000F82E9000 EntryPoint=0x000F82F46E4 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 Synchronous Exception at 0x00000000FD8F5584 PC 0x0000FD8F5584 (0x0000FD8EF000+0x00006584) [ 0] BootMonFs.dll PC 0x0000FD8F01A8 (0x0000FD8EF000+0x000011A8) [ 0] BootMonFs.dll PC 0x0000FD8F09AC (0x0000FD8EF000+0x000019AC) [ 0] BootMonFs.dll PC 0x0000FD8F0A18 (0x0000FD8EF000+0x00001A18) [ 0] BootMonFs.dll PC 0x0000FD8F3EC8 (0x0000FD8EF000+0x00004EC8) [ 0] BootMonFs.dll PC 0x0000F82EE158 (0x0000F82E9000+0x00005158) [ 1] FdtPlatformDxe.dll PC 0x0000F82EE66C (0x0000F82E9000+0x0000566C) [ 1] FdtPlatformDxe.dll PC 0x0000F82EEE70 (0x0000F82E9000+0x00005E70) [ 1] FdtPlatformDxe.dll PC 0x0000F82F4B58 (0x0000F82E9000+0x0000BB58) [ 1] FdtPlatformDxe.dll PC 0x0000FDB0AC0C (0x0000FDB02000+0x00008C0C) [ 2] DxeCore.dll PC 0x0000FDB18420 (0x0000FDB02000+0x00016420) [ 2] DxeCore.dll PC 0x0000FDB0EA88 (0x0000FDB02000+0x0000CA88) [ 2] DxeCore.dll PC 0x0000E000820C PC 0x0000E0008474 [ 0] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/BootMonFs/BootMonFs/DEBUG/BootMonFs.dll [ 1] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/FdtPlatformDxe/FdtPlatformDxe/DEBUG/FdtPlatformDxe.dll [ 2] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll X0 0x000000000000000A X1 0x00000000FE8167C0 X2 0x0000000000000001 X3 0x0000000000000000 X4 0x0000000000000001 X5 0x0000000000000001 X6 0x0000000000000000 X7 0x00000000FD8F584F X8 0x0000000000000002 X9 0x0000000000000000 X10 0x0000000000000002 X11 0x0000000000000000 X12 0x0000000000000002 X13 0x0000000000000002 X14 0x0000000000000001 X15 0x00000000000000FF X16 0x00000000FE816B20 X17 0x00000000FFFFA6AC X18 0x0000000000000000 X19 0x00000000FE816846 X20 0x00000000FE816846 X21 0x000000007FF80018 X22 0x000000007FF80000 X23 0x0000000000000001 X24 0x00000000FE8169E8 X25 0x0000000000000000 X26 0x00000000FD8C8018 X27 0x00000000FD8C62AD X28 0x0000000000000001 FP 0x00000000FE816790 LR 0x00000000FD8F01A8 V0 0xAFAFAFAFAFAFAFAF AFAFAFAFAFAFAFAF V1 0xAB1C5ED5923F82A4 59F111F13956C25B V2 0x550C7DC3243185BE 12835B01D807AA98 V3 0xC19BF1749BDC06A7 80DEB1FE72BE5D74 V4 0x240CA1CC0FC19DC6 EFBE4786E49B69C1 V5 0x76F988DA5CB0A9DC 4A7484AA2DE92C6F V6 0xBF597FC7B00327C8 A831C66D983E5152 V7 0x1429296706CA6351 D5A79147C6E00BF3 V8 0x0000000000000000 2E1B213827B70A85 V9 0x0000000000000000 766A0ABB650A7354 V10 0x0000000000000000 A81A664BA2BFE8A1 V11 0x0000000000000000 D6990624D192E819 V12 0x0000000000000000 1E376C0819A4C116 V13 0x0000000000000000 4ED8AA4A391C0CB3 V14 0x0000000000000000 78A5636F748F82EE V15 0x0000000000000000 A4506CEB90BEFFFA V16 0x3C83709547545153 BC990E9F897D4FA8 V17 0xBEBEF297C5EC0578 E1D99AE8C2B92607 V18 0x13242833C5F05BAB 101C24C521387481 V19 0x0A50ABCAD0BDDA12 996865483E880969 V20 0x6C4ABAA53A9BE1CB 4416D9F479B08221 V21 0x60952147C3A68574 55B8AE51435C1A1A V22 0x9FEB2A3B4AB8D3BF 88C1883495C7F76F V23 0xD0C224BC8FB77E09 3DB8D233CF470963 V24 0x0E72963E02D21C93 C95B757DA62B3A12 V25 0x2A77DBA1E4EE5D5C E08479A1B557DFA8 V26 0xB593F86668CA8129 927A0019CDEC1A76 V27 0x2014000680902002 81A0200000101002 V28 0x1821004001120581 8800842100020010 V29 0x1002000A80081080 2410800460840820 V30 0x0400000600040000 0404040100000049 V31 0x0044880025110005 8400000080090000 SP 0x00000000FE816790 ELR 0x00000000FD8F5584 SPSR 0x60000209 FPSR 0x00000000 ESR 0x5600DBDB FAR 0x400000A4600D0B98 ESR : EC 0x15 IL 0x1 ISS 0x0000DBDB SVC executed in AArch64 Stack dump: 00000FE816690: 55B8AE51435C1A1A 60952147C3A68574 88C1883495C7F76F 9FEB2A3B4AB8D3BF 00000FE8166B0: 3DB8D233CF470963 D0C224BC8FB77E09 C95B757DA62B3A12 0E72963E02D21C93 00000FE8166D0: E08479A1B557DFA8 2A77DBA1E4EE5D5C 927A0019CDEC1A76 B593F86668CA8129 00000FE8166F0: 81A0200000101002 2014000680902002 8800842100020010 1821004001120581 00000FE816710: 2410800460840820 1002000A80081080 0404040100000049 0400000600040000 00000FE816730: 8400000080090000 0044880025110005 00000000FD8F03A8 0000000040000209 00000FE816750: 0000000000000000 0000000080001700 400000A4600D0B98 00000000FD8C62B1 00000FE816770: 00000000FE816790 00000000FD8F01C0 00000000FE816845 00000000FE8169E8 > 00000FE816790: 00000000FE8168C0 00000000FD8F09AC 0000000000000000 00000000FD8C62B1 00000FE8167B0: 00000000F82FA000 00000000F82FA000 5B20545245535341 466E6F4D746F6F42 00000FE8167D0: 656D6F682F205D73 306E61706F68742F 2F6C657665642F31 6665752F6F6E756A 00000FE8167F0: 652F696665752F69 5065644D2F326B64 617262694C2F676B 4C657361422F7972 00000FE816810: 6E697274532F6269 2933373128632E67 544E49552828203A 6E6972745320294E 00000FE816830: 3030783020262067 2029313030303030 00000A0D30203D3D 00000000FD8C8018 00000FE816850: 00000000000000FF 00000000FD8F3CD0 00000000FE816890 00000000FD8F1B98 00000FE816870: 00000000FD8C7518 0000000003FBFF78 00000000FD8C74C0 00000004FD8C8018 ASSERT [ArmCpuDxe] /home/thopan01/devel/juno/uefi/uefi/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c(271): ((BOOLEAN)(0==1)) Recursive exception occurred while dumping the CPU state CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7 | VT102 | Offline | ttyS0 > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On Thu, 22 Nov 2018 at 05:01, Thomas Abraham <thomas.abraham@arm.com> wrote: > > Hi Ard, > > On Thu, Nov 22, 2018 at 3:46 AM Ard Biesheuvel > <ard.biesheuvel@linaro.org> wrote: > > > > On Wed, 21 Nov 2018 at 14:48, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > > > Hi Ard, > > > > > > On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel > > > <ard.biesheuvel@linaro.org> 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. > Loading driver at 0x000F8309000 EntryPoint=0x000F83182A4 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 > 0xF82FD000 > Loading driver at 0x000F82FC000 EntryPoint=0x000F8303DE8 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 > 0xF82EA000 > Loading driver at 0x000F82E9000 EntryPoint=0x000F82F46E4 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 > > > Synchronous Exception at 0x00000000FD8F5584 > PC 0x0000FD8F5584 (0x0000FD8EF000+0x00006584) [ 0] BootMonFs.dll > PC 0x0000FD8F01A8 (0x0000FD8EF000+0x000011A8) [ 0] BootMonFs.dll > PC 0x0000FD8F09AC (0x0000FD8EF000+0x000019AC) [ 0] BootMonFs.dll > PC 0x0000FD8F0A18 (0x0000FD8EF000+0x00001A18) [ 0] BootMonFs.dll > PC 0x0000FD8F3EC8 (0x0000FD8EF000+0x00004EC8) [ 0] BootMonFs.dll > PC 0x0000F82EE158 (0x0000F82E9000+0x00005158) [ 1] FdtPlatformDxe.dll > PC 0x0000F82EE66C (0x0000F82E9000+0x0000566C) [ 1] FdtPlatformDxe.dll > PC 0x0000F82EEE70 (0x0000F82E9000+0x00005E70) [ 1] FdtPlatformDxe.dll > PC 0x0000F82F4B58 (0x0000F82E9000+0x0000BB58) [ 1] FdtPlatformDxe.dll > PC 0x0000FDB0AC0C (0x0000FDB02000+0x00008C0C) [ 2] DxeCore.dll > PC 0x0000FDB18420 (0x0000FDB02000+0x00016420) [ 2] DxeCore.dll > PC 0x0000FDB0EA88 (0x0000FDB02000+0x0000CA88) [ 2] DxeCore.dll > PC 0x0000E000820C > PC 0x0000E0008474 > > [ 0] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/BootMonFs/BootMonFs/DEBUG/BootMonFs.dll > [ 1] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/FdtPlatformDxe/FdtPlatformDxe/DEBUG/FdtPlatformDxe.dll > [ 2] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll > > X0 0x000000000000000A X1 0x00000000FE8167C0 X2 > 0x0000000000000001 X3 0x0000000000000000 > X4 0x0000000000000001 X5 0x0000000000000001 X6 > 0x0000000000000000 X7 0x00000000FD8F584F > X8 0x0000000000000002 X9 0x0000000000000000 X10 > 0x0000000000000002 X11 0x0000000000000000 > X12 0x0000000000000002 X13 0x0000000000000002 X14 > 0x0000000000000001 X15 0x00000000000000FF > X16 0x00000000FE816B20 X17 0x00000000FFFFA6AC X18 > 0x0000000000000000 X19 0x00000000FE816846 > X20 0x00000000FE816846 X21 0x000000007FF80018 X22 > 0x000000007FF80000 X23 0x0000000000000001 > X24 0x00000000FE8169E8 X25 0x0000000000000000 X26 > 0x00000000FD8C8018 X27 0x00000000FD8C62AD > X28 0x0000000000000001 FP 0x00000000FE816790 LR 0x00000000FD8F01A8 > > V0 0xAFAFAFAFAFAFAFAF AFAFAFAFAFAFAFAF V1 0xAB1C5ED5923F82A4 > 59F111F13956C25B > V2 0x550C7DC3243185BE 12835B01D807AA98 V3 0xC19BF1749BDC06A7 > 80DEB1FE72BE5D74 > V4 0x240CA1CC0FC19DC6 EFBE4786E49B69C1 V5 0x76F988DA5CB0A9DC > 4A7484AA2DE92C6F > V6 0xBF597FC7B00327C8 A831C66D983E5152 V7 0x1429296706CA6351 > D5A79147C6E00BF3 > V8 0x0000000000000000 2E1B213827B70A85 V9 0x0000000000000000 > 766A0ABB650A7354 > V10 0x0000000000000000 A81A664BA2BFE8A1 V11 0x0000000000000000 > D6990624D192E819 > V12 0x0000000000000000 1E376C0819A4C116 V13 0x0000000000000000 > 4ED8AA4A391C0CB3 > V14 0x0000000000000000 78A5636F748F82EE V15 0x0000000000000000 > A4506CEB90BEFFFA > V16 0x3C83709547545153 BC990E9F897D4FA8 V17 0xBEBEF297C5EC0578 > E1D99AE8C2B92607 > V18 0x13242833C5F05BAB 101C24C521387481 V19 0x0A50ABCAD0BDDA12 > 996865483E880969 > V20 0x6C4ABAA53A9BE1CB 4416D9F479B08221 V21 0x60952147C3A68574 > 55B8AE51435C1A1A > V22 0x9FEB2A3B4AB8D3BF 88C1883495C7F76F V23 0xD0C224BC8FB77E09 > 3DB8D233CF470963 > V24 0x0E72963E02D21C93 C95B757DA62B3A12 V25 0x2A77DBA1E4EE5D5C > E08479A1B557DFA8 > V26 0xB593F86668CA8129 927A0019CDEC1A76 V27 0x2014000680902002 > 81A0200000101002 > V28 0x1821004001120581 8800842100020010 V29 0x1002000A80081080 > 2410800460840820 > V30 0x0400000600040000 0404040100000049 V31 0x0044880025110005 > 8400000080090000 > > SP 0x00000000FE816790 ELR 0x00000000FD8F5584 SPSR 0x60000209 FPSR > 0x00000000 > ESR 0x5600DBDB FAR 0x400000A4600D0B98 > > ESR : EC 0x15 IL 0x1 ISS 0x0000DBDB > > SVC executed in AArch64 > > Stack dump: > 00000FE816690: 55B8AE51435C1A1A 60952147C3A68574 88C1883495C7F76F > 9FEB2A3B4AB8D3BF > 00000FE8166B0: 3DB8D233CF470963 D0C224BC8FB77E09 C95B757DA62B3A12 > 0E72963E02D21C93 > 00000FE8166D0: E08479A1B557DFA8 2A77DBA1E4EE5D5C 927A0019CDEC1A76 > B593F86668CA8129 > 00000FE8166F0: 81A0200000101002 2014000680902002 8800842100020010 > 1821004001120581 > 00000FE816710: 2410800460840820 1002000A80081080 0404040100000049 > 0400000600040000 > 00000FE816730: 8400000080090000 0044880025110005 00000000FD8F03A8 > 0000000040000209 > 00000FE816750: 0000000000000000 0000000080001700 400000A4600D0B98 > 00000000FD8C62B1 > 00000FE816770: 00000000FE816790 00000000FD8F01C0 00000000FE816845 > 00000000FE8169E8 > > 00000FE816790: 00000000FE8168C0 00000000FD8F09AC 0000000000000000 00000000FD8C62B1 > 00000FE8167B0: 00000000F82FA000 00000000F82FA000 5B20545245535341 > 466E6F4D746F6F42 > 00000FE8167D0: 656D6F682F205D73 306E61706F68742F 2F6C657665642F31 > 6665752F6F6E756A > 00000FE8167F0: 652F696665752F69 5065644D2F326B64 617262694C2F676B > 4C657361422F7972 > 00000FE816810: 6E697274532F6269 2933373128632E67 544E49552828203A > 6E6972745320294E > 00000FE816830: 3030783020262067 2029313030303030 00000A0D30203D3D > 00000000FD8C8018 > 00000FE816850: 00000000000000FF 00000000FD8F3CD0 00000000FE816890 > 00000000FD8F1B98 > 00000FE816870: 00000000FD8C7518 0000000003FBFF78 00000000FD8C74C0 > 00000004FD8C8018 > ASSERT [ArmCpuDxe] > /home/thopan01/devel/juno/uefi/uefi/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c(271): > ((BOOLEAN)(0==1)) > > Recursive exception occurred while dumping the CPU state > > CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7 | VT102 | Offline | > ttyS0 > > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On Thu, Nov 22, 2018 at 1:20 PM Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: > > On Thu, 22 Nov 2018 at 05:01, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > Hi Ard, > > > > On Thu, Nov 22, 2018 at 3:46 AM Ard Biesheuvel > > <ard.biesheuvel@linaro.org> wrote: > > > > > > On Wed, 21 Nov 2018 at 14:48, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > > > > > Hi Ard, > > > > > > > > On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel > > > > <ard.biesheuvel@linaro.org> 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() Thanks Chandni > > Loading driver at 0x000F8309000 EntryPoint=0x000F83182A4 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 > > 0xF82FD000 > > Loading driver at 0x000F82FC000 EntryPoint=0x000F8303DE8 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 > > 0xF82EA000 > > Loading driver at 0x000F82E9000 EntryPoint=0x000F82F46E4 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 > > > > > > Synchronous Exception at 0x00000000FD8F5584 > > PC 0x0000FD8F5584 (0x0000FD8EF000+0x00006584) [ 0] BootMonFs.dll > > PC 0x0000FD8F01A8 (0x0000FD8EF000+0x000011A8) [ 0] BootMonFs.dll > > PC 0x0000FD8F09AC (0x0000FD8EF000+0x000019AC) [ 0] BootMonFs.dll > > PC 0x0000FD8F0A18 (0x0000FD8EF000+0x00001A18) [ 0] BootMonFs.dll > > PC 0x0000FD8F3EC8 (0x0000FD8EF000+0x00004EC8) [ 0] BootMonFs.dll > > PC 0x0000F82EE158 (0x0000F82E9000+0x00005158) [ 1] FdtPlatformDxe.dll > > PC 0x0000F82EE66C (0x0000F82E9000+0x0000566C) [ 1] FdtPlatformDxe.dll > > PC 0x0000F82EEE70 (0x0000F82E9000+0x00005E70) [ 1] FdtPlatformDxe.dll > > PC 0x0000F82F4B58 (0x0000F82E9000+0x0000BB58) [ 1] FdtPlatformDxe.dll > > PC 0x0000FDB0AC0C (0x0000FDB02000+0x00008C0C) [ 2] DxeCore.dll > > PC 0x0000FDB18420 (0x0000FDB02000+0x00016420) [ 2] DxeCore.dll > > PC 0x0000FDB0EA88 (0x0000FDB02000+0x0000CA88) [ 2] DxeCore.dll > > PC 0x0000E000820C > > PC 0x0000E0008474 > > > > [ 0] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/BootMonFs/BootMonFs/DEBUG/BootMonFs.dll > > [ 1] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/FdtPlatformDxe/FdtPlatformDxe/DEBUG/FdtPlatformDxe.dll > > [ 2] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll > > > > X0 0x000000000000000A X1 0x00000000FE8167C0 X2 > > 0x0000000000000001 X3 0x0000000000000000 > > X4 0x0000000000000001 X5 0x0000000000000001 X6 > > 0x0000000000000000 X7 0x00000000FD8F584F > > X8 0x0000000000000002 X9 0x0000000000000000 X10 > > 0x0000000000000002 X11 0x0000000000000000 > > X12 0x0000000000000002 X13 0x0000000000000002 X14 > > 0x0000000000000001 X15 0x00000000000000FF > > X16 0x00000000FE816B20 X17 0x00000000FFFFA6AC X18 > > 0x0000000000000000 X19 0x00000000FE816846 > > X20 0x00000000FE816846 X21 0x000000007FF80018 X22 > > 0x000000007FF80000 X23 0x0000000000000001 > > X24 0x00000000FE8169E8 X25 0x0000000000000000 X26 > > 0x00000000FD8C8018 X27 0x00000000FD8C62AD > > X28 0x0000000000000001 FP 0x00000000FE816790 LR 0x00000000FD8F01A8 > > > > V0 0xAFAFAFAFAFAFAFAF AFAFAFAFAFAFAFAF V1 0xAB1C5ED5923F82A4 > > 59F111F13956C25B > > V2 0x550C7DC3243185BE 12835B01D807AA98 V3 0xC19BF1749BDC06A7 > > 80DEB1FE72BE5D74 > > V4 0x240CA1CC0FC19DC6 EFBE4786E49B69C1 V5 0x76F988DA5CB0A9DC > > 4A7484AA2DE92C6F > > V6 0xBF597FC7B00327C8 A831C66D983E5152 V7 0x1429296706CA6351 > > D5A79147C6E00BF3 > > V8 0x0000000000000000 2E1B213827B70A85 V9 0x0000000000000000 > > 766A0ABB650A7354 > > V10 0x0000000000000000 A81A664BA2BFE8A1 V11 0x0000000000000000 > > D6990624D192E819 > > V12 0x0000000000000000 1E376C0819A4C116 V13 0x0000000000000000 > > 4ED8AA4A391C0CB3 > > V14 0x0000000000000000 78A5636F748F82EE V15 0x0000000000000000 > > A4506CEB90BEFFFA > > V16 0x3C83709547545153 BC990E9F897D4FA8 V17 0xBEBEF297C5EC0578 > > E1D99AE8C2B92607 > > V18 0x13242833C5F05BAB 101C24C521387481 V19 0x0A50ABCAD0BDDA12 > > 996865483E880969 > > V20 0x6C4ABAA53A9BE1CB 4416D9F479B08221 V21 0x60952147C3A68574 > > 55B8AE51435C1A1A > > V22 0x9FEB2A3B4AB8D3BF 88C1883495C7F76F V23 0xD0C224BC8FB77E09 > > 3DB8D233CF470963 > > V24 0x0E72963E02D21C93 C95B757DA62B3A12 V25 0x2A77DBA1E4EE5D5C > > E08479A1B557DFA8 > > V26 0xB593F86668CA8129 927A0019CDEC1A76 V27 0x2014000680902002 > > 81A0200000101002 > > V28 0x1821004001120581 8800842100020010 V29 0x1002000A80081080 > > 2410800460840820 > > V30 0x0400000600040000 0404040100000049 V31 0x0044880025110005 > > 8400000080090000 > > > > SP 0x00000000FE816790 ELR 0x00000000FD8F5584 SPSR 0x60000209 FPSR > > 0x00000000 > > ESR 0x5600DBDB FAR 0x400000A4600D0B98 > > > > ESR : EC 0x15 IL 0x1 ISS 0x0000DBDB > > > > SVC executed in AArch64 > > > > Stack dump: > > 00000FE816690: 55B8AE51435C1A1A 60952147C3A68574 88C1883495C7F76F > > 9FEB2A3B4AB8D3BF > > 00000FE8166B0: 3DB8D233CF470963 D0C224BC8FB77E09 C95B757DA62B3A12 > > 0E72963E02D21C93 > > 00000FE8166D0: E08479A1B557DFA8 2A77DBA1E4EE5D5C 927A0019CDEC1A76 > > B593F86668CA8129 > > 00000FE8166F0: 81A0200000101002 2014000680902002 8800842100020010 > > 1821004001120581 > > 00000FE816710: 2410800460840820 1002000A80081080 0404040100000049 > > 0400000600040000 > > 00000FE816730: 8400000080090000 0044880025110005 00000000FD8F03A8 > > 0000000040000209 > > 00000FE816750: 0000000000000000 0000000080001700 400000A4600D0B98 > > 00000000FD8C62B1 > > 00000FE816770: 00000000FE816790 00000000FD8F01C0 00000000FE816845 > > 00000000FE8169E8 > > > 00000FE816790: 00000000FE8168C0 00000000FD8F09AC 0000000000000000 00000000FD8C62B1 > > 00000FE8167B0: 00000000F82FA000 00000000F82FA000 5B20545245535341 > > 466E6F4D746F6F42 > > 00000FE8167D0: 656D6F682F205D73 306E61706F68742F 2F6C657665642F31 > > 6665752F6F6E756A > > 00000FE8167F0: 652F696665752F69 5065644D2F326B64 617262694C2F676B > > 4C657361422F7972 > > 00000FE816810: 6E697274532F6269 2933373128632E67 544E49552828203A > > 6E6972745320294E > > 00000FE816830: 3030783020262067 2029313030303030 00000A0D30203D3D > > 00000000FD8C8018 > > 00000FE816850: 00000000000000FF 00000000FD8F3CD0 00000000FE816890 > > 00000000FD8F1B98 > > 00000FE816870: 00000000FD8C7518 0000000003FBFF78 00000000FD8C74C0 > > 00000004FD8C8018 > > ASSERT [ArmCpuDxe] > > /home/thopan01/devel/juno/uefi/uefi/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c(271): > > ((BOOLEAN)(0==1)) > > > > Recursive exception occurred while dumping the CPU state > > > > CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7 | VT102 | Offline | > > ttyS0 > > > > > _______________________________________________ > > > edk2-devel mailing list > > > edk2-devel@lists.01.org > > > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On Thu, 22 Nov 2018 at 12:19, chandni cherukuri <chandni.cherukuri@arm.com> wrote: > > On Thu, Nov 22, 2018 at 1:20 PM Ard Biesheuvel > <ard.biesheuvel@linaro.org> wrote: > > > > On Thu, 22 Nov 2018 at 05:01, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > > > Hi Ard, > > > > > > On Thu, Nov 22, 2018 at 3:46 AM Ard Biesheuvel > > > <ard.biesheuvel@linaro.org> wrote: > > > > > > > > On Wed, 21 Nov 2018 at 14:48, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > > > > > > > Hi Ard, > > > > > > > > > > On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel > > > > > <ard.biesheuvel@linaro.org> 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. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Hi Ard, On Thu, Nov 22, 2018 at 5:08 PM Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: > > On Thu, 22 Nov 2018 at 12:19, chandni cherukuri > <chandni.cherukuri@arm.com> wrote: > > > > On Thu, Nov 22, 2018 at 1:20 PM Ard Biesheuvel > > <ard.biesheuvel@linaro.org> wrote: > > > > > > On Thu, 22 Nov 2018 at 05:01, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > > > > > Hi Ard, > > > > > > > > On Thu, Nov 22, 2018 at 3:46 AM Ard Biesheuvel > > > > <ard.biesheuvel@linaro.org> wrote: > > > > > > > > > > On Wed, 21 Nov 2018 at 14:48, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > > > > > > > > > Hi Ard, > > > > > > > > > > > > On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel > > > > > > <ard.biesheuvel@linaro.org> 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? The following is the symbol list of BootMonFs.dll 0000000000000010 N $d 0000000000000228 A PECOFF_HEADER_SIZE 0000000000001000 t DebugPrintLevelEnabled.constprop.15 0000000000001000 t $x 0000000000001008 t InternalAllocatePool.constprop.10 0000000000001008 t $x 0000000000001040 t BasePrintLibFillBuffer 0000000000001040 t $x 0000000000001074 t DebugPrintEnabled 0000000000001074 t $x 000000000000107c t DebugAssertEnabled 000000000000107c t $x 0000000000001084 t AsciiStrnLenS 0000000000001084 t $x 00000000000010c4 t InternalSafeStringIsOverlap 00000000000010c4 t $x 00000000000010fc t BootMonFsGetPhysicalSize 00000000000010fc t $x 0000000000001128 t BootMonFsDeleteFail 0000000000001128 t $x 0000000000001144 t DebugAssert 0000000000001144 t $x 00000000000011d0 t AsciiStrCpyS.constprop.3 00000000000011d0 t $x 0000000000001314 t MmioWrite32 0000000000001314 t $x 0000000000001368 t MmioRead32 0000000000001368 t $x 00000000000013b4 t BaseDebugLibSerialPortConstructor 00000000000013b4 t $x 000000000000149c t ReadUnaligned16 000000000000149c t $x 0000000000001508 t IsDevicePathEndType 0000000000001508 t $x 0000000000001578 t DevicePathNodeLength 0000000000001578 t $x 00000000000015cc t NextDevicePathNode 00000000000015cc t $x 0000000000001620 t DevicePathSubType 0000000000001620 t $x 000000000000166c t IsDevicePathEnd 000000000000166c t $x 00000000000016e0 t IsDevicePathValid.constprop.11 00000000000016e0 t $x 000000000000178c t UefiDevicePathLibGetDevicePathSize 000000000000178c t $x 00000000000017f4 t AsciiStrLen 00000000000017f4 t $x 00000000000018a4 t AsciiStrCmp 00000000000018a4 t $x 0000000000001950 t StrLen 0000000000001950 t $x 0000000000001a0c t StrSize 0000000000001a0c t $x 0000000000001a28 t StrnCmp.constprop.0 0000000000001a28 t $x 0000000000001ae0 t StrStr 0000000000001ae0 t $x 0000000000001ba0 t AsciiStrToUnicodeStrS 0000000000001ba0 t $x 0000000000001d50 t StrnLenS 0000000000001d50 t $x 0000000000001dcc t BasePrintLibSPrintMarker.constprop.20 0000000000001dcc t $x 0000000000002a4c t BasePrintLibSPrint.constprop.21 0000000000002a4c t $x 0000000000002aa0 t DebugPrint.constprop.16 0000000000002aa0 t $x 0000000000002b80 t FreePool 0000000000002b80 t $x 0000000000002bf8 t AsciiSPrint.constprop.18 0000000000002bf8 t $x 0000000000002c5c t UnicodeStrToAsciiStrS 0000000000002c5c t $x 0000000000002e50 t InitializeListHead 0000000000002e50 t $x 0000000000002ea0 t InternalBaseLibIsListValid 0000000000002ea0 t $x 0000000000002f58 t IsListEmpty 0000000000002f58 t $x 0000000000002fb4 t RemoveEntryList 0000000000002fb4 t $x 0000000000003018 t GetFirstNode 0000000000003018 t $x 000000000000306c t IsNull 000000000000306c t $x 00000000000030c8 t GetNextNode 00000000000030c8 t $x 0000000000003120 t BootMonFsGetImageLength 0000000000003120 t $x 00000000000031ac t InsertTailList 00000000000031ac t $x 0000000000003218 t InsertHeadList 0000000000003218 t $x 0000000000003280 t BootMonFsGetPositionUnsupported 0000000000003280 t $x 00000000000032b8 t BootMonFsGetPosition 00000000000032b8 t $x 0000000000003350 t BootMonFsSetPosition 0000000000003350 t $x 00000000000033e8 t BootMonFsFlushDirectory 00000000000033e8 t $x 00000000000034f8 t BootMonFsSetDirPosition 00000000000034f8 t $x 0000000000003574 t OpenBootMonFsOpenVolume 0000000000003574 t $x 00000000000035fc t BootMonFsCloseFile 00000000000035fc t $x 00000000000036b4 t BootMonFsDriverStop 00000000000036b4 t $x 0000000000003868 t BootMonGetFileFromAsciiFileName 0000000000003868 t $x 0000000000003968 t CopyMem 0000000000003968 t $x 0000000000003a18 t InternalAllocateCopyPool.constprop.9 0000000000003a18 t $x 0000000000003aa4 t UefiDevicePathLibDuplicateDevicePath 0000000000003aa4 t $x 0000000000003ad8 t PathCleanUpDirectories 0000000000003ad8 t $x 0000000000003d1c t CompareMem 0000000000003d1c t $x 0000000000003e00 t BootMonFsDriverSupported 0000000000003e00 t $x 0000000000003fe0 t $x 0000000000003fe0 t ZeroMem 000000000000405c t AllocateZeroPool 000000000000405c t $x 0000000000004090 t BootMonFsWriteFile 0000000000004090 t $x 00000000000041b0 t BootMonFsComputeFooterChecksum 00000000000041b0 t $x 0000000000004290 t WriteFileDescription 0000000000004290 t $x 000000000000441c t InvalidateImageDescription 000000000000441c t $x 0000000000004498 t BootMonFsDelete 0000000000004498 t $x 0000000000004604 t BootMonFsFlushFile 0000000000004604 t $x 0000000000004a4c t BootMonFsReadFile 0000000000004a4c t $x 0000000000004b88 t BootMonFsCreateFile 0000000000004b88 t $x 0000000000004c20 t BootMonFsInitialize 0000000000004c20 t $x 0000000000004e20 t BootMonFsOpenFile 0000000000004e20 t $x 000000000000512c t BootMonFsDriverStart 000000000000512c t $x 0000000000005334 t BootMonFsReadDirectory 0000000000005334 t $x 00000000000054e8 t CompareGuid 00000000000054e8 t $x 0000000000005554 t BootMonFsSetInfo 0000000000005554 t $x 00000000000058b0 t BootMonFsGetInfo 00000000000058b0 t $x 0000000000005c28 T _ModuleEntryPoint 0000000000005c28 t $x 0000000000006060 T InternalMemSetMem16 0000000000006060 t $x 000000000000606c T InternalMemSetMem32 0000000000006078 T InternalMemSetMem64 0000000000006084 T InternalMemZeroMem 000000000000608c T InternalMemSetMem 0000000000006260 t __memcpy 0000000000006260 t $x 00000000000063cc T InternalMemCopyMem 0000000000006480 T InternalMemCompareMem 0000000000006480 t $x 0000000000006560 T InternalMemCompareGuid 0000000000006560 t $x 0000000000006580 T CpuBreakpoint 0000000000006580 t $x 0000000000006a98 t $d 000000000000727c t $d 0000000000007286 t $d 0000000000007768 t $d 0000000000007770 t $d 0000000000007770 t _gPcd_FixedAtBuild_PcdBootMonFsSupportedDevicePaths 00000000000077d0 t $d 00000000000077d0 t mHexStr 00000000000077e0 t $d 00000000000077e0 t mStatusString 0000000000008000 d $d 0000000000008000 d gArmBootMonFsFileInfoGuid 0000000000008010 d $d 0000000000008010 d gEfiBlockIoProtocolGuid 0000000000008020 d $d 0000000000008020 d gEfiDevicePathFromTextProtocolGuid 0000000000008030 d $d 0000000000008030 d gEfiDevicePathProtocolGuid 0000000000008040 d $d 0000000000008040 d gEfiDiskIoProtocolGuid 0000000000008050 d $d 0000000000008050 d gEfiDriverBindingProtocolGuid 0000000000008060 d $d 0000000000008060 d gEfiFileInfoGuid 0000000000008070 d $d 0000000000008070 d gEfiFileSystemInfoGuid 0000000000008080 d $d 0000000000008080 d gEfiFileSystemVolumeLabelInfoIdGuid 0000000000008090 d $d 0000000000008090 d gEfiSimpleFileSystemProtocolGuid 00000000000080a0 d $d 00000000000080a0 d mBootMonFsDriverBinding 00000000000080d0 d $d 00000000000080d0 d mBootMonFsFileTemplate 0000000000008148 d $d 0000000000008148 d mBootMonFsRootTemplate 00000000000081c0 d $d 00000000000081c0 d gBS 00000000000081c8 d $d 00000000000081c8 d gImageHandle 00000000000081d0 d $d 00000000000081d0 d gRT 00000000000081d8 d $d 00000000000081d8 d gST 00000000000081e0 d $d 00000000000081e0 d mBootMonFsSupportedDevicePaths 00000000000081e8 d $d 00000000000081e8 d mInstances The following is the corresponding boot log. Loading driver at 0x000F8309000 EntryPoint=0x000F83182A4 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 0xF82FD000 Loading driver at 0x000F82FC000 EntryPoint=0x000F8303DE8 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 0xF82EA000 Loading driver at 0x000F82E9000 EntryPoint=0x000F82F46E4 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 Synchronous Exception at 0x00000000FD8F5584 PC 0x0000FD8F5584 (0x0000FD8EF000+0x00006584) [ 0] BootMonFs.dll PC 0x0000FD8F01A8 (0x0000FD8EF000+0x000011A8) [ 0] BootMonFs.dll PC 0x0000FD8F09AC (0x0000FD8EF000+0x000019AC) [ 0] BootMonFs.dll PC 0x0000FD8F0A18 (0x0000FD8EF000+0x00001A18) [ 0] BootMonFs.dll PC 0x0000FD8F3EC8 (0x0000FD8EF000+0x00004EC8) [ 0] BootMonFs.dll PC 0x0000F82EE158 (0x0000F82E9000+0x00005158) [ 1] FdtPlatformDxe.dll PC 0x0000F82EE66C (0x0000F82E9000+0x0000566C) [ 1] FdtPlatformDxe.dll PC 0x0000F82EEE70 (0x0000F82E9000+0x00005E70) [ 1] FdtPlatformDxe.dll PC 0x0000F82F4B58 (0x0000F82E9000+0x0000BB58) [ 1] FdtPlatformDxe.dll PC 0x0000FDB0AC0C (0x0000FDB02000+0x00008C0C) [ 2] DxeCore.dll PC 0x0000FDB18420 (0x0000FDB02000+0x00016420) [ 2] DxeCore.dll PC 0x0000FDB0EA88 (0x0000FDB02000+0x0000CA88) [ 2] DxeCore.dll PC 0x0000E000820C PC 0x0000E0008474 [ 0] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/BootMonFs/BootMonFs/DEBUG/BootMonFs.dll [ 1] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/FdtPlatformDxe/FdtPlatformDxe/DEBUG/FdtPlatformDxe.dll [ 2] /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll X0 0x000000000000000A X1 0x00000000FE8167C0 X2 0x0000000000000001 X3 0x0000000000000000 X4 0x0000000000000001 X5 0x0000000000000001 X6 0x0000000000000000 X7 0x00000000FD8F584F X8 0x0000000000000002 X9 0x0000000000000000 X10 0x0000000000000002 X11 0x0000000000000000 X12 0x0000000000000002 X13 0x0000000000000002 X14 0x0000000000000001 X15 0x00000000000000FF X16 0x00000000FE816B20 X17 0x00000000FFFFA6AC X18 0x0000000000000000 X19 0x00000000FE816846 X20 0x00000000FE816846 X21 0x000000007FF80018 X22 0x000000007FF80000 X23 0x0000000000000001 X24 0x00000000FE8169E8 X25 0x0000000000000000 X26 0x00000000FD8C8018 X27 0x00000000FD8C62AD X28 0x0000000000000001 FP 0x00000000FE816790 LR 0x00000000FD8F01A8 V0 0xAFAFAFAFAFAFAFAF AFAFAFAFAFAFAFAF V1 0xAB1C5ED5923F82A4 59F111F13956C25B V2 0x550C7DC3243185BE 12835B01D807AA98 V3 0xC19BF1749BDC06A7 80DEB1FE72BE5D74 V4 0x240CA1CC0FC19DC6 EFBE4786E49B69C1 V5 0x76F988DA5CB0A9DC 4A7484AA2DE92C6F V6 0xBF597FC7B00327C8 A831C66D983E5152 V7 0x1429296706CA6351 D5A79147C6E00BF3 V8 0x0000000000000000 2E1B213827B70A85 V9 0x0000000000000000 766A0ABB650A7354 V10 0x0000000000000000 A81A664BA2BFE8A1 V11 0x0000000000000000 D6990624D192E819 V12 0x0000000000000000 1E376C0819A4C116 V13 0x0000000000000000 4ED8AA4A391C0CB3 V14 0x0000000000000000 78A5636F748F82EE V15 0x0000000000000000 A4506CEB90BEFFFA V16 0x3C83709547545153 BC990E9F897D4FA8 V17 0xBEBEF297C5EC0578 E1D99AE8C2B92607 V18 0x13242833C5F05BAB 101C24C521387481 V19 0x0A50ABCAD0BDDA12 996865483E880969 V20 0x6C4ABAA53A9BE1CB 4416D9F479B08221 V21 0x60952147C3A68574 55B8AE51435C1A1A V22 0x9FEB2A3B4AB8D3BF 88C1883495C7F76F V23 0xD0C224BC8FB77E09 3DB8D233CF470963 V24 0x0E72963E02D21C93 C95B757DA62B3A12 V25 0x2A77DBA1E4EE5D5C E08479A1B557DFA8 V26 0xB593F86668CA8129 927A0019CDEC1A76 V27 0x6010000680C00002 8120200000101002 V28 0x1821004001100581 8800842300020010 V29 0x1002000A80091080 24108004E0844820 V30 0x0400000200000000 2400040100000049 V31 0x0044880025110005 8400000080090000 SP 0x00000000FE816790 ELR 0x00000000FD8F5584 SPSR 0x60000209 FPSR 0x00000000 ESR 0x5600DBDB FAR 0x400000A0600C0B18 ESR : EC 0x15 IL 0x1 ISS 0x0000DBDB SVC executed in AArch64 Stack dump: 00000FE816690: 55B8AE51435C1A1A 60952147C3A68574 88C1883495C7F76F 9FEB2A3B4AB8D3BF 00000FE8166B0: 3DB8D233CF470963 D0C224BC8FB77E09 C95B757DA62B3A12 0E72963E02D21C93 00000FE8166D0: E08479A1B557DFA8 2A77DBA1E4EE5D5C 927A0019CDEC1A76 B593F86668CA8129 00000FE8166F0: 8120200000101002 6010000680C00002 8800842300020010 1821004001100581 00000FE816710: 24108004E0844820 1002000A80091080 2400040100000049 0400000200000000 00000FE816730: 8400000080090000 0044880025110005 00000000FD8F03A8 0000000040000209 00000FE816750: 0000000000000000 0000000080001700 400000A0600C0B18 00000000FD8C62B1 00000FE816770: 00000000FE816790 00000000FD8F01C0 00000000FE816845 00000000FE8169E8 > 00000FE816790: 00000000FE8168C0 00000000FD8F09AC 0000000000000000 00000000FD8C62B1 00000FE8167B0: 00000000F82FA000 00000000F82FA000 5B20545245535341 466E6F4D746F6F42 00000FE8167D0: 656D6F682F205D73 306E61706F68742F 2F6C657665642F31 6665752F6F6E756A 00000FE8167F0: 652F696665752F69 5065644D2F326B64 617262694C2F676B 4C657361422F7972 00000FE816810: 6E697274532F6269 2933373128632E67 544E49552828203A 6E6972745320294E 00000FE816830: 3030783020262067 2029313030303030 00000A0D30203D3D 00000000FD8C8018 00000FE816850: 00000000000000FF 00000000FD8F3CD0 00000000FE816890 00000000FD8F1B98 00000FE816870: 00000000FD8C7518 0000000003FBFF78 00000000FD8C74C0 00000004FD8C8018 ASSERT [ArmCpuDxe] /home/thopan01/devel/juno/uefi/uefi/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c(271): ((BOOLEAN)(0==1)) Recursive exception occurred while dumping the CPU state > > Thanks. > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On Thu, 22 Nov 2018 at 12:37, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: > > On Thu, 22 Nov 2018 at 12:19, chandni cherukuri > <chandni.cherukuri@arm.com> wrote: > > > > On Thu, Nov 22, 2018 at 1:20 PM Ard Biesheuvel > > <ard.biesheuvel@linaro.org> wrote: > > > > > > On Thu, 22 Nov 2018 at 05:01, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > > > > > Hi Ard, > > > > > > > > On Thu, Nov 22, 2018 at 3:46 AM Ard Biesheuvel > > > > <ard.biesheuvel@linaro.org> wrote: > > > > > > > > > > On Wed, 21 Nov 2018 at 14:48, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > > > > > > > > > Hi Ard, > > > > > > > > > > > > On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel > > > > > > <ard.biesheuvel@linaro.org> 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 > > > > > > ... > 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? > It seems like BootMonFsOpenFile() is being called from FdtClientDxe with a misaligned CHAR16* argument for Filename. Could you share the nm -n output of /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/FdtPlatformDxe/FdtPlatformDxe/DEBUG/FdtPlatformDxe.dll as well please? Thanks. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On Thu, Nov 22, 2018 at 6:38 PM Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: > > On Thu, 22 Nov 2018 at 12:37, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: > > > > On Thu, 22 Nov 2018 at 12:19, chandni cherukuri > > <chandni.cherukuri@arm.com> wrote: > > > > > > On Thu, Nov 22, 2018 at 1:20 PM Ard Biesheuvel > > > <ard.biesheuvel@linaro.org> wrote: > > > > > > > > On Thu, 22 Nov 2018 at 05:01, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > > > > > > > Hi Ard, > > > > > > > > > > On Thu, Nov 22, 2018 at 3:46 AM Ard Biesheuvel > > > > > <ard.biesheuvel@linaro.org> wrote: > > > > > > > > > > > > On Wed, 21 Nov 2018 at 14:48, Thomas Abraham <thomas.abraham@arm.com> wrote: > > > > > > > > > > > > > > Hi Ard, > > > > > > > > > > > > > > On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel > > > > > > > <ard.biesheuvel@linaro.org> 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 > > > > > > > > ... > > 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? > > > > It seems like BootMonFsOpenFile() is being called from FdtClientDxe > with a misaligned CHAR16* argument for Filename. > > Could you share the nm -n output of > /home/thopan01/devel/juno/uefi/uefi/edk2/Build/ArmJuno/DEBUG_GCC5/AARCH64/Platform/ARM/Drivers/FdtPlatformDxe/FdtPlatformDxe/DEBUG/FdtPlatformDxe.dll > > as well please? Thanks. Sure, it is listed below. 0000000000000010 N $d 0000000000000228 A PECOFF_HEADER_SIZE 0000000000001000 t ShellLibDestructor.constprop.46 0000000000001000 t $x 0000000000001118 t InternalAllocatePool.constprop.44 0000000000001118 t $x 0000000000001150 t BasePrintLibFillBuffer 0000000000001150 t $x 0000000000001184 t BdsPxeLoadImage 0000000000001184 t $x 00000000000012d8 t BdsFirmwareVolumeSupport 00000000000012d8 t $x 00000000000012f8 t BdsMemoryMapSupport 00000000000012f8 t $x 0000000000001334 t BdsFileSystemSupport 0000000000001334 t $x 0000000000001394 t BdsIsRemovableHd 0000000000001394 t $x 00000000000013b8 t AllocatePool 00000000000013b8 t $x 00000000000013bc t DebugPrintLevelEnabled 00000000000013bc t $x 00000000000013c8 t DebugPrintEnabled 00000000000013c8 t $x 00000000000013d0 t DebugAssertEnabled 00000000000013d0 t $x 00000000000013d8 t AsciiStrnLenS 00000000000013d8 t $x 0000000000001418 t InternalSafeStringNoStrOverlap 0000000000001418 t $x 0000000000001450 t SwapBytes16 0000000000001450 t $x 0000000000001458 t SwapBytes32 0000000000001458 t $x 0000000000001478 t fdt_check_header 0000000000001478 t $x 00000000000014fc t InternalMathSwapBytes64 00000000000014fc t $x 0000000000001524 t fdt_num_mem_rsv 0000000000001524 t $x 0000000000001568 t fdt_get_mem_rsv 0000000000001568 t $x 00000000000015c8 t EfiCodeToShellCode 00000000000015c8 t $x 000000000000165c t LShiftU64.constprop.4 000000000000165c t $x 0000000000001664 t DebugAssert 0000000000001664 t $x 00000000000016f0 t CopyGuid.constprop.35 00000000000016f0 t $x 0000000000001748 t InternalIsFlag.constprop.16 0000000000001748 t $x 0000000000001868 t MmioWrite32 0000000000001868 t $x 00000000000018bc t MmioRead32 00000000000018bc t $x 0000000000001908 t BaseDebugLibSerialPortConstructor 0000000000001908 t $x 00000000000019f0 t NetLibDestroyServiceChild 00000000000019f0 t $x 0000000000001a84 t NetLibCreateServiceChild 0000000000001a84 t $x 0000000000001b20 t DevicePathSubType 0000000000001b20 t $x 0000000000001b6c t DevicePathType 0000000000001b6c t $x 0000000000001bb8 t IsDevicePathEnd 0000000000001bb8 t $x 0000000000001c48 t BdsPxeSupport 0000000000001c48 t $x 0000000000001c9c t BdsIsRemovableUsb 0000000000001c9c t $x 0000000000001cfc t CompareMem 0000000000001cfc t $x 0000000000001de0 t ReadUnaligned16 0000000000001de0 t $x 0000000000001e4c t DevicePathNodeLength 0000000000001e4c t $x 0000000000001ea0 t NextDevicePathNode 0000000000001ea0 t $x 0000000000001ef4 t IsDevicePathValid.constprop.3 0000000000001ef4 t $x 0000000000001fa0 t UefiDevicePathLibGetDevicePathSize 0000000000001fa0 t $x 0000000000002008 t BdsTftpSupport 0000000000002008 t $x 00000000000020e4 t ReadUnaligned32 00000000000020e4 t $x 0000000000002144 t ReadUnaligned64 0000000000002144 t $x 00000000000021ac t InitializeListHead 00000000000021ac t $x 00000000000021fc t InternalBaseLibIsListValid 00000000000021fc t $x 00000000000022b4 t IsListEmpty 00000000000022b4 t $x 0000000000002310 t RemoveEntryList 0000000000002310 t $x 0000000000002374 t GetFirstNode 0000000000002374 t $x 00000000000023c8 t IsNull 00000000000023c8 t $x 0000000000002424 t GetNextNode 0000000000002424 t $x 000000000000247c t InsertHeadList 000000000000247c t $x 00000000000024e4 t CopyMem 00000000000024e4 t $x 0000000000002594 t InternalAllocateCopyPool.constprop.31 0000000000002594 t $x 0000000000002620 t UefiDevicePathLibDuplicateDevicePath 0000000000002620 t $x 0000000000002654 t UefiDevicePathLibAppendDevicePath 0000000000002654 t $x 000000000000270c t BdsGetDeviceUsb 000000000000270c t $x 00000000000028f8 t BdsMemoryMapLoadImage 00000000000028f8 t $x 0000000000002a34 t StrnLenS 0000000000002a34 t $x 0000000000002ab0 t BasePrintLibSPrintMarker.constprop.50 0000000000002ab0 t $x 0000000000003a88 t BasePrintLibSPrint.constprop.51 0000000000003a88 t $x 0000000000003adc t AsciiSPrint.constprop.48 0000000000003adc t $x 0000000000003b44 t SPrintLength 0000000000003b44 t $x 0000000000003b84 t UnicodeVSPrint 0000000000003b84 t $x 0000000000003c20 t UnicodeSPrint 0000000000003c20 t $x 0000000000003c70 t UnicodeStrToAsciiStrS 0000000000003c70 t $x 0000000000003e8c t StrnCatS 0000000000003e8c t $x 0000000000004100 t StrCatS 0000000000004100 t $x 0000000000004328 t StrCpyS 0000000000004328 t $x 00000000000044f8 t AsciiStrDecimalToUint64 00000000000044f8 t $x 0000000000004610 t AsciiStrLen 0000000000004610 t $x 00000000000046c0 t DebugPrint 00000000000046c0 t $x 00000000000047b8 t LibPcdGetPtr.constprop.30 00000000000047b8 t $x 0000000000004880 t StringNoCaseCompare 0000000000004880 t $x 000000000000493c t HiiRemovePackages 000000000000493c t $x 00000000000049ec t FreePool 00000000000049ec t $x 0000000000004a68 t ShellCommandLineFreeVarList 0000000000004a68 t $x 0000000000004ad8 t BdsConnectAndUpdateDevicePath.part.2 0000000000004ad8 t $x 0000000000004dfc t BdsFirmwareVolumeLoadImage 0000000000004dfc t $x 0000000000005080 t BdsFileSystemLoadImage 0000000000005080 t $x 0000000000005298 t Print 0000000000005298 t $x 0000000000005400 t Mtftp4CheckPacket 0000000000005400 t $x 0000000000005570 t InstallFdt 0000000000005570 t $x 0000000000005780 t AsciiStrnCmp 0000000000005780 t $x 0000000000005880 t StrLen 0000000000005880 t $x 000000000000593c t StrSize 000000000000593c t $x 0000000000005958 t InternalPrintTo 0000000000005958 t $x 0000000000005a1c t StrStr 0000000000005a1c t $x 0000000000005adc t StrnCmp 0000000000005adc t $x 0000000000005bcc t StrCmp 0000000000005bcc t $x 0000000000005c70 t RunFdtInstallation 0000000000005c70 t $x 0000000000005ec8 t ProcessLibraryDestructorList 0000000000005ec8 t $x 0000000000005f38 t $x 0000000000005f38 t ZeroMem 0000000000005fb4 t InternalReallocatePool.constprop.25 0000000000005fb4 t $x 0000000000006020 t UefiDevicePathLibCatPrint 0000000000006020 t $x 0000000000006174 t DevPathToTextNodeGeneric 0000000000006174 t $x 0000000000006278 t DevPathToTextEndInstance 0000000000006278 t $x 0000000000006284 t DevPathToTextBBS 0000000000006284 t $x 0000000000006330 t DevPathRelativeOffsetRange 0000000000006330 t $x 0000000000006340 t DevPathToTextFvFile 0000000000006340 t $x 0000000000006350 t DevPathToTextFv 0000000000006350 t $x 0000000000006360 t DevPathToTextMediaProtocol 0000000000006360 t $x 0000000000006370 t DevPathToTextFilePath 0000000000006370 t $x 0000000000006380 t DevPathToTextCDROM 0000000000006380 t $x 00000000000063ac t DevPathToTextHardDrive 00000000000063ac t $x 0000000000006440 t DevPathToTextUri 0000000000006440 t $x 00000000000064d8 t DevPathToTextBluetoothLE 00000000000064d8 t $x 000000000000651c t DevPathToTextWiFi 000000000000651c t $x 0000000000006560 t DevPathToTextBluetooth 0000000000006560 t $x 0000000000006584 t DevPathToTextVlan 0000000000006584 t $x 0000000000006594 t DevPathToTextiSCSI 0000000000006594 t $x 00000000000066a0 t DevPathToTextUart 00000000000066a0 t $x 00000000000067b4 t DevPathToTextInfiniBand 00000000000067b4 t $x 00000000000067d0 t CatIPv6Address 00000000000067d0 t $x 000000000000685c t CatIPv4Address 000000000000685c t $x 0000000000006878 t DevPathToTextDns 0000000000006878 t $x 0000000000006938 t CatNetworkProtocol 0000000000006938 t $x 0000000000006970 t DevPathToTextIPv6 0000000000006970 t $x 0000000000006a58 t DevPathToTextIPv4 0000000000006a58 t $x 0000000000006b48 t DevPathToTextMacAddr 0000000000006b48 t $x 0000000000006bd4 t DevPathToTextI2O 0000000000006bd4 t $x 0000000000006be4 t DevPathToTextSata 0000000000006be4 t $x 0000000000006bfc t DevPathToTextUsbClass 0000000000006bfc t $x 0000000000006dc4 t DevPathToTextLogicalUnit 0000000000006dc4 t $x 0000000000006dd4 t DevPathToTextUsbWWID 0000000000006dd4 t $x 0000000000006e88 t DevPathToTextUsb 0000000000006e88 t $x 0000000000006e9c t DevPathToText1394 0000000000006e9c t $x 0000000000006eac t DevPathToTextEmmc 0000000000006eac t $x 0000000000006ebc t DevPathToTextSd 0000000000006ebc t $x 0000000000006ecc t DevPathToTextUfs 0000000000006ecc t $x 0000000000006ee0 t DevPathToTextNVMe 0000000000006ee0 t $x 0000000000006f34 t DevPathToTextSasEx 0000000000006f34 t $x 00000000000070b8 t DevPathToTextFibreEx 00000000000070b8 t $x 0000000000007158 t DevPathToTextFibre 0000000000007158 t $x 0000000000007168 t DevPathToTextScsi 0000000000007168 t $x 000000000000717c t DevPathToTextAtapi 000000000000717c t $x 00000000000071dc t DevPathToTextAcpiAdr 00000000000071dc t $x 0000000000007274 t DevPathToTextAcpiEx 0000000000007274 t $x 00000000000074d4 t DevPathToTextAcpi 00000000000074d4 t $x 00000000000075a4 t DevPathToTextBmc 00000000000075a4 t $x 00000000000075e0 t DevPathToTextController 00000000000075e0 t $x 00000000000075f0 t DevPathToTextMemMap 00000000000075f0 t $x 0000000000007604 t DevPathToTextPccard 0000000000007604 t $x 0000000000007614 t DevPathToTextPci 0000000000007614 t $x 0000000000007628 t AllocateZeroPool 0000000000007628 t $x 000000000000765c t HiiAddPackages.constprop.34 000000000000765c t $x 00000000000077e8 t GetBestLanguage.constprop.28 00000000000077e8 t $x 0000000000007974 t StrnCatGrow.constprop.24 0000000000007974 t $x 0000000000007a4c t ShellCopySearchAndReplace.constprop.22 0000000000007a4c t $x 0000000000007bcc t ShellCommandLineGetFlag 0000000000007bcc t $x 0000000000007ccc t InternalCommandLineParse.part.11.constprop.14 0000000000007ccc t $x 00000000000080f0 t BdsTftpLoadImage 00000000000080f0 t $x 0000000000008854 t HiiGetString 0000000000008854 t $x 0000000000008b38 t ShellPrintHiiEx.constprop.20 0000000000008b38 t $x 000000000000903c t DisplayFdtDevicePaths 000000000000903c t $x 00000000000091a4 t ShellDynCmdSetFdtGetHelp 00000000000091a4 t $x 00000000000091b8 t ShellDynCmdDumpFdtGetHelp 00000000000091b8 t $x 00000000000091cc t CompareGuid 00000000000091cc t $x 0000000000009238 t ShellLibConstructorWorker.constprop.42 0000000000009238 t $x 000000000000953c t ShellInitialize.part.0 000000000000953c t $x 00000000000095bc t ShellDynCmdSetFdtHandler 00000000000095bc t $x 0000000000009b1c t DevPathToTextRamDisk 0000000000009b1c t $x 0000000000009c98 t DevPathToTextVendor 0000000000009c98 t $x 0000000000009fec t BdsGetDeviceHd 0000000000009fec t $x 000000000000a14c t $x 000000000000a150 t e843419@006b_00000a1b_18 000000000000a150 t $x 000000000000b14c t EfiGetSystemConfigurationTable 000000000000b14c t $x 000000000000b224 t ShellDynCmdDumpFdtHandler 000000000000b224 t $x 000000000000b6c4 T memcpy 000000000000b6c4 t $x 000000000000b6e4 T _ModuleEntryPoint 000000000000b6e4 t $x 000000000000bcb0 T CpuBreakpoint 000000000000bcb0 t $x 000000000000bcc0 T InternalMemSetMem16 000000000000bcc0 t $x 000000000000bccc T InternalMemSetMem32 000000000000bcd8 T InternalMemSetMem64 000000000000bce4 T InternalMemZeroMem 000000000000bcec T InternalMemSetMem 000000000000bec0 t __memcpy 000000000000bec0 t $x 000000000000c02c T InternalMemCopyMem 000000000000c0e0 T InternalMemCompareGuid 000000000000c0e0 t $x 000000000000c100 T InternalMemCompareMem 000000000000c100 t $x 000000000000c1e0 t $d 000000000000c1e4 t $d 000000000000c84c t $d 000000000000cb10 t CSWTCH.42 000000000000cb10 t $d 000000000000cb18 t CSWTCH.58 000000000000cb18 t $d 000000000000cb48 t $d 000000000000cb60 t $d 000000000000cbf0 t $d 000000000000ceb6 t $d 000000000000cede t $d 000000000000cefa t $d 000000000000cfbc t $d 000000000000cfe2 t $d 000000000000d10e t $d 000000000000d180 t $d 000000000000d1ac t $d 000000000000d1f4 t $d 000000000000d24e t $d 000000000000d26e t $d 000000000000d2b6 t $d 000000000000d2cc t $d 000000000000d2d6 t $d 000000000000d2ec t $d 000000000000d312 t $d 000000000000d328 t $d 000000000000d336 t $d 000000000000d34c t $d 000000000000d3b0 t $d 000000000000d3c4 t $d 000000000000d3e8 t $d 000000000000d468 t $d 000000000000d4b4 t $d 000000000000d4ca t $d 000000000000d4d4 t $d 000000000000d4e8 t $d 000000000000d526 t $d 000000000000d5ae t $d 000000000000d5c8 t $d 000000000000d5fa t $d 000000000000d6b0 t $d 000000000000d764 t $d 000000000000d78e t $d 000000000000d7ae t $d 000000000000d7c0 t $d 000000000000d81c t $d 000000000000d852 t $d 000000000000d862 t $d 000000000000d880 t $d 000000000000dae8 t $d 000000000000db1e t $d 000000000000db22 t $d 000000000000dc72 t $d 000000000000dc84 t $d 000000000000dc98 t $d 000000000000defe t $d 000000000000e168 t $d 000000000000e334 t $d 000000000000e440 t $d 000000000000e440 t ParamList 000000000000e6a4 t $d 000000000000e6b0 t $d 000000000000e754 t $d 000000000000e942 t $d 000000000000e95a t $d 000000000000f238 t $d 000000000000f238 t mEndOfPakageList 000000000000f240 t $d 000000000000f240 t mFdtPlatformDxeHiiGuid 000000000000f250 t $d 000000000000f250 t mHexStr 000000000000f260 t $d 000000000000f260 t mShellDynCmdProtocolDumpFdt 000000000000f278 t $d 000000000000f278 t mShellDynCmdProtocolSetFdt 000000000000f290 t $d 000000000000f290 t mStatusString 000000000000f3c8 t $d 000000000000f3c8 t mTftpProgressDelete 000000000000f438 t $d 000000000000f438 t mTftpProgressFrame 000000000000f490 t $d 000000000000f490 t mUefiDevicePathLibEndDevicePath 000000000000f498 t $d 000000000000f498 t mUefiDevicePathLibToTextTable 000000000000f7b8 t $d 000000000000f7b8 t mUefiDevicePathLibToTextTableGeneric 000000000000fa3c t $d 0000000000010000 d $d 0000000000010000 d FdtPlatformDxeStrings 00000000000116c0 d $d 00000000000116c0 d FileLoaders 0000000000011720 d $d 0000000000011720 d RemovableDeviceSupport 0000000000011740 d $d 0000000000011740 d gEfiDebugPortProtocolGuid 0000000000011750 d $d 0000000000011750 d gEfiDevicePathFromTextProtocolGuid 0000000000011760 d $d 0000000000011760 d gEfiDevicePathProtocolGuid 0000000000011770 d $d 0000000000011770 d gEfiDevicePathToTextProtocolGuid 0000000000011780 d $d 0000000000011780 d gEfiDhcp4ProtocolGuid 0000000000011790 d $d 0000000000011790 d gEfiDhcp4ServiceBindingProtocolGuid 00000000000117a0 d $d 00000000000117a0 d gEfiDiskIoProtocolGuid 00000000000117b0 d $d 00000000000117b0 d gEfiDxeServicesTableGuid 00000000000117c0 d $d 00000000000117c0 d gEfiFileInfoGuid 00000000000117d0 d $d 00000000000117d0 d gEfiFirmwareVolume2ProtocolGuid 00000000000117e0 d $d 00000000000117e0 d gEfiGlobalVariableGuid 00000000000117f0 d $d 00000000000117f0 d gEfiHiiConfigRoutingProtocolGuid 0000000000011800 d $d 0000000000011800 d gEfiHiiDatabaseProtocolGuid 0000000000011810 d $d 0000000000011810 d gEfiHiiFontProtocolGuid 0000000000011820 d $d 0000000000011820 d gEfiHiiImageProtocolGuid 0000000000011830 d $d 0000000000011830 d gEfiHiiStringProtocolGuid 0000000000011840 d $d 0000000000011840 d gEfiHobListGuid 0000000000011850 d $d 0000000000011850 d gEfiLoadFileProtocolGuid 0000000000011860 d $d 0000000000011860 d gEfiMtftp4ProtocolGuid 0000000000011870 d $d 0000000000011870 d gEfiMtftp4ServiceBindingProtocolGuid 0000000000011880 d $d 0000000000011880 d gEfiPcAnsiGuid 0000000000011890 d $d 0000000000011890 d gEfiPersistentVirtualCdGuid 00000000000118a0 d $d 00000000000118a0 d gEfiPersistentVirtualDiskGuid 00000000000118b0 d $d 00000000000118b0 d gEfiPxeBaseCodeProtocolGuid 00000000000118c0 d $d 00000000000118c0 d gEfiSasDevicePathGuid 00000000000118d0 d $d 00000000000118d0 d gEfiShellDynamicCommandProtocolGuid 00000000000118e0 d $d 00000000000118e0 d gEfiShellEnvironment2ExtGuid 00000000000118f0 d $d 00000000000118f0 d gEfiShellEnvironment2Guid 0000000000011900 d $d 0000000000011900 d gEfiShellInterfaceGuid 0000000000011910 d $d 0000000000011910 d gEfiShellParametersProtocolGuid 0000000000011920 d $d 0000000000011920 d gEfiShellProtocolGuid 0000000000011930 d $d 0000000000011930 d gEfiSimpleFileSystemProtocolGuid 0000000000011940 d $d 0000000000011940 d gEfiUartDevicePathGuid 0000000000011950 d $d 0000000000011950 d gEfiUnicodeCollation2ProtocolGuid 0000000000011960 d $d 0000000000011960 d gEfiUsbIoProtocolGuid 0000000000011970 d $d 0000000000011970 d gEfiVT100Guid 0000000000011980 d $d 0000000000011980 d gEfiVT100PlusGuid 0000000000011990 d $d 0000000000011990 d gEfiVTUTF8Guid 00000000000119a0 d $d 00000000000119a0 d gEfiVirtualCdGuid 00000000000119b0 d $d 00000000000119b0 d gEfiVirtualDiskGuid 00000000000119c0 d $d 00000000000119c0 d gFdtTableGuid 00000000000119d0 d $d 00000000000119d0 d gFdtVariableGuid 00000000000119e0 d $d 00000000000119e0 d gPcdProtocolGuid 00000000000119f0 d $d 00000000000119f0 d gBS 00000000000119f8 d $d 00000000000119f8 d gDS 0000000000011a00 d $d 0000000000011a00 d gEfiShellParametersProtocol 0000000000011a08 d $d 0000000000011a08 d gEfiShellProtocol 0000000000011a10 d $d 0000000000011a10 d gHiiConfigRouting 0000000000011a18 d $d 0000000000011a18 d gHiiDatabase 0000000000011a20 d $d 0000000000011a20 d gHiiFont 0000000000011a28 d $d 0000000000011a28 d gHiiImage 0000000000011a30 d $d 0000000000011a30 d gHiiString 0000000000011a38 d $d 0000000000011a38 d gImageHandle 0000000000011a40 d $d 0000000000011a40 d gRT 0000000000011a48 d $d 0000000000011a48 d gST 0000000000011a50 d $d 0000000000011a50 d mEfiShellEnvironment2 0000000000011a58 d $d 0000000000011a58 d mEfiShellEnvironment2Handle 0000000000011a60 d $d 0000000000011a60 d mEfiShellInterface 0000000000011a68 d $d 0000000000011a68 d mFdtPlatformDxeHiiHandle 0000000000011a70 d $d 0000000000011a70 d mHobList 0000000000011a78 d $d 0000000000011a78 d mPcd 0000000000011a80 d $d 0000000000011a80 d mUnicodeCollation > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On 11/22/18 14:08, Ard Biesheuvel wrote: > On Thu, 22 Nov 2018 at 12:37, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: >> >> On Thu, 22 Nov 2018 at 12:19, chandni cherukuri >> <chandni.cherukuri@arm.com> wrote: >>> >>> On Thu, Nov 22, 2018 at 1:20 PM Ard Biesheuvel >>> <ard.biesheuvel@linaro.org> wrote: >>>> >>>> On Thu, 22 Nov 2018 at 05:01, Thomas Abraham <thomas.abraham@arm.com> wrote: >>>>> >>>>> Hi Ard, >>>>> >>>>> On Thu, Nov 22, 2018 at 3:46 AM Ard Biesheuvel >>>>> <ard.biesheuvel@linaro.org> wrote: >>>>>> >>>>>> On Wed, 21 Nov 2018 at 14:48, Thomas Abraham <thomas.abraham@arm.com> wrote: >>>>>>> >>>>>>> Hi Ard, >>>>>>> >>>>>>> On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel >>>>>>> <ard.biesheuvel@linaro.org> 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 >>>>>>> > ... >> 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? >> > > It seems like BootMonFsOpenFile() is being called from FdtClientDxe I think you mean "FdtPlatformDxe". > with a misaligned CHAR16* argument for Filename. Yup, that's not an infrequent bug. Device paths are packed. Once we introduce a UINT8 field to a device path node, the rest of the nodes in the same device path will shift by 1 byte. If there is a CHAR16 array field in one of those "later" device path nodes, such as "FILEPATH_DEVICE_PATH.PathName", then it might go from naturally aligned to mis-aligned, or vice versa. Therefore, passing such CHAR16 fields to string functions in BaseLib, that is, right out of the containing device path node, is never portable. If it happens to work, that is by chance only. For example: https://bugzilla.tianocore.org/show_bug.cgi?id=1003 https://bugzilla.tianocore.org/show_bug.cgi?id=1008 I suggest grepping "FdtPlatformDxe" (or, well, rather "BootMonFs"!) for "PathName", and wherever it is passed to StrLen() -- because MdePkg/Library/BaseLib/String.c(173) is in StrLen() --, make sure the pathname is first re-aligned naturally, temporarily. For example, with AllocateCopyPool(). gBS->AllocatePool() guarantees 8-byte alignment per spec. While AllocatePool() / AllocateCopyPool() from MemoryAllocationLib don't explicitly guarantee the same "on the tin", I think that's not by design, but by omission. FWIW, for TianoCore BZs 1003 and 1008 above, we assumed AllocateCopyPool() would ensure 8-byte alignment as well. Thanks Laszlo _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
> On 22 Nov 2018, at 17:30, Laszlo Ersek <lersek@redhat.com> wrote: > >> On 11/22/18 14:08, Ard Biesheuvel wrote: >>> On Thu, 22 Nov 2018 at 12:37, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: >>> >>> On Thu, 22 Nov 2018 at 12:19, chandni cherukuri >>> <chandni.cherukuri@arm.com> wrote: >>>> >>>> On Thu, Nov 22, 2018 at 1:20 PM Ard Biesheuvel >>>> <ard.biesheuvel@linaro.org> wrote: >>>>> >>>>>> On Thu, 22 Nov 2018 at 05:01, Thomas Abraham <thomas.abraham@arm.com> wrote: >>>>>> >>>>>> Hi Ard, >>>>>> >>>>>> On Thu, Nov 22, 2018 at 3:46 AM Ard Biesheuvel >>>>>> <ard.biesheuvel@linaro.org> wrote: >>>>>>> >>>>>>>> On Wed, 21 Nov 2018 at 14:48, Thomas Abraham <thomas.abraham@arm.com> wrote: >>>>>>>> >>>>>>>> Hi Ard, >>>>>>>> >>>>>>>> On Wed, Nov 21, 2018 at 5:31 PM Ard Biesheuvel >>>>>>>> <ard.biesheuvel@linaro.org> 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 >>>>>>>> >> ... >>> 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? >>> >> >> It seems like BootMonFsOpenFile() is being called from FdtClientDxe > > I think you mean "FdtPlatformDxe". > Yes. Yay for multitasking :-) >> with a misaligned CHAR16* argument for Filename. > > Yup, that's not an infrequent bug. > > Device paths are packed. Once we introduce a UINT8 field to a device > path node, the rest of the nodes in the same device path will shift by 1 > byte. If there is a CHAR16 array field in one of those "later" device > path nodes, such as "FILEPATH_DEVICE_PATH.PathName", then it might go > from naturally aligned to mis-aligned, or vice versa. Therefore, passing > such CHAR16 fields to string functions in BaseLib, that is, right out of > the containing device path node, is never portable. If it happens to > work, that is by chance only. > > For example: > > https://bugzilla.tianocore.org/show_bug.cgi?id=1003 > https://bugzilla.tianocore.org/show_bug.cgi?id=1008 > > I suggest grepping "FdtPlatformDxe" (or, well, rather "BootMonFs"!) for > "PathName", and wherever it is passed to StrLen() -- because > MdePkg/Library/BaseLib/String.c(173) is in StrLen() --, make sure the > pathname is first re-aligned naturally, temporarily. For example, with > AllocateCopyPool(). > > gBS->AllocatePool() guarantees 8-byte alignment per spec. While > AllocatePool() / AllocateCopyPool() from MemoryAllocationLib don't > explicitly guarantee the same "on the tin", I think that's not by > design, but by omission. FWIW, for TianoCore BZs 1003 and 1008 above, we > assumed AllocateCopyPool() would ensure 8-byte alignment as well. > I tracked this down to BdsLib (a remnant of the illustrious ARM bds), which is a bit of a mess. I’ll have some patches out shortly.
On Wed, Nov 21, 2018 at 01:01:42PM +0100, Ard Biesheuvel wrote: > Align edk2-platform with upcoming changes to EDK2 to get rid of per-bank > NOR flash GUIDs. For the series: Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> > 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(-) > > -- > 2.17.1 > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On Mon, 26 Nov 2018 at 16:15, Leif Lindholm <leif.lindholm@linaro.org> wrote: > > On Wed, Nov 21, 2018 at 01:01:42PM +0100, Ard Biesheuvel wrote: > > Align edk2-platform with upcoming changes to EDK2 to get rid of per-bank > > NOR flash GUIDs. > > For the series: > Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> > Thanks Pushed as f98fb46d3a3d..86c75fc51f6d > > > 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(-) > > > > -- > > 2.17.1 > > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel