[rtems commit] mpc83xx: Add and use mpc83xx_reset()

Sebastian Huber sebh at rtems.org
Thu Mar 14 09:51:47 UTC 2013


Module:    rtems
Branch:    master
Commit:    faad1926751ea8d26a3f7f9ed7f230b519118101
Changeset: http://git.rtems.org/rtems/commit/?id=faad1926751ea8d26a3f7f9ed7f230b519118101

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Mar 11 17:54:34 2013 +0100

mpc83xx: Add and use mpc83xx_reset()

The inline version makes it possible to use this code in different
memory areas.

---

 .../lib/libbsp/powerpc/gen83xx/startup/bspreset.c  |   18 +++---------------
 c/src/lib/libcpu/powerpc/mpc83xx/include/mpc83xx.h |   19 +++++++++++++++++++
 2 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/bspreset.c b/c/src/lib/libbsp/powerpc/gen83xx/startup/bspreset.c
index fa4edf6..0aa71df 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/bspreset.c
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/bspreset.c
@@ -14,21 +14,9 @@
 #include <bsp.h>
 #include <bsp/bootcard.h>
 
+#include <mpc83xx/mpc83xx.h>
+
 void bsp_reset(void)
 {
-  _ISR_Set_level( 0 );
-
-  /* Set Reset Protection Register (RPR) to "RSTE" */
-  mpc83xx.res.rpr = 0x52535445;
-
-  /*
-   * Wait for Control Register Enabled in the
-   * Reset Control Enable Register (RCER).
-   */
-  while (mpc83xx.res.rcer != 0x00000001) {
-    /* Wait */
-  }
-
-  /* Set Software Hard Reset in the Reset Control Register (RCR) */
-  mpc83xx.res.rcr = 0x00000002;
+  mpc83xx_reset();
 }
diff --git a/c/src/lib/libcpu/powerpc/mpc83xx/include/mpc83xx.h b/c/src/lib/libcpu/powerpc/mpc83xx/include/mpc83xx.h
index 4fe6b25..6f7417a 100644
--- a/c/src/lib/libcpu/powerpc/mpc83xx/include/mpc83xx.h
+++ b/c/src/lib/libcpu/powerpc/mpc83xx/include/mpc83xx.h
@@ -820,6 +820,25 @@ typedef struct m83xxRegisters_ {
 
 extern m83xxRegisters_t mpc83xx;
 
+static inline void mpc83xx_reset(void)
+{
+  _ISR_Set_level( 0 );
+
+  /* Set Reset Protection Register (RPR) to "RSTE" */
+  mpc83xx.res.rpr = 0x52535445;
+
+  /*
+   * Wait for Control Register Enabled in the
+   * Reset Control Enable Register (RCER).
+   */
+  while (mpc83xx.res.rcer != 0x00000001) {
+    /* Wait */
+  }
+
+  /* Set Software Hard Reset in the Reset Control Register (RCR) */
+  mpc83xx.res.rcr = 0x00000002;
+}
+
 #endif /* !defined ASM */
 /*
  * some definitions used in assembler startup




More information about the vc mailing list