diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2005-11-03 01:57:27 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2005-11-03 01:57:27 +0000 |
commit | ec58ea04aff67dda230e3ebd308497ac505f0343 (patch) | |
tree | bd77d6f68a6045a6c2cffbd814963a3f0b5f1f5b /c | |
parent | 2005-11-02 straumanatslacdotstanford.edu (diff) | |
download | rtems-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)
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/ChangeLog | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme5500/start/start.S | 38 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/start/start.S | 38 |
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 |