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