* [U-Boot] [RFC][PATCH] cmd: pxe: Display splashscreen from extlinux.conf input
@ 2018-12-20 14:53 Patrice Chotard
2019-02-05 16:31 ` Patrice CHOTARD
0 siblings, 1 reply; 2+ messages in thread
From: Patrice Chotard @ 2018-12-20 14:53 UTC (permalink / raw)
To: u-boot
The objective is to provide a simple way to retrieve a BMP file,
and display it as splashscreen, from extlinux.conf file input.
For this, we take example on https://www.syslinux.org/wiki/
index.php?title=Menu#The_advanced_menu_system
and more particularly on MENU BACKGROUND chapter.
For this, add "menu background" support in pxe command.
As example, extlinux.conf content will look like:
# Generic Distro Configuration file generated by OpenEmbedded
menu title Select the boot mode
TIMEOUT 20
menu background ../splash.bmp
DEFAULT stm32mp157c-ev1-sdcard
LABEL stm32mp157c-ev1-sdcard
KERNEL /uImage
FDT /stm32mp157c-ev1.dtb
APPEND root=/dev/mmcblk0p6 rootwait rw earlyprintk console=ttySTM0,115200
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---
cmd/pxe.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/cmd/pxe.c b/cmd/pxe.c
index 274555319ba8..e77770237cb1 100644
--- a/cmd/pxe.c
+++ b/cmd/pxe.c
@@ -8,11 +8,13 @@
#include <command.h>
#include <malloc.h>
#include <mapmem.h>
+#include <lcd.h>
#include <linux/string.h>
#include <linux/ctype.h>
#include <errno.h>
#include <linux/list.h>
#include <fs.h>
+#include <splash.h>
#include <asm/io.h>
#include "menu.h"
@@ -488,6 +490,7 @@ struct pxe_label {
*
* title - the name of the menu as given by a 'menu title' line.
* default_label - the name of the default label, if any.
+ * bmp - the bmp file name which is displayed in background
* timeout - time in tenths of a second to wait for a user key-press before
* booting the default label.
* prompt - if 0, don't prompt for a choice unless the timeout period is
@@ -498,6 +501,7 @@ struct pxe_label {
struct pxe_menu {
char *title;
char *default_label;
+ char *bmp;
int timeout;
int prompt;
struct list_head labels;
@@ -850,6 +854,7 @@ enum token_type {
T_FDTDIR,
T_ONTIMEOUT,
T_IPAPPEND,
+ T_BACKGROUND,
T_INVALID
};
@@ -883,6 +888,7 @@ static const struct token keywords[] = {
{"fdtdir", T_FDTDIR},
{"ontimeout", T_ONTIMEOUT,},
{"ipappend", T_IPAPPEND,},
+ {"background", T_BACKGROUND,},
{NULL, T_INVALID}
};
@@ -1160,6 +1166,10 @@ static int parse_menu(cmd_tbl_t *cmdtp, char **c, struct pxe_menu *cfg,
nest_level + 1);
break;
+ case T_BACKGROUND:
+ err = parse_sliteral(c, &cfg->bmp);
+ break;
+
default:
printf("Ignoring malformed menu command: %.*s\n",
(int)(*c - s), s);
@@ -1574,6 +1584,20 @@ static void handle_pxe_menu(cmd_tbl_t *cmdtp, struct pxe_menu *cfg)
struct menu *m;
int err;
+#ifdef CONFIG_CMD_BMP
+ /* display BMP if available */
+ if (cfg->bmp) {
+ if (get_relfile(cmdtp, cfg->bmp, load_addr)) {
+ run_command("cls", 0);
+ bmp_display(load_addr,
+ BMP_ALIGN_CENTER, BMP_ALIGN_CENTER);
+ } else {
+ printf("Skipping background bmp %s for failure\n",
+ cfg->bmp);
+ }
+ }
+#endif
+
m = pxe_menu_to_menu(cfg);
if (!m)
return;
--
1.9.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] [RFC][PATCH] cmd: pxe: Display splashscreen from extlinux.conf input
2018-12-20 14:53 [U-Boot] [RFC][PATCH] cmd: pxe: Display splashscreen from extlinux.conf input Patrice Chotard
@ 2019-02-05 16:31 ` Patrice CHOTARD
0 siblings, 0 replies; 2+ messages in thread
From: Patrice CHOTARD @ 2019-02-05 16:31 UTC (permalink / raw)
To: u-boot
Hi All,
Any comments ?
Patrice
On 12/20/18 3:53 PM, Patrice Chotard wrote:
> The objective is to provide a simple way to retrieve a BMP file,
> and display it as splashscreen, from extlinux.conf file input.
>
> For this, we take example on https://www.syslinux.org/wiki/
> index.php?title=Menu#The_advanced_menu_system
> and more particularly on MENU BACKGROUND chapter.
> For this, add "menu background" support in pxe command.
>
> As example, extlinux.conf content will look like:
>
> # Generic Distro Configuration file generated by OpenEmbedded
> menu title Select the boot mode
> TIMEOUT 20
> menu background ../splash.bmp
> DEFAULT stm32mp157c-ev1-sdcard
> LABEL stm32mp157c-ev1-sdcard
> KERNEL /uImage
> FDT /stm32mp157c-ev1.dtb
> APPEND root=/dev/mmcblk0p6 rootwait rw earlyprintk console=ttySTM0,115200
>
> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
> ---
>
> cmd/pxe.c | 24 ++++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> diff --git a/cmd/pxe.c b/cmd/pxe.c
> index 274555319ba8..e77770237cb1 100644
> --- a/cmd/pxe.c
> +++ b/cmd/pxe.c
> @@ -8,11 +8,13 @@
> #include <command.h>
> #include <malloc.h>
> #include <mapmem.h>
> +#include <lcd.h>
> #include <linux/string.h>
> #include <linux/ctype.h>
> #include <errno.h>
> #include <linux/list.h>
> #include <fs.h>
> +#include <splash.h>
> #include <asm/io.h>
>
> #include "menu.h"
> @@ -488,6 +490,7 @@ struct pxe_label {
> *
> * title - the name of the menu as given by a 'menu title' line.
> * default_label - the name of the default label, if any.
> + * bmp - the bmp file name which is displayed in background
> * timeout - time in tenths of a second to wait for a user key-press before
> * booting the default label.
> * prompt - if 0, don't prompt for a choice unless the timeout period is
> @@ -498,6 +501,7 @@ struct pxe_label {
> struct pxe_menu {
> char *title;
> char *default_label;
> + char *bmp;
> int timeout;
> int prompt;
> struct list_head labels;
> @@ -850,6 +854,7 @@ enum token_type {
> T_FDTDIR,
> T_ONTIMEOUT,
> T_IPAPPEND,
> + T_BACKGROUND,
> T_INVALID
> };
>
> @@ -883,6 +888,7 @@ static const struct token keywords[] = {
> {"fdtdir", T_FDTDIR},
> {"ontimeout", T_ONTIMEOUT,},
> {"ipappend", T_IPAPPEND,},
> + {"background", T_BACKGROUND,},
> {NULL, T_INVALID}
> };
>
> @@ -1160,6 +1166,10 @@ static int parse_menu(cmd_tbl_t *cmdtp, char **c, struct pxe_menu *cfg,
> nest_level + 1);
> break;
>
> + case T_BACKGROUND:
> + err = parse_sliteral(c, &cfg->bmp);
> + break;
> +
> default:
> printf("Ignoring malformed menu command: %.*s\n",
> (int)(*c - s), s);
> @@ -1574,6 +1584,20 @@ static void handle_pxe_menu(cmd_tbl_t *cmdtp, struct pxe_menu *cfg)
> struct menu *m;
> int err;
>
> +#ifdef CONFIG_CMD_BMP
> + /* display BMP if available */
> + if (cfg->bmp) {
> + if (get_relfile(cmdtp, cfg->bmp, load_addr)) {
> + run_command("cls", 0);
> + bmp_display(load_addr,
> + BMP_ALIGN_CENTER, BMP_ALIGN_CENTER);
> + } else {
> + printf("Skipping background bmp %s for failure\n",
> + cfg->bmp);
> + }
> + }
> +#endif
> +
> m = pxe_menu_to_menu(cfg);
> if (!m)
> return;
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-02-05 16:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-20 14:53 [U-Boot] [RFC][PATCH] cmd: pxe: Display splashscreen from extlinux.conf input Patrice Chotard
2019-02-05 16:31 ` Patrice CHOTARD
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.