/* SPDX-License-Identifier: GPL-2.0-only */

#include <arch/asm.h>

/* Required to jump to kernel in ARM state */
.arm
/* void boot_linux(void *kernel_ptr, void *fdt_ptr); */
ENTRY(boot_linux)
	/* Save kernel ptr */
	mov r3, r0
	/* Set R2 = fdt */
	mov r2, r1
	/* Set R0 = 0x00000000 as expected by Linux ABI */
	mov r0, #0
	/* Set R1 = 0xffffffff as expected by Linux ABI */
	mov r1, #-1
	/* Linux ABI expects SVC mode (0x13) with IRQ(7) and FIQ(6) disabled. */
	msr cpsr_cxf, #0xd3
	/* Jump to kernel */
	mov pc, r3
ENDPROC(boot_linux)