forked from Imagelibrary/rtems
2009-10-16 Jennifer Averett <jennifer.averett@OARcorp.com>
* mpc6xx/mmu/bat.c: Resolved bug: It is not an overlap if the batindex being set is the batindex of the overlap.
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2009-10-16 Jennifer Averett <jennifer.averett@OARcorp.com>
|
||||||
|
|
||||||
|
* mpc6xx/mmu/bat.c: Resolved bug: It is not an overlap if the batindex
|
||||||
|
being set is the batindex of the overlap.
|
||||||
|
|
||||||
2009-09-25 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2009-09-25 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* shared/include/io.h, shared/include/mmu.h: Change extern inline to
|
* shared/include/io.h, shared/include/mmu.h: Change extern inline to
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* MPC750
|
* MPC750
|
||||||
* Risc Microporcessor User's Manual
|
* Risc Microporcessor User's Manual
|
||||||
* Motorola REF : MPC750UM/AD 8/97
|
* Mtorola REF : MPC750UM/AD 8/97
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Eric Valette (valette@crf.canon.fr)
|
* Copyright (C) 1999 Eric Valette (valette@crf.canon.fr)
|
||||||
* Canon Centre Recherche France.
|
* Canon Centre Recherche France.
|
||||||
@@ -160,7 +160,7 @@ bat_addrs_put (ubat * bat, int typ, int idx)
|
|||||||
* cache.
|
* cache.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
bat_addrs_init (void)
|
bat_addrs_init ()
|
||||||
{
|
{
|
||||||
ubat bat;
|
ubat bat;
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ bat_addrs_init (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
do_dssall (void)
|
do_dssall ()
|
||||||
{
|
{
|
||||||
/* Before changing BATs, 'dssall' must be issued.
|
/* Before changing BATs, 'dssall' must be issued.
|
||||||
* We check MSR for MSR_VE and issue a 'dssall' if
|
* We check MSR for MSR_VE and issue a 'dssall' if
|
||||||
@@ -227,7 +227,7 @@ do_dssall (void)
|
|||||||
|
|
||||||
/* Clear I/D bats 4..7 ONLY ON 7455 etc. */
|
/* Clear I/D bats 4..7 ONLY ON 7455 etc. */
|
||||||
static void
|
static void
|
||||||
clear_hi_bats (void)
|
clear_hi_bats ()
|
||||||
{
|
{
|
||||||
do_dssall ();
|
do_dssall ();
|
||||||
CLRBAT (DBAT4);
|
CLRBAT (DBAT4);
|
||||||
@@ -380,8 +380,9 @@ setbat (int typ, int bat_index, unsigned long virt, unsigned long phys,
|
|||||||
init_done = 1;
|
init_done = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size >= (1 << 17) && (err = check_overlap (typ, virt, size)) >= 0) {
|
err = check_overlap (typ, virt, size);
|
||||||
|
if ((size >= (1 << 17)) && (err >= 0) && (err != bat_index)) {
|
||||||
rtems_interrupt_enable (level);
|
rtems_interrupt_enable (level);
|
||||||
printk ("BATs must not overlap; area 0x%08x..0x%08x hits %cBAT %i\n",
|
printk ("BATs must not overlap; area 0x%08x..0x%08x hits %cBAT %i\n",
|
||||||
virt, virt + size, (TYP_I == typ ? 'I' : 'D'), err);
|
virt, virt + size, (TYP_I == typ ? 'I' : 'D'), err);
|
||||||
|
|||||||
Reference in New Issue
Block a user