* [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core
@ 2014-01-06 13:14 Fabio Estevam
2014-01-06 13:14 ` [U-Boot] [PATCH 2/2] mx6slevk: Include "mx6_common.h" Fabio Estevam
2014-01-08 8:55 ` [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core Stefano Babic
0 siblings, 2 replies; 5+ messages in thread
From: Fabio Estevam @ 2014-01-06 13:14 UTC (permalink / raw)
To: u-boot
According to e9fd66defd (ARM: mx6: define CONFIG_ARM_ERRATA_742230), the
CONFIG_ARM_ERRATA_742230 option should only be applied to multi-core
variants, so restrict its usage for quad and dual-lite only.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
include/configs/mx6_common.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
index 514d634..0b8db85 100644
--- a/include/configs/mx6_common.h
+++ b/include/configs/mx6_common.h
@@ -17,7 +17,9 @@
#ifndef __MX6_COMMON_H
#define __MX6_COMMON_H
+#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
#define CONFIG_ARM_ERRATA_742230
+#endif
#define CONFIG_ARM_ERRATA_743622
#define CONFIG_ARM_ERRATA_751472
#define CONFIG_BOARD_POSTCLK_INIT
--
1.8.1.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH 2/2] mx6slevk: Include "mx6_common.h"
2014-01-06 13:14 [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core Fabio Estevam
@ 2014-01-06 13:14 ` Fabio Estevam
2014-01-08 8:55 ` [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core Stefano Babic
1 sibling, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2014-01-06 13:14 UTC (permalink / raw)
To: u-boot
Include "mx6_common.h" so that some ARM errata are applied and also the
vddsoc regulator can be changed.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
include/configs/mx6slevk.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/configs/mx6slevk.h b/include/configs/mx6slevk.h
index 7abad08..b29f78c 100644
--- a/include/configs/mx6slevk.h
+++ b/include/configs/mx6slevk.h
@@ -11,6 +11,7 @@
#include <asm/arch/imx-regs.h>
#include <asm/sizes.h>
+#include "mx6_common.h"
#define CONFIG_MX6
#define CONFIG_DISPLAY_CPUINFO
--
1.8.1.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core
2014-01-06 13:14 [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core Fabio Estevam
2014-01-06 13:14 ` [U-Boot] [PATCH 2/2] mx6slevk: Include "mx6_common.h" Fabio Estevam
@ 2014-01-08 8:55 ` Stefano Babic
2014-01-08 12:10 ` Shawn Guo
1 sibling, 1 reply; 5+ messages in thread
From: Stefano Babic @ 2014-01-08 8:55 UTC (permalink / raw)
To: u-boot
Hi Fabio,
On 06/01/2014 14:14, Fabio Estevam wrote:
> According to e9fd66defd (ARM: mx6: define CONFIG_ARM_ERRATA_742230), the
> CONFIG_ARM_ERRATA_742230 option should only be applied to multi-core
> variants, so restrict its usage for quad and dual-lite only.
>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> include/configs/mx6_common.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
> index 514d634..0b8db85 100644
> --- a/include/configs/mx6_common.h
> +++ b/include/configs/mx6_common.h
> @@ -17,7 +17,9 @@
> #ifndef __MX6_COMMON_H
> #define __MX6_COMMON_H
>
> +#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
> #define CONFIG_ARM_ERRATA_742230
> +#endif
> #define CONFIG_ARM_ERRATA_743622
> #define CONFIG_ARM_ERRATA_751472
> #define CONFIG_BOARD_POSTCLK_INIT
>
In Kernel I cannot read that the errata is related to a multicore
processor. Indeed, it is related to the Cortex-A9 version.
"This option enables the workaround for the 742230 Cortex-A9
(r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction
between two write operations may not ensure the correct visibility
ordering of the two writes. This workaround sets a specific bit in
the diagnostic register of the Cortex-A9 which causes the DMB
instruction to behave as a DSB, ensuring the correct behaviour of
the two writes.
"
The fix was merged in kernel since a lot of time, before having
multicore processors for ARM. At least the commit message does not seem
coherent with the explanations in kernel. Maybe has solo a upgraded core
version as dual/quad ?
Best regards,
Stefano
--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core
2014-01-08 8:55 ` [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core Stefano Babic
@ 2014-01-08 12:10 ` Shawn Guo
2014-01-08 13:42 ` Stefano Babic
0 siblings, 1 reply; 5+ messages in thread
From: Shawn Guo @ 2014-01-08 12:10 UTC (permalink / raw)
To: u-boot
On Wed, Jan 08, 2014 at 09:55:10AM +0100, Stefano Babic wrote:
> Hi Fabio,
>
> On 06/01/2014 14:14, Fabio Estevam wrote:
> > According to e9fd66defd (ARM: mx6: define CONFIG_ARM_ERRATA_742230), the
> > CONFIG_ARM_ERRATA_742230 option should only be applied to multi-core
> > variants, so restrict its usage for quad and dual-lite only.
> >
> > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> > ---
> > include/configs/mx6_common.h | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
> > index 514d634..0b8db85 100644
> > --- a/include/configs/mx6_common.h
> > +++ b/include/configs/mx6_common.h
> > @@ -17,7 +17,9 @@
> > #ifndef __MX6_COMMON_H
> > #define __MX6_COMMON_H
> >
> > +#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
> > #define CONFIG_ARM_ERRATA_742230
> > +#endif
> > #define CONFIG_ARM_ERRATA_743622
> > #define CONFIG_ARM_ERRATA_751472
> > #define CONFIG_BOARD_POSTCLK_INIT
> >
>
> In Kernel I cannot read that the errata is related to a multicore
> processor. Indeed, it is related to the Cortex-A9 version.
>
> "This option enables the workaround for the 742230 Cortex-A9
> (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction
> between two write operations may not ensure the correct visibility
> ordering of the two writes. This workaround sets a specific bit in
> the diagnostic register of the Cortex-A9 which causes the DMB
> instruction to behave as a DSB, ensuring the correct behaviour of
> the two writes.
> "
>
> The fix was merged in kernel since a lot of time, before having
> multicore processors for ARM. At least the commit message does not seem
> coherent with the explanations in kernel. Maybe has solo a upgraded core
> version as dual/quad ?
The sololite has the same core version as dual/quad - r2p10. The
help text of erratum 742230 in kernel suggests that only version
r1p0..r2p2 are affected. So it sounds like the erratum 742230 should be
irrelevant to i.MX6 SoCs. However we were running into a reboot issue
on multi-core i.MX6 SoCs. There was a quite long discussion [1] about
it. Though we did not reach a conclusion in the thread, one ARM people
sent me a private message, suggesting this should be an ARM core issue
and workaround for erratum 742230 might help. And it turns out what he
said is true. And that's why I came up with the commit e9fd66defd (ARM:
mx6: define CONFIG_ARM_ERRATA_742230) to turn on the erratum for imx6
dual/quad.
Shawn
[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2012-August/thread.html#113096
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core
2014-01-08 12:10 ` Shawn Guo
@ 2014-01-08 13:42 ` Stefano Babic
0 siblings, 0 replies; 5+ messages in thread
From: Stefano Babic @ 2014-01-08 13:42 UTC (permalink / raw)
To: u-boot
Hi Fabio,
On 08/01/2014 13:10, Shawn Guo wrote:
> On Wed, Jan 08, 2014 at 09:55:10AM +0100, Stefano Babic wrote:
>> Hi Fabio,
>>
>> On 06/01/2014 14:14, Fabio Estevam wrote:
>>> According to e9fd66defd (ARM: mx6: define CONFIG_ARM_ERRATA_742230), the
>>> CONFIG_ARM_ERRATA_742230 option should only be applied to multi-core
>>> variants, so restrict its usage for quad and dual-lite only.
>>>
>>> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
>>> ---
>>> include/configs/mx6_common.h | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>>> index 514d634..0b8db85 100644
>>> --- a/include/configs/mx6_common.h
>>> +++ b/include/configs/mx6_common.h
>>> @@ -17,7 +17,9 @@
>>> #ifndef __MX6_COMMON_H
>>> #define __MX6_COMMON_H
>>>
>>> +#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
>>> #define CONFIG_ARM_ERRATA_742230
>>> +#endif
>>> #define CONFIG_ARM_ERRATA_743622
>>> #define CONFIG_ARM_ERRATA_751472
>>> #define CONFIG_BOARD_POSTCLK_INIT
>>>
>>
>> In Kernel I cannot read that the errata is related to a multicore
>> processor. Indeed, it is related to the Cortex-A9 version.
>>
>> "This option enables the workaround for the 742230 Cortex-A9
>> (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction
>> between two write operations may not ensure the correct visibility
>> ordering of the two writes. This workaround sets a specific bit in
>> the diagnostic register of the Cortex-A9 which causes the DMB
>> instruction to behave as a DSB, ensuring the correct behaviour of
>> the two writes.
>> "
>>
>> The fix was merged in kernel since a lot of time, before having
>> multicore processors for ARM. At least the commit message does not seem
>> coherent with the explanations in kernel. Maybe has solo a upgraded core
>> version as dual/quad ?
>
> The sololite has the same core version as dual/quad - r2p10. The
> help text of erratum 742230 in kernel suggests that only version
> r1p0..r2p2 are affected. So it sounds like the erratum 742230 should be
> irrelevant to i.MX6 SoCs. However we were running into a reboot issue
> on multi-core i.MX6 SoCs. There was a quite long discussion [1] about
> it. Though we did not reach a conclusion in the thread, one ARM people
> sent me a private message, suggesting this should be an ARM core issue
> and workaround for erratum 742230 might help. And it turns out what he
> said is true. And that's why I came up with the commit e9fd66defd (ARM:
> mx6: define CONFIG_ARM_ERRATA_742230) to turn on the erratum for imx6
> dual/quad.
Shawn, thanks for explanations. Fabio, can you extend the commit
message, pointing out that the version itself of the ARM core is not the
real cause. Maybe improving with part of Russel's answer to the thread,
that catches the point.
http://lists.infradead.org/pipermail/linux-arm-kernel/2012-August/113353.html
This is a fix that I will merge for release.
I am quite astonished what can still happens in User Space, if the
compiler issues a dmb instruction...
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-01-08 13:42 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-06 13:14 [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core Fabio Estevam
2014-01-06 13:14 ` [U-Boot] [PATCH 2/2] mx6slevk: Include "mx6_common.h" Fabio Estevam
2014-01-08 8:55 ` [U-Boot] [PATCH 1/2] configs: mx6_common: Restrict CONFIG_ARM_ERRATA_742230 for multi-core Stefano Babic
2014-01-08 12:10 ` Shawn Guo
2014-01-08 13:42 ` Stefano Babic
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox