Splash image on phyBOARD Sargas STM32MP157
Andrey Nechypurenko
andreynech at gmail.com
Fri Jun 25 12:14:10 CEST 2021
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