]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
fdt: lmb: add reserved regions as no-overwrite
authorSughosh Ganu <sughosh.ganu@linaro.org>
Mon, 21 Oct 2024 17:24:33 +0000 (22:54 +0530)
committerTom Rini <trini@konsulko.com>
Tue, 29 Oct 2024 18:09:55 +0000 (12:09 -0600)
The boot_fdt_add_mem_rsv_regions() function reserves the memreserve and
reserved-memory regions. These regions are being set with the LMB_NONE
flag which allows overwriting and re-using the regions. This was fine
earlier when the LMB memory map was local and not enforced
globally. But that is no longer the case. Mark these regions as
LMB_NOOVERWRITE so that they cannot be used.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reported-by: Vaishnav Achath <vaishnav.a@ti.com>
boot/image-fdt.c

index 8eda521693dc4ebd72c3bfabfc9c8599c76ec700..9a1fa8840d7bc82df7d1185012dae664b03fe52d 100644 (file)
@@ -110,7 +110,7 @@ void boot_fdt_add_mem_rsv_regions(void *fdt_blob)
        for (i = 0; i < total; i++) {
                if (fdt_get_mem_rsv(fdt_blob, i, &addr, &size) != 0)
                        continue;
-               boot_fdt_reserve_region(addr, size, LMB_NONE);
+               boot_fdt_reserve_region(addr, size, LMB_NOOVERWRITE);
        }
 
        /* process reserved-memory */
@@ -122,7 +122,7 @@ void boot_fdt_add_mem_rsv_regions(void *fdt_blob)
                        ret = fdt_get_resource(fdt_blob, subnode, "reg", 0,
                                               &res);
                        if (!ret && fdtdec_get_is_enabled(fdt_blob, subnode)) {
-                               flags = LMB_NONE;
+                               flags = LMB_NOOVERWRITE;
                                if (fdtdec_get_bool(fdt_blob, subnode,
                                                    "no-map"))
                                        flags = LMB_NOMAP;