[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