xref: /openbmc/u-boot/common/init/handoff.c (revision 6b21502229035779059493b2193fd790448fe85e)
1*b0edea3cSSimon Glass // SPDX-License-Identifier: GPL-2.0+
2*b0edea3cSSimon Glass /*
3*b0edea3cSSimon Glass  * Passing basic information from SPL to U-Boot proper
4*b0edea3cSSimon Glass  *
5*b0edea3cSSimon Glass  * Copyright 2018 Google, Inc
6*b0edea3cSSimon Glass  */
7*b0edea3cSSimon Glass 
8*b0edea3cSSimon Glass #include <common.h>
9*b0edea3cSSimon Glass #include <handoff.h>
10*b0edea3cSSimon Glass 
11*b0edea3cSSimon Glass DECLARE_GLOBAL_DATA_PTR;
12*b0edea3cSSimon Glass 
handoff_save_dram(struct spl_handoff * ho)13*b0edea3cSSimon Glass void handoff_save_dram(struct spl_handoff *ho)
14*b0edea3cSSimon Glass {
15*b0edea3cSSimon Glass 	ho->ram_size = gd->ram_size;
16*b0edea3cSSimon Glass #ifdef CONFIG_NR_DRAM_BANKS
17*b0edea3cSSimon Glass 	{
18*b0edea3cSSimon Glass 		struct bd_info *bd = gd->bd;
19*b0edea3cSSimon Glass 		int i;
20*b0edea3cSSimon Glass 
21*b0edea3cSSimon Glass 		for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
22*b0edea3cSSimon Glass 			ho->ram_bank[i].start = bd->bi_dram[i].start;
23*b0edea3cSSimon Glass 			ho->ram_bank[i].size = bd->bi_dram[i].size;
24*b0edea3cSSimon Glass 		}
25*b0edea3cSSimon Glass 	}
26*b0edea3cSSimon Glass #endif
27*b0edea3cSSimon Glass }
28*b0edea3cSSimon Glass 
handoff_load_dram_size(struct spl_handoff * ho)29*b0edea3cSSimon Glass void handoff_load_dram_size(struct spl_handoff *ho)
30*b0edea3cSSimon Glass {
31*b0edea3cSSimon Glass 	gd->ram_size = ho->ram_size;
32*b0edea3cSSimon Glass }
33*b0edea3cSSimon Glass 
handoff_load_dram_banks(struct spl_handoff * ho)34*b0edea3cSSimon Glass void handoff_load_dram_banks(struct spl_handoff *ho)
35*b0edea3cSSimon Glass {
36*b0edea3cSSimon Glass #ifdef CONFIG_NR_DRAM_BANKS
37*b0edea3cSSimon Glass 	{
38*b0edea3cSSimon Glass 		struct bd_info *bd = gd->bd;
39*b0edea3cSSimon Glass 		int i;
40*b0edea3cSSimon Glass 
41*b0edea3cSSimon Glass 		for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
42*b0edea3cSSimon Glass 			bd->bi_dram[i].start = ho->ram_bank[i].start;
43*b0edea3cSSimon Glass 			bd->bi_dram[i].size = ho->ram_bank[i].size;
44*b0edea3cSSimon Glass 		}
45*b0edea3cSSimon Glass 	}
46*b0edea3cSSimon Glass #endif
47*b0edea3cSSimon Glass }
48