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