1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * (C) Copyright 2016 3*4882a593Smuzhiyun * Cédric Schieli <cschieli@gmail.com> 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun#include <config.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun.align 8 11*4882a593Smuzhiyun.global fw_dtb_pointer 12*4882a593Smuzhiyunfw_dtb_pointer: 13*4882a593Smuzhiyun#ifdef CONFIG_ARM64 14*4882a593Smuzhiyun .dword 0x0 15*4882a593Smuzhiyun#else 16*4882a593Smuzhiyun .word 0x0 17*4882a593Smuzhiyun#endif 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun/* 20*4882a593Smuzhiyun * Routine: save_boot_params (called after reset from start.S) 21*4882a593Smuzhiyun * Description: save ATAG/FDT address provided by the firmware at boot time 22*4882a593Smuzhiyun */ 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun.global save_boot_params 25*4882a593Smuzhiyunsave_boot_params: 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun /* The firmware provided ATAG/FDT address can be found in r2/x0 */ 28*4882a593Smuzhiyun#ifdef CONFIG_ARM64 29*4882a593Smuzhiyun adr x8, fw_dtb_pointer 30*4882a593Smuzhiyun str x0, [x8] 31*4882a593Smuzhiyun#else 32*4882a593Smuzhiyun str r2, fw_dtb_pointer 33*4882a593Smuzhiyun#endif 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun /* Returns */ 36*4882a593Smuzhiyun b save_boot_params_ret 37