* [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