[U-Boot] [PATCH 1/3] armv7/fsl-ls102xa: Workaround for DDR erratum A008514
Yao Yuan
yao.yuan at freescale.com
Mon Aug 17 04:37:40 CEST 2015
Hi Sinan,
Thanks for your review.
Please see my comments.
Best Regards,
Yuan Yao
> -----Original Message-----
> From: Sinan Akman [mailto:sinan at writeme.com]
> Sent: Saturday, August 15, 2015 12:28 AM
> To: Yuan Yao-B46683; Sun York-R58495; Wang Huan-B18965
> Cc: u-boot at lists.denx.de
> Subject: Re: [U-Boot] [PATCH 1/3] armv7/fsl-ls102xa: Workaround for DDR
> erratum A008514
>
>
> Hi Yuan
>
> On 14/08/15 02:54 AM, Yuan Yao wrote:
> > Affects: DDR
> > Description: Memory controller performance is not optimal with default
> > internal target queue register values.
> > Impact: Memory controller performance is not optimal.
> > Workaround: Write a value of 63b2_0002h to address: 157_020Ch.
> >
> > Signed-off-by: Yuan Yao <yao.yuan at freescale.com>
> > ---
> > arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h | 2 +-
> > board/freescale/ls1021aqds/ls1021aqds.c | 10 ++++++++++
> > board/freescale/ls1021atwr/ls1021atwr.c | 10 ++++++++++
> > 3 files changed, 21 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
> > b/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
> > index d34044a..21bd65b 100644
> > --- a/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
> > +++ b/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
> > @@ -221,7 +221,7 @@ struct ccsr_scfg {
> > u32 scfgrevcr;
> > u32 coresrencr;
> > u32 pex2pmrdsr;
> > - u32 ddrc1cr;
> > + u32 eddrtqcfg;
>
> Is this a simple name change on the register, that ddrc1cr is not needed/used
> anywhere else ?
[Yuan Yao]
Yes, there is no ddrc1cr in ls102xa, the register on 0x157020c is named eddrtqcfg.
> > u32 ddrc2cr;
> > u32 ddrc3cr;
> > u32 ddrc4cr;
> > diff --git a/board/freescale/ls1021aqds/ls1021aqds.c
> > b/board/freescale/ls1021aqds/ls1021aqds.c
> > index d6ef6ba..52bffc8 100644
> > --- a/board/freescale/ls1021aqds/ls1021aqds.c
> > +++ b/board/freescale/ls1021aqds/ls1021aqds.c
> > @@ -299,6 +299,16 @@ int board_early_init_f(void)
> > out_be32(&scfg->endiancr, SCFG_ENDIANCR_LE);
> >
> > /*
> > + * Memory controller require a register write before being enabled.
> > + * Affects: DDR
> > + * Register: EDDRTQCFG
> > + * Description: Memory controller performance is not optimal with
> > + * default internal target queue register values.
> > + * Workaround: Write a value of 63b2_0002h to address: 157_020Ch.
> > + */
> > + out_be32(&scfg->eddrtqcfg, 0x63b20002);
>
> Can you perhaps bring the comment from your 2/3 patch that explains
> EDDRTQCFG Registers are so that the reader sees it before its first usage.
>
> Also, is it possible to explain here what that magic value 0x63b20002
> corresponds to and perhaps use a #define that explains its function ?
[Yuan Yao]
Sorry for here, I also don't sure what's the means of the magic value about 0x63b20002.
Also I'm not suggest to use the #define. Because the 0x63b20002 is just a silicon erratum workaround.
I just get the information for the document for silicon erratum. There is no more information for software.
The register eddrtqcfg is a reserve register for software. It should not open for developer as silicon team said.
> > +
> > + /*
> > * Enable snoop requests and DVM message requests for
> > * Slave insterface S4 (A7 core cluster)
> > */
> > diff --git a/board/freescale/ls1021atwr/ls1021atwr.c
> > b/board/freescale/ls1021atwr/ls1021atwr.c
> > index b7458a9..c565e91 100644
> > --- a/board/freescale/ls1021atwr/ls1021atwr.c
> > +++ b/board/freescale/ls1021atwr/ls1021atwr.c
> > @@ -501,6 +501,16 @@ int board_early_init_f(void)
> > out_be32(&scfg->endiancr, SCFG_ENDIANCR_LE);
> >
> > /*
> > + * Memory controller require a register write before being enabled.
> > + * Affects: DDR
> > + * Register: EDDRTQCFG
> > + * Description: Memory controller performance is not optimal with
> > + * default internal target queue register values.
> > + * Workaround: Write a value of 63b2_0002h to address: 157_020Ch.
> > + */
> > + out_be32(&scfg->eddrtqcfg, 0x63b20002);
>
> Same here.
[Yuan Yao]
The same here.
> > +
> > + /*
> > * Enable snoop requests and DVM message requests for
> > * Slave insterface S4 (A7 core cluster)
> > */
> >
>
> Regards
> Sinan Akman
More information about the U-Boot
mailing list