imx6 DM_VIDEObroken

Anatolij,
Since commit d37618d18d49 ("imx: convert gwventana board to DM_VIDEO") video support for IMX6 based Ventana boards has been broken.
I find that while the bind function for fsl_imx6q_ipu is called the probe never is (ipuv3_video_probe). Do you know why this is?
I see that with commit 57f065fee2a4 ("video: ipuv3: add DM_VIDEO support") you mention that DTS files must include 'u-boot,dm-pre-reloc' for soc/ipu nodes to enable driver binding to ipu device but I haven't been able to get that to make a difference nor have I found a board that does this. You did add those props to imx6qdl.dtsi at one point but they are no longer there.
There must have been several other IMX6 boards with video support that were affected by this so perhaps I'm missing something simple.
Best regards,
Tim

Hey Tim,
On Mon, 27 Sep 2021 17:25:58 -0700 Tim Harvey tharvey@gateworks.com wrote:
Anatolij,
Since commit d37618d18d49 ("imx: convert gwventana board to DM_VIDEO") video support for IMX6 based Ventana boards has been broken.
Back then I've tested similar DM_VIDEO conversion changes on i.mx6q nitrogen6q board and on i.mx6d/i.mx6s wandboards, it was okay if the board configuration uses the video console output during the boot sequence (i.e. configured to show splash screen or to output strings on vidconsole).
I find that while the bind function for fsl_imx6q_ipu is called the probe never is (ipuv3_video_probe). Do you know why this is?
Is video console output used during the boot? If not, then it might be the reason. With DM, the devices are probed when a subsystem actually tries to use them. You can try to trigger probing via switching to the video console output, i.e.:
=> setenv stdout vidconsole
I see that with commit 57f065fee2a4 ("video: ipuv3: add DM_VIDEO support") you mention that DTS files must include 'u-boot,dm-pre-reloc' for soc/ipu nodes to enable driver binding to ipu device but I haven't been able to get that to make a difference nor have I found a board that does this. You did add those props to imx6qdl.dtsi at one point but they are no longer there.
Does your board dts include imx6qdl-u-boot.dtsi ?
The u-boot,dm-pre-reloc properties were moved to this U-Boot specific dtsi in 7932b1c9fdb73393aa110249c89bd426533c0649 (imx: imx6qdl: dtsi: move U-Boot specific change to u-boot.dtsi)
There must have been several other IMX6 boards with video support that were affected by this so perhaps I'm missing something simple.
I did not test it recently, it looks I'll have to do it before the new release.
-- Anatolij

On Tue, Sep 28, 2021 at 5:55 AM Anatolij Gustschin agust@denx.de wrote:
Hey Tim,
On Mon, 27 Sep 2021 17:25:58 -0700 Tim Harvey tharvey@gateworks.com wrote:
Anatolij,
Since commit d37618d18d49 ("imx: convert gwventana board to DM_VIDEO") video support for IMX6 based Ventana boards has been broken.
Back then I've tested similar DM_VIDEO conversion changes on i.mx6q nitrogen6q board and on i.mx6d/i.mx6s wandboards, it was okay if the board configuration uses the video console output during the boot sequence (i.e. configured to show splash screen or to output strings on vidconsole).
I find that while the bind function for fsl_imx6q_ipu is called the probe never is (ipuv3_video_probe). Do you know why this is?
Is video console output used during the boot? If not, then it might be the reason. With DM, the devices are probed when a subsystem actually tries to use them. You can try to trigger probing via switching to the video console output, i.e.:
=> setenv stdout vidconsole
Yes, this calls ipuv3_video_probe. I guess I expected the display to just work by default as it did before.
I looked over doc/README.console. It may be out of date as it refers to 'video' instead of 'vidconsole'. What is the difference?
How do I get back to the state where a splash-screen is shown on the display by default?
I see that with commit 57f065fee2a4 ("video: ipuv3: add DM_VIDEO support") you mention that DTS files must include 'u-boot,dm-pre-reloc' for soc/ipu nodes to enable driver binding to ipu device but I haven't been able to get that to make a difference nor have I found a board that does this. You did add those props to imx6qdl.dtsi at one point but they are no longer there.
Does your board dts include imx6qdl-u-boot.dtsi ?
The u-boot,dm-pre-reloc properties were moved to this U-Boot specific dtsi in 7932b1c9fdb73393aa110249c89bd426533c0649 (imx: imx6qdl: dtsi: move U-Boot specific change to u-boot.dtsi)
No, I'm not including that but that is the right place for it.
Strangely, I found that if I don't have 'u-boot,dm-pre-reloc' for soc/ipu nodes enabling video via 'setenv stdout serial,vidconsole' works. Is there some reason why the prop is no longer required?
There must have been several other IMX6 boards with video support that were affected by this so perhaps I'm missing something simple.
I did not test it recently, it looks I'll have to do it before the new release.
I would think the other board maintainers would have raised a red flag if things broke for their boards, I just haven't tested it in quite some time for gwventana_*_defconfig.
How do you go about testing this by the way without having all the boards and displays?
Best regards,
Tim

