| /* 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) |