Hello Prafulla,

Prafulla Wadaskar wrote:
> From: Prafulla WADASKAR <prafu...@marvell.com>
> 
> ARMADA 100 Family processors are highly integrated SoCs
> based on Sheeva_88SV331x-v5 PJ1 cpu core.
> Ref: http://www.marvell.com/products/processors/applications/armada_100
> 
> SoC versions Supported:
> 1) ARMADA168/88AP168  (Aspen P)
> 2) ARMADA166/88AP166  (Aspen M)
> 3) ARMADA162/88AP162  (Aspen L)
> 
> Contributors:
> Eric Miao <eric.y.m...@marvell.com>
> Lei Wen <lei...@marvell.com>
> Mahavir Jain <mj...@marvell.com>
> 
> Signed-off-by: Mahavir Jain <mj...@marvell.com>
> Signed-off-by: Prafulla Wadaskar <prafu...@marvell.com>
> ---
> 
> Change log V2:
> 1. C-struct used for dram.c
> 2. lib declaration changed from .a to .o
> 3. Implemented review feedback for v1
>  
>  arch/arm/cpu/arm926ejs/armada100/Makefile       |   46 ++++++
>  arch/arm/cpu/arm926ejs/armada100/cpu.c          |   92 +++++++++++
>  arch/arm/cpu/arm926ejs/armada100/dram.c         |  131 +++++++++++++++
>  arch/arm/cpu/arm926ejs/armada100/timer.c        |  199 
> +++++++++++++++++++++++
>  arch/arm/include/asm/arch-armada100/armada100.h |  120 ++++++++++++++
>  arch/arm/include/asm/arch-armada100/cpu.h       |   53 ++++++
>  6 files changed, 641 insertions(+), 0 deletions(-)
>  create mode 100644 arch/arm/cpu/arm926ejs/armada100/Makefile
>  create mode 100644 arch/arm/cpu/arm926ejs/armada100/cpu.c
>  create mode 100644 arch/arm/cpu/arm926ejs/armada100/dram.c
>  create mode 100644 arch/arm/cpu/arm926ejs/armada100/timer.c
>  create mode 100644 arch/arm/include/asm/arch-armada100/armada100.h
>  create mode 100644 arch/arm/include/asm/arch-armada100/cpu.h
> 
[...]
> diff --git a/arch/arm/cpu/arm926ejs/armada100/timer.c 
> b/arch/arm/cpu/arm926ejs/armada100/timer.c
> new file mode 100644
> index 0000000..b9ef8af
> --- /dev/null
> +++ b/arch/arm/cpu/arm926ejs/armada100/timer.c
> @@ -0,0 +1,199 @@
> +/*
> + * (C) Copyright 2010
[...]
> +#define READ_TIMER           ({volatile int loop=100; \
> +                             writel(COUNT_RD_REQ, &armd1timers->cvwr); \
> +                             while (loop--); \
> +                             readl(&armd1timers->cvwr);})
> +static ulong timestamp;
> +static ulong lastdec;

This local vars are stored in bss, which is not valid before relocation.
And timer_init() is called before relocation and changes this vars.

For an example how to change this issue, look here:
http://git.denx.de/?p=u-boot.git;a=commit;h=5dca710a3d7703e41da0e9894f2d71f9e25bea6b

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to