On 20 January 2017 at 14:32, Ryan Harkin <[email protected]> wrote:
> Hi Ard,
>
> On 20 January 2017 at 12:06, Ard Biesheuvel <[email protected]> wrote:
>> The generic timer support libraries call the actual system register
>> accessor function via a single pair of functions ArmArchTimerReadReg()
>> and ArmArchTimerWriteReg(), which take an enum to argument to identify
>> the register, and return output values by pointer reference.
>>
>> Since these functions are never called with a non-immediate argument,
>> we can simply replace each invocation with the underlying system register
>> accessor instead. This is mostly functionally equivalent, with the
>> exception of the bounds check for the enum (which is pointless given the
>> fact that we never pass a variable), the check for the presence of the
>> architected timer (which only makes sense for ARMv7, but is highly unlikely
>> to vary between platforms that are similar enough to run the same firmware
>> image), and a check for enum values that refer to the HYP view of the timer,
>> which we never referred to anywhere in the code in the first place.
>>
>> So get rid of the middle man, and update the ArmGenericTimerPhyCounterLib
>> and ArmGenericTimerVirtCounterLib implementations to call the system
>> register accessors directly.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Ard Biesheuvel <[email protected]>
>
> Are there any other patches needed to get this working?
>
> I've just applied it to the head of EDK2 [1] and I get this error when
> building for TC2, FVP and Juno:
>
> Building ... 
> /linaro/platforms/uefi/edk2/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
> [AARCH64]
> /linaro/platforms/uefi/edk2/ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.c:
> In function 'ArmGenericTimerSetTimerFreq':
> /linaro/platforms/uefi/edk2/ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.c:51:19:
> error: 'CntFrq' undeclared (first use in this function)
>    ArmWriteCntFrq (CntFrq);
>                    ^
> /linaro/platforms/uefi/edk2/ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.c:51:19:
> note: each undeclared identifier is reported only once for each
> function it appears in
> GNUmakefile:304: recipe for target
> '/linaro/platforms/uefi/edk2/Build/ArmVExpress-FVP-AArch64/DEBUG_GCC5/AARCH64/ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib/OUTPUT/ArmGenericTimerPhyCounterLib.obj'
> failed
> make: *** 
> [/linaro/platforms/uefi/edk2/Build/ArmVExpress-FVP-AArch64/DEBUG_GCC5/AARCH64/ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib/OUTPUT/ArmGenericTimerPhyCounterLib.obj]
> Error 1
>


Oops! Poor testing on my part: that should be FreqInHz not CntFrq
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to