[U-Boot-Users] Resubmit : [PATCH] Correct ARM Versatile Timer Initialization

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Mon Aug 11 23:11:37 CEST 2008


On 06:30 Mon 04 Aug     , Gururaja Hebbar K R wrote:
> - According to ARM Dual-Timer Module (SP804) TRM (ARM DDI0271), 
>  -- Timer Value Register @ TIMER Base + 4 is Read-only. 
>  -- Prescale Value (Bits 3-2 of TIMER Control register) 
> 	can only be one of 00,01,10. 11 is undefined.
> 
> Signed-off-by: Gururaja Hebbar <gururajakr at sanyo.co.in>
> ---
>  cpu/arm926ejs/versatile/timer.c |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> diff --git a/cpu/arm926ejs/versatile/timer.c b/cpu/arm926ejs/versatile/timer.c
> index 32872d2..9659b67 100644
> --- a/cpu/arm926ejs/versatile/timer.c
> +++ b/cpu/arm926ejs/versatile/timer.c
> @@ -50,8 +50,7 @@ static ulong lastdec;
>  int timer_init (void)
>  {
>  	*(volatile ulong *)(CFG_TIMERBASE + 0) = CFG_TIMER_RELOAD;	/* TimerLoad */
> -	*(volatile ulong *)(CFG_TIMERBASE + 4) = CFG_TIMER_RELOAD;	/* TimerValue */
> -	*(volatile ulong *)(CFG_TIMERBASE + 8) = 0x8C;
> +	*(volatile ulong *)(CFG_TIMERBASE + 8) = 0x80;

according to datasheet for the register TimerXControl

we are supposed to not modify the bits [31:8] and [4]

so we are suppose to read the register and modify only the others
register.

Best Regards,
J.




More information about the U-Boot mailing list