| .. | .. |
|---|
| 153 | 153 | tlbivax 0,r9 |
|---|
| 154 | 154 | TLBSYNC |
|---|
| 155 | 155 | |
|---|
| 156 | | -/* |
|---|
| 157 | | - * The mapping only needs to be cache-coherent on SMP, except on |
|---|
| 158 | | - * Freescale e500mc derivatives where it's also needed for coherent DMA. |
|---|
| 159 | | - */ |
|---|
| 160 | | -#if defined(CONFIG_SMP) || defined(CONFIG_PPC_E500MC) |
|---|
| 161 | | -#define M_IF_NEEDED MAS2_M |
|---|
| 162 | | -#else |
|---|
| 163 | | -#define M_IF_NEEDED 0 |
|---|
| 164 | | -#endif |
|---|
| 165 | | - |
|---|
| 166 | 156 | #if defined(ENTRY_MAPPING_BOOT_SETUP) |
|---|
| 167 | 157 | |
|---|
| 168 | | -/* 6. Setup KERNELBASE mapping in TLB1[0] */ |
|---|
| 158 | +/* 6. Setup kernstart_virt_addr mapping in TLB1[0] */ |
|---|
| 169 | 159 | lis r6,0x1000 /* Set MAS0(TLBSEL) = TLB1(1), ESEL = 0 */ |
|---|
| 170 | 160 | mtspr SPRN_MAS0,r6 |
|---|
| 171 | 161 | lis r6,(MAS1_VALID|MAS1_IPROT)@h |
|---|
| 172 | 162 | ori r6,r6,(MAS1_TSIZE(BOOK3E_PAGESZ_64M))@l |
|---|
| 173 | 163 | mtspr SPRN_MAS1,r6 |
|---|
| 174 | | - lis r6,MAS2_VAL(PAGE_OFFSET, BOOK3E_PAGESZ_64M, M_IF_NEEDED)@h |
|---|
| 175 | | - ori r6,r6,MAS2_VAL(PAGE_OFFSET, BOOK3E_PAGESZ_64M, M_IF_NEEDED)@l |
|---|
| 164 | + lis r6,MAS2_EPN_MASK(BOOK3E_PAGESZ_64M)@h |
|---|
| 165 | + ori r6,r6,MAS2_EPN_MASK(BOOK3E_PAGESZ_64M)@l |
|---|
| 166 | + and r6,r6,r20 |
|---|
| 167 | + ori r6,r6,MAS2_M_IF_NEEDED@l |
|---|
| 176 | 168 | mtspr SPRN_MAS2,r6 |
|---|
| 177 | 169 | mtspr SPRN_MAS3,r8 |
|---|
| 178 | 170 | tlbwe |
|---|
| 179 | 171 | |
|---|
| 180 | | -/* 7. Jump to KERNELBASE mapping */ |
|---|
| 181 | | - lis r6,(KERNELBASE & ~0xfff)@h |
|---|
| 182 | | - ori r6,r6,(KERNELBASE & ~0xfff)@l |
|---|
| 183 | | - rlwinm r7,r25,0,0x03ffffff |
|---|
| 184 | | - add r6,r7,r6 |
|---|
| 172 | +/* 7. Jump to kernstart_virt_addr mapping */ |
|---|
| 173 | + mr r6,r20 |
|---|
| 185 | 174 | |
|---|
| 186 | 175 | #elif defined(ENTRY_MAPPING_KEXEC_SETUP) |
|---|
| 187 | 176 | /* |
|---|