Hi Tim,
On Tue, Sep 28, 2021 at 2:00 PM Tim Harvey tharvey@gateworks.com wrote:
I would think the other board maintainers would have raised a red flag if things broke for their boards, I just haven't tested it in quite some time for gwventana_*_defconfig.
I have just tested wandboard with the top of tree U-Boot and it displays the splash screen correctly.
Can you check this commit from Anatolij?
commit b2ec22b52d6c1541cabf7103a098e6c80f27637b Author: Anatolij Gustschin agust@denx.de Date: Wed Sep 18 16:55:49 2019 +0200
imx: wandboard: fix splash logo drawing
After mxc_ipuv3 DM_VIDEO conversion showing splash image doesn't work. Fix this. Also enable white on black console configuration as it used to be with cfb_console driver.
Signed-off-by: Anatolij Gustschin agust@denx.de
Regards,
Fabio Estevam

On Tue, Sep 28, 2021 at 6:51 PM Fabio Estevam festevam@gmail.com wrote:
Hi Tim,
On Tue, Sep 28, 2021 at 2:00 PM Tim Harvey tharvey@gateworks.com wrote:
I would think the other board maintainers would have raised a red flag if things broke for their boards, I just haven't tested it in quite some time for gwventana_*_defconfig.
I have just tested wandboard with the top of tree U-Boot and it displays the splash screen correctly.
Can you check this commit from Anatolij?
commit b2ec22b52d6c1541cabf7103a098e6c80f27637b Author: Anatolij Gustschin agust@denx.de Date: Wed Sep 18 16:55:49 2019 +0200
imx: wandboard: fix splash logo drawing After mxc_ipuv3 DM_VIDEO conversion showing splash image doesn't work. Fix this. Also enable white on black console configuration as it used to be with cfb_console driver. Signed-off-by: Anatolij Gustschin <agust@denx.de>
Fabio,
Thanks - that was it.
There were a couple of other things needed for dm video conversion that were not taken care of back when it was done. Specifically: CONFIG_SPLASH_SCREEN enabled CONFIG_CMD_BMP enabled splashiamge env var
These were not needed for splash prior to the dm video conversion.
Best regards,
Tim

On Wed, Sep 29, 2021 at 8:55 AM Tim Harvey tharvey@gateworks.com wrote:
On Tue, Sep 28, 2021 at 6:51 PM Fabio Estevam festevam@gmail.com wrote:
Hi Tim,
On Tue, Sep 28, 2021 at 2:00 PM Tim Harvey tharvey@gateworks.com wrote:
I would think the other board maintainers would have raised a red flag if things broke for their boards, I just haven't tested it in quite some time for gwventana_*_defconfig.
I have just tested wandboard with the top of tree U-Boot and it displays the splash screen correctly.
Can you check this commit from Anatolij?
commit b2ec22b52d6c1541cabf7103a098e6c80f27637b Author: Anatolij Gustschin agust@denx.de Date: Wed Sep 18 16:55:49 2019 +0200
imx: wandboard: fix splash logo drawing After mxc_ipuv3 DM_VIDEO conversion showing splash image doesn't work. Fix this. Also enable white on black console configuration as it used to be with cfb_console driver. Signed-off-by: Anatolij Gustschin <agust@denx.de>
Fabio,
Thanks - that was it.
There were a couple of other things needed for dm video conversion that were not taken care of back when it was done. Specifically: CONFIG_SPLASH_SCREEN enabled CONFIG_CMD_BMP enabled splashiamge env var
These were not needed for splash prior to the dm video conversion.
One last question on this. I have never used U-Boot vidconsole before. It does work if I 'setenv stdout serial,videconsole' but if I saveenv and reboot vidconsole is not enabled. Should I expect it to be or is it expected that if you want vidconsole you need to do a setenv in preboot?
Best regards,
Tim

