board_f: Add a new struct to hold pre-relocation info
Quite a few of the members of struct global_data are only used before
reloction, or have little meaning afterwards, yet they hang around in
struct global_data for the lifetime of U-Boot. This uses up precious
pre-relocation SRAM on many boards.
To help with this, start a new struct which exists only before
relocation. Move new_fdt into this new struct. Drop the display of it
in the 'bdinfo' command as it is probably not very useful.
Note that the field does not exist in SPL builds.
Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
index 1252b8a..8a1a4e2 100644
--- a/include/asm-generic/global_data.h
+++ b/include/asm-generic/global_data.h
@@ -20,6 +20,7 @@
*/
#ifndef __ASSEMBLY__
+#include <board_f.h>
#include <cyclic.h>
#include <event_internal.h>
#include <fdtdec.h>
@@ -42,6 +43,12 @@
* @bd: board information
*/
struct bd_info *bd;
+#ifndef CONFIG_SPL_BUILD
+ /**
+ * @boardf: information only used before relocation
+ */
+ struct board_f *boardf;
+#endif
/**
* @flags: global data flags
*
@@ -220,10 +227,6 @@
*/
const void *fdt_blob;
/**
- * @new_fdt: relocated device tree
- */
- void *new_fdt;
- /**
* @fdt_size: space reserved for relocated device space
*/
unsigned long fdt_size;
diff --git a/include/board_f.h b/include/board_f.h
new file mode 100644
index 0000000..74fca6d
--- /dev/null
+++ b/include/board_f.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2024 Google LLC
+ * Written by: Simon Glass <sjg@chromeium.org>
+ */
+
+#ifndef __BOARD_F
+#define __BOARD_F
+
+/**
+ * struct board_f: Information used only before relocation
+ *
+ * This struct is set up in board_init_f() and used to deal with relocation. It
+ * is not available after relocation.
+ */
+struct board_f {
+ /**
+ * @new_fdt: relocated device tree
+ */
+ void *new_fdt;
+};
+
+#endif