1/* SPDX-License-Identifier: GPL-2.0-only */ 2 3#include <arch/asm.h> 4 5/* Required to jump to kernel in ARM state */ 6.arm 7/* void boot_linux(void *kernel_ptr, void *fdt_ptr); */ 8ENTRY(boot_linux) 9 /* Save kernel ptr */ 10 mov r3, r0 11 /* Set R2 = fdt */ 12 mov r2, r1 13 /* Set R0 = 0x00000000 as expected by Linux ABI */ 14 mov r0, #0 15 /* Set R1 = 0xffffffff as expected by Linux ABI */ 16 mov r1, #-1 17 /* Linux ABI expects SVC mode (0x13) with IRQ(7) and FIQ(6) disabled. */ 18 msr cpsr_cxf, #0xd3 19 /* Jump to kernel */ 20 mov pc, r3 21ENDPROC(boot_linux) 22