Update (32-bit) ARM platforms to use generic ResetSystemRuntimeDxe, and update the library mapping to provide a ResetSystemLib (via the new version of ArmVeResetSystemLib).
Update TC2 to explicitly include MdeModulePkg ResetSystemRuntimeDxe.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leif Lindholm leif.lindholm@linaro.org ---
This change depends on the updated version of ArmVeResetSystemLib, not yet merged in edk2.
Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc | 2 +- Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf | 2 +- Platforms/ARM/VExpress/ArmVExpress.dsc.inc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc index d1cfc71983..2fa484050b 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc @@ -222,7 +222,7 @@ } MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf - EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf + MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf index 1903389c8e..cb9a89ef0c 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf @@ -79,7 +79,7 @@ FvNameGuid = 73dcb643-3862-4904-9076-a94af1890243 INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf - INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf + INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
diff --git a/Platforms/ARM/VExpress/ArmVExpress.dsc.inc b/Platforms/ARM/VExpress/ArmVExpress.dsc.inc index 3f6e50573c..f2a05e8e6b 100644 --- a/Platforms/ARM/VExpress/ArmVExpress.dsc.inc +++ b/Platforms/ARM/VExpress/ArmVExpress.dsc.inc @@ -254,7 +254,7 @@ # syscfg MMIO register implementation on ARM. # This will not work at actual runtime. # - EfiResetSystemLib|ArmPlatformPkg/ArmVExpressPkg/Library/ResetSystemLib/ResetSystemLib.inf + ResetSystemLib|ArmPlatformPkg/ArmVExpressPkg/Library/ResetSystemLib/ResetSystemLib.inf
[LibraryClasses.ARM, LibraryClasses.AARCH64] #
On 4 July 2017 at 18:26, Leif Lindholm leif.lindholm@linaro.org wrote:
Looks good to me, but a Tested-by would be nice
Reviewed-by: Ard Biesheuvel ard.biesheuvel@linaro.org
On 4 July 2017 at 18:30, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
Well..... there's a thing....
I thought I ought to try this too. The three patches around this look good. But... pure upstream EDK2 and OpenPlatformPkg no longer builds for me.
I tried:
edk2 at commit e4129b0 opp at commit bbdd9ce uefi-tools at commit bb3cae0
-------------------------------------------------------------------------------------------------- "/linaro/platforms/tools/gcc/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc" -mthumb -DARM_BIGLITTLE_TC2=1 -mcpu=cortex-a15 -I/linaro/platforms/uefi/edk2/ArmPlatformPkg/ArmVExpressPkg/Include -I/linaro/platforms/uefi/edk2/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7 -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie -fstack-protector -mword-relocations -flto -Wno-unused-but-set-variable -DMDEPKG_NDEBUG -c -o /linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe/OUTPUT/./AutoGen.obj -I/linaro/platforms/uefi/edk2/MdeModulePkg/Universal/Network/Dhcp4Dxe -I/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe/DEBUG -I/linaro/platforms/uefi/edk2/MdePkg -I/linaro/platforms/uefi/edk2/MdePkg/Include -I/linaro/platforms/uefi/edk2/MdePkg/Include/Arm -I/linaro/platforms/uefi/edk2/MdeModulePkg -I/linaro/platforms/uefi/edk2/MdeModulePkg/Include /linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe/DEBUG/AutoGen.c Segmentation fault (core dumped) make: *** [/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.efi] Error 139 GNUmakefile:360: recipe for target '/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.efi' failed
build.py... : error 7000: Failed to execute command make tbuild [/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe]
build.py... : error 7000: Failed to execute command make tbuild [/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/PCD/Dxe/Pcd]
build.py... : error 7000: Failed to execute command make tbuild [/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/ArpDxe/ArpDxe]
build.py... : error 7000: Failed to execute command make tbuild [/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFs]
build.py... : error 7000: Failed to execute command make tbuild [/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe]
build.py... : error 7000: Failed to execute command make tbuild [/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe]
build.py... : error 7000: Failed to execute command make tbuild [/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/MnpDxe/MnpDxe]
build.py... : error 7000: Failed to execute command make tbuild [/linaro/platforms/uefi/edk2/Build/ArmVExpress-CTA15-A7/RELEASE_GCC5/ARM/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe]
build.py... : error F002: Failed to build module /linaro/platforms/uefi/edk2/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf [ARM, GCC5, RELEASE]
- Failed - --------------------------------------------------------------------------------------------------
So at that point, I've given up.
On 5 July 2017 at 11:12, Ryan Harkin ryan.harkin@linaro.org wrote:
Interestingly, my CI job failed on an ARM build with a segfault as well.
I will investigate.
On 5 July 2017 at 11:13, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
Actually, after sending my email, I decided to git bisect the problem too, assuming it wouldn't be too hard saying as I last used pure upstream code to build also... pah! famous last words... too many dependencies between tianocore and OpenPlatformPkg make it cumbersome.
On 5 July 2017 at 11:16, Ryan Harkin ryan.harkin@linaro.org wrote:
After all that, bisect tells me it's the current tianocore HEAD:
commit e4129b0e5897d76885170bec9da996b266f185f9 Author: Liming Gao liming.gao@intel.com Date: Mon Jun 19 17:49:44 2017 +0800
BaseTools: Update GenFw to clear unused debug entry generated by VS tool chain
https://bugzilla.tianocore.org/show_bug.cgi?id=600
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Liming Gao liming.gao@intel.com Reviewed-by: Yonghong Zhu yonghong.zhu@intel.com
If I pop that one off, all is well with the world again. I'm not working out why that broke, I'll ignore it and carry on testing Leif's patches.
On 5 July 2017 at 11:32, Ryan Harkin ryan.harkin@linaro.org wrote:
After popping commit e4129b0e5897d76885170bec9da996b266f185f9 off the top of edk2, and adding "ArmPlatformPkg: convert VExpress ResetSystemLib to ResetSystemLib", I applied this patch to OpenPlatformPkg and tested on TC2, FVP Foundation and AEMv8 models and Juno R0/1/2.
I checked that reset and shutdown both still work as expected. Reset was triggered from BDS, grub and EFI Shell. Shutdown (reset -s) was trigger from EFI Shell.
Tested-by: Ryan Harkin ryan.harkin@linaro.org