diff options
Diffstat (limited to 'arch/ppc/kernel/head_fsl_booke.S')
-rw-r--r-- | arch/ppc/kernel/head_fsl_booke.S | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/arch/ppc/kernel/head_fsl_booke.S b/arch/ppc/kernel/head_fsl_booke.S index 8e52e8408316..5063c603fad4 100644 --- a/arch/ppc/kernel/head_fsl_booke.S +++ b/arch/ppc/kernel/head_fsl_booke.S | |||
@@ -426,14 +426,14 @@ skpinv: addi r6,r6,1 /* Increment */ | |||
426 | 426 | ||
427 | interrupt_base: | 427 | interrupt_base: |
428 | /* Critical Input Interrupt */ | 428 | /* Critical Input Interrupt */ |
429 | CRITICAL_EXCEPTION(0x0100, CriticalInput, UnknownException) | 429 | CRITICAL_EXCEPTION(0x0100, CriticalInput, unknown_exception) |
430 | 430 | ||
431 | /* Machine Check Interrupt */ | 431 | /* Machine Check Interrupt */ |
432 | #ifdef CONFIG_E200 | 432 | #ifdef CONFIG_E200 |
433 | /* no RFMCI, MCSRRs on E200 */ | 433 | /* no RFMCI, MCSRRs on E200 */ |
434 | CRITICAL_EXCEPTION(0x0200, MachineCheck, MachineCheckException) | 434 | CRITICAL_EXCEPTION(0x0200, MachineCheck, machine_check_exception) |
435 | #else | 435 | #else |
436 | MCHECK_EXCEPTION(0x0200, MachineCheck, MachineCheckException) | 436 | MCHECK_EXCEPTION(0x0200, MachineCheck, machine_check_exception) |
437 | #endif | 437 | #endif |
438 | 438 | ||
439 | /* Data Storage Interrupt */ | 439 | /* Data Storage Interrupt */ |
@@ -542,9 +542,9 @@ interrupt_base: | |||
542 | #else | 542 | #else |
543 | #ifdef CONFIG_E200 | 543 | #ifdef CONFIG_E200 |
544 | /* E200 treats 'normal' floating point instructions as FP Unavail exception */ | 544 | /* E200 treats 'normal' floating point instructions as FP Unavail exception */ |
545 | EXCEPTION(0x0800, FloatingPointUnavailable, ProgramCheckException, EXC_XFER_EE) | 545 | EXCEPTION(0x0800, FloatingPointUnavailable, program_check_exception, EXC_XFER_EE) |
546 | #else | 546 | #else |
547 | EXCEPTION(0x0800, FloatingPointUnavailable, UnknownException, EXC_XFER_EE) | 547 | EXCEPTION(0x0800, FloatingPointUnavailable, unknown_exception, EXC_XFER_EE) |
548 | #endif | 548 | #endif |
549 | #endif | 549 | #endif |
550 | 550 | ||
@@ -554,20 +554,20 @@ interrupt_base: | |||
554 | EXC_XFER_EE_LITE(0x0c00, DoSyscall) | 554 | EXC_XFER_EE_LITE(0x0c00, DoSyscall) |
555 | 555 | ||
556 | /* Auxillary Processor Unavailable Interrupt */ | 556 | /* Auxillary Processor Unavailable Interrupt */ |
557 | EXCEPTION(0x2900, AuxillaryProcessorUnavailable, UnknownException, EXC_XFER_EE) | 557 | EXCEPTION(0x2900, AuxillaryProcessorUnavailable, unknown_exception, EXC_XFER_EE) |
558 | 558 | ||
559 | /* Decrementer Interrupt */ | 559 | /* Decrementer Interrupt */ |
560 | DECREMENTER_EXCEPTION | 560 | DECREMENTER_EXCEPTION |
561 | 561 | ||
562 | /* Fixed Internal Timer Interrupt */ | 562 | /* Fixed Internal Timer Interrupt */ |
563 | /* TODO: Add FIT support */ | 563 | /* TODO: Add FIT support */ |
564 | EXCEPTION(0x3100, FixedIntervalTimer, UnknownException, EXC_XFER_EE) | 564 | EXCEPTION(0x3100, FixedIntervalTimer, unknown_exception, EXC_XFER_EE) |
565 | 565 | ||
566 | /* Watchdog Timer Interrupt */ | 566 | /* Watchdog Timer Interrupt */ |
567 | #ifdef CONFIG_BOOKE_WDT | 567 | #ifdef CONFIG_BOOKE_WDT |
568 | CRITICAL_EXCEPTION(0x3200, WatchdogTimer, WatchdogException) | 568 | CRITICAL_EXCEPTION(0x3200, WatchdogTimer, WatchdogException) |
569 | #else | 569 | #else |
570 | CRITICAL_EXCEPTION(0x3200, WatchdogTimer, UnknownException) | 570 | CRITICAL_EXCEPTION(0x3200, WatchdogTimer, unknown_exception) |
571 | #endif | 571 | #endif |
572 | 572 | ||
573 | /* Data TLB Error Interrupt */ | 573 | /* Data TLB Error Interrupt */ |
@@ -696,21 +696,21 @@ interrupt_base: | |||
696 | addi r3,r1,STACK_FRAME_OVERHEAD | 696 | addi r3,r1,STACK_FRAME_OVERHEAD |
697 | EXC_XFER_EE_LITE(0x2010, KernelSPE) | 697 | EXC_XFER_EE_LITE(0x2010, KernelSPE) |
698 | #else | 698 | #else |
699 | EXCEPTION(0x2020, SPEUnavailable, UnknownException, EXC_XFER_EE) | 699 | EXCEPTION(0x2020, SPEUnavailable, unknown_exception, EXC_XFER_EE) |
700 | #endif /* CONFIG_SPE */ | 700 | #endif /* CONFIG_SPE */ |
701 | 701 | ||
702 | /* SPE Floating Point Data */ | 702 | /* SPE Floating Point Data */ |
703 | #ifdef CONFIG_SPE | 703 | #ifdef CONFIG_SPE |
704 | EXCEPTION(0x2030, SPEFloatingPointData, SPEFloatingPointException, EXC_XFER_EE); | 704 | EXCEPTION(0x2030, SPEFloatingPointData, SPEFloatingPointException, EXC_XFER_EE); |
705 | #else | 705 | #else |
706 | EXCEPTION(0x2040, SPEFloatingPointData, UnknownException, EXC_XFER_EE) | 706 | EXCEPTION(0x2040, SPEFloatingPointData, unknown_exception, EXC_XFER_EE) |
707 | #endif /* CONFIG_SPE */ | 707 | #endif /* CONFIG_SPE */ |
708 | 708 | ||
709 | /* SPE Floating Point Round */ | 709 | /* SPE Floating Point Round */ |
710 | EXCEPTION(0x2050, SPEFloatingPointRound, UnknownException, EXC_XFER_EE) | 710 | EXCEPTION(0x2050, SPEFloatingPointRound, unknown_exception, EXC_XFER_EE) |
711 | 711 | ||
712 | /* Performance Monitor */ | 712 | /* Performance Monitor */ |
713 | EXCEPTION(0x2060, PerformanceMonitor, PerformanceMonitorException, EXC_XFER_STD) | 713 | EXCEPTION(0x2060, PerformanceMonitor, performance_monitor_exception, EXC_XFER_STD) |
714 | 714 | ||
715 | 715 | ||
716 | /* Debug Interrupt */ | 716 | /* Debug Interrupt */ |
@@ -853,7 +853,7 @@ load_up_spe: | |||
853 | cmpi 0,r4,0 | 853 | cmpi 0,r4,0 |
854 | beq 1f | 854 | beq 1f |
855 | addi r4,r4,THREAD /* want THREAD of last_task_used_spe */ | 855 | addi r4,r4,THREAD /* want THREAD of last_task_used_spe */ |
856 | SAVE_32EVR(0,r10,r4) | 856 | SAVE_32EVRS(0,r10,r4) |
857 | evxor evr10, evr10, evr10 /* clear out evr10 */ | 857 | evxor evr10, evr10, evr10 /* clear out evr10 */ |
858 | evmwumiaa evr10, evr10, evr10 /* evr10 <- ACC = 0 * 0 + ACC */ | 858 | evmwumiaa evr10, evr10, evr10 /* evr10 <- ACC = 0 * 0 + ACC */ |
859 | li r5,THREAD_ACC | 859 | li r5,THREAD_ACC |
@@ -873,7 +873,7 @@ load_up_spe: | |||
873 | stw r4,THREAD_USED_SPE(r5) | 873 | stw r4,THREAD_USED_SPE(r5) |
874 | evlddx evr4,r10,r5 | 874 | evlddx evr4,r10,r5 |
875 | evmra evr4,evr4 | 875 | evmra evr4,evr4 |
876 | REST_32EVR(0,r10,r5) | 876 | REST_32EVRS(0,r10,r5) |
877 | #ifndef CONFIG_SMP | 877 | #ifndef CONFIG_SMP |
878 | subi r4,r5,THREAD | 878 | subi r4,r5,THREAD |
879 | stw r4,last_task_used_spe@l(r3) | 879 | stw r4,last_task_used_spe@l(r3) |
@@ -963,7 +963,7 @@ _GLOBAL(giveup_spe) | |||
963 | addi r3,r3,THREAD /* want THREAD of task */ | 963 | addi r3,r3,THREAD /* want THREAD of task */ |
964 | lwz r5,PT_REGS(r3) | 964 | lwz r5,PT_REGS(r3) |
965 | cmpi 0,r5,0 | 965 | cmpi 0,r5,0 |
966 | SAVE_32EVR(0, r4, r3) | 966 | SAVE_32EVRS(0, r4, r3) |
967 | evxor evr6, evr6, evr6 /* clear out evr6 */ | 967 | evxor evr6, evr6, evr6 /* clear out evr6 */ |
968 | evmwumiaa evr6, evr6, evr6 /* evr6 <- ACC = 0 * 0 + ACC */ | 968 | evmwumiaa evr6, evr6, evr6 /* evr6 <- ACC = 0 * 0 + ACC */ |
969 | li r4,THREAD_ACC | 969 | li r4,THREAD_ACC |
@@ -1028,10 +1028,14 @@ _GLOBAL(set_context) | |||
1028 | * goes at the beginning of the data segment, which is page-aligned. | 1028 | * goes at the beginning of the data segment, which is page-aligned. |
1029 | */ | 1029 | */ |
1030 | .data | 1030 | .data |
1031 | _GLOBAL(sdata) | 1031 | .align 12 |
1032 | _GLOBAL(empty_zero_page) | 1032 | .globl sdata |
1033 | sdata: | ||
1034 | .globl empty_zero_page | ||
1035 | empty_zero_page: | ||
1033 | .space 4096 | 1036 | .space 4096 |
1034 | _GLOBAL(swapper_pg_dir) | 1037 | .globl swapper_pg_dir |
1038 | swapper_pg_dir: | ||
1035 | .space 4096 | 1039 | .space 4096 |
1036 | 1040 | ||
1037 | /* Reserved 4k for the critical exception stack & 4k for the machine | 1041 | /* Reserved 4k for the critical exception stack & 4k for the machine |
@@ -1040,13 +1044,15 @@ _GLOBAL(swapper_pg_dir) | |||
1040 | .align 12 | 1044 | .align 12 |
1041 | exception_stack_bottom: | 1045 | exception_stack_bottom: |
1042 | .space BOOKE_EXCEPTION_STACK_SIZE * NR_CPUS | 1046 | .space BOOKE_EXCEPTION_STACK_SIZE * NR_CPUS |
1043 | _GLOBAL(exception_stack_top) | 1047 | .globl exception_stack_top |
1048 | exception_stack_top: | ||
1044 | 1049 | ||
1045 | /* | 1050 | /* |
1046 | * This space gets a copy of optional info passed to us by the bootstrap | 1051 | * This space gets a copy of optional info passed to us by the bootstrap |
1047 | * which is used to pass parameters into the kernel like root=/dev/sda1, etc. | 1052 | * which is used to pass parameters into the kernel like root=/dev/sda1, etc. |
1048 | */ | 1053 | */ |
1049 | _GLOBAL(cmd_line) | 1054 | .globl cmd_line |
1055 | cmd_line: | ||
1050 | .space 512 | 1056 | .space 512 |
1051 | 1057 | ||
1052 | /* | 1058 | /* |
@@ -1055,4 +1061,3 @@ _GLOBAL(cmd_line) | |||
1055 | */ | 1061 | */ |
1056 | abatron_pteptrs: | 1062 | abatron_pteptrs: |
1057 | .space 8 | 1063 | .space 8 |
1058 | |||