Patchwork [U-Boot] mx28evk: add NAND support

login
register
mail settings
Submitter Lauri Hintsala
Date April 17, 2012, 10:35 a.m.
Message ID <1334658946-7533-1-git-send-email-lauri.hintsala@bluegiga.com>
Download mbox | patch
Permalink /patch/153120/
State Accepted
Commit ecb7be2985e130d1d3f7569f086cf50bfe60d337
Headers show

Comments

Lauri Hintsala - April 17, 2012, 10:35 a.m.
NAND support is not enabled by default because Eval Kit is not delivered
with NAND chip. To enable NAND support add CONFIG_CMD_NAND to board config.

Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com>
---
 board/freescale/mx28evk/iomux.c |   21 +++++++++++++++++++++
 include/configs/mx28evk.h       |   10 ++++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)
Marek Vasut - April 17, 2012, 11:21 a.m.
Dear Lauri Hintsala,

> NAND support is not enabled by default because Eval Kit is not delivered
> with NAND chip. To enable NAND support add CONFIG_CMD_NAND to board config.
> 
> Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com>

Acked-by: Marek Vasut <marex@denx.de>

I think we can schedule it for .04 release as this is basically a fix? Fabio ?

> ---
>  board/freescale/mx28evk/iomux.c |   21 +++++++++++++++++++++
>  include/configs/mx28evk.h       |   10 ++++++++++
>  2 files changed, 31 insertions(+), 0 deletions(-)
> 
> diff --git a/board/freescale/mx28evk/iomux.c
> b/board/freescale/mx28evk/iomux.c index 396761b..6587c45 100644
> --- a/board/freescale/mx28evk/iomux.c
> +++ b/board/freescale/mx28evk/iomux.c
> @@ -26,6 +26,7 @@
>  #include <asm/arch/sys_proto.h>
> 
>  #define	MUX_CONFIG_SSP0	(MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP)
> +#define	MUX_CONFIG_GPMI	(MXS_PAD_3V3 | MXS_PAD_4MA | MXS_PAD_NOPULL)
>  #define	MUX_CONFIG_ENET	(MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP)
>  #define	MUX_CONFIG_EMI	(MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_NOPULL)
>  #define	MUX_CONFIG_SSP2	(MXS_PAD_3V3 | MXS_PAD_4MA | MXS_PAD_PULLUP)
> @@ -55,6 +56,26 @@ const iomux_cfg_t iomux_setup[] = {
>  	MX28_PAD_PWM3__GPIO_3_28 |
>  		(MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_PULLUP),
> 
> +#ifdef CONFIG_NAND_MXS
> +	/* GPMI NAND */
> +	MX28_PAD_GPMI_D00__GPMI_D0 | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_D01__GPMI_D1 | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_D02__GPMI_D2 | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_D03__GPMI_D3 | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_D04__GPMI_D4 | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_D05__GPMI_D5 | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_D06__GPMI_D6 | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_D07__GPMI_D7 | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_CE0N__GPMI_CE0N | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_RDY0__GPMI_READY0 | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_RDN__GPMI_RDN |
> +		(MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP),
> +	MX28_PAD_GPMI_WRN__GPMI_WRN | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_ALE__GPMI_ALE | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_CLE__GPMI_CLE | MUX_CONFIG_GPMI,
> +	MX28_PAD_GPMI_RESETN__GPMI_RESETN | MUX_CONFIG_GPMI,
> +#endif
> +
>  	/* FEC0 */
>  	MX28_PAD_ENET0_MDC__ENET0_MDC | MUX_CONFIG_ENET,
>  	MX28_PAD_ENET0_MDIO__ENET0_MDIO | MUX_CONFIG_ENET,
> diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h
> index 02f3366..2a44baa 100644
> --- a/include/configs/mx28evk.h
> +++ b/include/configs/mx28evk.h
> @@ -148,6 +148,16 @@
>  #endif
> 
>  /*
> + * NAND Driver
> + */
> +#ifdef CONFIG_CMD_NAND
> +#define CONFIG_NAND_MXS
> +#define CONFIG_SYS_MAX_NAND_DEVICE	1
> +#define CONFIG_SYS_NAND_BASE		0x60000000
> +#define CONFIG_SYS_NAND_5_ADDR_CYCLE
> +#endif
> +
> +/*
>   * Ethernet on SOC (FEC)
>   */
>  #ifdef	CONFIG_CMD_NET

Best regards,
Marek Vasut
Fabio Estevam - April 17, 2012, 1:34 p.m.
On 4/17/12, Marek Vasut <marex@denx.de> wrote:
> Dear Lauri Hintsala,
>
>> NAND support is not enabled by default because Eval Kit is not delivered
>> with NAND chip. To enable NAND support add CONFIG_CMD_NAND to board
>> config.
>>
>> Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com>
>
> Acked-by: Marek Vasut <marex@denx.de>
>
> I think we can schedule it for .04 release as this is basically a fix? Fabio
> ?

Looks good to me. My only suggestion (can be part of a separate patch)
is to modify the mx28evk README and explain that mx28evk can also boot
from NAND and explain the boot mode settings, etc.

Thanks,

Fabio Estevam
Marek Vasut - April 17, 2012, 2:22 p.m.
Dear Fabio Estevam,

> On 4/17/12, Marek Vasut <marex@denx.de> wrote:
> > Dear Lauri Hintsala,
> > 
> >> NAND support is not enabled by default because Eval Kit is not delivered
> >> with NAND chip. To enable NAND support add CONFIG_CMD_NAND to board
> >> config.
> >> 
> >> Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com>
> > 
> > Acked-by: Marek Vasut <marex@denx.de>
> > 
> > I think we can schedule it for .04 release as this is basically a fix?
> > Fabio ?
> 
> Looks good to me. My only suggestion (can be part of a separate patch)
> is to modify the mx28evk README and explain that mx28evk can also boot
> from NAND and explain the boot mode settings, etc.

Good idea, but let's do this in a separate patch :)
> 
> Thanks,
> 
> Fabio Estevam

Best regards,
Marek Vasut
Stefano Babic - April 17, 2012, 2:30 p.m.
On 17/04/2012 13:21, Marek Vasut wrote:
> Dear Lauri Hintsala,
> 
>> NAND support is not enabled by default because Eval Kit is not delivered
>> with NAND chip. To enable NAND support add CONFIG_CMD_NAND to board config.
>>
>> Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com>
> 
> Acked-by: Marek Vasut <marex@denx.de>
> 
> I think we can schedule it for .04 release as this is basically a fix? Fabio ?

Well, this is not a fix because it adds a feature that is not yet
supported. It should be deferred to the next release.

Best regards,
Stefano Babic
Marek Vasut - April 17, 2012, 2:46 p.m.
Dear Stefano Babic,

> On 17/04/2012 13:21, Marek Vasut wrote:
> > Dear Lauri Hintsala,
> > 
> >> NAND support is not enabled by default because Eval Kit is not delivered
> >> with NAND chip. To enable NAND support add CONFIG_CMD_NAND to board
> >> config.
> >> 
> >> Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com>
> > 
> > Acked-by: Marek Vasut <marex@denx.de>
> > 
> > I think we can schedule it for .04 release as this is basically a fix?
> > Fabio ?
> 
> Well, this is not a fix because it adds a feature that is not yet
> supported. It should be deferred to the next release.

Ok, I won't object either way as it doesn't concern me that much ;-)

