git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
arch
/
ppc
/
mm
/
fsl_booke_mmu.c
diff --git
a/arch/ppc/mm/fsl_booke_mmu.c
b/arch/ppc/mm/fsl_booke_mmu.c
index
baed25b
..
123da03
100644
(file)
--- a/
arch/ppc/mm/fsl_booke_mmu.c
+++ b/
arch/ppc/mm/fsl_booke_mmu.c
@@
-1,5
+1,5
@@
/*
/*
- * Modifications by Kumar Gala (
kumar.gala@freescale.com
) to support
+ * Modifications by Kumar Gala (
galak@kernel.crashing.org
) to support
* E500 Book E processors.
*
* Copyright 2004 Freescale Semiconductor, Inc
* E500 Book E processors.
*
* Copyright 2004 Freescale Semiconductor, Inc
@@
-26,7
+26,6
@@
*
*/
*
*/
-#include <linux/config.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/kernel.h>
@@
-41,7
+40,6
@@
#include <linux/vmalloc.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/vmalloc.h>
#include <linux/init.h>
#include <linux/delay.h>
-#include <linux/bootmem.h>
#include <linux/highmem.h>
#include <asm/pgalloc.h>
#include <linux/highmem.h>
#include <asm/pgalloc.h>
@@
-64,6
+62,8
@@
extern unsigned long total_lowmem;
extern unsigned long __max_low_memory;
#define MAX_LOW_MEM CONFIG_LOWMEM_SIZE
extern unsigned long __max_low_memory;
#define MAX_LOW_MEM CONFIG_LOWMEM_SIZE
+#define NUM_TLBCAMS (16)
+
struct tlbcam {
u32 MAS0;
u32 MAS1;
struct tlbcam {
u32 MAS0;
u32 MAS1;
@@
-124,8
+124,8
@@
void settlbcam(int index, unsigned long virt, phys_addr_t phys,
flags |= _PAGE_COHERENT;
#endif
flags |= _PAGE_COHERENT;
#endif
- TLBCAM[index].MAS0 = MAS0_TLBSEL
| (index << 16
);
- TLBCAM[index].MAS1 = MAS1_VALID | MAS1_IPROT | MAS1_TSIZE(tsize) |
((pid << 16) & MAS1_TID
);
+ TLBCAM[index].MAS0 = MAS0_TLBSEL
(1) | MAS0_ESEL(index) | MAS0_NV(index+1
);
+ TLBCAM[index].MAS1 = MAS1_VALID | MAS1_IPROT | MAS1_TSIZE(tsize) |
MAS1_TID(pid
);
TLBCAM[index].MAS2 = virt & PAGE_MASK;
TLBCAM[index].MAS2 |= (flags & _PAGE_WRITETHRU) ? MAS2_W : 0;
TLBCAM[index].MAS2 = virt & PAGE_MASK;
TLBCAM[index].MAS2 |= (flags & _PAGE_WRITETHRU) ? MAS2_W : 0;
@@
-156,7
+156,7
@@
void settlbcam(int index, unsigned long virt, phys_addr_t phys,
void invalidate_tlbcam_entry(int index)
{
void invalidate_tlbcam_entry(int index)
{
- TLBCAM[index].MAS0 = MAS0_TLBSEL
| (index << 16
);
+ TLBCAM[index].MAS0 = MAS0_TLBSEL
(1) | MAS0_ESEL(index
);
TLBCAM[index].MAS1 = ~MAS1_VALID;
loadcam_entry(index);
TLBCAM[index].MAS1 = ~MAS1_VALID;
loadcam_entry(index);