Splash image on phyBOARD Sargas STM32MP157

Patrice CHOTARD patrice.chotard at foss.st.com
Fri Jun 25 17:38:44 CEST 2021


Hi Andrey

+Philippe and Yannick who are the experts, please interacts directly with them.

Here is Philippe's answer:

The CONFIG_VIDEO_MIPI_DSI flag is not necessary as the panel is DPI, and so maybe this DSI configuration annoys the rest of the display chain...

Moreover, we are not using following flags so maybe it is better to try without first :-)
*** Below was add by me ***
#define CONFIG_SPLASH_SCREEN
#define CONFIG_SPLASH_SCREEN_ALIGN
#define CONFIG_VIDEO_LOGO
#define CONFIG_VIDEO_BMP_LOGO

Use the STM default bmp file as a first test (bmp rle 8). Load it from the right sdcard partition to the same address space as on default STM delivery.
Then display it using the same command as on default STM delivery.

Maybe double check your clock configuration (pixel clock), and be sure you are using the same pinctrl (a0 here) as your working kernel dt, the same panel reset gpio and panel enable gpio as in your kernel dt.

Do you have any uboot error message (you may need to enable uboot debug mode)?
You may try to add traces in the drivers/video/stm32_ltdc.c file, especially in the stm32_ltdc_probe() function...

Patrice

