All of lore.kernel.org
 help / color / mirror / Atom feed
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 04/11] Exynos542x: Add workaround for ARM errata 799270
Date: Wed, 18 Feb 2015 13:12:47 +0200	[thread overview]
Message-ID: <20150218131247.1e259373@i7> (raw)
In-Reply-To: <1424252795-12959-5-git-send-email-akshay.s@samsung.com>

On Wed, 18 Feb 2015 15:16:28 +0530
Akshay Saraswat <akshay.s@samsung.com> wrote:

> This patch adds workaround for the ARM errata 799270 which says
> "If the L2 cache logic clock is stopped because of L2 inactivity,
> setting or clearing the ACTLR.SMP bit might not be effective. The bit is
> modified in the ACTLR, meaning a read of the register returns the
> updated value. However the logic that uses that bit retains the previous
> value."
> 
> Signed-off-by: Kimoon Kim <kimoon.kim@samsung.com>
> Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Tested-by: Simon Glass <sjg@chromium.org>
> ---
> Changes since v2:
> 	- No change.
> 
> Changes since v1:
> 	- Added Reviewed-by & Tested-by.
> 
>  arch/arm/cpu/armv7/exynos/lowlevel_init.c | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/arch/arm/cpu/armv7/exynos/lowlevel_init.c b/arch/arm/cpu/armv7/exynos/lowlevel_init.c
> index 7335a1e..bbcae4c 100644
> --- a/arch/arm/cpu/armv7/exynos/lowlevel_init.c
> +++ b/arch/arm/cpu/armv7/exynos/lowlevel_init.c
> @@ -46,6 +46,28 @@ enum {
>  
>  #ifdef CONFIG_EXYNOS5420
>  /*
> + * Ensure that the L2 logic has been used within the previous 256 cycles
> + * before modifying the ACTLR.SMP bit. This is required during boot before
> + * MMU has been enabled, or during a specified reset or power down sequence.
> + */
> +void enable_smp(void)
> +{
> +	uint32_t temp, val;
> +
> +	/* Enable SMP mode */
> +	mrc_auxr(temp);
> +	temp |= (1 << 6);
> +
> +	/* Dummy read to assure L2 access */
> +	val = readl(EXYNOS5420_INFORM_BASE);
> +	val &= 0;
> +	temp |= val;

Wouldn't the compiler happily optimize out some parts of this code?

> +	mcr_auxr(temp);
> +	dsb();
> +	isb();
> +}

This looks like a general purpose ARM Cortex-A15 workaround too. Except
that the EXYNOS5420_INFORM_BASE address is Exynos specific.

-- 
Best regards,
Siarhei Siamashka

  reply	other threads:[~2015-02-18 11:12 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-18  9:46 [U-Boot] [PATCH v3 00/11] Add support for booting multiple cores Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 01/11] Exynos542x: Config: Add various configs Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 02/11] Exynos542x: CPU: Power down all secondary cores Akshay Saraswat
2015-02-18 11:14   ` Lukasz Majewski
2015-02-18  9:46 ` [U-Boot] [PATCH v3 03/11] Exynos542x: Add workaround for ARM errata 798870 Akshay Saraswat
2015-02-18 10:59   ` Siarhei Siamashka
2015-02-18  9:46 ` [U-Boot] [PATCH v3 04/11] Exynos542x: Add workaround for ARM errata 799270 Akshay Saraswat
2015-02-18 11:12   ` Siarhei Siamashka [this message]
2015-02-18  9:46 ` [U-Boot] [PATCH v3 05/11] Exynos542x: Add workaround for exynos iROM errata Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 06/11] Exynos542x: Change ambiguous function name set_l2cache Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 07/11] Exynos542x: cache: Disable clean/evict push to external Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 08/11] Exynos542x: add L2 control register configuration Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 09/11] Exynos542x: Fix secondary core booting for thumb Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 10/11] Exynos542x: Make A7s boot with thumb-mode U-Boot on warm reset Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 11/11] Exynos: Fix L2 cache timings on Exynos5420 and Exynos5800 Akshay Saraswat

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=20150218131247.1e259373@i7 \
    --to=siarhei.siamashka@gmail.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 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.