
+Bin Meng
Hi Devarsh,
On Tue, 1 Aug 2023 at 08:04, Devarsh Thakkar devarsht@ti.com wrote:
When passing framebuffer address using bloblist, check that passed address is overlapping with current relocation address, if so move the relocation address after the framebuffer region to avoid overlap.
Fixes: 5bc610a7d9d ("common: board_f: Pass frame buffer info from SPL to u-boot") Signed-off-by: Devarsh Thakkar devarsht@ti.com
common/board_f.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/common/board_f.c b/common/board_f.c index 7d2c380e91..20fa17207a 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -419,7 +419,10 @@ static int reserve_video(void) if (!ho) return log_msg_ret("blf", -ENOENT); video_reserve_from_bloblist(ho);
gd->relocaddr = ho->fb;
/* Relocate after framebuffer area to avoid overlap */
if (gd->relocaddr > (unsigned long)ho->fb)
gd->relocaddr = ho->fb;
} else if (CONFIG_IS_ENABLED(VIDEO)) { ulong addr; int ret;
-- 2.34.1
Yes this happens to work with qemu-x86_64. However it depends on the SPL frame buffer being below the current allocation area. Why would it be below, in general? This seems like a land mine for others to trip up on.
Anyway I am OK with this for now since it fixes my problems. I would prefer something positive like the Kconfig I provided, since I still think it is very weird to interrupt the U-Boot reservation process like this.
Reviewed-by: Simon Glass sjg@chromium.org
Regards, Simon