diff mbox

[Linaro-uefi] Platforms/ARM: move ARM platforms to generic ResetSystemRuntimeDxe

Message ID 20170704172612.27799-1-leif.lindholm@linaro.org
State Accepted
Commit 124202f57bbd21bceef266dfb3e3b5ccf39379ba
Headers show

Commit Message

Leif Lindholm July 4, 2017, 5:26 p.m. UTC
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(-)

Comments

Ard Biesheuvel July 4, 2017, 5:30 p.m. UTC | #1
On 4 July 2017 at 18:26, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> 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>

Looks good to me, but a Tested-by would be nice

Reviewed-by: Ard Biesheuvel <ard.biesheuvel@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]
>    #
> --
> 2.11.0
>
Ryan Harkin July 5, 2017, 10:12 a.m. UTC | #2
On 4 July 2017 at 18:30, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> On 4 July 2017 at 18:26, Leif Lindholm <leif.lindholm@linaro.org> wrote:
>> 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>
>
> Looks good to me, but a Tested-by would be nice

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.



>
> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@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]
>>    #
>> --
>> 2.11.0
>>
Ard Biesheuvel July 5, 2017, 10:13 a.m. UTC | #3
On 5 July 2017 at 11:12, Ryan Harkin <ryan.harkin@linaro.org> wrote:
> On 4 July 2017 at 18:30, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>> On 4 July 2017 at 18:26, Leif Lindholm <leif.lindholm@linaro.org> wrote:
>>> 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>
>>
>> Looks good to me, but a Tested-by would be nice
>
> 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
>

Interestingly, my CI job failed on an ARM build with a segfault as well.

I will investigate.
Ryan Harkin July 5, 2017, 10:16 a.m. UTC | #4
On 5 July 2017 at 11:13, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> On 5 July 2017 at 11:12, Ryan Harkin <ryan.harkin@linaro.org> wrote:
>> On 4 July 2017 at 18:30, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>>> On 4 July 2017 at 18:26, Leif Lindholm <leif.lindholm@linaro.org> wrote:
>>>> 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>
>>>
>>> Looks good to me, but a Tested-by would be nice
>>
>> 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
>>
>
> Interestingly, my CI job failed on an ARM build with a segfault as well.
>
> I will investigate.

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.


>
> --
> Ard.
>
>
>
>> --------------------------------------------------------------------------------------------------
>> "/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.
>>
>>
>>
>>>
>>> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@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]
>>>>    #
>>>> --
>>>> 2.11.0
>>>>
Ryan Harkin July 5, 2017, 10:32 a.m. UTC | #5
On 5 July 2017 at 11:16, Ryan Harkin <ryan.harkin@linaro.org> wrote:
> On 5 July 2017 at 11:13, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>> On 5 July 2017 at 11:12, Ryan Harkin <ryan.harkin@linaro.org> wrote:
>>> On 4 July 2017 at 18:30, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>>>> On 4 July 2017 at 18:26, Leif Lindholm <leif.lindholm@linaro.org> wrote:
>>>>> 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>
>>>>
>>>> Looks good to me, but a Tested-by would be nice
>>>
>>> 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
>>>
>>
>> Interestingly, my CI job failed on an ARM build with a segfault as well.
>>
>> I will investigate.
>
> 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.
>

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.


>
>>
>> --
>> Ard.
>>
>>
>>
>>> --------------------------------------------------------------------------------------------------
>>> "/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.
>>>
>>>
>>>
>>>>
>>>> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@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]
>>>>>    #
>>>>> --
>>>>> 2.11.0
>>>>>
Ryan Harkin July 5, 2017, 11:18 a.m. UTC | #6
On 5 July 2017 at 11:32, Ryan Harkin <ryan.harkin@linaro.org> wrote:
> On 5 July 2017 at 11:16, Ryan Harkin <ryan.harkin@linaro.org> wrote:
>> On 5 July 2017 at 11:13, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>>> On 5 July 2017 at 11:12, Ryan Harkin <ryan.harkin@linaro.org> wrote:
>>>> On 4 July 2017 at 18:30, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>>>>> On 4 July 2017 at 18:26, Leif Lindholm <leif.lindholm@linaro.org> wrote:
>>>>>> 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>
>>>>>
>>>>> Looks good to me, but a Tested-by would be nice

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>

>>>>
>>>> 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
>>>>
>>>
>>> Interestingly, my CI job failed on an ARM build with a segfault as well.
>>>
>>> I will investigate.
>>
>> 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.
>>
>
> 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.
>
>
>>
>>>
>>> --
>>> Ard.
>>>
>>>
>>>
>>>> --------------------------------------------------------------------------------------------------
>>>> "/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.
>>>>
>>>>
>>>>
>>>>>
>>>>> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@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]
>>>>>>    #
>>>>>> --
>>>>>> 2.11.0
>>>>>>
Leif Lindholm July 5, 2017, 3:37 p.m. UTC | #7
On Wed, Jul 05, 2017 at 12:18:52PM +0100, Ryan Harkin wrote:
> On 5 July 2017 at 11:32, Ryan Harkin <ryan.harkin@linaro.org> wrote:
> > On 5 July 2017 at 11:16, Ryan Harkin <ryan.harkin@linaro.org> wrote:
> >> On 5 July 2017 at 11:13, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> >>> On 5 July 2017 at 11:12, Ryan Harkin <ryan.harkin@linaro.org> wrote:
> >>>> On 4 July 2017 at 18:30, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> >>>>> On 4 July 2017 at 18:26, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> >>>>>> 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>
> >>>>>
> >>>>> Looks good to me, but a Tested-by would be nice
> 
> 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>

And this end pushed as 124202f57b.
Thanks!

> 
> >>>>
> >>>> 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
> >>>>
> >>>
> >>> Interestingly, my CI job failed on an ARM build with a segfault as well.
> >>>
> >>> I will investigate.
> >>
> >> 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.
> >>
> >
> > 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.
> >
> >
> >>
> >>>
> >>> --
> >>> Ard.
> >>>
> >>>
> >>>
> >>>> --------------------------------------------------------------------------------------------------
> >>>> "/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.
> >>>>
> >>>>
> >>>>
> >>>>>
> >>>>> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@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]
> >>>>>>    #
> >>>>>> --
> >>>>>> 2.11.0
> >>>>>>
diff mbox

Patch

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]
   #