public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size()
@ 2018-10-16  6:46 Marcel Ziswiler
  2018-10-16  6:46 ` [U-Boot] [RESEND PATCH v2 2/2] colibri_imx7: prime get_ram_size() using imx_ddr_size() Marcel Ziswiler
  2018-10-16  8:06 ` [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size() Stefano Babic
  0 siblings, 2 replies; 6+ messages in thread
From: Marcel Ziswiler @ 2018-10-16  6:46 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

The imx_ddr_size() function may overflow as it is possible to kind of
over provision the DDR controller. Fix this by capping it to 2 GB which
is the maximum allowed size as per reference manual.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>

---

Changes in v2: None

 arch/arm/mach-imx/mx7/ddr.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/mach-imx/mx7/ddr.c b/arch/arm/mach-imx/mx7/ddr.c
index f19aeb8042..9713835bf2 100644
--- a/arch/arm/mach-imx/mx7/ddr.c
+++ b/arch/arm/mach-imx/mx7/ddr.c
@@ -196,5 +196,9 @@ unsigned int imx_ddr_size(void)
 	if (field_val <= 29)
 		bits++;
 
+	/* cap to max 2 GB */
+	if (bits > 31)
+		bits = 31;
+
 	return 1 << bits;
 }
-- 
2.14.4

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

* [U-Boot] [RESEND PATCH v2 2/2] colibri_imx7: prime get_ram_size() using imx_ddr_size()
  2018-10-16  6:46 [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size() Marcel Ziswiler
@ 2018-10-16  6:46 ` Marcel Ziswiler
  2018-10-16  8:06 ` [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size() Stefano Babic
  1 sibling, 0 replies; 6+ messages in thread
From: Marcel Ziswiler @ 2018-10-16  6:46 UTC (permalink / raw)
  To: u-boot

From: Fabio Estevam <festevam@gmail.com>

Rather than passing a hardcoded maxsize to the generic get_ram_size()
function use the i.MX 7 specific imx_ddr_size() function, which extracts
the memory size at runtime by reading the DDR controller registers.

This is a purely cosmetic change as the generic get_ram_size() function
already took care of properly automatically detecting 256MB, 512MB or 1GB
modules.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>

---

Changes in v2:
- Added Fabio's and Stefan's acks resp. reviewed-bys.

 board/toradex/colibri_imx7/colibri_imx7.c | 2 +-
 include/configs/colibri_imx7.h            | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/board/toradex/colibri_imx7/colibri_imx7.c b/board/toradex/colibri_imx7/colibri_imx7.c
index 2b7591eb00..a4c99626b4 100644
--- a/board/toradex/colibri_imx7/colibri_imx7.c
+++ b/board/toradex/colibri_imx7/colibri_imx7.c
@@ -52,7 +52,7 @@ DECLARE_GLOBAL_DATA_PTR;
 
 int dram_init(void)
 {
-	gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
+	gd->ram_size = get_ram_size((void *)PHYS_SDRAM, imx_ddr_size());
 
 	return 0;
 }
diff --git a/include/configs/colibri_imx7.h b/include/configs/colibri_imx7.h
index ff6bd678cf..02849ba35f 100644
--- a/include/configs/colibri_imx7.h
+++ b/include/configs/colibri_imx7.h
@@ -14,7 +14,6 @@
 #include "mx7_common.h"
 
 /*#define CONFIG_DBG_MONITOR*/
-#define PHYS_SDRAM_SIZE			SZ_1G
 
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)
-- 
2.14.4

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

* [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size()
  2018-10-16  6:46 [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size() Marcel Ziswiler
  2018-10-16  6:46 ` [U-Boot] [RESEND PATCH v2 2/2] colibri_imx7: prime get_ram_size() using imx_ddr_size() Marcel Ziswiler
@ 2018-10-16  8:06 ` Stefano Babic
  2018-10-16  8:25   ` Marcel Ziswiler
  1 sibling, 1 reply; 6+ messages in thread
From: Stefano Babic @ 2018-10-16  8:06 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

On 16/10/2018 08:46, Marcel Ziswiler wrote:
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> The imx_ddr_size() function may overflow as it is possible to kind of
> over provision the DDR controller. Fix this by capping it to 2 GB which
> is the maximum allowed size as per reference manual.
> 
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
> 
> ---
> 
> Changes in v2: None
> 
>  arch/arm/mach-imx/mx7/ddr.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/arch/arm/mach-imx/mx7/ddr.c b/arch/arm/mach-imx/mx7/ddr.c
> index f19aeb8042..9713835bf2 100644
> --- a/arch/arm/mach-imx/mx7/ddr.c
> +++ b/arch/arm/mach-imx/mx7/ddr.c
> @@ -196,5 +196,9 @@ unsigned int imx_ddr_size(void)
>  	if (field_val <= 29)
>  		bits++;
>  
> +	/* cap to max 2 GB */
> +	if (bits > 31)
> +		bits = 31;
> +
>  	return 1 << bits;
>  }
> 

This is a good catch, thanks for it ! The two patches in V2 (the second
for colibri) are already in my list. Does this mean that you want I drop
"colibri_imx7: prime get_ram_size() using imx_ddr_size() " ?

Thanks,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

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

* [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size()
  2018-10-16  8:06 ` [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size() Stefano Babic
@ 2018-10-16  8:25   ` Marcel Ziswiler
  2018-10-16  8:37     ` Stefano Babic
  0 siblings, 1 reply; 6+ messages in thread
From: Marcel Ziswiler @ 2018-10-16  8:25 UTC (permalink / raw)
  To: u-boot

Hi Stefano

On Tue, 2018-10-16 at 10:06 +0200, Stefano Babic wrote:
> Hi Marcel,
> 
> On 16/10/2018 08:46, Marcel Ziswiler wrote:
> > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > 
> > The imx_ddr_size() function may overflow as it is possible to kind
> > of
> > over provision the DDR controller. Fix this by capping it to 2 GB
> > which
> > is the maximum allowed size as per reference manual.
> > 
> > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
> > 
> > ---
> > 
> > Changes in v2: None
> > 
> >  arch/arm/mach-imx/mx7/ddr.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/arch/arm/mach-imx/mx7/ddr.c b/arch/arm/mach-
> > imx/mx7/ddr.c
> > index f19aeb8042..9713835bf2 100644
> > --- a/arch/arm/mach-imx/mx7/ddr.c
> > +++ b/arch/arm/mach-imx/mx7/ddr.c
> > @@ -196,5 +196,9 @@ unsigned int imx_ddr_size(void)
> >  	if (field_val <= 29)
> >  		bits++;
> >  
> > +	/* cap to max 2 GB */
> > +	if (bits > 31)
> > +		bits = 31;
> > +
> >  	return 1 << bits;
> >  }
> > 
> 
> This is a good catch, thanks for it ! The two patches in V2 (the
> second
> for colibri) are already in my list. Does this mean that you want I
> drop
> "colibri_imx7: prime get_ram_size() using imx_ddr_size() " ?

No, no. I just resent both as I did not see any activity on it but if
you already have them queued that's completely fine. Thanks!

> Thanks,
> Stefano

Cheers

Marcel

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

* [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size()
  2018-10-16  8:25   ` Marcel Ziswiler
@ 2018-10-16  8:37     ` Stefano Babic
  2018-10-16  8:42       ` Marcel Ziswiler
  0 siblings, 1 reply; 6+ messages in thread
From: Stefano Babic @ 2018-10-16  8:37 UTC (permalink / raw)
  To: u-boot

On 16/10/2018 10:25, Marcel Ziswiler wrote:
> Hi Stefano
> 
> On Tue, 2018-10-16 at 10:06 +0200, Stefano Babic wrote:
>> Hi Marcel,
>>
>> On 16/10/2018 08:46, Marcel Ziswiler wrote:
>>> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>>
>>> The imx_ddr_size() function may overflow as it is possible to kind
>>> of
>>> over provision the DDR controller. Fix this by capping it to 2 GB
>>> which
>>> is the maximum allowed size as per reference manual.
>>>
>>> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
>>>
>>> ---
>>>
>>> Changes in v2: None
>>>
>>>  arch/arm/mach-imx/mx7/ddr.c | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/arch/arm/mach-imx/mx7/ddr.c b/arch/arm/mach-
>>> imx/mx7/ddr.c
>>> index f19aeb8042..9713835bf2 100644
>>> --- a/arch/arm/mach-imx/mx7/ddr.c
>>> +++ b/arch/arm/mach-imx/mx7/ddr.c
>>> @@ -196,5 +196,9 @@ unsigned int imx_ddr_size(void)
>>>  	if (field_val <= 29)
>>>  		bits++;
>>>  
>>> +	/* cap to max 2 GB */
>>> +	if (bits > 31)
>>> +		bits = 31;
>>> +
>>>  	return 1 << bits;
>>>  }
>>>
>>
>> This is a good catch, thanks for it ! The two patches in V2 (the
>> second
>> for colibri) are already in my list. Does this mean that you want I
>> drop
>> "colibri_imx7: prime get_ram_size() using imx_ddr_size() " ?
> 
> No, no. I just resent both as I did not see any activity on it but if
> you already have them queued that's completely fine. Thanks!
> 

Ah, ok - I had already applied the two patches and you see them on
u-boot-imx. However, I have not sent a PR to Tom.

Regards,
Stefano


-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

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

* [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size()
  2018-10-16  8:37     ` Stefano Babic
@ 2018-10-16  8:42       ` Marcel Ziswiler
  0 siblings, 0 replies; 6+ messages in thread
From: Marcel Ziswiler @ 2018-10-16  8:42 UTC (permalink / raw)
  To: u-boot

On Tue, 2018-10-16 at 10:37 +0200, Stefano Babic wrote:
> On 16/10/2018 10:25, Marcel Ziswiler wrote:
> > Hi Stefano
> > 
> > On Tue, 2018-10-16 at 10:06 +0200, Stefano Babic wrote:
> > > Hi Marcel,
> > > 
> > > On 16/10/2018 08:46, Marcel Ziswiler wrote:
> > > > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > > > 
> > > > The imx_ddr_size() function may overflow as it is possible to
> > > > kind
> > > > of
> > > > over provision the DDR controller. Fix this by capping it to 2
> > > > GB
> > > > which
> > > > is the maximum allowed size as per reference manual.
> > > > 
> > > > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > > > Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
> > > > 
> > > > ---
> > > > 
> > > > Changes in v2: None
> > > > 
> > > >  arch/arm/mach-imx/mx7/ddr.c | 4 ++++
> > > >  1 file changed, 4 insertions(+)
> > > > 
> > > > diff --git a/arch/arm/mach-imx/mx7/ddr.c b/arch/arm/mach-
> > > > imx/mx7/ddr.c
> > > > index f19aeb8042..9713835bf2 100644
> > > > --- a/arch/arm/mach-imx/mx7/ddr.c
> > > > +++ b/arch/arm/mach-imx/mx7/ddr.c
> > > > @@ -196,5 +196,9 @@ unsigned int imx_ddr_size(void)
> > > >  	if (field_val <= 29)
> > > >  		bits++;
> > > >  
> > > > +	/* cap to max 2 GB */
> > > > +	if (bits > 31)
> > > > +		bits = 31;
> > > > +
> > > >  	return 1 << bits;
> > > >  }
> > > > 
> > > 
> > > This is a good catch, thanks for it ! The two patches in V2 (the
> > > second
> > > for colibri) are already in my list. Does this mean that you want
> > > I
> > > drop
> > > "colibri_imx7: prime get_ram_size() using imx_ddr_size() " ?
> > 
> > No, no. I just resent both as I did not see any activity on it but
> > if
> > you already have them queued that's completely fine. Thanks!
> > 
> 
> Ah, ok - I had already applied the two patches and you see them on
> u-boot-imx. However, I have not sent a PR to Tom.

Ah, yeah. Sorry, I forgot to check there. Perfect!

> Regards,
> Stefano

Cheers

Marcel

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

end of thread, other threads:[~2018-10-16  8:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-16  6:46 [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size() Marcel Ziswiler
2018-10-16  6:46 ` [U-Boot] [RESEND PATCH v2 2/2] colibri_imx7: prime get_ram_size() using imx_ddr_size() Marcel Ziswiler
2018-10-16  8:06 ` [U-Boot] [RESEND PATCH v2 1/2] imx: mx7: fix potential overflow in imx_ddr_size() Stefano Babic
2018-10-16  8:25   ` Marcel Ziswiler
2018-10-16  8:37     ` Stefano Babic
2018-10-16  8:42       ` Marcel Ziswiler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox