All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Sakoman <steve@sakoman.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 04/11] ARMV7: OMAP3: Convert setup_auxcr() to pure asm
Date: Tue, 31 Aug 2010 16:21:20 -0700	[thread overview]
Message-ID: <1283296887-8631-5-git-send-email-steve@sakoman.com> (raw)
In-Reply-To: <1283296887-8631-1-git-send-email-steve@sakoman.com>

From: Mans Rullgard <mans@mansr.com>

This function consists entirely of inline asm statements, so writing
it directly in a .S file is simpler. Additionally, the inline asm is
not safe as is, since registers are not guaranteed to be preserved
between asm() statements.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 arch/arm/cpu/armv7/omap3/board.c |   35 -----------------------------------
 arch/arm/cpu/armv7/omap3/cache.S |   19 +++++++++++++++++++
 2 files changed, 19 insertions(+), 35 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap3/board.c b/arch/arm/cpu/armv7/omap3/board.c
index 69e56f5..6c2a132 100644
--- a/arch/arm/cpu/armv7/omap3/board.c
+++ b/arch/arm/cpu/armv7/omap3/board.c
@@ -120,41 +120,6 @@ void secureworld_exit()
 }
 
 /******************************************************************************
- * Routine: setup_auxcr()
- * Description: Write to AuxCR desired value using SMI.
- *              general use.
- *****************************************************************************/
-void setup_auxcr()
-{
-	unsigned long i;
-	volatile unsigned int j;
-	/* Save r0, r12 and restore them after usage */
-	__asm__ __volatile__("mov %0, r12":"=r"(j));
-	__asm__ __volatile__("mov %0, r0":"=r"(i));
-
-	/*
-	 * GP Device ROM code API usage here
-	 * r12 = AUXCR Write function and r0 value
-	 */
-	__asm__ __volatile__("mov r12, #0x3");
-	__asm__ __volatile__("mrc p15, 0, r0, c1, c0, 1");
-	/* Enabling ASA */
-	__asm__ __volatile__("orr r0, r0, #0x10");
-	/* Enable L1NEON */
-	__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));
-}
-
-/******************************************************************************
  * Routine: try_unlock_sram()
  * Description: If chip is GP/EMU(special) type, unlock the SRAM for
  *              general use.
diff --git a/arch/arm/cpu/armv7/omap3/cache.S b/arch/arm/cpu/armv7/omap3/cache.S
index cb7ca11..5a19051 100644
--- a/arch/arm/cpu/armv7/omap3/cache.S
+++ b/arch/arm/cpu/armv7/omap3/cache.S
@@ -43,6 +43,7 @@
 .global invalidate_dcache
 .global l2_cache_enable
 .global l2_cache_disable
+.global setup_auxcr
 
 /*
  *	invalidate_dcache()
@@ -156,3 +157,21 @@ l2_cache_disable:
 	mov	r0, #0
 	b	l2_cache_set
 
+/******************************************************************************
+ * Routine: setup_auxcr()
+ * Description: Write to AuxCR desired value using SMI.
+ *              general use.
+ *****************************************************************************/
+setup_auxcr:
+	mov	r12, #0x3
+	mrc	p15, 0, r0, c1, c0, 1
+	orr	r0, r0, #0x10			@ Enable ASA
+	orr	r0, r0, #1 << 5			@ Enable L1NEON
+	.word 0xE1600070			@ SMC
+	mov	r12, #0x2
+	mrc	p15, 1, r0, c9, c0, 2
+	@ Set PLD_FWD bit in L2AUXCR (Cortex-A8 erratum 725233 workaround)
+	orr	r0, r0, #1 << 27
+	.word 0xE1600070			@ SMC
+	bx	lr
+
-- 
1.7.0.4

  parent reply	other threads:[~2010-08-31 23:21 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-31 23:21 [U-Boot] [PATCH 00/11] ARMV7: OMAP: Add support for OMAP36XX/37XX, cleanup OMAP3 common code Steve Sakoman
2010-08-31 23:21 ` [U-Boot] [PATCH 01/11] ARMV7: OMAP3: Update CPU type detection for AM35XX/OMAP36XX/37XX Steve Sakoman
2010-08-31 23:21 ` [U-Boot] [PATCH 02/11] ARMV7: OMAP3: Add clock setup for OMAP36XX/37XX Steve Sakoman
2010-08-31 23:21 ` [U-Boot] [PATCH 03/11] ARMV7: OMAP3: Fix and clean up L2 cache enable/disable functions Steve Sakoman
2010-08-31 23:21 ` Steve Sakoman [this message]
2010-08-31 23:21 ` [U-Boot] [PATCH 05/11] ARMV7: OMAP3: Apply Cortex-A8 errata workarounds only on affected revisions Steve Sakoman
2010-08-31 23:21 ` [U-Boot] [PATCH 06/11] ARMV7: OMAP3: Fix broken reset command on OMAP36XX/37XX and OMAP4 Steve Sakoman
2010-08-31 23:21 ` [U-Boot] [PATCH 07/11] ARMV7: OMAP3: Remove erroneous hard coded sdram setup for 128MB/bank Steve Sakoman
2010-08-31 23:21 ` [U-Boot] [PATCH 08/11] mtd: nand: honor CONFIG_SYS_NAND_QUIET_TEST with unknown NAND printk Steve Sakoman
2010-09-01  0:18   ` Paulraj, Sandeep
2010-09-01 16:26     ` Scott Wood
2010-09-01 16:43       ` Steve Sakoman
2010-09-01 17:55         ` Scott Wood
2010-09-02 15:33           ` [U-Boot] [PATCH V2 08/11] mtd: nand: supress 'unknown NAND' warning if no nand is found Steve Sakoman
2010-09-04 17:38             ` Paulraj, Sandeep
2010-09-04 20:16               ` Steve Sakoman
2010-09-07 17:37               ` Scott Wood
2010-09-07 21:27               ` Steve Sakoman
2010-09-05 10:59             ` Sergei Shtylyov
2010-09-05 21:37               ` Steve Sakoman
2010-09-07 17:37                 ` Scott Wood
2010-08-31 23:21 ` [U-Boot] [PATCH 09/11] ARMV7: OMAP3: Add CONFIG_SYS_NAND_QUIET_TEST to Beagle and Overo configs Steve Sakoman
2010-08-31 23:21 ` [U-Boot] [PATCH 10/11] ARMV7: OMAP3: Add support for Beagle xM Steve Sakoman
2010-08-31 23:21 ` [U-Boot] [PATCH 11/11] ARMV7: OMAP: Overo: Autodetect presence/absence of transceiver on mmc2 Steve Sakoman
2010-08-31 23:35 ` [U-Boot] [PATCH 00/11] ARMV7: OMAP: Add support for OMAP36XX/37XX, cleanup OMAP3 common code Steve Sakoman
2010-09-01  0:20   ` Paulraj, Sandeep

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=1283296887-8631-5-git-send-email-steve@sakoman.com \
    --to=steve@sakoman.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.