[U-Boot] [PATCH] armv7, beagle: Second SDRAM bank don;t work

Steve Sakoman steve at sakoman.com
Fri Oct 15 00:40:40 CEST 2010


On Thu, Oct 14, 2010 at 1:03 AM, Heiko Schocher <hs at denx.de> wrote:
> since commit 3667cbeed5e3c4067e624e52a916b1ebb02c8f05
> on beagle board the second sdram bank didn;t longer
> work. Since this patch sdram settings just get copied
> from bank a, but CMD_NOP, CMD_PRECHARGE, CMD_AUTOREFRESH
> are not executed and after that mr register is also
> not updated. This patch adds this for the bank b.
>
> Signed-off-by: Heiko Schocher <hs at denx.de>
> cc: Steve Sakoman <steve at sakoman.com>
> cc: Sandeep Paulraj <s-paulraj at ti.com>
> cc: Wolfgang Denk <wd at denx.de>
> ---
> Wolfgang, this patch should also be added to u-boot-arm elf_reloc
>
>  arch/arm/cpu/armv7/omap3/sdrc.c |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/omap3/sdrc.c b/arch/arm/cpu/armv7/omap3/sdrc.c
> index 2719bb5..3087096 100644
> --- a/arch/arm/cpu/armv7/omap3/sdrc.c
> +++ b/arch/arm/cpu/armv7/omap3/sdrc.c
> @@ -149,6 +149,13 @@ void do_sdrc_init(u32 cs, u32 early)
>                        &sdrc_actim_base1->ctrla);
>                writel(readl(&sdrc_actim_base0->ctrlb),
>                        &sdrc_actim_base1->ctrlb);
> +
> +               writel(CMD_NOP, &sdrc_base->cs[cs].manual);
> +               writel(CMD_PRECHARGE, &sdrc_base->cs[cs].manual);
> +               writel(CMD_AUTOREFRESH, &sdrc_base->cs[cs].manual);
> +               writel(CMD_AUTOREFRESH, &sdrc_base->cs[cs].manual);
> +               writel(readl(&sdrc_base->cs[CS0].mr),
> +                       &sdrc_base->cs[CS1].mr);
>        }
>
>        /*
> --
> 1.7.2.3

I tested this on Overos with 3 brands of POP memory and both 35XX and
37XX processors.  Seemed to do no harm on any combination, so:

Acked-by: Steve Sakoman <steve.sakoman at linaro.org>
Tested-by: Steve Sakoman <steve.sakoman at linaro.org>


More information about the U-Boot mailing list