This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: PROC-SDK-09.02.01.10 u-boot issue related with CONFIG_SPL_VIDEO

Part Number: AM625

Tool/software:

Hi Support Team,

I am trying to update my bsp from PROC-SDK-09.01.00.08 to PROC-SDK-09.02.01.10. 

CONFIG_SPL_VIDEO is "y" by default in am62x_evm_a53_defconfig file. I have a .patch related to enable backlight splash screen in u-boot which is working without error in the previous bsp. It removes CONFIG_SPL_VIDEO from the defconfig file.

When I apply the patch file to the newer bsp and try to compile I see this error:

CC spl/drivers/clk/clk-uclass.o
/home/berkay/ti-processor-sdk-linux-am62xx-evm-09.02.01.10/board-support/ti-u-boot-2023.04+gitAUTOINC+8366064208/common/fdt_support.c:1982:15: error: ‘gd_t’ {aka ‘volatile struct global_data’} has no member named ‘video_bottom’
1982 | if (gd->video_bottom == gd->video_top)
| ^~
/home/berkay/ti-processor-sdk-linux-am62xx-evm-09.02.01.10/board-support/ti-u-boot-2023.04+gitAUTOINC+8366064208/common/fdt_support.c:1982:35: error: ‘gd_t’ {aka ‘volatile struct global_data’} has no member named ‘video_top’
1982 | if (gd->video_bottom == gd->video_top)
| ^~
/home/berkay/ti-processor-sdk-linux-am62xx-evm-09.02.01.10/board-support/ti-u-boot-2023.04+gitAUTOINC+8366064208/common/fdt_support.c:1986:23: error: ‘gd_t’ {aka ‘volatile struct global_data’} has no member named ‘video_bottom’
1986 | mem.start = gd->video_bottom;
| ^~
/home/berkay/ti-processor-sdk-linux-am62xx-evm-09.02.01.10/board-support/ti-u-boot-2023.04+gitAUTOINC+8366064208/common/fdt_support.c:1987:21: error: ‘gd_t’ {aka ‘volatile struct global_data’} has no member named ‘video_top’
1987 | mem.end = gd->video_top - 1;
| ^~
/home/berkay/ti-processor-sdk-linux-am62xx-evm-09.02.01.10/board-support/ti-u-boot-2023.04+gitAUTOINC+8366064208/scripts/Makefile.build:256: recipe for target 'spl/common/fdt_support.o' failed

I also tried to change file like it does not remove CONFIG_SPL_VIDEO from the defconfig file, I was able to compile u-boot succesfully but, I was not able to boot with these u-boot images. The error is like this:

U-Boot SPL 2023.04-00004-gb771e0f0-dirty (Jun 27 2024 - 08:47:56 +0300)
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.8--v09.02.08 (Kool Koala)')
SPL initial stack usage: 13408 bytes
Trying to boot from MMC2
mmc_load_image_raw_sector: mmc block read error
Authentication passed
Authentication passed
Authentication passed
Authentication passed
Authentication passed
Starting ATF on ARM64 core...

NOTICE: BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
NOTICE: BL31: Built : 16:09:05, Feb 9 2024

U-Boot SPL 2023.04-00004-gb771e0f0-dirty (Jun 27 2024 - 08:48:07 +0300)
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.8--v09.02.08 (Kool Koala)')
SPL initial stack usage: 1856 bytes
Error: inflate() returned -5
There is no valid bmp file at the given address
Trying to boot from MMC2
mmc_load_image_raw_sector: mmc block read error
Authentication passed
Authentication passed


U-Boot 2023.04-00004-gb771e0f0-dirty (Jun 27 2024 - 08:48:07 +0300)

