All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] fsl-lsch3: Add FSPI address space in immap_lsch3
@ 2018-09-25  8:42 Ashish Kumar
  2018-09-25  8:43 ` [U-Boot] [PATCH] fsl-lsch3: soc: Enable AHB support flexspi controller Ashish Kumar
  0 siblings, 1 reply; 4+ messages in thread
From: Ashish Kumar @ 2018-09-25  8:42 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
Signed-off-by: Sriram Dash <sriram.dash@nxp.com>
Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
---

depends upon: 
http://patchwork.ozlabs.org/patch/962357/

 arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
index b0cec74db0..56f2222596 100644
--- a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
+++ b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
@@ -19,7 +19,11 @@
 #define CONFIG_SYS_FSL_CH3_CLK_GRPA_ADDR	(CONFIG_SYS_IMMR + 0x00300000)
 #define CONFIG_SYS_FSL_CH3_CLK_GRPB_ADDR	(CONFIG_SYS_IMMR + 0x00310000)
 #define CONFIG_SYS_FSL_CH3_CLK_CTRL_ADDR	(CONFIG_SYS_IMMR + 0x00370000)
+#ifndef CONFIG_NXP_LSCH3_2
 #define SYS_FSL_QSPI_ADDR			(CONFIG_SYS_IMMR + 0x010c0000)
+#else
+#define SYS_FSL_FSPI_ADDR			(CONFIG_SYS_IMMR + 0x010c0000)
+#endif
 #define CONFIG_SYS_FSL_ESDHC_ADDR		(CONFIG_SYS_IMMR + 0x01140000)
 #define CONFIG_SYS_IFC_ADDR			(CONFIG_SYS_IMMR + 0x01240000)
 #define CONFIG_SYS_NS16550_COM1			(CONFIG_SYS_IMMR + 0x011C0500)
-- 
2.17.1

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

* [U-Boot] [PATCH] fsl-lsch3: soc: Enable AHB support flexspi controller
  2018-09-25  8:42 [U-Boot] [PATCH] fsl-lsch3: Add FSPI address space in immap_lsch3 Ashish Kumar
@ 2018-09-25  8:43 ` Ashish Kumar
  2018-09-25 16:49   ` York Sun
  0 siblings, 1 reply; 4+ messages in thread
From: Ashish Kumar @ 2018-09-25  8:43 UTC (permalink / raw)
  To: u-boot

Enable AHB support for flexspi controller interface meaning
memory can be accessed via md command using absolute addresses

Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
Signed-off-by: Rajat Srivastava <rajat.srivastava@nxp.com>
Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
---
 arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 10 ++++++
 arch/arm/cpu/armv8/fsl-layerscape/soc.c   | 42 +++++++++++++++++++++++
 2 files changed, 52 insertions(+)

diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
index 5280d33ec8..8d66783b7c 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
+++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
@@ -327,6 +327,16 @@ config SYS_FSPI_AHB_INIT
 	  performed. Default LUT programmed in AHB mode is Fast Read command
 	  with 4-byte addressing enabled.
 
+config FSPI_AHB_EN_4BYTE
+	bool "Enable 4-byte Fast Read cmd for AHB mode"
+	depends on NXP_FSPI
+	default n
+	help
+	  The default setting for FSPI AHB bus just supports 3-byte addressing.
+	  But some FSPI flash sizes are up to 64MBytes.
+	  This flag enables fast read cmd for AHB mode and modifies required
+	  LUT to support full FSPI flash.
+
 config SYS_CCI400_OFFSET
 	hex "Offset for CCI400 base"
 	depends on SYS_FSL_HAS_CCI400
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/soc.c b/arch/arm/cpu/armv8/fsl-layerscape/soc.c
index 3f15cb08ff..60beb0dc96 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/soc.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/soc.c
@@ -640,6 +640,45 @@ void fsl_lsch2_early_init_f(void)
 }
 #endif
 
+#ifdef CONFIG_FSPI_AHB_EN_4BYTE
+int fspi_ahb_init(void)
+{
+	/* Enable 4bytes address support and fast read */
+	u32 *fspi_lut, lut_key, *fspi_key;
+
+	fspi_key = (void *)SYS_FSL_FSPI_ADDR + 0x18;
+	fspi_lut = (void *)SYS_FSL_FSPI_ADDR + 0x200;
+
+	lut_key = in_be32(fspi_key);
+
+	if (lut_key == 0x5af05af0) {
+		/* That means the register is BE */
+		out_be32(fspi_key, 0x5af05af0);
+		/* Unlock the lut table */
+		out_be32(fspi_key + 1, 0x00000002);
+		out_be32(fspi_lut, 0x0820040c);
+		out_be32(fspi_lut + 1, 0x24003008);
+		out_be32(fspi_lut + 2, 0x00000000);
+		/* Lock the lut table */
+		out_be32(fspi_key, 0x5af05af0);
+		out_be32(fspi_key + 1, 0x00000001);
+	} else {
+		/* That means the register is LE */
+		out_le32(fspi_key, 0x5af05af0);
+		/* Unlock the lut table */
+		out_le32(fspi_key + 1, 0x00000002);
+		out_le32(fspi_lut, 0x0820040c);
+		out_le32(fspi_lut + 1, 0x24003008);
+		out_le32(fspi_lut + 2, 0x00000000);
+		/* Lock the lut table */
+		out_le32(fspi_key, 0x5af05af0);
+		out_le32(fspi_key + 1, 0x00000001);
+	}
+
+	return 0;
+}
+#endif
+
 #ifdef CONFIG_QSPI_AHB_INIT
 /* Enable 4bytes address support and fast read */
 int qspi_ahb_init(void)
@@ -688,6 +727,9 @@ int board_late_init(void)
 #ifdef CONFIG_QSPI_AHB_INIT
 	qspi_ahb_init();
 #endif
+#ifdef CONFIG_FSPI_AHB_EN_4BYTE
+	fspi_ahb_init();
+#endif
 
 	return 0;
 }
-- 
2.17.1

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

* [U-Boot] [PATCH] fsl-lsch3: soc: Enable AHB support flexspi controller
  2018-09-25  8:43 ` [U-Boot] [PATCH] fsl-lsch3: soc: Enable AHB support flexspi controller Ashish Kumar