On Wed, 29 Sep 2021 09:33:18 -0700 Tim Harvey tharvey@gateworks.com wrote: ...
One last question on this. I have never used U-Boot vidconsole before. It does work if I 'setenv stdout serial,videconsole' but if I saveenv and reboot vidconsole is not enabled. Should I expect it to be or is it expected that if you want vidconsole you need to do a setenv in preboot?
if you have CONFIG_CONSOLE_MUX=y CONFIG_SYS_CONSOLE_IS_IN_ENV=y
and # CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
then vidconsole should be enabled.
-- Anatolij

On Mon, Oct 4, 2021 at 6:48 AM Anatolij Gustschin agust@denx.de wrote:
On Wed, 29 Sep 2021 09:33:18 -0700 Tim Harvey tharvey@gateworks.com wrote: ...
One last question on this. I have never used U-Boot vidconsole before. It does work if I 'setenv stdout serial,videconsole' but if I saveenv and reboot vidconsole is not enabled. Should I expect it to be or is it expected that if you want vidconsole you need to do a setenv in preboot?
if you have CONFIG_CONSOLE_MUX=y CONFIG_SYS_CONSOLE_IS_IN_ENV=y
and # CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
then vidconsole should be enabled.
Anatolij,
That is my configuration yet vidconsole does not enable until I 'setenv stdout serial,vidconsole': Ventana > print stdout stdout=serial,vidconsole ^^^ see splash, yet no vidconsole Ventana > setenv stdout serial,vidconsole ^^^ now I see vidconsole
Do you perhaps have another board to check this behavior with on master?
Best regards,
Tim

On Thu, 7 Oct 2021 12:50:04 -0700 Tim Harvey tharvey@gateworks.com wrote: ...
then vidconsole should be enabled.
Anatolij,
That is my configuration yet vidconsole does not enable until I 'setenv stdout serial,vidconsole': Ventana > print stdout stdout=serial,vidconsole ^^^ see splash, yet no vidconsole Ventana > setenv stdout serial,vidconsole ^^^ now I see vidconsole
Tim,
something in your board config or code must be different, then. Do you use HDMI or LVDS display?
Do you perhaps have another board to check this behavior with on master?
I've tested with current master and a modified wandboard configuration:
U-Boot SPL 2021.10-00525-g7a508a7245-dirty (Oct 07 2021 - 23:32:09 +0200) Trying to boot from MMC1
U-Boot 2021.10-00525-g7a508a7245-dirty (Oct 07 2021 - 23:32:09 +0200)
CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz Reset cause: WDOG DRAM: 512 MiB MMC: FSL_SDHC: 4, FSL_SDHC: 1, FSL_SDHC: 0 Loading Environment from MMC... OK auto-detected panel HDMI Display: HDMI (1024x768) In: serial Out: vidconsole Err: vidconsole Board: Wandboard rev B1 Net: eth0: ethernet@2188000 Hit any key to stop autoboot: 0 => print stdout stdout=serial,vidconsole
HDMI monitor displays logo and video console text output starting with: Board: Wandboard rev B1 Net: eth0: ethernet@2188000 Hit any key to stop autoboot: 0
It works on wandboard.
The wandboard_defconfig in master has CONFIG_CONSOLE_MUX disabled and CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE enabled. Therefore I enabled CONFIG_CONSOLE_MUX and disabled CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE via menuconfig for this test. And additionally I used below patch to enable building this configuration:
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c index da995dd0f5..73e1a0701f 100644 --- a/board/wandboard/wandboard.c +++ b/board/wandboard/wandboard.c @@ -391,11 +391,11 @@ int power_init_board(void) /* * Do not overwrite the console * Use always serial for U-Boot console - */ int overwrite_console(void) { return 1; } + */
#ifdef CONFIG_CMD_BMODE static const struct boot_mode board_boot_modes[] = {
-- Anatolij
participants (3)
-
Anatolij Gustschin
-
Fabio Estevam
-
Tim Harvey