aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/common/init/handoff.c
diff options
context:
space:
mode:
Diffstat (limited to 'roms/u-boot/common/init/handoff.c')
-rw-r--r--roms/u-boot/common/init/handoff.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/roms/u-boot/common/init/handoff.c b/roms/u-boot/common/init/handoff.c
new file mode 100644
index 000000000..d0be1bb17
--- /dev/null
+++ b/roms/u-boot/common/init/handoff.c
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Passing basic information from SPL to U-Boot proper
+ *
+ * Copyright 2018 Google, Inc
+ */
+
+#include <common.h>
+#include <handoff.h>
+#include <asm/global_data.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void handoff_save_dram(struct spl_handoff *ho)
+{
+ struct bd_info *bd = gd->bd;
+ int i;
+
+ ho->ram_size = gd->ram_size;
+
+ for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
+ ho->ram_bank[i].start = bd->bi_dram[i].start;
+ ho->ram_bank[i].size = bd->bi_dram[i].size;
+ }
+}
+
+void handoff_load_dram_size(struct spl_handoff *ho)
+{
+ gd->ram_size = ho->ram_size;
+}
+
+void handoff_load_dram_banks(struct spl_handoff *ho)
+{
+ struct bd_info *bd = gd->bd;
+ int i;
+
+ for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
+ bd->bi_dram[i].start = ho->ram_bank[i].start;
+ bd->bi_dram[i].size = ho->ram_bank[i].size;
+ }
+}