1*cd357ad1SPeng Fan/* SPDX-License-Identifier: GPL-2.0+ */ 2*cd357ad1SPeng Fan/* 3*cd357ad1SPeng Fan * Copyright 2017 NXP 4*cd357ad1SPeng Fan */ 5*cd357ad1SPeng Fan 6*cd357ad1SPeng Fan#include <config.h> 7*cd357ad1SPeng Fan 8*cd357ad1SPeng Fan.align 8 9*cd357ad1SPeng Fan.global rom_pointer 10*cd357ad1SPeng Fanrom_pointer: 11*cd357ad1SPeng Fan .space 256 12*cd357ad1SPeng Fan 13*cd357ad1SPeng Fan/* 14*cd357ad1SPeng Fan * Routine: save_boot_params (called after reset from start.S) 15*cd357ad1SPeng Fan */ 16*cd357ad1SPeng Fan 17*cd357ad1SPeng Fan.global save_boot_params 18*cd357ad1SPeng Fansave_boot_params: 19*cd357ad1SPeng Fan /* The firmware provided ATAG/FDT address can be found in r2/x0 */ 20*cd357ad1SPeng Fan adr x0, rom_pointer 21*cd357ad1SPeng Fan stp x1, x2, [x0], #16 22*cd357ad1SPeng Fan stp x3, x4, [x0], #16 23*cd357ad1SPeng Fan stp x5, x6, [x0], #16 24*cd357ad1SPeng Fan stp x7, x8, [x0], #16 25*cd357ad1SPeng Fan stp x9, x10, [x0], #16 26*cd357ad1SPeng Fan stp x11, x12, [x0], #16 27*cd357ad1SPeng Fan stp x13, x14, [x0], #16 28*cd357ad1SPeng Fan stp x15, x16, [x0], #16 29*cd357ad1SPeng Fan stp x17, x18, [x0], #16 30*cd357ad1SPeng Fan stp x19, x20, [x0], #16 31*cd357ad1SPeng Fan stp x21, x22, [x0], #16 32*cd357ad1SPeng Fan stp x23, x24, [x0], #16 33*cd357ad1SPeng Fan stp x25, x26, [x0], #16 34*cd357ad1SPeng Fan stp x27, x28, [x0], #16 35*cd357ad1SPeng Fan stp x29, x30, [x0], #16 36*cd357ad1SPeng Fan mov x30, sp 37*cd357ad1SPeng Fan str x30, [x0], #8 38*cd357ad1SPeng Fan 39*cd357ad1SPeng Fan /* Returns */ 40*cd357ad1SPeng Fan b save_boot_params_ret 41*cd357ad1SPeng Fan 42*cd357ad1SPeng Fan.global restore_boot_params 43*cd357ad1SPeng Fanrestore_boot_params: 44*cd357ad1SPeng Fan adr x0, rom_pointer 45*cd357ad1SPeng Fan ldp x1, x2, [x0], #16 46*cd357ad1SPeng Fan ldp x3, x4, [x0], #16 47*cd357ad1SPeng Fan ldp x5, x6, [x0], #16 48*cd357ad1SPeng Fan ldp x7, x8, [x0], #16 49*cd357ad1SPeng Fan ldp x9, x10, [x0], #16 50*cd357ad1SPeng Fan ldp x11, x12, [x0], #16 51*cd357ad1SPeng Fan ldp x13, x14, [x0], #16 52*cd357ad1SPeng Fan ldp x15, x16, [x0], #16 53*cd357ad1SPeng Fan ldp x17, x18, [x0], #16 54*cd357ad1SPeng Fan ldp x19, x20, [x0], #16 55*cd357ad1SPeng Fan ldp x21, x22, [x0], #16 56*cd357ad1SPeng Fan ldp x23, x24, [x0], #16 57*cd357ad1SPeng Fan ldp x25, x26, [x0], #16 58*cd357ad1SPeng Fan ldp x27, x28, [x0], #16 59*cd357ad1SPeng Fan ldp x29, x30, [x0], #16 60*cd357ad1SPeng Fan ldr x0, [x0] 61*cd357ad1SPeng Fan mov sp, x0 62*cd357ad1SPeng Fan ret 63