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