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
21 orr r3, r1, #CPSR_FIQ_MODE
25 // Set FIQ stack and registers
27 ldr sp, [a2, #LpbInterruptStack]
33 // Put us in ABORT mode
36 orr r3, r1, #CPSR_ABORT_MODE
42 ldr sp, [a2, #LpbPanicStack]
45 // Put us in UND (Undefined) mode
48 orr r3, r1, #CPSR_UND_MODE
54 ldr sp, [a2, #LpbPanicStack]
57 // Put us into SVC (Supervisor) mode
60 orr r3, r1, #CPSR_SVC_MODE
64 // Switch to boot kernel stack
66 ldr sp, [a2, #LpbKernelStack]
73 ENTRY_END KiSystemStartup