All of lore.kernel.org
 help / color / mirror / Atom feed
From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] kirkwood: implement kw_sdram_bs_set()
Date: Thu, 5 Jul 2012 12:39:42 +0200	[thread overview]
Message-ID: <20120705123942.55dec203@aari01-12> (raw)
In-Reply-To: <1340969874-12869-1-git-send-email-gerlando.falauto@keymile.com>

Hi Gerlando,

On Fri, 29 Jun 2012 13:37:54 +0200, Gerlando Falauto
<gerlando.falauto@keymile.com> wrote:
> Some boards might be equipped with different SDRAM configurations.
> When that is the case, CPU CS Window Size Register (CS[0]n Size)
> should be set to the biggest value through board.cfg file; then its
> value can be fixed at runtime according to the detected SDRAM size.
> 
> Therefore, implement kw_sdram_bs_set(), to be called for instance
> within board_early_init_f().
> 
> Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Prafulla Wadaskar <prafulla@marvell.com>
> Cc: Wolfgang Denk <wd@denx.de>
> Cc: Valentin Longchamp <valentin.longchamp@keymile.com>
> Cc: Holger Brunck <holger.brunck@keymile.com>
> ---
>  arch/arm/cpu/arm926ejs/kirkwood/dram.c   |   28
> ++++++++++++++++++++++++++-- arch/arm/include/asm/arch-kirkwood/cpu.h
> |    2 ++ 2 files changed, 28 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/cpu/arm926ejs/kirkwood/dram.c
> b/arch/arm/cpu/arm926ejs/kirkwood/dram.c index 2441554..e5409f1 100644
> --- a/arch/arm/cpu/arm926ejs/kirkwood/dram.c
> +++ b/arch/arm/cpu/arm926ejs/kirkwood/dram.c
> @@ -28,8 +28,15 @@
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> -#define KW_REG_CPUCS_WIN_BAR(x)		(KW_REGISTER(0x1500)
> + (x * 0x08)) -#define KW_REG_CPUCS_WIN_SZ(x)
> (KW_REGISTER(0x1504) + (x * 0x08)) +/* Kirkwood memory registers */
> +#define KW_REG_CPUCS_WIN_BAR(x)		(KW_REGISTER(0x1500)
> + ((x) * 0x08)) +#define KW_REG_CPUCS_WIN_SZ(x)
> (KW_REGISTER(0x1504) + ((x) * 0x08)) +
> +#define KW_REG_CPUCS_WIN_ENABLE		(1 << 0)
> +#define KW_REG_CPUCS_WIN_WR_PROTECT	(1 << 1)
> +#define KW_REG_CPUCS_WIN_WIN0_CS(x)	(((x) & 0x3) << 2)
> +#define KW_REG_CPUCS_WIN_SIZE(x)	(((x) & 0xff) << 24)
> +
>  /*
>   * kw_sdram_bar - reads SDRAM Base Address Register
>   */
> @@ -60,6 +67,23 @@ u32 kw_sdram_bs(enum memory_bank bank)
>  	return result;
>  }
>  
> +/*
> + * kw_sdram_bs_set - writes SDRAM Bank size
> + */
> +void kw_sdram_bs_set(enum memory_bank bank, u32 size)
> +{
> +	/* Read current register value */
> +	u32 reg = readl(KW_REG_CPUCS_WIN_SZ(bank));
> +
> +	/* Clear window size */
> +	reg &= ~KW_REG_CPUCS_WIN_SIZE(0xFF);
> +
> +	/* Set new window size */
> +	reg |= KW_REG_CPUCS_WIN_SIZE((size - 1) >> 24);
> +
> +	writel(reg, KW_REG_CPUCS_WIN_SZ(bank));
> +}
> +
>  #ifndef CONFIG_SYS_BOARD_DRAM_INIT
>  int dram_init(void)
>  {
> diff --git a/arch/arm/include/asm/arch-kirkwood/cpu.h
> b/arch/arm/include/asm/arch-kirkwood/cpu.h index d28c51a..807154e
> 100644 --- a/arch/arm/include/asm/arch-kirkwood/cpu.h
> +++ b/arch/arm/include/asm/arch-kirkwood/cpu.h
> @@ -159,6 +159,8 @@ void reset_cpu(unsigned long ignored);
>  unsigned char get_random_hex(void);
>  unsigned int kw_sdram_bar(enum memory_bank bank);
>  unsigned int kw_sdram_bs(enum memory_bank bank);
> +void kw_sdram_bs_set(enum memory_bank bank, u32 size);
> +
>  int kw_config_adr_windows(void);
>  void kw_config_gpio(unsigned int gpp0_oe_val, unsigned int
> gpp1_oe_val, unsigned int gpp0_oe, unsigned int gpp1_oe);

I don't like isolated patches that seem to create dead code. I know
here it is not the goal, of course; so why not submit a two-patch
series, providing both the new code *and* a use for it?

Amicalement,
-- 
Albert.

  reply	other threads:[~2012-07-05 10:39 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-26 18:49 [U-Boot] [PATCH 1/2] KW: Move the memory register definitions into kirkwood.h Marek Vasut
2012-06-26 18:49 ` [U-Boot] [PATCH 2/2] Kirkwood: Add support for Ka-Ro TK71 Marek Vasut
2012-06-27 12:02   ` [U-Boot] [PATCH 2/2 V2] " Marek Vasut
2012-07-03 11:43     ` Prafulla Wadaskar
2012-07-03 11:56     ` Prafulla Wadaskar
2012-07-03 12:08     ` Prafulla Wadaskar
2012-07-03 12:23       ` Marek Vasut
2012-07-03 12:27     ` [U-Boot] [PATCH V3 2/2] " Marek Vasut
2012-07-03 12:44       ` Prafulla Wadaskar
2012-07-03 12:51         ` Marek Vasut
2012-07-03 13:00           ` Prafulla Wadaskar
2012-07-03 13:03             ` Marek Vasut
2012-07-03 13:02       ` [U-Boot] [PATCH 2/2 V4] " Marek Vasut
2012-07-03 13:12         ` Prafulla Wadaskar
2012-06-29 10:02 ` [U-Boot] [PATCH 1/2] KW: Move the memory register definitions into kirkwood.h Gerlando Falauto
2012-06-29 10:08   ` Marek Vasut
2012-06-29 10:27     ` Gerlando Falauto
2012-06-29 10:51       ` Marek Vasut
2012-06-29 11:37 ` [U-Boot] [PATCH] kirkwood: implement kw_sdram_bs_set() Gerlando Falauto
2012-07-05 10:39   ` Albert ARIBAUD [this message]
2012-07-05 10:57     ` Gerlando Falauto
2012-07-05 11:02       ` Albert ARIBAUD
2012-07-05 12:16         ` Prafulla Wadaskar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120705123942.55dec203@aari01-12 \
    --to=albert.u.boot@aribaud.net \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.