> 
> Best regards,
> Stefano Babic

Best regards,
Marek Vasut
Fabio Estevam - May 2, 2012, 5:26 p.m.
Hi Stefano,

On Tue, Apr 17, 2012 at 11:30 AM, Stefano Babic <sbabic@denx.de> wrote:

> Well, this is not a fix because it adds a feature that is not yet
> supported. It should be deferred to the next release.

Can this be applied now?
Marek Vasut - May 2, 2012, 5:53 p.m.
Dear Fabio Estevam,

> Hi Stefano,
> 
> On Tue, Apr 17, 2012 at 11:30 AM, Stefano Babic <sbabic@denx.de> wrote:
> > Well, this is not a fix because it adds a feature that is not yet
> > supported. It should be deferred to the next release.
> 
> Can this be applied now?

Should be ...

Best regards,
Marek Vasut
Stefano Babic - May 2, 2012, 8:58 p.m.
Am 02/05/2012 19:26, schrieb Fabio Estevam:
> Hi Stefano,
> 
> On Tue, Apr 17, 2012 at 11:30 AM, Stefano Babic <sbabic@denx.de> wrote:
> 
>> Well, this is not a fix because it adds a feature that is not yet
>> supported. It should be deferred to the next release.
> 
> Can this be applied now?
> 

