[PATCH v2] cmd: pxe_utils: sysboot: replace cls command by video_clear in PXE parser

Patrice CHOTARD patrice.chotard at foss.st.com
Wed Mar 23 09:35:56 CET 2022


Hi Patrick

On 3/22/22 17:08, Patrick Delaunay wrote:
> Since the commit bfaa51dd4adf ("cmd: add serial console support
> for the cls command") the cls command is not enough to clear the
> video display when ANSI console is activated.
> 
> This patch clears the video device with the video_clear() API
> before to display the bitmap used for the PXE background.
> 
> This patch avoids to display the LOGO, activated by default with
> commit 7a8555d87136 ("video: Show the U-Boot logo by default").
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
> ---
> I let a patman warning:
> 
> boot/pxe_utils.c:1520: warning: Use 'if (IS_ENABLED(CONFIG...))'
>                        instead of '#if or #ifdef' where possible
> 
> 
> To avoid parameter issue for video_clear(dev) function:
> no parameter dev when CONFIG_DM_VIDEO is deactivated.
> 
> 
> Changes in v2:
> - move #include <dm.h> to avoid compilation issue when CONFIG_DM_RNG
>   is not activated for uclass_first_device_err
> - Avoid error too many arguments to function 'video_clear'
>   when CONFIG_DM_VIDEO is not activated, use: #if defined(CONFIG_DM_VIDEO)
> 
>  boot/pxe_utils.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
> index 0c24becae3..b08aee9896 100644
> --- a/boot/pxe_utils.c
> +++ b/boot/pxe_utils.c
> @@ -6,6 +6,7 @@
>  
>  #include <common.h>
>  #include <command.h>
> +#include <dm.h>
>  #include <env.h>
>  #include <image.h>
>  #include <log.h>
> @@ -14,6 +15,7 @@
>  #include <lcd.h>
>  #include <net.h>
>  #include <fdt_support.h>
> +#include <video.h>
>  #include <linux/libfdt.h>
>  #include <linux/string.h>
>  #include <linux/ctype.h>
> @@ -21,7 +23,6 @@
>  #include <linux/list.h>
>  
>  #ifdef CONFIG_DM_RNG
> -#include <dm.h>
>  #include <rng.h>
>  #endif
>  
> @@ -1516,8 +1517,13 @@ void handle_pxe_menu(struct pxe_context *ctx, struct pxe_menu *cfg)
>  		/* display BMP if available */
>  		if (cfg->bmp) {
>  			if (get_relfile(ctx, cfg->bmp, image_load_addr, NULL)) {
> -				if (CONFIG_IS_ENABLED(CMD_CLS))
> -					run_command("cls", 0);
> +#if defined(CONFIG_DM_VIDEO)
> +				struct udevice *dev;
> +
> +				err = uclass_first_device_err(UCLASS_VIDEO, &dev);
> +				if (!err)
> +					video_clear(dev);
> +#endif
>  				bmp_display(image_load_addr,
>  					    BMP_ALIGN_CENTER, BMP_ALIGN_CENTER);
>  			} else {
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>

Thanks


More information about the U-Boot mailing list