]> git.dujemihanovic.xyz Git - u-boot.git/commit
Merge patch series "global_data: Reduce size of struct global_data"
authorTom Rini <trini@konsulko.com>
Mon, 26 Aug 2024 20:06:16 +0000 (14:06 -0600)
committerTom Rini <trini@konsulko.com>
Mon, 26 Aug 2024 20:06:16 +0000 (14:06 -0600)
commit02d587a447ccae12618abbfb2b8ddd88ac3c7648
tree23acd3b2a0e077ab3a4f8924d132a137ea01ad20
parent7670200d4b7bbb572290d0fb2ed9cd0fb1f989cc
parentcafaa1a17f765e684e3a5b52448d495c0e1da83d
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