[U-Boot] [PATCH V2 8/9] configs: ti_omap3_common: Enable workaround for ARM errata 454179, 430973, 621766

Paul Kocialkowski contact at paulk.fr
Wed Feb 25 22:23:35 CET 2015


Le mercredi 25 février 2015 à 08:32 -0600, menon.nishanth at gmail.com a
écrit :
> On Wed, Feb 25, 2015 at 6:27 AM, Paul Kocialkowski <contact at paulk.fr> wrote:
> > Le mercredi 25 février 2015 à 13:31 +0200, Igor Grinberg a écrit :
> >> On 02/25/15 13:19, Paul Kocialkowski wrote:
> >> > Le mardi 24 février 2015 à 16:57 -0600, Nishanth Menon a écrit :
> >> >> Enable the OMAP3 specific errata code for 454179, 430973, 621766
> >> >> and while at it, remove legacy non-revision checked errata logic.
> >> >>
> >> >> Signed-off-by: Nishanth Menon <nm at ti.com>
> >> >> ---
> >> >>  arch/arm/cpu/armv7/omap3/board.c  |   16 ----------------
> >> >>  include/configs/ti_omap3_common.h |    6 ++++++
> >> >>  2 files changed, 6 insertions(+), 16 deletions(-)
> >> >>
> >> >> diff --git a/arch/arm/cpu/armv7/omap3/board.c b/arch/arm/cpu/armv7/omap3/board.c
> >> >> index 7ce30949a6c6..cc3a43341335 100644
> >> >> --- a/arch/arm/cpu/armv7/omap3/board.c
> >> >> +++ b/arch/arm/cpu/armv7/omap3/board.c
> >> >> @@ -35,7 +35,6 @@ DECLARE_GLOBAL_DATA_PTR;
> >> >>
> >> >>  /* Declarations */
> >> >>  extern omap3_sysinfo sysinfo;
> >> >> -static void omap3_setup_aux_cr(void);
> >> >>  #ifndef CONFIG_SYS_L2CACHE_OFF
> >> >>  static void omap3_invalidate_l2_cache_secure(void);
> >> >>  #endif
> >> >> @@ -246,9 +245,6 @@ void s_init(void)
> >> >>
> >> >>    try_unlock_memory();
> >> >>
> >> >> -  /* Errata workarounds */
> >> >> -  omap3_setup_aux_cr();
> >> >> -
> >> >>  #ifndef CONFIG_SYS_L2CACHE_OFF
> >> >>    /* Invalidate L2-cache from secure mode */
> >> >>    omap3_invalidate_l2_cache_secure();
> >> >> @@ -428,18 +424,6 @@ void omap3_update_aux_cr_secure(u32 set_bits, u32 clear_bits)
> >> >>    }
> >> >>  }
> >> >>
> >> >> -static void omap3_setup_aux_cr(void)
> >> >> -{
> >> >> -  /* Workaround for Cortex-A8 errata: #454179 #430973
> >> >> -   *      Set "IBE" bit
> >> >> -   *      Set "Disable Branch Size Mispredicts" bit
> >> >> -   * Workaround for erratum #621766
> >> >> -   *      Enable L1NEON bit
> >> >> -   * ACR |= (IBE | DBSM | L1NEON) => ACR |= 0xE0
> >> >> -   */
> >> >> -  omap3_update_aux_cr_secure(0xE0, 0);
> >> >> -}
> >> >> -
> >> >>  #ifndef CONFIG_SYS_L2CACHE_OFF
> >> >>  static void omap3_update_aux_cr(u32 set_bits, u32 clear_bits)
> >> >>  {
> >> >> diff --git a/include/configs/ti_omap3_common.h b/include/configs/ti_omap3_common.h
> >> >> index f909f6b94a18..db15c12ddf53 100644
> >> >> --- a/include/configs/ti_omap3_common.h
> >> >> +++ b/include/configs/ti_omap3_common.h
> >> >
> >> > Only a couple of OMAP3 boards in U-Boot include ti_omap3_common.h. You
> >> > can find a complete list of all the configs that need those options
> >> > enabled from my first patch on that topic:
> >> > http://lists.denx.de/pipermail/u-boot/2015-February/205809.html
> >> >
> >> > I guess it's better to enable those on all the currently-supported omap3
> >> > platforms: that's the way it was so far and it won't hurt in cases it's
> >> > not needed thanks to the revision detection.
> >>
> >> Or...
> >> I think this patch might be a good enough argument to request people
> >> switch to include ti_omap3_common.h instead of duplicating it in
> >> private configs...
> >>
> >> Don't you think?
> >
> > The way I see it, ti_omap3_common.h is common for OMAP3 boards made by
> > TI. A few things there are not generic to omap3 in general (e.g. not
> > every board uses the U-Boot SPL, or UART3 for console).
> >
> > However, I agree it would be beneficial to have an omap3_common.h config
> > with the options that are expected to be shared accross every possible
> > omap3 device (and with a few clever ifdef so that the minimum has to be
> > set in the including board configs).
> >
> > I could try to come up with such a config if you wish, but I'm afraid
> > I'm not the most qualified person to do this (I only have a single omap3
> > device).

> I am planning on a V3 based on trying to converge exynos and TI
> platforms into a common code base. I will stick with ti_*_common.h
> headers for now, we will keep all the other headers updated for the
> moment. I do stand with the opinion that we should all be using the
> same ti_omap3_common header for all platforms using the same SoC...
> but that could be done as follow on patches.
> 
> That said, Paul, if you could contribute patches to the effect of
> integrating all these platforms to ti_*_common.h, that'd be great.

I will try to come up with a common configuration for omap3 (and
possibly omap4 and omap5 too). Do you mind if I drop the ti_ prefix? I
don't feel it's relevant to mention the chip manufacturer there,
especially when it's not used anywhere else in the tree (except for the
boards that are actually procuced by TI such as the evms, etc).

-------------- 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/20150225/42863f0e/attachment.sig>


More information about the U-Boot mailing list