freebsd-skq/stand
Kyle Evans cc03366097 stand/fdt: Scale blob size better as overlays apply
Currently, our overlay blob will grow to include the size of the complete
overlay blob we're applying. This doesn't scale very well with a lot of
overlays- they tend to include a lot of overhead, and they will generally
only add a fraction of their total size to the blob they're being applied
to.

To combat this, pack the blob as we apply new overlays and keep track of how
many overlays we've applied. Only ubldr has any fixups to be applied after
overlays, so we only need to re-pad the blob in ubldr. Presumably the
allocation won't fail since we just did a lot worse in trying to apply
overlays and succeeded.

I have no intention of removing the padding in make_dtb.sh. There might be
an argument to be had over whether it should be configurable, since ubldr
*is* the only loader that actually has fixups to be applied and we can do
this at runtime, but I'm not too concerned about this.

This diff has been sitting in Phabricator for a year and a half, but I've
decided to flush it as it does make sure that we're scaling the blob
appropriately and leave room at the end for fixups in case of some freak
circumstance where applying overlays leaves us with a blob of insufficient
size.

Reviewed by:	gonzo (a long time ago)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D14133
2020-01-09 04:34:42 +00:00
..
arm Remove NAND and NANDFS support 2019-06-25 04:50:09 +00:00
arm64 No need to make objects here. 2018-04-27 22:15:18 +00:00
common loader: clean up devopen and devclose a bit 2019-12-13 08:41:37 +00:00
defaults Enable lualoader's kernel autodetection, disabled on install media 2018-10-11 17:17:54 +00:00
efi loader.efi: efi_readkey_ex needs to key despite the shift status or toggle status 2019-12-17 08:30:11 +00:00
fdt stand/fdt: Scale blob size better as overlays apply 2020-01-09 04:34:42 +00:00
ficl Add support for hypervisor check on x86 2019-10-24 20:02:48 +00:00
ficl32 Enable veriexec for loader 2019-02-26 06:22:10 +00:00
forth loader_4th: menu items need to reset color attribute, not switch to white 2019-09-22 16:10:25 +00:00
i386 In gptboot, don't assume a partition number is a single digit, 1-9. GPT 2019-12-22 22:33:22 +00:00
kshim A more definitions to kernel emulation shim in order to build stand/usb. 2018-02-07 18:50:36 +00:00
liblua stand: liblua: drop default buffer size to 128 2019-12-12 01:35:56 +00:00
liblua32 Add Lua as a scripting langauge to /boot/loader 2018-02-12 15:31:53 +00:00
libofw Move stand/ofw/libofw to stand/libofw. 2020-01-02 04:34:22 +00:00
libsa loader: update zfsimpl.c from illumos review suggestions 2020-01-06 19:35:22 +00:00
libsa32 Enable veriexec for loader 2019-02-26 06:22:10 +00:00
lua lualoader: correct a typo from r354247 2019-12-03 18:44:19 +00:00
man Improve formatting. 2018-08-15 11:39:13 +00:00
mips mips: ubldr: use truncated load address for mips32 2019-09-18 01:33:17 +00:00
powerpc Move stand/ofw/libofw to stand/libofw. 2020-01-02 04:34:22 +00:00
sparc64 Move stand/ofw/libofw to stand/libofw. 2020-01-02 04:34:22 +00:00
uboot stand/fdt: Scale blob size better as overlays apply 2020-01-09 04:34:42 +00:00
usb Distinguish between "no partition" and "choose best partition" with a constant. 2019-03-24 18:51:52 +00:00
userboot loader: userboot/test should accept more than one disk 2019-11-03 09:14:29 +00:00
defs.mk Move stand/ofw/libofw to stand/libofw. 2020-01-02 04:34:22 +00:00
fdt.mk
ficl.mk ficl pfopen: verify file 2019-05-24 19:43:38 +00:00
loader.mk Add flua to the base system, install to /usr/libexec 2019-11-18 23:21:13 +00:00
lua.mk Do not include float interfaces when using libsa. 2018-02-23 04:04:25 +00:00
Makefile Move stand/ofw/libofw to stand/libofw. 2020-01-02 04:34:22 +00:00
Makefile.amd64 Create LOADER_UBOOT, and LOADER_OFW. Move these options out of 2018-03-01 19:50:55 +00:00
Makefile.inc Minor flags cleanup 2017-12-02 00:06:58 +00:00
uboot.mk Unify metadata load files for arm, mips, powerpc, sparc64 2018-02-13 03:44:50 +00:00