[PATCH] board: stm32mp1: add splash screen on dk2

Display the STMicroelectronics logo.
Signed-off-by: Dario Binacchi dario.binacchi@amarulasolutions.com ---
board/st/stm32mp1/stm32mp1.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c index 1a1b1844c8c0..c8c2a83b2acf 100644 --- a/board/st/stm32mp1/stm32mp1.c +++ b/board/st/stm32mp1/stm32mp1.c @@ -32,7 +32,10 @@ #include <remoteproc.h> #include <reset.h> #include <syscon.h> +#include <splash.h> +#include <st_logo_data.h> #include <usb.h> +#include <video.h> #include <watchdog.h> #include <asm/global_data.h> #include <asm/io.h> @@ -684,6 +687,15 @@ int board_init(void) fw_images[0].fw_name = u"STM32MP-FIP"; fw_images[0].image_index = 1; #endif + + if (IS_ENABLED(CONFIG_CMD_BMP)) { + if (board_is_stm32mp15x_dk2()) { + ulong logo = + (ulong)stmicroelectronics_uboot_logo_8bit_rle; + bmp_display(logo, BMP_ALIGN_CENTER, BMP_ALIGN_CENTER); + } + } + return 0; }

Hi,
On Mon, Jul 03, 2023 at 06:27:54PM +0200, Dario Binacchi wrote:
diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c -%<- #include <syscon.h> +#include <splash.h> +#include <st_logo_data.h> #include <usb.h>
These two should be put above syscon.h if you want to keep the includes sorted alphabetically.
ulong logo =
(ulong)stmicroelectronics_uboot_logo_8bit_rle;
bmp_display(logo, BMP_ALIGN_CENTER, BMP_ALIGN_CENTER);
Technically logo is const.
All the best

Hi all,
On Tue, Jul 4, 2023 at 10:11 AM Grzegorz Szymaszek gszymaszek@short.pl wrote:
Hi,
On Mon, Jul 03, 2023 at 06:27:54PM +0200, Dario Binacchi wrote:
diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c -%<- #include <syscon.h> +#include <splash.h> +#include <st_logo_data.h> #include <usb.h>
These two should be put above syscon.h if you want to keep the includes sorted alphabetically.
yes, you are right. I will update in v2
ulong logo =
(ulong)stmicroelectronics_uboot_logo_8bit_rle;
bmp_display(logo, BMP_ALIGN_CENTER, BMP_ALIGN_CENTER);
Technically logo is const.
int bmp_display(ulong addr, int x, int y); And throughout the code, I only find ulong parameters being passed to this function. Perhaps I can replace "logo" with "addr".
Thanks and regards, Dario
All the best
-- Grzegorz

On Tue, Jul 04, 2023 at 11:14:39AM +0200, Dario Binacchi wrote:
On Tue, Jul 4, 2023 at 10:11 AM Grzegorz Szymaszek gszymaszek@short.pl wrote:
ulong logo =
(ulong)stmicroelectronics_uboot_logo_8bit_rle;
bmp_display(logo, BMP_ALIGN_CENTER, BMP_ALIGN_CENTER);
Technically logo is const.
int bmp_display(ulong addr, int x, int y); And throughout the code, I only find ulong parameters being passed to this function. Perhaps I can replace "logo" with "addr".
I'm afraid my comment was perhaps too terse: I wanted to point out that your "ulong logo" variable is assigned to only once, its value is never changed, so instead of plain "ulong", you could declare its type as "const ulong". I won't insist on this change since the code is trivial.
Consider simply removing the new variable and just passing "(ulong)stmicroelectronics_uboot_logo_8bit_rle" directly as the bmp_display()'s argument, like in board/st/stm32f746-disco/stm32f746-disco.c.
participants (2)
-
Dario Binacchi
-
Grzegorz Szymaszek