diff options
Diffstat (limited to 'arch/powerpc/mm/ppc_mmu_32.c')
-rw-r--r-- | arch/powerpc/mm/ppc_mmu_32.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c index fe65c405412c..2d2a87e10154 100644 --- a/arch/powerpc/mm/ppc_mmu_32.c +++ b/arch/powerpc/mm/ppc_mmu_32.c | |||
@@ -74,9 +74,6 @@ unsigned long p_mapped_by_bats(phys_addr_t pa) | |||
74 | 74 | ||
75 | unsigned long __init mmu_mapin_ram(void) | 75 | unsigned long __init mmu_mapin_ram(void) |
76 | { | 76 | { |
77 | #ifdef CONFIG_POWER4 | ||
78 | return 0; | ||
79 | #else | ||
80 | unsigned long tot, bl, done; | 77 | unsigned long tot, bl, done; |
81 | unsigned long max_size = (256<<20); | 78 | unsigned long max_size = (256<<20); |
82 | 79 | ||
@@ -95,7 +92,7 @@ unsigned long __init mmu_mapin_ram(void) | |||
95 | break; | 92 | break; |
96 | } | 93 | } |
97 | 94 | ||
98 | setbat(2, PAGE_OFFSET, 0, bl, _PAGE_RAM); | 95 | setbat(2, PAGE_OFFSET, 0, bl, PAGE_KERNEL_X); |
99 | done = (unsigned long)bat_addrs[2].limit - PAGE_OFFSET + 1; | 96 | done = (unsigned long)bat_addrs[2].limit - PAGE_OFFSET + 1; |
100 | if ((done < tot) && !bat_addrs[3].limit) { | 97 | if ((done < tot) && !bat_addrs[3].limit) { |
101 | /* use BAT3 to cover a bit more */ | 98 | /* use BAT3 to cover a bit more */ |
@@ -103,12 +100,11 @@ unsigned long __init mmu_mapin_ram(void) | |||
103 | for (bl = 128<<10; bl < max_size; bl <<= 1) | 100 | for (bl = 128<<10; bl < max_size; bl <<= 1) |
104 | if (bl * 2 > tot) | 101 | if (bl * 2 > tot) |
105 | break; | 102 | break; |
106 | setbat(3, PAGE_OFFSET+done, done, bl, _PAGE_RAM); | 103 | setbat(3, PAGE_OFFSET+done, done, bl, PAGE_KERNEL_X); |
107 | done = (unsigned long)bat_addrs[3].limit - PAGE_OFFSET + 1; | 104 | done = (unsigned long)bat_addrs[3].limit - PAGE_OFFSET + 1; |
108 | } | 105 | } |
109 | 106 | ||
110 | return done; | 107 | return done; |
111 | #endif | ||
112 | } | 108 | } |
113 | 109 | ||
114 | /* | 110 | /* |
@@ -136,9 +132,7 @@ void __init setbat(int index, unsigned long virt, phys_addr_t phys, | |||
136 | wimgxpp |= (flags & _PAGE_RW)? BPP_RW: BPP_RX; | 132 | wimgxpp |= (flags & _PAGE_RW)? BPP_RW: BPP_RX; |
137 | bat[1].batu = virt | (bl << 2) | 2; /* Vs=1, Vp=0 */ | 133 | bat[1].batu = virt | (bl << 2) | 2; /* Vs=1, Vp=0 */ |
138 | bat[1].batl = BAT_PHYS_ADDR(phys) | wimgxpp; | 134 | bat[1].batl = BAT_PHYS_ADDR(phys) | wimgxpp; |
139 | #ifndef CONFIG_KGDB /* want user access for breakpoints */ | ||
140 | if (flags & _PAGE_USER) | 135 | if (flags & _PAGE_USER) |
141 | #endif | ||
142 | bat[1].batu |= 1; /* Vp = 1 */ | 136 | bat[1].batu |= 1; /* Vp = 1 */ |
143 | if (flags & _PAGE_GUARDED) { | 137 | if (flags & _PAGE_GUARDED) { |
144 | /* G bit must be zero in IBATs */ | 138 | /* G bit must be zero in IBATs */ |