Hi Devarsh,
On 22/02/24 18:38, Devarsh Thakkar wrote: > Create separate helper for just reserving framebuffer region without > creating or enabling simple-framebuffer node. > > This is useful for scenarios where user want to preserve the bootloader > splash screen till OS boots up and display server gets started without > displaying anything else in between and thus not requiring > simple-framebuffer. > > Signed-off-by: Devarsh Thakkar <devar...@ti.com> > --- > boot/fdt_simplefb.c | 12 +----------- > boot/fdt_support.c | 21 +++++++++++++++++++++ > include/fdt_support.h | 2 ++ > 3 files changed, 24 insertions(+), 11 deletions(-) Reviewed-by: Nikhil M Jain <n-ja...@ti.com> > > diff --git a/boot/fdt_simplefb.c b/boot/fdt_simplefb.c > index b0221eaf2a..837920bd3a 100644 > --- a/boot/fdt_simplefb.c > +++ b/boot/fdt_simplefb.c > @@ -107,7 +107,6 @@ static int fdt_simplefb_enable_existing_node(void *blob) > #if IS_ENABLED(CONFIG_VIDEO) > int fdt_simplefb_enable_and_mem_rsv(void *blob) > { > - struct fdt_memory mem; > int ret; > > /* nothing to do when video is not active */ > @@ -118,15 +117,6 @@ int fdt_simplefb_enable_and_mem_rsv(void *blob) > if (ret) > return ret; > > - /* nothing to do when the frame buffer is not defined */ > - if (gd->video_bottom == gd->video_top) > - return 0; > - > - /* reserved with no-map tag the video buffer */ > - mem.start = gd->video_bottom; > - mem.end = gd->video_top - 1; > - > - return fdtdec_add_reserved_memory(blob, "framebuffer", &mem, NULL, 0, > NULL, > - FDTDEC_RESERVED_MEMORY_NO_MAP); > + return fdt_add_fb_mem_rsv(blob); > } > #endif > diff --git a/boot/fdt_support.c b/boot/fdt_support.c > index 090d82ee80..07aa7337e8 100644 > --- a/boot/fdt_support.c > +++ b/boot/fdt_support.c > @@ -22,6 +22,9 @@ > #include <exports.h> > #include <fdtdec.h> > #include <version.h> > +#include <video.h> > + > +DECLARE_GLOBAL_DATA_PTR; > > /** > * fdt_getprop_u32_default_node - Return a node's property or a default > @@ -2042,6 +2045,24 @@ int fdt_setup_simplefb_node(void *fdt, int node, u64 > base_address, u32 width, > return 0; > } > > +#if IS_ENABLED(CONFIG_VIDEO) > +int fdt_add_fb_mem_rsv(void *blob) > +{ > + struct fdt_memory mem; > + > + /* nothing to do when the frame buffer is not defined */ > + if (gd->video_bottom == gd->video_top) > + return 0; > + > + /* reserved with no-map tag the video buffer */ > + mem.start = gd->video_bottom; > + mem.end = gd->video_top - 1; > + > + return fdtdec_add_reserved_memory(blob, "framebuffer", &mem, NULL, 0, > NULL, > + FDTDEC_RESERVED_MEMORY_NO_MAP); > +} > +#endif > + > /* > * Update native-mode in display-timings from display environment variable. > * The node to update are specified by path. > diff --git a/include/fdt_support.h b/include/fdt_support.h > index 25600d62f2..4b71b8948d 100644 > --- a/include/fdt_support.h > +++ b/include/fdt_support.h > @@ -423,6 +423,8 @@ int arch_fixup_memory_node(void *blob); > int fdt_setup_simplefb_node(void *fdt, int node, u64 base_address, u32 width, > u32 height, u32 stride, const char *format); > > +int fdt_add_fb_mem_rsv(void *blob); > + > int fdt_overlay_apply_verbose(void *fdt, void *fdto); > > int fdt_valid(struct fdt_header **blobp); Thanks, Nikhil