public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Chin Liang See <clsee@altera.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] arm: socfpga: Actually enable L2 cache
Date: Mon, 21 Dec 2015 17:50:50 +0800	[thread overview]
Message-ID: <1450691450.2552.5.camel@altera.com> (raw)
In-Reply-To: <201512200357.29082.marex@denx.de>

On Sun, 2015-12-20 at 03:57 +0100, Marek Vasut wrote:
> On Sunday, December 20, 2015 at 03:38:54 AM, Stefan Roese wrote:
> > On 19.12.2015 17:31, Marek Vasut wrote:
> > > On Saturday, December 19, 2015 at 11:03:45 AM, Stefan Roese
> > > wrote:
> > > > On 19.12.2015 06:58, Marek Vasut wrote:
> > > > > The L2 cache was never enabled in the
> > > > > v7_outer_cache_enable(), fix
> > > > > this and enable the L2 cache.
> > > > > 
> > > > > Signed-off-by: Marek Vasut <marex@denx.de>
> > > > > Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> > > > > Cc: Chin Liang See <clsee@altera.com>
> > > > > ---
> > > > > 
> > > > >    arch/arm/mach-socfpga/misc.c | 7 +++++--
> > > > >    1 file changed, 5 insertions(+), 2 deletions(-)
> > > > > 
> > > > > diff --git a/arch/arm/mach-socfpga/misc.c
> > > > > b/arch/arm/mach-socfpga/misc.c index b110f5b..621f5d9 100644
> > > > > --- a/arch/arm/mach-socfpga/misc.c
> > > > > +++ b/arch/arm/mach-socfpga/misc.c
> > > > > @@ -54,14 +54,17 @@ void enable_caches(void)
> > > > > 
> > > > >    void v7_outer_cache_enable(void)
> > > > >    {
> > > > > 
> > > > > -	/* disable the L2 cache */
> > > > > -	writel(0, &pl310->pl310_ctrl);
> > > > > +	/* Disable the L2 cache */
> > > > > +	clrbits_le32(&pl310->pl310_ctrl, L2X0_CTRL_EN);
> > > > > 
> > > > >    	/* enable BRESP, instruction and data prefetch,
> > > > > full line of 
> zeroes
> > > > >    	*/ setbits_le32(&pl310->pl310_aux_ctrl,
> > > > >    	
> > > > >    		     L310_AUX_CTRL_DATA_PREFETCH_MASK |
> > > > >    		     L310_AUX_CTRL_INST_PREFETCH_MASK |
> > > > >    		     L310_SHARED_ATT_OVERRIDE_ENABLE);
> > > > > 
> > > > > +
> > > > > +	/* Enable the L2 cache */
> > > > > +	setbits_le32(&pl310->pl310_ctrl, L2X0_CTRL_EN);
> > > > 
> > > > Thanks Marek. I would be interested in some number here. Do you
> > > > see
> > > > a bigger change in the performance (ethernet driver or
> > > > dhrystone)
> > > > by enabling the L2 cache?
> > > 
> > > Neither, but I didn't see any improvement on MX6 when I enabled
> > > L2
> > > either.
> > 
> > Then my feeling is, that some other configuration is needed to
> > effectively enable the L2 cache on those platforms. Sorry, but
> > I have no clear suggestions right now. Other than to look at
> > Linux for the L2 cache enabling.
> 
> The L2 cache is enabled, but the slowdown is not induced by the L2
> cache.
> The L2 cache has no performance impact on other platforms either. Did
> you
> observe actual performance improvement with L2 cache ON anywhere ?
> 

Hmmm, here is the function for L2 cache within my development branch.
Some of the latency tuning helps based on the benchmark result.
Probably you can give it a try, Marek?

void v7_outer_cache_enable(void)
{
	/* disable the L2 cache */
	writel(0, &pl310_regs_base->pl310_ctrl);
 
	/* enable BRESP, instruction and data prefetch, full line of
zeroes */
	setbits_le32(&pl310_regs_base->pl310_aux_ctrl,
			PL310_AUX_CTRL_FULL_LINE_ZERO_MASK |
			PL310_AUX_CTRL_DATA_PREFETCH_MASK |
			PL310_AUX_CTRL_INST_PREFETCH_MASK |
			PL310_AUX_CTRL_EARLY_BRESP_MASK);
 
	/* setup tag ram latency */
	writel(0, &pl310_regs_base->pl310_tag_latency_ctrl);
 
	/* setup data ram latency */
	writel(0x10, &pl310_regs_base->pl310_data_latency_ctrl);
 
	/* invalidate the cache before enable */
	v7_outer_cache_inval_all();
 
	/* enable the L2 cache */
	writel(0x1, &pl310_regs_base->pl310_ctrl);
}

Thanks
Chin Liang

> Best regards,
> Marek Vasut

  reply	other threads:[~2015-12-21  9:50 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-19  5:58 [U-Boot] [PATCH] arm: socfpga: Actually enable L2 cache Marek Vasut
2015-12-19 10:03 ` Stefan Roese
2015-12-19 10:39   ` Stefan Roese
2015-12-19 16:32     ` Marek Vasut
2015-12-20  2:39       ` Stefan Roese
2015-12-20  2:56         ` Marek Vasut
2015-12-19 16:31   ` Marek Vasut
2015-12-20  2:38     ` Stefan Roese
2015-12-20  2:57       ` Marek Vasut
2015-12-21  9:50         ` Chin Liang See [this message]
2015-12-21 10:09           ` Marek Vasut
2015-12-21 12:25             ` Chin Liang See
2015-12-21 14:19               ` Marek Vasut
2015-12-21 14:37                 ` Chin Liang See
2015-12-21 14:39                   ` Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1450691450.2552.5.camel@altera.com \
    --to=clsee@altera.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox