From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Date: Sun, 07 Feb 2010 08:45:36 -0600 Subject: [U-Boot] [PATCH] OMAP3: workaround for ARM Cortex-A8 erratum 725233 In-Reply-To: <1265509186-14826-1-git-send-email-siarhei.siamashka@gmail.com> References: <1265509186-14826-1-git-send-email-siarhei.siamashka@gmail.com> Message-ID: <4B6ED210.4050602@windriver.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Siarhei Siamashka wrote: > 725233: PLD instructions executed with PLD data forwarding > enabled can result in a processor deadlock > > Signed-off-by: Siarhei Siamashka Please add a detailed comment on the errata. Also looks like this jumping to ROM code. Can this be done without a ROM code call ? Tom > --- > cpu/arm_cortexa8/omap3/board.c | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > > diff --git a/cpu/arm_cortexa8/omap3/board.c b/cpu/arm_cortexa8/omap3/board.c > index 2aa69b3..7b78fa4 100644 > --- a/cpu/arm_cortexa8/omap3/board.c > +++ b/cpu/arm_cortexa8/omap3/board.c > @@ -146,6 +146,12 @@ void setup_auxcr() > __asm__ __volatile__("orr r0, r0, #1 << 5"); > /* SMI instruction to call ROM Code API */ > __asm__ __volatile__(".word 0xE1600070"); > + /* Set PLD_FWD bit in L2AUXCR (Cortex-A8 erratum 725233 workaround) */ > + __asm__ __volatile__("mov r12, #0x2"); > + __asm__ __volatile__("mrc p15, 1, r0, c9, c0, 2"); > + __asm__ __volatile__("orr r0, r0, #1 << 27"); > + /* SMI instruction to call ROM Code API */ > + __asm__ __volatile__(".word 0xE1600070"); > __asm__ __volatile__("mov r0, %0":"=r"(i)); > __asm__ __volatile__("mov r12, %0":"=r"(j)); > }