Yes, I will do it.

Best regards,
Stefano Babic
Stefano Babic - May 6, 2012, 4:42 p.m.
On 17/04/2012 12:35, Lauri Hintsala wrote:
> NAND support is not enabled by default because Eval Kit is not delivered
> with NAND chip. To enable NAND support add CONFIG_CMD_NAND to board config.
> 
> Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com>
> ---

Applied to u-boot-imx, thanks

Best regards,
Stefano Babic

Patch

diff --git a/board/freescale/mx28evk/iomux.c b/board/freescale/mx28evk/iomux.c
index 396761b..6587c45 100644
--- a/board/freescale/mx28evk/iomux.c
+++ b/board/freescale/mx28evk/iomux.c
@@ -26,6 +26,7 @@ 
 #include <asm/arch/sys_proto.h>
 
 #define	MUX_CONFIG_SSP0	(MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP)
+#define	MUX_CONFIG_GPMI	(MXS_PAD_3V3 | MXS_PAD_4MA | MXS_PAD_NOPULL)
 #define	MUX_CONFIG_ENET	(MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP)
 #define	MUX_CONFIG_EMI	(MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_NOPULL)
 #define	MUX_CONFIG_SSP2	(MXS_PAD_3V3 | MXS_PAD_4MA | MXS_PAD_PULLUP)
@@ -55,6 +56,26 @@  const iomux_cfg_t iomux_setup[] = {
 	MX28_PAD_PWM3__GPIO_3_28 |
 		(MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_PULLUP),
 
+#ifdef CONFIG_NAND_MXS
+	/* GPMI NAND */
+	MX28_PAD_GPMI_D00__GPMI_D0 | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_D01__GPMI_D1 | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_D02__GPMI_D2 | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_D03__GPMI_D3 | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_D04__GPMI_D4 | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_D05__GPMI_D5 | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_D06__GPMI_D6 | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_D07__GPMI_D7 | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_CE0N__GPMI_CE0N | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_RDY0__GPMI_READY0 | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_RDN__GPMI_RDN |
+		(MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP),
+	MX28_PAD_GPMI_WRN__GPMI_WRN | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_ALE__GPMI_ALE | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_CLE__GPMI_CLE | MUX_CONFIG_GPMI,
+	MX28_PAD_GPMI_RESETN__GPMI_RESETN | MUX_CONFIG_GPMI,
+#endif
+
 	/* FEC0 */
 	MX28_PAD_ENET0_MDC__ENET0_MDC | MUX_CONFIG_ENET,
 	MX28_PAD_ENET0_MDIO__ENET0_MDIO | MUX_CONFIG_ENET,
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h
index 02f3366..2a44baa 100644
--- a/include/configs/mx28evk.h
+++ b/include/configs/mx28evk.h
@@ -148,6 +148,16 @@ 
 #endif
 
 /*
+ * NAND Driver
+ */
+#ifdef CONFIG_CMD_NAND
+#define CONFIG_NAND_MXS
+#define CONFIG_SYS_MAX_NAND_DEVICE	1
+#define CONFIG_SYS_NAND_BASE		0x60000000
+#define CONFIG_SYS_NAND_5_ADDR_CYCLE
+#endif
+
+/*
  * Ethernet on SOC (FEC)
  */
 #ifdef	CONFIG_CMD_NET