[U-Boot] [PATCH] fsl-lsch3: soc: Enable AHB support flexspi controller
Ashish Kumar
ashish.kumar at nxp.com
Wed Sep 26 06:01:20 UTC 2018
Hello York,
> -----Original Message-----
> From: York Sun
> Sent: Tuesday, September 25, 2018 10:20 PM
> To: Ashish Kumar <ashish.kumar at nxp.com>; u-boot at lists.denx.de
> Cc: Rajat Srivastava <rajat.srivastava at nxp.com>; Yogesh Narayan Gaur
> <yogeshnarayan.gaur at 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 at nxp.com>
> > Signed-off-by: Rajat Srivastava <rajat.srivastava at nxp.com>
> > Signed-off-by: Ashish Kumar <Ashish.Kumar at 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
More information about the U-Boot
mailing list