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