1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Passing basic information from SPL to U-Boot proper
4  *
5  * Copyright 2018 Google, Inc
6  */
7 
8 #ifndef __HANDOFF_H
9 #define __HANDOFF_H
10 
11 #if CONFIG_IS_ENABLED(HANDOFF)
12 
13 #include <linux/types.h>
14 #include <asm/handoff.h>
15 
16 /**
17  * struct spl_handoff - information passed from SPL to U-Boot proper
18  *
19  * @ram_size: Value to use for gd->ram_size
20  */
21 struct spl_handoff {
22 	struct arch_spl_handoff arch;
23 	u64 ram_size;
24 	struct {
25 		u64 start;
26 		u64 size;
27 	} ram_bank[CONFIG_NR_DRAM_BANKS];
28 };
29 
30 void handoff_save_dram(struct spl_handoff *ho);
31 void handoff_load_dram_size(struct spl_handoff *ho);
32 void handoff_load_dram_banks(struct spl_handoff *ho);
33 
34 /**
35  * handoff_arch_save() - Save arch-specific info into the handoff area
36  *
37  * This is defined to an empty function by default, but arch-specific code can
38  * define it to write to spi_handoff->arch. It is called from
39  * write_spl_handoff().
40  *
41  * @ho: Handoff area to fill in
42  * Return: 0 if OK, -ve on error
43  */
44 int handoff_arch_save(struct spl_handoff *ho);
45 
46 #endif
47 
48 #endif
49