On 6/25/21 12:14 PM, Andrey Nechypurenko wrote:
> Hi Folks,
> 
> I am trying to display a splash image from u-boot on the Phytec's
> phyBOARD Sargas STM32MP157 evaluation board.
> https://www.phytec.de/en/produkte/single-board-computer/phyboard-sargas-stm32mp1/
> https://www.phytec.de/en/cdocuments/?doc=d4PmEQ
> 
> I feel like I tried everything possible including throwing runes and
> bones :-) but to no avail. So maybe someone here could help. Here are
> more details and description of what I was trying.
> 
> I am using the same u-boot (version and set of patches) as provided by
> Yocto BSP (I am building with Buildroot but it is probably not
> relevant)
> STM32MP> version
> U-Boot 2020.01-stm32mp-r2.1 (Jun 24 2021 - 13:30:02 +0200)
> arm-none-linux-gnueabihf-gcc (GNU Toolchain for the A-profile
> Architecture 10.2-2020.11 (arm-10.16)) 10.2.1 20201103
> GNU ld (GNU Toolchain for the A-profile Architecture 10.2-2020.11
> (arm-10.16)) 2.35.1.20201028
> 
> Display is DPI (i.e parallel RGB interface):
> https://www.phytec.eu/fileadmin/user_upload/images/content/1.Products/SBCs/phyBOARD-Segin_i.MX_6UL/LAN-072e_1.pdf
> 
> I managed to display a splash screen from Kernel and in general, the
> display works fine from user space. So I am sure that everything is
> connected properly and the hardware works. Also, u-boot is using the
> same DTS files as Kernel. So I assume that everything is properly
> configured there. Following is the relevant part of the output from
> modetest:
> 
> # modetest
> trying to open device 'stm'...done
> Encoders:
> id    crtc    type    possible crtcs    possible clones
> 31    35    DPI    0x00000001    0x00000000
> 
> Connectors:
> id    encoder    status        name        size (mm)    modes    encoders
> 32    31    connected    DPI-1              152x91        1    31
>   modes:
>     index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
>   #0 800x480 59.99 800 840 968 1056 480 490 492 525 33260 flags:
> nhsync, nvsync; type: preferred, driver
> 
> In the u-boot menuconfig I enabled all the relevant options I could
> find. At least the bmp command is available. Here is the Graphics part
> of the .config (I can post .config if necessary):
> 
> # Graphics support
> CONFIG_DM_VIDEO=y
> CONFIG_BACKLIGHT_GPIO=y
> CONFIG_VIDEO_BPP8=y
> CONFIG_VIDEO_BPP16=y
> CONFIG_VIDEO_BPP32=y
> # CONFIG_VIDEO_ANSI is not set
> CONFIG_VIDEO_MIPI_DSI=y
> CONFIG_CONSOLE_NORMAL=y
> # CONFIG_CONSOLE_ROTATION is not set
> # CONFIG_CONSOLE_TRUETYPE is not set
> CONFIG_SYS_WHITE_ON_BLACK=y
> # CONFIG_NO_FB_CLEAR is not set
> 
> In addition, the following defines were added to include/configs/stm32mp1.h:
> 
> #ifdef CONFIG_DM_VIDEO
> #define CONFIG_VIDEO_BMP_RLE8
> #define CONFIG_BMP_16BPP
> #define CONFIG_BMP_24BPP
> #define CONFIG_BMP_32BPP
> *** Below was add by me ***
> #define CONFIG_SPLASH_SCREEN
> #define CONFIG_SPLASH_SCREEN_ALIGN
> #define CONFIG_VIDEO_LOGO
> #define CONFIG_VIDEO_BMP_LOGO
> #endif
> 
> For the sake of completion, here is the output of the dm tree command:
> 
> STM32MP> dm tree
>  Class     Index  Probed  Driver                Name
> -----------------------------------------------------------
>  root          0  [ + ]   root_driver           root_driver
>  mailbox       0  [ + ]   arm_smc_mbox          |-- mailbox-0
>  mailbox       1  [   ]   arm_smc_mbox          |-- mailbox-1
>  firmware      0  [   ]   psci                  |-- psci
>  sysreset      0  [   ]   psci-sysreset         |   `-- psci-sysreset
>  simple_bus    0  [ + ]   generic_simple_bus    |-- soc
>  serial        0  [   ]   serial_stm32          |   |-- serial at 4000f000
>  serial        1  [ + ]   serial_stm32          |   |-- serial at 40010000
>  i2c           0  [   ]   stm32f7-i2c           |   |-- i2c at 40012000
>  spi           0  [   ]   stm32_spi             |   |-- spi at 44004000
>  usb           0  [   ]   dwc2-udc-otg          |   |-- usb-otg at 49000000
>  hwspinlock    0  [ + ]   hwspinlock_stm32mp1   |   |-- hwspinlock at 4c000000
>  mailbox       2  [   ]   stm32_ipcc            |   |-- mailbox at 4c001000
>  nop           0  [ + ]   stm32-rcc             |   |-- rcc at 50000000
>  clk           0  [ + ]   stm32mp1_clk          |   |   |-- stm32mp1_clk
>  reset         0  [ + ]   stm32_rcc_reset       |   |   `-- stm32_rcc_reset
>  pmic          0  [ + ]   stm32mp_pwr_pmic      |   |-- pwr at 50001000
>  regulator     0  [ + ]   stm32mp_pwr_regulato  |   |   |-- reg11
>  regulator     1  [ + ]   stm32mp_pwr_regulato  |   |   |-- reg18
>  regulator     2  [ + ]   stm32mp_pwr_regulato  |   |   `-- usb33
>  syscon        0  [   ]   syscon                |   |-- pwr_mcu at 50001014
>  syscon        1  [   ]   syscon                |   |--
> interrupt-controller at 5000d000
>  syscon        2  [ + ]   stmp32mp_syscon       |   |-- syscon at 50020000
>  spi           1  [   ]   stm32_qspi            |   |-- spi at 58003000
>  spi_flash     0  [   ]   spi_flash_std         |   |   `-- w25q128 at 0
>  mmc           0  [ + ]   stm32_sdmmc2          |   |-- sdmmc at 58005000
>  blk           0  [ + ]   mmc_blk               |   |   `-- sdmmc at 58005000.blk
>  mmc           1  [ + ]   stm32_sdmmc2          |   |-- sdmmc at 58007000
>  blk           1  [   ]   mmc_blk               |   |   `-- sdmmc at 58007000.blk
>  eth           0  [ + ]   eth_eqos              |   |-- ethernet at 5800a000
>  usb           0  [   ]   ehci_generic          |   |-- usbh-ehci at 5800d000
>  video         0  [   ]   stm32_display         |   |--
> display-controller at 5a001000
>  watchdog      0  [ + ]   stm32mp-wdt           |   |-- watchdog at 5a002000
>  phy           0  [   ]   stm32-usbphyc         |   |-- usbphyc at 5a006000
>  serial        2  [   ]   serial_stm32          |   |-- serial at 5c000000
>  i2c           1  [ + ]   stm32f7-i2c           |   |-- i2c at 5c002000
>  pmic          1  [ + ]   stpmic1_pmic          |   |   `-- stpmic at 33
>  regulator     3  [ + ]   stpmic1_buck          |   |       |-- buck1
>  regulator     4  [ + ]   stpmic1_buck          |   |       |-- buck2
>  regulator     5  [ + ]   stpmic1_buck          |   |       |-- buck3
>  regulator     6  [ + ]   stpmic1_buck          |   |       |-- buck4
>  regulator     7  [ + ]   stpmic1_ldo           |   |       |-- ldo1
>  regulator     8  [ + ]   stpmic1_ldo           |   |       |-- ldo2
>  regulator     9  [ + ]   stpmic1_ldo           |   |       |-- ldo3
>  regulator    10  [ + ]   stpmic1_ldo           |   |       |-- ldo4
>  regulator    11  [ + ]   stpmic1_ldo           |   |       |-- ldo5
>  regulator    12  [ + ]   stpmic1_ldo           |   |       |-- ldo6
>  regulator    13  [ + ]   stpmic1_vref_ddr      |   |       |-- vref_ddr
>  regulator    14  [ + ]   stpmic1_boost         |   |       |-- boost
>  regulator    15  [ + ]   stpmic1_pwr_sw        |   |       |-- pwr_sw1
>  regulator    16  [ + ]   stpmic1_pwr_sw        |   |       |-- pwr_sw2
>  misc          0  [   ]   stpmic1-nvm           |   |       |-- stpmic1-nvm
>  sysreset      1  [   ]   stpmic1-sysreset      |   |       `-- stpmic1-sysreset
>  rtc           0  [   ]   rtc-stm32             |   |-- rtc at 5c004000
>  misc          1  [ + ]   stm32mp_bsec          |   |-- nvmem at 5c005000
>  simple_bus    1  [   ]   generic_simple_bus    |   |-- tamp at 5c00a000
>  pinctrl       0  [ + ]   pinctrl_stm32         |   |-- pin-controller at 50002000
>  gpio          0  [ + ]   gpio_stm32            |   |   |-- gpio at 50002000
>  gpio          1  [ + ]   gpio_stm32            |   |   |-- gpio at 50003000
>  gpio          2  [ + ]   gpio_stm32            |   |   |-- gpio at 50004000
>  gpio          3  [ + ]   gpio_stm32            |   |   |-- gpio at 50005000
>  gpio          4  [ + ]   gpio_stm32            |   |   |-- gpio at 50006000
>  gpio          5  [ + ]   gpio_stm32            |   |   |-- gpio at 50007000
>  gpio          6  [ + ]   gpio_stm32            |   |   |-- gpio at 50008000
>  gpio          7  [ + ]   gpio_stm32            |   |   |-- gpio at 50009000
>  gpio          8  [ + ]   gpio_stm32            |   |   |-- gpio at 5000a000
>  gpio          9  [   ]   gpio_stm32            |   |   |-- gpio at 5000b000
>  gpio         10  [   ]   gpio_stm32            |   |   |-- gpio at 5000c000
>  pinconfig     0  [ + ]   pinconfig             |   |   |-- rgmii-0
>  pinconfig     1  [   ]   pinconfig             |   |   |-- rgmii-sleep-0
>  pinconfig     2  [   ]   pinconfig             |   |   |-- fmc-0
>  pinconfig     3  [   ]   pinconfig             |   |   |-- fmc-sleep-0
>  pinconfig     4  [   ]   pinconfig             |   |   |-- qspi-bk1-0
>  pinconfig     5  [   ]   pinconfig             |   |   |-- qspi-bk1-sleep-0
>  pinconfig     6  [   ]   pinconfig             |   |   |-- qspi-clk-0
>  pinconfig     7  [   ]   pinconfig             |   |   |-- qspi-clk-sleep-0
>  pinconfig     8  [ + ]   pinconfig             |   |   |-- sdmmc2-b4-0
>  pinconfig     9  [   ]   pinconfig             |   |   |-- sdmmc2-b4-od-0
>  pinconfig    10  [   ]   pinconfig             |   |   |-- sdmmc2-b4-sleep-0
>  pinconfig    11  [   ]   pinconfig             |   |   |-- sdmmc2-b4-1
>  pinconfig    12  [   ]   pinconfig             |   |   |-- sdmmc2-b4-od-1
>  pinconfig    13  [ + ]   pinconfig             |   |   |-- sdmmc2-d47-0
>  pinconfig    14  [   ]   pinconfig             |   |   |-- sdmmc2-d47-sleep-0
>  pinconfig    15  [   ]   pinconfig             |   |   |-- dac-ch1
>  pinconfig    16  [   ]   pinconfig             |   |   |-- dac-ch2
>  pinconfig    17  [   ]   pinconfig             |   |   |-- dcmi-0
>  pinconfig    18  [   ]   pinconfig             |   |   |-- dcmi-sleep-0
>  pinconfig    19  [   ]   pinconfig             |   |   |-- i2c1-0
>  pinconfig    20  [   ]   pinconfig             |   |   |-- i2c1-1
>  pinconfig    21  [ + ]   pinconfig             |   |   |-- ltdc-a-0
>  pinconfig    22  [   ]   pinconfig             |   |   |-- ltdc-a-1
>  pinconfig    23  [   ]   pinconfig             |   |   |-- m-can1-0
>  pinconfig    24  [   ]   pinconfig             |   |   |-- m_can2-sleep at 0
>  pinconfig    25  [   ]   pinconfig             |   |   |-- pwm5-0
>  pinconfig    26  [   ]   pinconfig             |   |   |-- pwm5-sleep-0
>  pinconfig    27  [   ]   pinconfig             |   |   |-- sai2a-2
>  pinconfig    28  [   ]   pinconfig             |   |   |-- sai2a-3
>  pinconfig    29  [   ]   pinconfig             |   |   |-- sai2b-0
>  pinconfig    30  [   ]   pinconfig             |   |   |-- sai2b-1
>  pinconfig    31  [   ]   pinconfig             |   |   |-- sai2b-2
>  pinconfig    32  [   ]   pinconfig             |   |   |-- sai2b-3
>  pinconfig    33  [ + ]   pinconfig             |   |   |-- sdmmc1-b4-0
>  pinconfig    34  [   ]   pinconfig             |   |   |-- sdmmc1-b4-od-0
>  pinconfig    35  [   ]   pinconfig             |   |   |-- sdmmc1-b4-sleep-0
>  pinconfig    36  [   ]   pinconfig             |   |   |-- sdmmc3-b4-0
>  pinconfig    37  [   ]   pinconfig             |   |   |-- sdmmc3-b4-od-0
>  pinconfig    38  [   ]   pinconfig             |   |   |-- sdmmc3-b4-sleep-0
>  pinconfig    39  [ + ]   pinconfig             |   |   |-- uart4-0
>  pinconfig    40  [   ]   pinconfig             |   |   |-- uart4-idle-0
>  pinconfig    41  [   ]   pinconfig             |   |   |-- uart4-sleep-0
>  pinconfig    42  [   ]   pinconfig             |   |   |-- usart1-1
>  pinconfig    43  [   ]   pinconfig             |   |   |-- usart1-idle-1
>  pinconfig    44  [   ]   pinconfig             |   |   |-- usart1-sleep-1
>  pinconfig    45  [   ]   pinconfig             |   |   |-- usart3-0
>  pinconfig    46  [   ]   pinconfig             |   |   |-- usart3-idle-0
>  pinconfig    47  [   ]   pinconfig             |   |   |-- usart3-sleep-0
>  pinconfig    48  [   ]   pinconfig             |   |   |-- usart3-1
>  pinconfig    49  [   ]   pinconfig             |   |   |-- usart3-idle-1
>  pinconfig    50  [   ]   pinconfig             |   |   |-- usart3-sleep-1
>  pinconfig    51  [   ]   pinconfig             |   |   `-- usbotg_hs-0
>  pinctrl       1  [ + ]   pinctrl_stm32         |   |--
> pin-controller-z at 54004000
>  gpio         11  [ + ]   gpio_stm32            |   |   |-- gpio at 54004000
>  pinconfig    52  [ + ]   pinconfig             |   |   |-- i2c4-0
>  pinconfig    53  [   ]   pinconfig             |   |   |-- i2c4-1
>  pinconfig    54  [   ]   pinconfig             |   |   |-- usart1-0
>  pinconfig    55  [   ]   pinconfig             |   |   |-- usart1-idle-0
>  pinconfig    56  [   ]   pinconfig             |   |   |-- usart1-sleep-0
>  pinconfig    57  [   ]   pinconfig             |   |   |-- spi1-0
>  pinconfig    58  [   ]   pinconfig             |   |   `-- spi1-sleep-0
>  ram           0  [   ]   stm32mp1_ddr          |   `-- ddr at 5a003000
>  simple_bus    2  [   ]   generic_simple_bus    |-- mlahb
>  remoteproc    0  [   ]   stm32_m4_proc         |   `-- m4 at 10000000
>  regulator    17  [ + ]   fixed regulator       |-- vin
>  regulator    18  [ + ]   fixed regulator       |-- regulator-mcan
>  nop           1  [ + ]   scmi-agent            `-- scmi-0
>  clk           1  [ + ]   scmi_clk                  |-- protocol at 14
>  reset         1  [ + ]   scmi_reset_domain         `-- protocol at 16
> 
> Despite all these attempts, there is no output from u-boot on the
> screen. Also, attempting to load splash image manually (using
> ext4load) and display them with bmp display does not lead to anything
> shown on display but also does not show any error messages.
> 
> Now I am out of ideas of what else could be done or how to find the
> reason for the problem. So I would really appreciate any suggestions
> from fellow u-booters :-)
> 
> Thank you,
> Andrey.
> 


More information about the U-Boot mailing list