diff options
Diffstat (limited to 'arch/powerpc/kernel/head_8xx.S')
-rw-r--r-- | arch/powerpc/kernel/head_8xx.S | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S index 901be47a02a9..f7458396cd7c 100644 --- a/arch/powerpc/kernel/head_8xx.S +++ b/arch/powerpc/kernel/head_8xx.S | |||
@@ -38,12 +38,9 @@ | |||
38 | #else | 38 | #else |
39 | #define DO_8xx_CPU6(val, reg) | 39 | #define DO_8xx_CPU6(val, reg) |
40 | #endif | 40 | #endif |
41 | .text | 41 | .section .text.head, "ax" |
42 | .globl _stext | 42 | _ENTRY(_stext); |
43 | _stext: | 43 | _ENTRY(_start); |
44 | .text | ||
45 | .globl _start | ||
46 | _start: | ||
47 | 44 | ||
48 | /* MPC8xx | 45 | /* MPC8xx |
49 | * This port was done on an MBX board with an 860. Right now I only | 46 | * This port was done on an MBX board with an 860. Right now I only |
@@ -301,6 +298,12 @@ InstructionTLBMiss: | |||
301 | stw r10, 0(r0) | 298 | stw r10, 0(r0) |
302 | stw r11, 4(r0) | 299 | stw r11, 4(r0) |
303 | mfspr r10, SPRN_SRR0 /* Get effective address of fault */ | 300 | mfspr r10, SPRN_SRR0 /* Get effective address of fault */ |
301 | #ifdef CONFIG_8xx_CPU15 | ||
302 | addi r11, r10, 0x1000 | ||
303 | tlbie r11 | ||
304 | addi r11, r10, -0x1000 | ||
305 | tlbie r11 | ||
306 | #endif | ||
304 | DO_8xx_CPU6(0x3780, r3) | 307 | DO_8xx_CPU6(0x3780, r3) |
305 | mtspr SPRN_MD_EPN, r10 /* Have to use MD_EPN for walk, MI_EPN can't */ | 308 | mtspr SPRN_MD_EPN, r10 /* Have to use MD_EPN for walk, MI_EPN can't */ |
306 | mfspr r10, SPRN_M_TWB /* Get level 1 table entry address */ | 309 | mfspr r10, SPRN_M_TWB /* Get level 1 table entry address */ |
@@ -730,13 +733,13 @@ initial_mmu: | |||
730 | mtspr SPRN_MD_TWC, r9 | 733 | mtspr SPRN_MD_TWC, r9 |
731 | li r11, MI_BOOTINIT /* Create RPN for address 0 */ | 734 | li r11, MI_BOOTINIT /* Create RPN for address 0 */ |
732 | addis r11, r11, 0x0080 /* Add 8M */ | 735 | addis r11, r11, 0x0080 /* Add 8M */ |
733 | mtspr SPRN_MD_RPN, r8 | 736 | mtspr SPRN_MD_RPN, r11 |
734 | 737 | ||
735 | addis r8, r8, 0x0080 /* Add 8M */ | 738 | addis r8, r8, 0x0080 /* Add 8M */ |
736 | mtspr SPRN_MD_EPN, r8 | 739 | mtspr SPRN_MD_EPN, r8 |
737 | mtspr SPRN_MD_TWC, r9 | 740 | mtspr SPRN_MD_TWC, r9 |
738 | addis r11, r11, 0x0080 /* Add 8M */ | 741 | addis r11, r11, 0x0080 /* Add 8M */ |
739 | mtspr SPRN_MD_RPN, r8 | 742 | mtspr SPRN_MD_RPN, r11 |
740 | #endif | 743 | #endif |
741 | 744 | ||
742 | /* Since the cache is enabled according to the information we | 745 | /* Since the cache is enabled according to the information we |
@@ -835,14 +838,6 @@ empty_zero_page: | |||
835 | swapper_pg_dir: | 838 | swapper_pg_dir: |
836 | .space 4096 | 839 | .space 4096 |
837 | 840 | ||
838 | /* | ||
839 | * This space gets a copy of optional info passed to us by the bootstrap | ||
840 | * Used to pass parameters into the kernel like root=/dev/sda1, etc. | ||
841 | */ | ||
842 | .globl cmd_line | ||
843 | cmd_line: | ||
844 | .space 512 | ||
845 | |||
846 | /* Room for two PTE table poiners, usually the kernel and current user | 841 | /* Room for two PTE table poiners, usually the kernel and current user |
847 | * pointer to their respective root page table (pgdir). | 842 | * pointer to their respective root page table (pgdir). |
848 | */ | 843 | */ |