
Move video memory reservation for SPL at end of RAM so that it does not interefere with reservations for next stage so that the next stage need not have holes in between for passed regions and instead it can maintain continuity in reservations.
Also catch the bloblist before starting reservations to avoid the same problem.
While at it, also fill missing fields in video handoff struct before passing it to next stage.
This is as per discussions at : For moving SPL framebuffer reservation at end of RAM:
https://lore.kernel.org/all/CAPnjgZ3xSoe_G3yrqwuAvoiVjUfZ+YQgkOR0ZTVXGT9VK8T...
For filling missing video handoff fields : https://lore.kernel.org/all/CAPnjgZ1Hs0rNf0JDirp6YPsOQ5=QqQSP9g9qRwLoOASUV8a...
Changelog: V2: - Make a generic function to reserve video memory at SPL stage - Add debug prints while skipping framebuffer allocation at uboot - Correct commenting style as suggested
V3: - Change spl_reserve_video to spl_reserve_video_from_ram_top which enforce framebuffer reservation from end of RAM - Use gd->ram_top instead of local ram_top and update gd->reloc_addr after each reservation - Print error message on framebuffer reservation - Update SPL doc with spl splash screen specific info
Test logs (at tip of U-Boot 2024.01-rc1 + these patches): https://gist.github.com/devarsht/6a748b1d69bd2a4b60695a5e7776db73
Devarsh Thakkar (6): arm: mach-k3: common: Reserve video memory from end of the RAM board: ti: am62x: evm: Remove video_setup from spl_board_init common/board_f: Catch bloblist before starting resevations video: Skip framebuffer reservation if already reserved video: Fill video handoff in video post probe doc: spl: Add info regarding memory reservation and missing Kconfigs
arch/arm/mach-k3/common.c | 17 ++++++++++----- board/ti/am62x/evm.c | 18 ---------------- common/board_f.c | 33 +++++++++++++++++++++++++--- common/spl/spl.c | 27 +++++++++++++++++++++++ doc/develop/spl.rst | 22 +++++++++++++++++++ drivers/video/video-uclass.c | 42 +++++++++++++++++++++++++++--------- include/spl.h | 6 ++++++ 7 files changed, 129 insertions(+), 36 deletions(-)