From: Paul Kocialkowski <contact@paulk.fr>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] omap3: ARM Cortex-A8 errata workarounds config option
Date: Sun, 22 Feb 2015 16:45:12 +0100 [thread overview]
Message-ID: <1424619912.2452.14.camel@collins> (raw)
In-Reply-To: <54E9C64F.1010303@compulab.co.il>
> > Workarounds applied in omap3_setup_aux_cr are only necessary for ARM core
> > revisions prior to r3p2 (such as OMAP35xx but apparently not OMAP36xx and
> > DM37xx)
>
> If this is true, I can see some (potential) problems with the patch.
> Please, check out my thoughts on this below.
In any case, those workarounds were already enabled before, so it won't
cause any regression. As it is now, the patch doesn't change anything,
it just opens up the possibility of not using
CONFIG_SYS_ARM_CORTEXA8_ERRATA for a board that doesn't need the
workarounds and has them disabled in the kernel.
> > and require similar workarounds in the kernel, or it will cause numerous
> > segmentation faults. This allows (when the option is not used) properly booting
> > kernels that do not include the workaround.
> >
> > Follow-up to the discussion from July 2013:
> > http://lists.denx.de/pipermail/u-boot/2013-July/158377.html
> >
> > Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
> > ---
> > README | 8 ++++++++
> > arch/arm/cpu/armv7/omap3/board.c | 2 ++
> > include/configs/am3517_crane.h | 2 ++
> > include/configs/am3517_evm.h | 2 ++
> > include/configs/cm_t35.h | 2 ++
> > include/configs/cm_t3517.h | 2 ++
> > include/configs/dig297.h | 2 ++
> > include/configs/mcx.h | 2 ++
> > include/configs/nokia_rx51.h | 2 ++
> > include/configs/omap3_evm_common.h | 2 ++
> > include/configs/omap3_logic.h | 2 ++
> > include/configs/omap3_mvblx.h | 2 ++
> > include/configs/omap3_pandora.h | 2 ++
> > include/configs/omap3_sdp3430.h | 2 ++
> > include/configs/omap3_zoom1.h | 2 ++
> > include/configs/tam3517-common.h | 2 ++
> > include/configs/tao3530.h | 2 ++
> > include/configs/ti_omap3_common.h | 2 ++
> > include/configs/tricorder.h | 2 ++
> > 19 files changed, 44 insertions(+)
> >
> > diff --git a/README b/README
> > index ba57dc5..a39420d 100644
> > --- a/README
> > +++ b/README
> > @@ -621,6 +621,14 @@ The following options need to be configured:
> > exists, unlike the similar options in the Linux kernel. Do not
> > set these options unless they apply!
> >
> > + CONFIG_SYS_ARM_CORTEXA8_ERRATA
> > +
> > + Enables workarounds for ARM Cortex-A8 errata 454179, 430973
> > + and 621766. This is only necessary for ARM core revisions prior
> > + to r3p2. Enabling those workarounds requires to enable the same
> > + workarounds in the kernel, or it will cause multiple
> > + segmentation faults. This is currently only effective on OMAP3.
> > +
> > - Driver Model
> > Driver model is a new framework for devices in U-Boot
> > introduced in early 2014. U-Boot is being progressively
> > diff --git a/arch/arm/cpu/armv7/omap3/board.c b/arch/arm/cpu/armv7/omap3/board.c
> > index 90d6ae7..813f35b 100644
> > --- a/arch/arm/cpu/armv7/omap3/board.c
> > +++ b/arch/arm/cpu/armv7/omap3/board.c
> > @@ -246,8 +246,10 @@ void s_init(void)
> >
> > try_unlock_memory();
> >
> > +#ifdef CONFIG_SYS_ARM_CORTEXA8_ERRATA
> > /* Errata workarounds */
> > omap3_setup_aux_cr();
>
> Can we have the revision dynamically checked instead of/along with
> introducing a config option?
> We have boards, OMAP3 based, which are supported by the same board file
> and the same config file, see below.
After carefully looking at it, I think dynamically checking the revision
might be the cleanest way to do this.
I was afraid that, in the case where the workarounds are disabled in
u-boot but enabled in Linux, the same various segmentation faults would
happen, but they apparently don't, as I just tested.
Thus, checking the revision should work best. According to the code in
Linux, this only affects r1p* ARM core revisions, so that's what I'll be
checking against.
Thanks for your comments!
> > +#endif
> >
> > #ifndef CONFIG_SYS_L2CACHE_OFF
> > /* Invalidate L2-cache from secure mode */
>
> [...]
>
> > diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h
> > index b2a9f35..150b419 100644
> > --- a/include/configs/cm_t35.h
> > +++ b/include/configs/cm_t35.h
> > @@ -38,6 +38,8 @@
> > #define CONFIG_DISPLAY_CPUINFO
> > #define CONFIG_DISPLAY_BOARDINFO
> >
> > +#define CONFIG_SYS_ARM_CORTEXA8_ERRATA
>
> This config file is used for both cm-t35 and cm-t3730.
> cm-t35 has OMAP3530, but cm-t3730 has DM3730.
> The same U-Boot binary is used for both boards.
>
> > +
> > /* Clock Defines */
> > #define V_OSCK 26000000 /* Clock output from T2 */
> > #define V_SCLK (V_OSCK >> 1)
>
> [...]
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150222/4a3247fc/attachment.sig>
next prev parent reply other threads:[~2015-02-22 15:45 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-22 11:36 [U-Boot] [PATCH] omap3: ARM Cortex-A8 errata workarounds config option Paul Kocialkowski
2015-02-22 12:06 ` Igor Grinberg
2015-02-22 15:45 ` Paul Kocialkowski [this message]
2015-02-22 15:55 ` Paul Kocialkowski
2015-02-22 16:02 ` Paul Kocialkowski
2015-02-22 16:42 ` [U-Boot] [PATCH v2] omap3: Variant and revision checks for ARM Cortex-A8 errata workarounds Paul Kocialkowski
2015-02-23 11:09 ` Igor Grinberg
2015-02-23 15:07 ` Paul Kocialkowski
2015-02-23 19:16 ` [U-Boot] [PATCH] " Paul Kocialkowski
2015-02-23 22:21 ` Tom Rini
2015-02-23 22:43 ` Nishanth Menon
2015-02-24 12:02 ` Paul Kocialkowski
2015-02-24 15:22 ` Nishanth Menon
2015-02-24 16:09 ` Paul Kocialkowski
2015-02-24 23:02 ` Nishanth Menon
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=1424619912.2452.14.camel@collins \
--to=contact@paulk.fr \
--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