summaryrefslogtreecommitdiff
path: root/include/handoff.h
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2024-08-26 14:06:16 -0600
committerTom Rini <trini@konsulko.com>2024-08-26 14:06:16 -0600
commit02d587a447ccae12618abbfb2b8ddd88ac3c7648 (patch)
tree23acd3b2a0e077ab3a4f8924d132a137ea01ad20 /include/handoff.h
parent7670200d4b7bbb572290d0fb2ed9cd0fb1f989cc (diff)
parentcafaa1a17f765e684e3a5b52448d495c0e1da83d (diff)
Merge patch series "global_data: Reduce size of struct global_data"
Simon Glass <sjg@chromium.org> says: The global data structure has grown quite a lot over the years, being the best place to put an important pointer or something that must be accessed before and after relocation. This series attempts to reduce the size a little, by moving some things out and shrinking and aligning some fields. Some fields are needed during init but not afterwards. To deal with this a new 'boardf' structure is created, which sits on the stack and is only present during board_init_f(). It is possible that more fields could move to this struct, but for now only 4 are moved. An assumption is made that an int is 32-bits wide on all architectures, which seems to be true, but maintainers should be able to confirm. Mostly the code-size impact is neutral, but the patch 'Use less space for environment fields' does increase U-Boot's size by about 30 bytes on aarch64. For firefly-rk3399 (64-bit) the size of global reduces from 456 to 368 bytes. For SPL it reduces from 416 to 272 bytes. There are other things which could be attempted, for example: - Using hlist instead of list for some lists - Checking that only necessary fields are present in SPL
Diffstat (limited to 'include/handoff.h')
-rw-r--r--include/handoff.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/handoff.h b/include/handoff.h
index c0ae7b19a75..0072ea832f8 100644
--- a/include/handoff.h
+++ b/include/handoff.h
@@ -32,6 +32,13 @@ void handoff_load_dram_size(struct spl_handoff *ho);
void handoff_load_dram_banks(struct spl_handoff *ho);
/**
+ * handoff_get() - Get the SPL handoff information
+ *
+ * Return: Pointer to SPL handoff if received, else NULL
+ */
+struct spl_handoff *handoff_get(void);
+
+/**
* handoff_arch_save() - Save arch-specific info into the handoff area
*
* This is defined to an empty function by default, but arch-specific code can