SoC: AM62X SR1.0 HS-FS
Model: Texas Instruments AM625 SK
EEPROM not available at 80, trying to read at 81
Reading on-board EEPROM at 0x51 failed -121
DRAM: no bloblist found!1 GiB
Core: 71 devices, 32 uclasses, devicetree: separate
MMC: mmc@fa10000: 0, mmc@fa00000: 1
Loading Environment from nowhere... OK
"Synchronous Abort" handler, esr 0x96000044
elr: 0000000080859a24 lr : 00000000808599c0 (reloc)
elr: 00000000bff5ea24 lr : 00000000bff5e9c0
x0 : 00000000bdefb610 x1 : ffffffffff700000
x2 : ffffffffff958000 x3 : 0000000000000000
x4 : 0000000000000000 x5 : 0000000000000000
x6 : 00000000bdefb610 x7 : 0000000000000000
x8 : 00000000bded67a0 x9 : 0000000000000008
x10: 0000000000002004 x11: 00000000bded5adc
x12: 0000000000001fd0 x13: 0000000000000000
x14: 00000000bded67a0 x15: 0000000000000002
x16: 00000000bff5ea54 x17: 00000000bdefb9d0
x18: 00000000bdee5d80 x19: 0000000000000000
x20: 00000000bdee9530 x21: 00000000bded5dd0
x22: 0000000000007fff x23: 00000000deadbeef
x24: 0000000000000008 x25: 0000000000000000
x26: 00000000800ce6b4 x27: 0000000000000000
x28: 0000000000000000 x29: 00000000bded5d70

Code: f9401001 8b020022 eb02003f 54fffec2 (b8004433)
Resetting CPU ...

resetting ...

