All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] Kirkwood: bugfix: DRAM size initialization
@ 2010-10-14 12:47 Tanmay Upadhyay
  2010-10-14 13:48 ` g_remlin
  2010-10-15 11:58 ` Tanmay Upadhyay
  0 siblings, 2 replies; 3+ messages in thread
From: Tanmay Upadhyay @ 2010-10-14 12:47 UTC (permalink / raw)
  To: u-boot

If start of any DRAM bank is greater than total DDR size, remaining
DDR bank sizes were left un-initialized in dram_init function. This
could break other functions who uses array 'gd->bd->bi_dram'.Kirkwood
network driver is one example.

Signed-off-by: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com>
---
 arch/arm/cpu/arm926ejs/kirkwood/dram.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/arch/arm/cpu/arm926ejs/kirkwood/dram.c b/arch/arm/cpu/arm926ejs/kirkwood/dram.c
index 7439c87..cb396d1 100644
--- a/arch/arm/cpu/arm926ejs/kirkwood/dram.c
+++ b/arch/arm/cpu/arm926ejs/kirkwood/dram.c
@@ -81,6 +81,13 @@ int dram_init(void)
 		gd->ram_size += gd->bd->bi_dram[i].size;
 
 	}
+
+	for (; i < CONFIG_NR_DRAM_BANKS; i++) {
+		/* If above loop terminated prematurely, we need to set
+		 * remaining bank sizes as 0 */
+		gd->bd->bi_dram[i].size = 0;
+	}
+
 	return 0;
 }
 
-- 
1.6.6.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH] Kirkwood: bugfix: DRAM size initialization
  2010-10-14 12:47 [U-Boot] [PATCH] Kirkwood: bugfix: DRAM size initialization Tanmay Upadhyay
@ 2010-10-14 13:48 ` g_remlin
  2010-10-15 11:58 ` Tanmay Upadhyay
  1 sibling, 0 replies; 3+ messages in thread
From: g_remlin @ 2010-10-14 13:48 UTC (permalink / raw)
  To: u-boot

Do we want them set to zero regardless of their size, or do we just want
to not include the further banks in gd->ram_size.
Signed-off-by: Gray Remlin <g_remlin@rocketmail.com>
diff --git a/arch/arm/cpu/arm926ejs/kirkwood/dram.c
b/arch/arm/cpu/arm926ejs/kirkwood/dram.c
index 7439c87..3f5eae5 100644
--- a/arch/arm/cpu/arm926ejs/kirkwood/dram.c
+++ b/arch/arm/cpu/arm926ejs/kirkwood/dram.c
@@ -75,10 +75,8 @@ int dram_init(void)
                 * If the gap is found, ram_size will be reported for
                 * consecutive memory only
                 */
-               if (gd->bd->bi_dram[i].start != gd->ram_size)
-                       break;
-
-               gd->ram_size += gd->bd->bi_dram[i].size;
+               if (gd->bd->bi_dram[i].start == gd->ram_size)
+                       gd->ram_size += gd->bd->bi_dram[i].size;

        }
        return 0;

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH] Kirkwood: bugfix: DRAM size initialization
  2010-10-14 12:47 [U-Boot] [PATCH] Kirkwood: bugfix: DRAM size initialization Tanmay Upadhyay
  2010-10-14 13:48 ` g_remlin
@ 2010-10-15 11:58 ` Tanmay Upadhyay
  1 sibling, 0 replies; 3+ messages in thread
From: Tanmay Upadhyay @ 2010-10-15 11:58 UTC (permalink / raw)
  To: u-boot

Hi All,

I was a bit hasty in providing the patch. Given patch solves u-boot 
stuff, but Linux kernel still has some trouble. I am providing second 
version of this patch which takes care of start address also. This fixes 
Linux kernel issue.

Please ignore this version.

Sorry,

Tanmay

On 10/14/2010 06:17 PM, Tanmay Upadhyay wrote:
> If start of any DRAM bank is greater than total DDR size, remaining
> DDR bank sizes were left un-initialized in dram_init function. This
> could break other functions who uses array 'gd->bd->bi_dram'.Kirkwood
> network driver is one example.
>
> Signed-off-by: Tanmay Upadhyay<tanmay.upadhyay@einfochips.com>
> ---
>   arch/arm/cpu/arm926ejs/kirkwood/dram.c |    7 +++++++
>   1 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/cpu/arm926ejs/kirkwood/dram.c b/arch/arm/cpu/arm926ejs/kirkwood/dram.c
> index 7439c87..cb396d1 100644
> --- a/arch/arm/cpu/arm926ejs/kirkwood/dram.c
> +++ b/arch/arm/cpu/arm926ejs/kirkwood/dram.c
> @@ -81,6 +81,13 @@ int dram_init(void)
>   		gd->ram_size += gd->bd->bi_dram[i].size;
>
>   	}
> +
> +	for (; i<  CONFIG_NR_DRAM_BANKS; i++) {
> +		/* If above loop terminated prematurely, we need to set
> +		 * remaining bank sizes as 0 */
> +		gd->bd->bi_dram[i].size = 0;
> +	}
> +
>   	return 0;
>   }
>
>    

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-10-15 11:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-14 12:47 [U-Boot] [PATCH] Kirkwood: bugfix: DRAM size initialization Tanmay Upadhyay
2010-10-14 13:48 ` g_remlin
2010-10-15 11:58 ` Tanmay Upadhyay

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.