[U-Boot] [PATCH v2 1/7] arm: Add Support for Marvell ARMADA 100 Familiy SoCs.

Heiko Schocher hs at denx.de
Tue Nov 30 08:18:28 CET 2010


Hello Prafulla,

Prafulla Wadaskar wrote:
> From: Prafulla WADASKAR <prafulla at 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.miao at marvell.com>
> Lei Wen <leiwen at marvell.com>
> Mahavir Jain <mjain at marvell.com>
> 
> Signed-off-by: Mahavir Jain <mjain at marvell.com>
> Signed-off-by: Prafulla Wadaskar <prafulla at 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


More information about the U-Boot mailing list