
On Sat, Nov 23, 2024 at 11:55:02AM -0800, Matthew Garrett wrote:
From: Matthew Garrett mgarrett@aurora.tech
For systems with more complicated firmware, the firmware memory map may vary significantly based on a number of factors. This makes it difficult to pick a hardcoded load address. Add a command for finding an available address with sufficient room to load the provided path.
Signed-off-by: Matthew Garrett mgarrett@aurora.tech
cmd/Kconfig | 7 ++++ cmd/Makefile | 1 + cmd/addr_find.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 cmd/addr_find.c
This needs to be reworked on top of how lmb works today (which did change post v2024.10) and looks a lot like what arch/arm/mach-apple/board.c::board_late_init() was doing, even back in 2022. Do you end up using this functionality on more than one board / family of boards? The easy path is likely to just follow what mach-apple does, but the more broad path would be adding an option to configure the key environment variables that are used as buffers and documented in doc/develop/bootstd/overview.rst / doc/develop/distro.rst dynamically rather than statically.