summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2005-11-03 01:57:27 +0000
committerTill Straumann <strauman@slac.stanford.edu>2005-11-03 01:57:27 +0000
commitec58ea04aff67dda230e3ebd308497ac505f0343 (patch)
treebd77d6f68a6045a6c2cffbd814963a3f0b5f1f5b
parent2005-11-02 straumanatslacdotstanford.edu (diff)
downloadrtems-ec58ea04aff67dda230e3ebd308497ac505f0343.tar.bz2
2005-11-02 straumanatslacdotstanford.edu
* mvme5500/start/start.S, shared/start/start.S, shared/startup/bspstart.c: moved assembly code to C; setdbat now supports high bats on 7450 CPUs; added argument checking to setdbat; added getdbat; moved early initialization code (clear_bats) from BSP to libcpu (CPU_clear_bats_early)
-rw-r--r--c/src/lib/libbsp/powerpc/ChangeLog8
-rw-r--r--c/src/lib/libbsp/powerpc/mvme5500/start/start.S38
-rw-r--r--c/src/lib/libbsp/powerpc/shared/start/start.S38
3 files changed, 12 insertions, 72 deletions
diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog
index 6cb5acb78e..fd7a3b35fb 100644
--- a/c/src/lib/libbsp/powerpc/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/ChangeLog
@@ -1,3 +1,11 @@
+2005-11-02 straumanatslacdotstanford.edu
+
+ * mvme5500/start/start.S, shared/start/start.S,
+ shared/startup/bspstart.c: moved assembly code to C; setdbat now
+ supports high bats on 7450 CPUs; added argument checking to setdbat;
+ added getdbat; moved early initialization code (clear_bats) from BSP
+ to libcpu (CPU_clear_bats_early)
+
2005-10-20 Eric Norum <norume@aps.anl.gov>
* shared/pci/detect_raven_bridge.c, shared/startup/bspstart.c
diff --git a/c/src/lib/libbsp/powerpc/mvme5500/start/start.S b/c/src/lib/libbsp/powerpc/mvme5500/start/start.S
index fbea9c140f..a54836e458 100644
--- a/c/src/lib/libbsp/powerpc/mvme5500/start/start.S
+++ b/c/src/lib/libbsp/powerpc/mvme5500/start/start.S
@@ -17,6 +17,7 @@
#include <rtems/score/cpu.h>
#include <rtems/powerpc/powerpc.h>
#include <libcpu/io.h>
+#include <libcpu/bat.h>
#define SYNC \
sync; \
@@ -64,7 +65,7 @@ __rtems_entry_point:
/*
* Make sure we have nothing in BATS and TLB
*/
- bl clear_bats
+ bl CPU_clear_bats_early
bl flush_tlbs
/*
* Use the first pair of BAT registers to map the 1st 256MB
@@ -173,41 +174,6 @@ _return_to_ppcbug:
mtctr r30
bctr
-/*
- * An undocumented "feature" of 604e requires that the v bit
- * be cleared before changing BAT values.
- *
- * Also, newer IBM firmware does not clear bat3 and 4 so
- * this makes sure it's done.
- * -- Cort
- */
-clear_bats:
- li r20,0
- mfspr r9,PVR
- rlwinm r9,r9,16,16,31 /* r9 = 1 for 601, 4 for 604 */
- cmpwi r9, 1
- SYNC
- beq 1f
- mtspr DBAT0U,r20
- mtspr DBAT0L,r20
- mtspr DBAT1U,r20
- mtspr DBAT1L,r20
- mtspr DBAT2U,r20
- mtspr DBAT2L,r20
- mtspr DBAT3U,r20
- mtspr DBAT3L,r20
-1:
- mtspr IBAT0U,r20
- mtspr IBAT0L,r20
- mtspr IBAT1U,r20
- mtspr IBAT1L,r20
- mtspr IBAT2U,r20
- mtspr IBAT2L,r20
- mtspr IBAT3U,r20
- mtspr IBAT3L,r20
- SYNC
- blr
-
flush_tlbs:
lis r20, 0x1000
1: addic. r20, r20, -0x1000
diff --git a/c/src/lib/libbsp/powerpc/shared/start/start.S b/c/src/lib/libbsp/powerpc/shared/start/start.S
index 6c065b5de1..58b7debcd8 100644
--- a/c/src/lib/libbsp/powerpc/shared/start/start.S
+++ b/c/src/lib/libbsp/powerpc/shared/start/start.S
@@ -16,6 +16,7 @@
#include <rtems/powerpc/powerpc.h>
#include <libcpu/io.h>
+#include <libcpu/bat.h>
#include <bspopts.h>
#define SYNC \
@@ -62,7 +63,7 @@ __rtems_entry_point:
/*
* Make sure we have nothing in BATS and TLB
*/
- bl clear_bats
+ bl CPU_clear_bats_early
bl flush_tlbs
/*
* Use the first pair of BAT registers to map the 1st 256MB
@@ -171,41 +172,6 @@ _return_to_ppcbug:
mtctr r30
bctr
-/*
- * An undocumented "feature" of 604e requires that the v bit
- * be cleared before changing BAT values.
- *
- * Also, newer IBM firmware does not clear bat3 and 4 so
- * this makes sure it's done.
- * -- Cort
- */
-clear_bats:
- li r20,0
- mfspr r9,PVR
- rlwinm r9,r9,16,16,31 /* r9 = 1 for 601, 4 for 604 */
- cmpwi r9, 1
- SYNC
- beq 1f
- mtspr DBAT0U,r20
- mtspr DBAT0L,r20
- mtspr DBAT1U,r20
- mtspr DBAT1L,r20
- mtspr DBAT2U,r20
- mtspr DBAT2L,r20
- mtspr DBAT3U,r20
- mtspr DBAT3L,r20
-1:
- mtspr IBAT0U,r20
- mtspr IBAT0L,r20
- mtspr IBAT1U,r20
- mtspr IBAT1L,r20
- mtspr IBAT2U,r20
- mtspr IBAT2L,r20
- mtspr IBAT3U,r20
- mtspr IBAT3L,r20
- SYNC
- blr
-
flush_tlbs:
lis r20, 0x1000
1: addic. r20, r20, -0x1000