[PATCH 3/4] boot: Move framebuffer reservation to separate helper
Nikhil Jain
n-jain1 at ti.com
Wed Mar 6 11:51:17 CET 2024
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 <devarsht at 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-jain1 at 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
More information about the U-Boot
mailing list