- Revert 49927 "Update to trunk" as it breaks KsStudio (again)
[reactos.git] / ntoskrnl / ke / arm / boot.s
1 /*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: ntoskrnl/ke/arm/boot.s
5 * PURPOSE: Implements the kernel entry point for ARM machines
6 * PROGRAMMERS: ReactOS Portable Systems Group
7 */
8
9 .title "ARM Kernel Entry Point"
10 .include "ntoskrnl/include/internal/arm/kxarm.h"
11 .include "ntoskrnl/include/internal/arm/ksarm.h"
12
13 TEXTAREA
14 NESTED_ENTRY KiSystemStartup
15 PROLOG_END KiSystemStartup
16
17 /* Put us in FIQ mode, set IRQ stack */
18 msr cpsr_c, #CPSR_FIQ_MODE
19 ldr sp, [a1, #LpbInterruptStack]
20
21 /* Repeat for IRQ mode */
22 msr cpsr_c, #CPSR_IRQ_MODE
23 ldr sp, [a1, #LpbInterruptStack]
24
25 /* Put us in ABORT mode and set the panic stack */
26 msr cpsr_c, #CPSR_ABORT_MODE
27 ldr sp, [a1, #LpbPanicStack]
28
29 /* Repeat for UND (Undefined) mode */
30 msr cpsr_c, #CPSR_UND_MODE
31 ldr sp, [a1, #LpbPanicStack]
32
33 /* Put us into SVC (Supervisor) mode and set the kernel stack */
34 msr cpsr_c, #CPSR_SVC_MODE
35 ldr sp, [a1, #LpbKernelStack]
36
37 /* Go to C code */
38 b KiInitializeSystem
39
40 ENTRY_END KiSystemStartup
41
42 /* EOF */