1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Utility functions for FEL mode. 4 * 5 * Copyright (c) 2015 Google, Inc 6 */ 7 8#include <asm-offsets.h> 9#include <config.h> 10#include <asm/system.h> 11#include <linux/linkage.h> 12 13ENTRY(save_boot_params) 14 ldr r0, =fel_stash 15 str sp, [r0, #0] 16 str lr, [r0, #4] 17 mrs lr, cpsr @ Read CPSR 18 str lr, [r0, #8] 19 mrc p15, 0, lr, c1, c0, 0 @ Read CP15 SCTLR Register 20 str lr, [r0, #12] 21 b save_boot_params_ret 22ENDPROC(save_boot_params) 23 24ENTRY(return_to_fel) 25 mov sp, r0 26 mov lr, r1 27 ldr r0, =fel_stash 28 ldr r1, [r0, #12] 29 mcr p15, 0, r1, c1, c0, 0 @ Write CP15 SCTLR register 30 ldr r1, [r0, #8] 31 msr cpsr, r1 @ Write CPSR 32 bx lr 33ENDPROC(return_to_fel) 34