@ 2018-09-25 16:49   ` York Sun
  2018-09-26  6:01     ` Ashish Kumar
  0 siblings, 1 reply; 4+ messages in thread
From: York Sun @ 2018-09-25 16:49 UTC (permalink / raw)
  To: u-boot

On 09/25/2018 01:44 AM, Ashish Kumar wrote:
> Enable AHB support for flexspi controller interface meaning
> memory can be accessed via md command using absolute addresses
> 
> Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
> Signed-off-by: Rajat Srivastava <rajat.srivastava@nxp.com>
> Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
> ---
>  arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 10 ++++++
>  arch/arm/cpu/armv8/fsl-layerscape/soc.c   | 42 +++++++++++++++++++++++
>  2 files changed, 52 insertions(+)
> 
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> index 5280d33ec8..8d66783b7c 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> @@ -327,6 +327,16 @@ config SYS_FSPI_AHB_INIT
>  	  performed. Default LUT programmed in AHB mode is Fast Read command
>  	  with 4-byte addressing enabled.
>  
> +config FSPI_AHB_EN_4BYTE
> +	bool "Enable 4-byte Fast Read cmd for AHB mode"

s/cmd/command

> +	depends on NXP_FSPI
> +	default n
> +	help
> +	  The default setting for FSPI AHB bus just supports 3-byte addressing.
> +	  But some FSPI flash sizes are up to 64MBytes.
> +	  This flag enables fast read cmd for AHB mode and modifies required
> +	  LUT to support full FSPI flash.
> +

It is FlexSPI, not FSPI, nor flexspi. Please use consistent term for
FlexSPI in subject, commit message, document and comment. If you have to
use FSPI in macro names, make sure it it has clear meaning.

>  config SYS_CCI400_OFFSET
>  	hex "Offset for CCI400 base"
>  	depends on SYS_FSL_HAS_CCI400
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/soc.c b/arch/arm/cpu/armv8/fsl-layerscape/soc.c
> index 3f15cb08ff..60beb0dc96 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/soc.c
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/soc.c
> @@ -640,6 +640,45 @@ void fsl_lsch2_early_init_f(void)
>  }
>  #endif
>  
> +#ifdef CONFIG_FSPI_AHB_EN_4BYTE
> +int fspi_ahb_init(void)
> +{
> +	/* Enable 4bytes address support and fast read */
> +	u32 *fspi_lut, lut_key, *fspi_key;
> +
> +	fspi_key = (void *)SYS_FSL_FSPI_ADDR + 0x18;
> +	fspi_lut = (void *)SYS_FSL_FSPI_ADDR + 0x200;
> +
> +	lut_key = in_be32(fspi_key);
> +
> +	if (lut_key == 0x5af05af0) {
> +		/* That means the register is BE */
> +		out_be32(fspi_key, 0x5af05af0);
> +		/* Unlock the lut table */
> +		out_be32(fspi_key + 1, 0x00000002);
> +		out_be32(fspi_lut, 0x0820040c);
> +		out_be32(fspi_lut + 1, 0x24003008);
> +		out_be32(fspi_lut + 2, 0x00000000);
> +		/* Lock the lut table */
> +		out_be32(fspi_key, 0x5af05af0);
> +		out_be32(fspi_key + 1, 0x00000001);
> +	} else {
> +		/* That means the register is LE */
> +		out_le32(fspi_key, 0x5af05af0);
> +		/* Unlock the lut table */
> +		out_le32(fspi_key + 1, 0x00000002);
> +		out_le32(fspi_lut, 0x0820040c);
> +		out_le32(fspi_lut + 1, 0x24003008);
> +		out_le32(fspi_lut + 2, 0x00000000);
> +		/* Lock the lut table */
> +		out_le32(fspi_key, 0x5af05af0);
> +		out_le32(fspi_key + 1, 0x00000001);

Is there anyway you can make the magic numbers more meaningful?

York

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

* [U-Boot] [PATCH] fsl-lsch3: soc: Enable AHB support flexspi controller
  2018-09-25 16:49   ` York Sun
@ 2018-09-26  6:01     ` Ashish Kumar
  0 siblings, 0 replies; 4+ messages in thread
From: Ashish Kumar @ 2018-09-26  6:01 UTC (permalink / raw)
  To: u-boot

Hello York,

> -----Original Message-----
> From: York Sun
> Sent: Tuesday, September 25, 2018 10:20 PM
> To: Ashish Kumar <ashish.kumar@nxp.com>; u-boot at lists.denx.de
> Cc: Rajat Srivastava <rajat.srivastava@nxp.com>; Yogesh Narayan Gaur
> <yogeshnarayan.gaur@nxp.com>
> Subject: Re: [PATCH] fsl-lsch3: soc: Enable AHB support flexspi controller
> 
> On 09/25/2018 01:44 AM, Ashish Kumar wrote:
> > Enable AHB support for flexspi controller interface meaning memory can
> > be accessed via md command using absolute addresses
> >
> > Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
> > Signed-off-by: Rajat Srivastava <rajat.srivastava@nxp.com>
> > Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
> > ---
> >  arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 10 ++++++
> >  arch/arm/cpu/armv8/fsl-layerscape/soc.c   | 42 +++++++++++++++++++++++
> >  2 files changed, 52 insertions(+)
> >
> > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> > b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> > index 5280d33ec8..8d66783b7c 100644
> > --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> > +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> > @@ -327,6 +327,16 @@ config SYS_FSPI_AHB_INIT
> >  	  performed. Default LUT programmed in AHB mode is Fast Read
> command
> >  	  with 4-byte addressing enabled.
> >
> > +config FSPI_AHB_EN_4BYTE
> > +	bool "Enable 4-byte Fast Read cmd for AHB mode"
> 
> s/cmd/command
While take care in v2
> 
> > +	depends on NXP_FSPI
> > +	default n
> > +	help
> > +	  The default setting for FSPI AHB bus just supports 3-byte addressing.
> > +	  But some FSPI flash sizes are up to 64MBytes.
> > +	  This flag enables fast read cmd for AHB mode and modifies required
> > +	  LUT to support full FSPI flash.
> > +
> 
> It is FlexSPI, not FSPI, nor flexspi. Please use consistent term for FlexSPI in
> subject, commit message, document and comment. If you have to use FSPI in
> macro names, make sure it it has clear meaning.
In description and comment it will be replaced by FlexSPI, but in macro/config/variables names can I use FSPI and fspi ?

> 
> >  config SYS_CCI400_OFFSET
> >  	hex "Offset for CCI400 base"
> >  	depends on SYS_FSL_HAS_CCI400
> > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/soc.c
> > b/arch/arm/cpu/armv8/fsl-layerscape/soc.c
> > index 3f15cb08ff..60beb0dc96 100644
> > --- a/arch/arm/cpu/armv8/fsl-layerscape/soc.c
> > +++ b/arch/arm/cpu/armv8/fsl-layerscape/soc.c
> > @@ -640,6 +640,45 @@ void fsl_lsch2_early_init_f(void)  }  #endif
> >
> > +#ifdef CONFIG_FSPI_AHB_EN_4BYTE
> > +int fspi_ahb_init(void)
> > +{
> > +	/* Enable 4bytes address support and fast read */
> > +	u32 *fspi_lut, lut_key, *fspi_key;
> > +
> > +	fspi_key = (void *)SYS_FSL_FSPI_ADDR + 0x18;
> > +	fspi_lut = (void *)SYS_FSL_FSPI_ADDR + 0x200;
> > +
> > +	lut_key = in_be32(fspi_key);
> > +
> > +	if (lut_key == 0x5af05af0) {
> > +		/* That means the register is BE */
> > +		out_be32(fspi_key, 0x5af05af0);
> > +		/* Unlock the lut table */
> > +		out_be32(fspi_key + 1, 0x00000002);
> > +		out_be32(fspi_lut, 0x0820040c);
> > +		out_be32(fspi_lut + 1, 0x24003008);
> > +		out_be32(fspi_lut + 2, 0x00000000);
> > +		/* Lock the lut table */
> > +		out_be32(fspi_key, 0x5af05af0);
> > +		out_be32(fspi_key + 1, 0x00000001);
> > +	} else {
> > +		/* That means the register is LE */
> > +		out_le32(fspi_key, 0x5af05af0);
> > +		/* Unlock the lut table */
> > +		out_le32(fspi_key + 1, 0x00000002);
> > +		out_le32(fspi_lut, 0x0820040c);
> > +		out_le32(fspi_lut + 1, 0x24003008);
> > +		out_le32(fspi_lut + 2, 0x00000000);
> > +		/* Lock the lut table */
> > +		out_le32(fspi_key, 0x5af05af0);
> > +		out_le32(fspi_key + 1, 0x00000001);
> 
> Is there anyway you can make the magic numbers more meaningful?
How about adding comments above each magic number, explaining meaning?

Regards
Ashish
> 
> York

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

end of thread, other threads:[~2018-09-26  6:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-25  8:42 [U-Boot] [PATCH] fsl-lsch3: Add FSPI address space in immap_lsch3 Ashish Kumar
2018-09-25  8:43 ` [U-Boot] [PATCH] fsl-lsch3: soc: Enable AHB support flexspi controller Ashish Kumar
2018-09-25 16:49   ` York Sun
2018-09-26  6:01     ` Ashish Kumar

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.