It keeps resetting. Do you have any advice for solution of this issue?

  • Could you share the .patch, so that we can review the changes and suspect the cause of this problem?

    There is no valid bmp file at the given address

    Could you verify this as well.

    Regards,
    Aparna

  • Thanks for your reply. Here is my .patch file:

    From 03e858f121cb8025f6225b15a570013e75ae9f5a Mon Sep 17 00:00:00 2001
    From: Kamal Pandey <kamal.kishor@vestel.com.hk>
    Date: Thu, 5 Oct 2023 15:36:00 +0300
    Subject: [PATCH] UBOOT: enable backlight & splash screen in u-boot
    
    Added backlight node in k3-am625-sk.dts & added vestel splash screen to
    be shown at u-boot
    
    Signed-off-by: Kamal Pandey <kamal.kishor@vestel.com.hk>
    ---
     arch/arm/dts/k3-am62-main.dtsi  |   2 +-
     arch/arm/dts/k3-am625-sk.dts    | 127 ++++++++++++++++++++------------
     board/ti/am62x/am62x.env        |   2 +-
     configs/am62x_evm_a53_defconfig |  18 ++++-
     drivers/video/tidss/tidss_drv.c |   2 +-
     5 files changed, 99 insertions(+), 52 deletions(-)
    
    diff --git a/arch/arm/dts/k3-am62-main.dtsi b/arch/arm/dts/k3-am62-main.dtsi
    index bdfda77586..4f5a74ca54 100644
    --- a/arch/arm/dts/k3-am62-main.dtsi
    +++ b/arch/arm/dts/k3-am62-main.dtsi
    @@ -794,7 +794,7 @@
     		power-domains = <&k3_pds 51 TI_SCI_PD_EXCLUSIVE>;
     		clocks = <&k3_clks 51 0>;
     		clock-names = "fck";
    -		status = "disabled";
    +        status = "disabled";
     	};
     
     	ecap1: pwm@23110000 {
    diff --git a/arch/arm/dts/k3-am625-sk.dts b/arch/arm/dts/k3-am625-sk.dts
    index 9ca4a19f17..feb2b068a8 100644
    --- a/arch/arm/dts/k3-am625-sk.dts
    +++ b/arch/arm/dts/k3-am625-sk.dts
    @@ -10,6 +10,7 @@
     #include <dt-bindings/leds/common.h>
     #include <dt-bindings/gpio/gpio.h>
     #include <dt-bindings/net/ti-dp83867.h>
    +#include <dt-bindings/pwm/pwm.h>
     #include "k3-am625.dtsi"
     
     / {
    @@ -173,39 +174,54 @@
     		};
     	};
     
    +	// backlight {
    +    //     compatible = "simple-panel";
    +    //     // pinctrl-names = "default";
    +    //     // pinctrl-0 = <&lcd_backlight_pins>;
    +    //     pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>;
    +    //     brightness-levels = <0 51 53 56 62 75 101 152 255>;
    +    //     default-brightness-level = <8>;
    +    //     // enable-gpios = <&main_gpio1 30 GPIO_ACTIVE_LOW>;
    +    // };
    +
     	panel_lvds: panel-lvds {
    -		bootph-pre-ram;
    -		compatible = "simple-panel";
    -		status= "okay";
    -		width-mm = <217>;
    -		height-mm = <136>;
    +        bootph-pre-ram;
    +        compatible = "simple-panel";
    +		status = "okay";
    +		width-mm = <154>;
    +        height-mm = <86>;
     		data-mapping = "vesa-24";
    -		panel-timings {
    -				bootph-pre-ram;
    -				clock-frequency = <150274>;
    -				hactive = <1920>;
    -				vactive = <1200>;
    -				hback-porch = <32>;
    -				hfront-porch = <52>;
    -				vback-porch = <24>;
    -				vfront-porch = <8>;
    -				hsync-len = <24>;
    -				vsync-len = <3>;
    -				de-active = <1>;
    -		};
    -		port@0 {
    -			dual-lvds-odd-pixels;
    -			lcd_in0: endpoint {
    -				remote-endpoint = <&oldi_out0>;
    -			};
    -		};
    -
    -		port@1 {
    -			dual-lvds-even-pixels;
    -			lcd_in1: endpoint {
    -				remote-endpoint = <&oldi_out1>;
    -			};
    -		};
    +		pinctrl-names = "default";
    +        pinctrl-0 = <&lcd_backlight_pins>;
    +		enable-gpios = <&main_gpio1 30 GPIO_ACTIVE_LOW>;
    +		// backlight = <&lcd_bl>;
    +	
    +        panel-timings {
    +            bootph-pre-ram;
    +            clock-frequency = <75000>;	
    +            hactive = <1024>;
    +            vactive = <600>;
    +            hback-porch = <140>;
    +            hfront-porch = <140>;
    +            vback-porch = <16>;
    +            vfront-porch = <16>;
    +            hsync-len = <40>;
    +            vsync-len = <5>;
    +        };
    +
    +        port@0 {
    +            dual-lvds-odd-pixels;
    +            lcd_in0: endpoint {
    +                remote-endpoint = <&oldi_out0>;
    +            };
    +        };
    +
    +        // port@1 {
    +        //     dual-lvds-even-pixels;
    +        //     lcd_in1: endpoint {
    +        //         remote-endpoint = <&oldi_out1>;
    +        //     };
    +        // };
     	};
     };
     
    @@ -378,6 +394,18 @@
     			AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
     		>;
     	};
    +
    +    // ecap0_pins_default: backlight_pwm_pins {
    +    //     pinctrl-single,pins = <
    +    //         AM62X_IOPAD(0x01f0, PIN_OUTPUT, 8) /* (A18) ECAP0_IN.PWM0_OUT */
    +    //     >;
    +    // };
    +
    +    lcd_backlight_pins: lcd_backlight_enable_pins {
    +         pinctrl-single,pins = <
    +            AM62X_IOPAD(0x001f0, PIN_OUTPUT, 7) /* (A18) ECAP0_IN.GPIO1[30]_OUT */
    +         >;
    +     };
     };
     
     &wkup_uart0 {
    @@ -562,20 +590,25 @@
     &dss_ports {
     	#address-cells = <1>;
     	#size-cells = <0>;
    -	/* VP1: LVDS Output (OLDI TX 0) */
    -	port@0 {
    -		reg = <0>;
    -		oldi_out0: endpoint {
    -			remote-endpoint = <&lcd_in0>;
    -		};
    -	};
    -
    -	/* VP1: LVDS Output (OLDI TX 1) */
    -	port@2 {
    -		reg = <2>;
    -		oldi_out1: endpoint {
    -			remote-endpoint = <&lcd_in1>;
    -		};
    -	};
    -
    +    /* VP1: LVDS Output (OLDI TX 0) */
    +    port@0 {
    +        reg = <0>;
    +        oldi_out0: endpoint {
    +            remote-endpoint = <&lcd_in0>;
    +        };
    +    };
    +
    +    /* VP1: LVDS Output (OLDI TX 1) */
    +    // port@2 {
    +    //     reg = <2>;
    +    //     oldi_out1: endpoint {
    +    //         remote-endpoint = <&lcd_in1>;
    +    //     };
    +    // };
     };
    +
    +// &ecap0 {
    +//    status = "okay";
    +//    pinctrl-names = "default";
    +//    pinctrl-0 = <&ecap0_pins_default>;
    +// };
    diff --git a/board/ti/am62x/am62x.env b/board/ti/am62x/am62x.env
    index e507ca276c..4ff498aff8 100644
    --- a/board/ti/am62x/am62x.env
    +++ b/board/ti/am62x/am62x.env
    @@ -33,7 +33,7 @@ bootpart=1:2
     bootdir=/boot
     rd_spec=-
     
    -splashfile=ti_logo_414x97_32bpp.bmp.gz
    +splashfile=splash.bmp.gz
     splashimage=0x80200000
     splashpos=m,m
     splashsource=mmc
    diff --git a/configs/am62x_evm_a53_defconfig b/configs/am62x_evm_a53_defconfig
    index 2cda4885e9..9e5dce079c 100644
    --- a/configs/am62x_evm_a53_defconfig
    +++ b/configs/am62x_evm_a53_defconfig
    @@ -13,6 +13,7 @@ CONFIG_K3_ATF_LOAD_ADDR=0x9e780000
     CONFIG_TARGET_AM625_A53_EVM=y
     CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
     CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80B80000
    +CONFIG_DM=y
     CONFIG_DM_GPIO=y
     CONFIG_SPL_DM_SPI=y
     CONFIG_DEFAULT_DEVICE_TREE="k3-am625-sk"
    @@ -184,14 +185,21 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0451
     CONFIG_USB_GADGET_PRODUCT_NUM=0x6165
     CONFIG_USB_GADGET_DOWNLOAD=y
     CONFIG_VIDEO=y
    -# CONFIG_VIDEO_LOGO is not set
    +CONFIG_VIDEO_LOGO=y
    +CONFIG_VIDEO_LOGO_MAX_SIZE=0x1800000
    +CONFIG_SPL_VIDEO_LOGO_MAX_SIZE=0x100000
     CONFIG_SYS_WHITE_ON_BLACK=y
     CONFIG_VIDEO_TIDSS=y
    +CONFIG_SPLASH_SCREEN=y
    +CONFIG_SPLASH_SCREEN_ALIGN=y
    +CONFIG_SPLASH_SOURCE=y
    +CONFIG_HIDE_LOGO_VERSION=y
     CONFIG_SPL_VIDEO_TIDSS=y
     CONFIG_VIDEO_BMP_GZIP=y
    +CONFIG_BMP=y
     CONFIG_BMP_24BPP=y
     CONFIG_BMP_32BPP=y
    -CONFIG_SPL_VIDEO=y
    +# CONFIG_SPL_VIDEO=y
     CONFIG_SPL_SPLASH_SCREEN=y
     CONFIG_SPL_SYS_WHITE_ON_BLACK=y
     CONFIG_SPL_SPLASH_SCREEN_ALIGN=y
    @@ -203,3 +211,9 @@ CONFIG_SPL_HIDE_LOGO_VERSION=y
     CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
     CONFIG_SPL_GZIP=y
     CONFIG_OF_LIBFDT_OVERLAY=y
    +CONFIG_BACKLIGHT=y
    +CONFIG_BACKLIGHT_GPIO=y
    +CONFIG_DISPLAY=y
    +# CONFIG_DM_PWM=y
    +# CONFIG_BACKLIGHT_PWM=y
    +CONFIG_CMD_PWM=y
    diff --git a/drivers/video/tidss/tidss_drv.c b/drivers/video/tidss/tidss_drv.c
    index e285f255d7..4474d125ab 100644
    --- a/drivers/video/tidss/tidss_drv.c
    +++ b/drivers/video/tidss/tidss_drv.c
    @@ -863,7 +863,7 @@ static int tidss_drv_probe(struct udevice *dev)
     	uc_priv->xsize = timings.hactive.typ;
     	uc_priv->ysize = timings.vactive.typ;
     	if (priv->feat->subrev == DSS_AM65X || priv->feat->subrev == DSS_AM625) {
    -		priv->oldi_mode = OLDI_DUAL_LINK;
    +		priv->oldi_mode = OLDI_SINGLE_LINK_SINGLE_MODE;
     		if (priv->oldi_mode) {
     			ret = dss_init_am65x_oldi_io_ctrl(dev, priv);
     			if (ret)
    -- 
    2.34.1
    

    Could you verify this as well.

    I do not expect that it has effect to boot progress. It is a splash image file and I did not put it in sd card. I think that's why it gives this warning.

  • Hello,

    The support for U-boot splash screen has been added in 9.2 SDK, hence source code will differ. I will review your changes. Meanwhile please go through the following document about splash screen: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/09_02_01_10/exports/docs/linux/Foundational_Components/U-Boot/UG-Splash-Screen.html

    Edit: I have updated the documentation link.

    Regards,
    Aparna

  • Hello,

    I went trough the splash screen document you provided me. I tried to do some changes on my .patch file. I see the exact same error when I compile u-boot with " #  CONFIG_SPL_VIDEO=y ". I left the config as it is but, I saw a different error:

    /home/berkay/ti-processor-sdk-linux-am62xx-evm-09.02.01.10/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux/aarch64-oe-linux-ld.bfd: drivers/video/video-uclass.o: in function `show_splash':
    /home/berkay/ti-processor-sdk-linux-am62xx-evm-09.02.01.10/board-support/ti-u-boot-2023.04+gitAUTOINC+8366064208/drivers/video/video-uclass.c:436: undefined reference to `__splash_u_boot_logo_begin'
    /home/berkay/ti-processor-sdk-linux-am62xx-evm-09.02.01.10/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux/aarch64-oe-linux-ld.bfd: /home/berkay/ti-processor-sdk-linux-am62xx-evm-09.02.01.10/board-support/ti-u-boot-2023.04+gitAUTOINC+8366064208/drivers/video/video-uclass.c:436: undefined reference to `__splash_u_boot_logo_begin'
    /home/berkay/ti-processor-sdk-linux-am62xx-evm-09.02.01.10/board-support/ti-u-boot-2023.04+gitAUTOINC+8366064208/scripts/Makefile.spl:527: recipe for target 'spl/u-boot-spl' failed
    make[3]: *** [spl/u-boot-spl] Error 1

    It looks like errors are related with defconfigs. Here is my changes on defconfig:

    diff --git a/configs/am62x_evm_a53_defconfig b/configs/am62x_evm_a53_defconfig
    index 2637bcb9..27252aa0 100644
    --- a/configs/am62x_evm_a53_defconfig
    +++ b/configs/am62x_evm_a53_defconfig
    @@ -181,19 +181,25 @@ CONFIG_VIDEO=y
     # CONFIG_VIDEO_LOGO is not set
     CONFIG_SYS_WHITE_ON_BLACK=y
     CONFIG_VIDEO_TIDSS=y
    -CONFIG_SPL_VIDEO_TIDSS=y
    +# CONFIG_SPL_VIDEO_TIDSS is not set
     CONFIG_VIDEO_BMP_GZIP=y
     CONFIG_BMP_24BPP=y
     CONFIG_BMP_32BPP=y
    +CONFIG_BMP=y
     CONFIG_SPL_VIDEO=y
    -CONFIG_SPL_SPLASH_SCREEN=y
    -CONFIG_SPL_SYS_WHITE_ON_BLACK=y
    -CONFIG_SPL_SPLASH_SCREEN_ALIGN=y
    -CONFIG_SPL_SPLASH_SOURCE=y
    -CONFIG_SPL_VIDEO_BMP_GZIP=y
    -CONFIG_SPL_BMP_24BPP=y
    -CONFIG_SPL_BMP_32BPP=y
    -CONFIG_SPL_HIDE_LOGO_VERSION=y
    +# CONFIG_SPL_SPLASH_SCREEN is not set
    +# CONFIG_SPL_SYS_WHITE_ON_BLACK is not set
    +# CONFIG_SPL_SPLASH_SCREEN_ALIGN is not set
    +# CONFIG_SPL_SPLASH_SOURCE is not set
    +# CONFIG_SPL_VIDEO_BMP_GZIP is not set
    +# CONFIG_SPL_BMP_24BPP is not set
    +# CONFIG_SPL_BMP_32BPP is not set
    +# CONFIG_SPL_HIDE_LOGO_VERSION is not set
     CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
    -CONFIG_SPL_GZIP=y
    +# CONFIG_SPL_GZIP is not set
     CONFIG_OF_LIBFDT_OVERLAY=y
    +CONFIG_SYSCON=y
    +CONFIG_SPLASH_SCREEN=y
    +CONFIG_SPLASH_SCREEN_ALIGN=y
    +CONFIG_HIDE_LOGO_VERSION=y
    +CONFIG_SPLASH_SOURCE=y

  • Hello, 

    The error indicates code compilation errors, like unknown reference to functions.

    Have you verified the compiler is able to find these functions, by including the files in correct directories?

    I will try to apply the patch and resolve the compilation errors.

    Regards,
    Aparna