In the next patch we'll slightly reorganize TimerConstructor(). Let's improve the comments first.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <[email protected]> --- ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c b/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c index c0ab4a4..384a31a 100644 --- a/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c +++ b/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c @@ -27,38 +27,49 @@ RETURN_STATUS EFIAPI TimerConstructor ( VOID ) { - // Check if the ARM Generic Timer Extension is implemented + // + // Check if the ARM Generic Timer Extension is implemented. + // if (ArmIsArchTimerImplemented ()) { - UINTN TimerFreq; - // Check if Architectural Timer frequency is valid number (should not be 0) + // + // Check if Architectural Timer frequency is valid (should not be 0). + // ASSERT (PcdGet32 (PcdArmArchTimerFreqInHz)); + // // Check if ticks/uS is not 0. The Architectural timer runs at constant - // frequency irrespective of CPU frequency. According to General Timer Ref - // manual lower bound of the frequency is in the range of 1-10MHz + // frequency, irrespective of CPU frequency. According to General Timer + // Ref manual, lower bound of the frequency is in the range of 1-10MHz. + // ASSERT (TICKS_PER_MICRO_SEC); #ifdef MDE_CPU_ARM - // Only set the frequency for ARMv7. We expect the secure firmware to have already do it - // If the security extensions are not implemented set Timer Frequency + // + // Only set the frequency for ARMv7. We expect the secure firmware to + // have already done it. + // If the security extensions are not implemented, set Timer Frequency + // here. + // if ((ArmReadIdPfr1 () & ARM_PFR1_SEC) == 0x0) { ArmGenericTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz)); } #endif - // Architectural Timer Frequency must be set in the Secure privileged(if secure extensions are supported) mode. - // If the reset value (0) is returned just ASSERT. + // + // Architectural Timer Frequency must be set in the Secure privileged + // mode (if secure extensions are supported). + // If the reset value (0) is returned, just ASSERT. + // TimerFreq = ArmGenericTimerGetTimerFreq (); ASSERT (TimerFreq != 0); - } else { DEBUG ((EFI_D_ERROR, "ARM Architectural Timer is not available in the CPU, hence this library can not be used.\n")); ASSERT (0); } return RETURN_SUCCESS; -- 1.8.3.1 ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
