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
9 .title "ARM Kernel Entry Point"
10 .include "ntoskrnl/include/internal/arm/kxarm.h"
11 .include "ntoskrnl/include/internal/arm/ksarm.h"
14 NESTED_ENTRY KiSystemStartup
15 PROLOG_END KiSystemStartup
22 orr r3, r1, #CPSR_FIQ_MODE
26 // Set FIQ stack and registers
28 ldr sp, [a2, #LpbInterruptStack]
34 // Put us in ABORT mode
37 orr r3, r1, #CPSR_ABORT_MODE
43 ldr sp, [a2, #LpbPanicStack]
46 // Put us in UND (Undefined) mode
49 orr r3, r1, #CPSR_UND_MODE
55 ldr sp, [a2, #LpbPanicStack]
58 // Put us into SVC (Supervisor) mode
61 orr r3, r1, #CPSR_SVC_MODE
65 // Switch to boot kernel stack
67 ldr sp, [a2, #LpbKernelStack]
74 ENTRY_END KiSystemStartup