All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
@ 2022-02-16 20:42 Pali Rohár
  2022-02-17  8:53 ` Anatolij Gustschin
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Pali Rohár @ 2022-02-16 20:42 UTC (permalink / raw)
  To: Simon Glass, Tom Rini, Anatolij Gustschin; +Cc: u-boot

---
I had to comment "return -ENOSPC;" in video-uclass.c because without it
DM_VIDEO does not work and I do not know why. This looks like either
false-positive test or a bug in DM_VIDEO code. I have already set
PRE_RELOC flag but it has no effect on that code.

Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
is enabled in config file. I do not know why too.

Any idea?

Othwise framebuffer works.
---
 board/nokia/rx51/rx51.c      | 41 ++++++++++++++++++++++--------------
 configs/nokia_rx51_defconfig |  7 ++++--
 drivers/video/video-uclass.c |  4 +++-
 include/configs/nokia_rx51.h | 11 ++--------
 4 files changed, 35 insertions(+), 28 deletions(-)

diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c
index a52691509da4..e2fe411b34be 100644
--- a/board/nokia/rx51/rx51.c
+++ b/board/nokia/rx51/rx51.c
@@ -30,7 +30,7 @@
 #include <malloc.h>
 #include <twl4030.h>
 #include <i2c.h>
-#include <video_fb.h>
+#include <video.h>
 #include <keyboard.h>
 #include <asm/global_data.h>
 #include <asm/io.h>
@@ -62,8 +62,6 @@ struct emu_hal_params_rx51 {
 
 DECLARE_GLOBAL_DATA_PTR;
 
-GraphicDevice gdev;
-
 const omap3_sysinfo sysinfo = {
 	DDR_STACKED,
 	"Nokia RX-51",
@@ -342,22 +340,29 @@ void setup_board_tags(struct tag **in_params)
 	*in_params = params;
 }
 
-/*
- * Routine: video_hw_init
- * Description: Set up the GraphicDevice depending on sys_boot.
- */
-void *video_hw_init(void)
+static int rx51_video_probe(struct udevice *dev)
 {
-	/* fill in Graphic Device */
-	gdev.frameAdrs = 0x8f9c0000;
-	gdev.winSizeX = 800;
-	gdev.winSizeY = 480;
-	gdev.gdfBytesPP = 2;
-	gdev.gdfIndex = GDF_16BIT_565RGB;
-	memset((void *)gdev.frameAdrs, 0, 0xbb800);
-	return (void *) &gdev;
+	struct video_uc_plat *uc_plat = dev_get_uclass_plat(dev);
+	struct video_priv *uc_priv = dev_get_uclass_priv(dev);
+
+	uc_plat->base = 0x8f9c0000;
+	uc_plat->size = 800 * 480 * sizeof(u16);
+	uc_priv->xsize = 800;
+	uc_priv->ysize = 480;
+	uc_priv->bpix = VIDEO_BPP16;
+
+	video_set_flush_dcache(dev, true);
+
+	return 0;
 }
 
+U_BOOT_DRIVER(rx51_video) = {
+	.name = "rx51_video",
+	.id = UCLASS_VIDEO,
+	.probe = rx51_video_probe,
+	.flags = DM_FLAG_PRE_RELOC,
+};
+
 /*
  * Routine: twl4030_regulator_set_mode
  * Description: Set twl4030 regulator mode over i2c powerbus.
@@ -777,6 +782,10 @@ U_BOOT_DRVINFOS(rx51_watchdog) = {
 	{ "rx51_watchdog" },
 };
 
+U_BOOT_DRVINFOS(rx51_video) = {
+	{ "rx51_video" },
+};
+
 U_BOOT_DRVINFOS(rx51_kp) = {
 	{ "rx51_kp" },
 };
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig
index 47b7bc3b4f03..1d64981afc46 100644
--- a/configs/nokia_rx51_defconfig
+++ b/configs/nokia_rx51_defconfig
@@ -77,8 +77,11 @@ CONFIG_SPI=y
 CONFIG_USB=y
 CONFIG_USB_MUSB_UDC=y
 CONFIG_USB_OMAP3=y
-CONFIG_CFB_CONSOLE=y
-CONFIG_CFB_CONSOLE_ANSI=y
+CONFIG_DM_VIDEO=y
+CONFIG_VIDEO_LOGO=y
+# CONFIG_VIDEO_BPP8 is not set
+# CONFIG_VIDEO_BPP32 is not set
+CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_SPLASH_SCREEN=y
 CONFIG_WATCHDOG_TIMEOUT_MSECS=31000
 CONFIG_WDT=y
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index 7d499bcec51d..98cc5c0b17da 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -3,6 +3,8 @@
  * Copyright (c) 2015 Google, Inc
  */
 
+#define DEBUG
+
 #define LOG_CATEGORY UCLASS_VIDEO
 
 #include <common.h>
@@ -438,7 +440,7 @@ static int video_post_bind(struct udevice *dev)
 		 */
 		printf("Video device '%s' cannot allocate frame buffer memory -ensure the device is set up before relocation\n",
 		       dev->name);
-		return -ENOSPC;
+//		return -ENOSPC;
 	}
 	debug("%s: Claiming %lx bytes at %lx for video device '%s'\n",
 	      __func__, size, addr, dev->name);
diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h
index 9be64c3d3f87..e837b12b568f 100644
--- a/include/configs/nokia_rx51.h
+++ b/include/configs/nokia_rx51.h
@@ -70,19 +70,12 @@
 
 #define CONFIG_SYS_ONENAND_BASE		ONENAND_MAP
 
-/*
- * Framebuffer
- */
-/* Video console */
-#define VIDEO_FB_16BPP_PIXEL_SWAP
-#define VIDEO_FB_16BPP_WORD_SWAP
-
 /* Environment information */
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"usbtty=cdc_acm\0" \
 	"stdin=usbtty,serial,keyboard\0" \
-	"stdout=usbtty,serial,vga\0" \
-	"stderr=usbtty,serial,vga\0" \
+	"stdout=usbtty,serial,vidconsole\0" \
+	"stderr=usbtty,serial,vidconsole\0" \
 	"slide=gpio input " __stringify(GPIO_SLIDE) "\0" \
 	"switchmmc=mmc dev ${mmcnum}\0" \
 	"kernaddr=0x82008000\0" \
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-02-16 20:42 [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO Pali Rohár
@ 2022-02-17  8:53 ` Anatolij Gustschin
  2022-02-17 12:20   ` Pali Rohár
  2022-03-06 15:08 ` [PATCH] " Pali Rohár
  2022-03-09 19:46 ` [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves Pali Rohár
  2 siblings, 1 reply; 22+ messages in thread
From: Anatolij Gustschin @ 2022-02-17  8:53 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Simon Glass, Tom Rini, u-boot

Hi Pali,

On Wed, 16 Feb 2022 21:42:19 +0100
Pali Rohár pali@kernel.org wrote:

> ---
> I had to comment "return -ENOSPC;" in video-uclass.c because without it
> DM_VIDEO does not work and I do not know why. This looks like either
> false-positive test or a bug in DM_VIDEO code. I have already set
> PRE_RELOC flag but it has no effect on that code.

Probably the frame buffer memory allocation did not work. 
Could you please try with a bind callback, i.e.:

static int rx51_video_bind(struct udevice *dev)
{
	struct video_uc_plat *plat = dev_get_uclass_plat(dev);

	plat->size = 800 * 480 * 2;
	return 0;
}
...
U_BOOT_DRIVER(rx51_video) = {
	.name = "rx51_video",
	.id = UCLASS_VIDEO,
	.bind = rx51_video_bind,
	.probe = rx51_video_probe,
	.flags = DM_FLAG_PRE_RELOC,
};

> 
> Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> is enabled in config file. I do not know why too.
> 
> Any idea?

Not yet. There were some logo related changes recently, but if I
remember correctly, I tested them on wandboard and nitrogen6q
targets and with sandbox, and logo drawing worked there.

--
Anatolij

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-02-17  8:53 ` Anatolij Gustschin
@ 2022-02-17 12:20   ` Pali Rohár
  2022-03-06 11:51     ` Pali Rohár
  0 siblings, 1 reply; 22+ messages in thread
From: Pali Rohár @ 2022-02-17 12:20 UTC (permalink / raw)
  To: Anatolij Gustschin; +Cc: Simon Glass, Tom Rini, u-boot

On Thursday 17 February 2022 09:53:39 Anatolij Gustschin wrote:
> Hi Pali,
> 
> On Wed, 16 Feb 2022 21:42:19 +0100
> Pali Rohár pali@kernel.org wrote:
> 
> > ---
> > I had to comment "return -ENOSPC;" in video-uclass.c because without it
> > DM_VIDEO does not work and I do not know why. This looks like either
> > false-positive test or a bug in DM_VIDEO code. I have already set
> > PRE_RELOC flag but it has no effect on that code.
> 
> Probably the frame buffer memory allocation did not work. 
> Could you please try with a bind callback, i.e.:
> 
> static int rx51_video_bind(struct udevice *dev)
> {
> 	struct video_uc_plat *plat = dev_get_uclass_plat(dev);
> 
> 	plat->size = 800 * 480 * 2;
> 	return 0;
> }
> ...
> U_BOOT_DRIVER(rx51_video) = {
> 	.name = "rx51_video",
> 	.id = UCLASS_VIDEO,
> 	.bind = rx51_video_bind,
> 	.probe = rx51_video_probe,
> 	.flags = DM_FLAG_PRE_RELOC,
> };

Hello! It does not work too. Here is the output:

U-Boot 2022.04-rc2-00002-ga2c1a9878375-dirty (Jan 01 1970 - 00:00:00 +0000)

OMAP35XX-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 600 MHz
DRAM:  Video frame buffers from 8fe30000 to 8fe30000
256 MiB
Video device 'rx51_video' cannot allocate frame buffer memory -ensure the device is set up before relocation

If "return -ENOSPC;" is not commented then this is the last printed
line. If it is commented then output continues with:

video_post_bind: Claiming 130000 bytes at 8fd00000 for video device 'rx51_video'

And framebuffer is working fine like without above rx51_video_bind()
change.

> > 
> > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > is enabled in config file. I do not know why too.
> > 
> > Any idea?
> 
> Not yet. There were some logo related changes recently, but if I
> remember correctly, I tested them on wandboard and nitrogen6q
> targets and with sandbox, and logo drawing worked there.
> 
> --
> Anatolij

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-02-17 12:20   ` Pali Rohár
@ 2022-03-06 11:51     ` Pali Rohár
  2022-03-06 12:51       ` Simon Glass
  0 siblings, 1 reply; 22+ messages in thread
From: Pali Rohár @ 2022-03-06 11:51 UTC (permalink / raw)
  To: Anatolij Gustschin; +Cc: Simon Glass, Tom Rini, u-boot

PING?

On Thursday 17 February 2022 13:20:43 Pali Rohár wrote:
> On Thursday 17 February 2022 09:53:39 Anatolij Gustschin wrote:
> > Hi Pali,
> > 
> > On Wed, 16 Feb 2022 21:42:19 +0100
> > Pali Rohár pali@kernel.org wrote:
> > 
> > > ---
> > > I had to comment "return -ENOSPC;" in video-uclass.c because without it
> > > DM_VIDEO does not work and I do not know why. This looks like either
> > > false-positive test or a bug in DM_VIDEO code. I have already set
> > > PRE_RELOC flag but it has no effect on that code.
> > 
> > Probably the frame buffer memory allocation did not work. 
> > Could you please try with a bind callback, i.e.:
> > 
> > static int rx51_video_bind(struct udevice *dev)
> > {
> > 	struct video_uc_plat *plat = dev_get_uclass_plat(dev);
> > 
> > 	plat->size = 800 * 480 * 2;
> > 	return 0;
> > }
> > ...
> > U_BOOT_DRIVER(rx51_video) = {
> > 	.name = "rx51_video",
> > 	.id = UCLASS_VIDEO,
> > 	.bind = rx51_video_bind,
> > 	.probe = rx51_video_probe,
> > 	.flags = DM_FLAG_PRE_RELOC,
> > };
> 
> Hello! It does not work too. Here is the output:
> 
> U-Boot 2022.04-rc2-00002-ga2c1a9878375-dirty (Jan 01 1970 - 00:00:00 +0000)
> 
> OMAP35XX-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 600 MHz
> DRAM:  Video frame buffers from 8fe30000 to 8fe30000
> 256 MiB
> Video device 'rx51_video' cannot allocate frame buffer memory -ensure the device is set up before relocation
> 
> If "return -ENOSPC;" is not commented then this is the last printed
> line. If it is commented then output continues with:
> 
> video_post_bind: Claiming 130000 bytes at 8fd00000 for video device 'rx51_video'
> 
> And framebuffer is working fine like without above rx51_video_bind()
> change.
> 
> > > 
> > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > is enabled in config file. I do not know why too.
> > > 
> > > Any idea?
> > 
> > Not yet. There were some logo related changes recently, but if I
> > remember correctly, I tested them on wandboard and nitrogen6q
> > targets and with sandbox, and logo drawing worked there.
> > 
> > --
> > Anatolij

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-06 11:51     ` Pali Rohár
@ 2022-03-06 12:51       ` Simon Glass
  2022-03-06 14:17         ` Pali Rohár
  0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2022-03-06 12:51 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List

Hi Pali,

On Sun, 6 Mar 2022 at 04:51, Pali Rohár <pali@kernel.org> wrote:
>
> PING?
>
> On Thursday 17 February 2022 13:20:43 Pali Rohár wrote:
> > On Thursday 17 February 2022 09:53:39 Anatolij Gustschin wrote:
> > > Hi Pali,
> > >
> > > On Wed, 16 Feb 2022 21:42:19 +0100
> > > Pali Rohár pali@kernel.org wrote:
> > >
> > > > ---
> > > > I had to comment "return -ENOSPC;" in video-uclass.c because without it
> > > > DM_VIDEO does not work and I do not know why. This looks like either
> > > > false-positive test or a bug in DM_VIDEO code. I have already set
> > > > PRE_RELOC flag but it has no effect on that code.
> > >
> > > Probably the frame buffer memory allocation did not work.
> > > Could you please try with a bind callback, i.e.:
> > >
> > > static int rx51_video_bind(struct udevice *dev)
> > > {
> > >     struct video_uc_plat *plat = dev_get_uclass_plat(dev);
> > >
> > >     plat->size = 800 * 480 * 2;
> > >     return 0;
> > > }
> > > ...
> > > U_BOOT_DRIVER(rx51_video) = {
> > >     .name = "rx51_video",
> > >     .id = UCLASS_VIDEO,
> > >     .bind = rx51_video_bind,
> > >     .probe = rx51_video_probe,
> > >     .flags = DM_FLAG_PRE_RELOC,
> > > };
> >
> > Hello! It does not work too. Here is the output:
> >
> > U-Boot 2022.04-rc2-00002-ga2c1a9878375-dirty (Jan 01 1970 - 00:00:00 +0000)
> >
> > OMAP35XX-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 600 MHz
> > DRAM:  Video frame buffers from 8fe30000 to 8fe30000
> > 256 MiB
> > Video device 'rx51_video' cannot allocate frame buffer memory -ensure the device is set up before relocation
> >
> > If "return -ENOSPC;" is not commented then this is the last printed
> > line. If it is commented then output continues with:
> >
> > video_post_bind: Claiming 130000 bytes at 8fd00000 for video device 'rx51_video'
> >
> > And framebuffer is working fine like without above rx51_video_bind()
> > change.

It looks like you are hard-coding the address of the video buffers. Is
that intentional? If so, you may need to disable U-Boot's automatic
allocation.

One way to do that is to set the frame buffer address and size in your
bind() routine (post relocation) and update video_post_bind() to check
if the address is non-zero (plat->base I mean) and skip its allocation
if so.

> >
> > > >
> > > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > > is enabled in config file. I do not know why too.
> > > >
> > > > Any idea?
> > >
> > > Not yet. There were some logo related changes recently, but if I
> > > remember correctly, I tested them on wandboard and nitrogen6q
> > > targets and with sandbox, and logo drawing worked there.

Can you be more specific than 'broken'? What is broken about it?

Regards,
Simon

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-06 12:51       ` Simon Glass
@ 2022-03-06 14:17         ` Pali Rohár
  2022-03-06 14:42           ` Simon Glass
  0 siblings, 1 reply; 22+ messages in thread
From: Pali Rohár @ 2022-03-06 14:17 UTC (permalink / raw)
  To: Simon Glass; +Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List

On Sunday 06 March 2022 05:51:34 Simon Glass wrote:
> Hi Pali,
> 
> On Sun, 6 Mar 2022 at 04:51, Pali Rohár <pali@kernel.org> wrote:
> >
> > PING?
> >
> > On Thursday 17 February 2022 13:20:43 Pali Rohár wrote:
> > > On Thursday 17 February 2022 09:53:39 Anatolij Gustschin wrote:
> > > > Hi Pali,
> > > >
> > > > On Wed, 16 Feb 2022 21:42:19 +0100
> > > > Pali Rohár pali@kernel.org wrote:
> > > >
> > > > > ---
> > > > > I had to comment "return -ENOSPC;" in video-uclass.c because without it
> > > > > DM_VIDEO does not work and I do not know why. This looks like either
> > > > > false-positive test or a bug in DM_VIDEO code. I have already set
> > > > > PRE_RELOC flag but it has no effect on that code.
> > > >
> > > > Probably the frame buffer memory allocation did not work.
> > > > Could you please try with a bind callback, i.e.:
> > > >
> > > > static int rx51_video_bind(struct udevice *dev)
> > > > {
> > > >     struct video_uc_plat *plat = dev_get_uclass_plat(dev);
> > > >
> > > >     plat->size = 800 * 480 * 2;
> > > >     return 0;
> > > > }
> > > > ...
> > > > U_BOOT_DRIVER(rx51_video) = {
> > > >     .name = "rx51_video",
> > > >     .id = UCLASS_VIDEO,
> > > >     .bind = rx51_video_bind,
> > > >     .probe = rx51_video_probe,
> > > >     .flags = DM_FLAG_PRE_RELOC,
> > > > };
> > >
> > > Hello! It does not work too. Here is the output:
> > >
> > > U-Boot 2022.04-rc2-00002-ga2c1a9878375-dirty (Jan 01 1970 - 00:00:00 +0000)
> > >
> > > OMAP35XX-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 600 MHz
> > > DRAM:  Video frame buffers from 8fe30000 to 8fe30000
> > > 256 MiB
> > > Video device 'rx51_video' cannot allocate frame buffer memory -ensure the device is set up before relocation
> > >
> > > If "return -ENOSPC;" is not commented then this is the last printed
> > > line. If it is commented then output continues with:
> > >
> > > video_post_bind: Claiming 130000 bytes at 8fd00000 for video device 'rx51_video'
> > >
> > > And framebuffer is working fine like without above rx51_video_bind()
> > > change.
> 
> It looks like you are hard-coding the address of the video buffers. Is
> that intentional? If so, you may need to disable U-Boot's automatic
> allocation.

This is how it works, signed bootloader which loads U-Boot initialize
and prepare framebuffer.

> One way to do that is to set the frame buffer address and size in your
> bind() routine (post relocation) and update video_post_bind() to check
> if the address is non-zero (plat->base I mean) and skip its allocation
> if so.

Ok, I have tried it and following change makes framebuffer in qemu
working:

diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index 7d499bcec51d..f4d8d395e714 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -78,6 +80,9 @@ static ulong alloc_fb(struct udevice *dev, ulong *addrp)
 	if (!plat->size)
 		return 0;
 
+	if (plat->base)
+		return 0;
+
 	align = plat->align ? plat->align : 1 << 20;
 	base = *addrp - plat->size;
 	base &= ~(align - 1);

Is this what you mean?

> > >
> > > > >
> > > > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > > > is enabled in config file. I do not know why too.
> > > > >
> > > > > Any idea?
> > > >
> > > > Not yet. There were some logo related changes recently, but if I
> > > > remember correctly, I tested them on wandboard and nitrogen6q
> > > > targets and with sandbox, and logo drawing worked there.
> 
> Can you be more specific than 'broken'? What is broken about it?

Does not work, logo is not drown on the screen.

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-06 14:17         ` Pali Rohár
@ 2022-03-06 14:42           ` Simon Glass
  2022-03-06 15:25             ` Pali Rohár
  0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2022-03-06 14:42 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List

Hi Pali,

On Sun, 6 Mar 2022 at 07:17, Pali Rohár <pali@kernel.org> wrote:
>
> On Sunday 06 March 2022 05:51:34 Simon Glass wrote:
> > Hi Pali,
> >
> > On Sun, 6 Mar 2022 at 04:51, Pali Rohár <pali@kernel.org> wrote:
> > >
> > > PING?
> > >
> > > On Thursday 17 February 2022 13:20:43 Pali Rohár wrote:
> > > > On Thursday 17 February 2022 09:53:39 Anatolij Gustschin wrote:
> > > > > Hi Pali,
> > > > >
> > > > > On Wed, 16 Feb 2022 21:42:19 +0100
> > > > > Pali Rohár pali@kernel.org wrote:
> > > > >
> > > > > > ---
> > > > > > I had to comment "return -ENOSPC;" in video-uclass.c because without it
> > > > > > DM_VIDEO does not work and I do not know why. This looks like either
> > > > > > false-positive test or a bug in DM_VIDEO code. I have already set
> > > > > > PRE_RELOC flag but it has no effect on that code.
> > > > >
> > > > > Probably the frame buffer memory allocation did not work.
> > > > > Could you please try with a bind callback, i.e.:
> > > > >
> > > > > static int rx51_video_bind(struct udevice *dev)
> > > > > {
> > > > >     struct video_uc_plat *plat = dev_get_uclass_plat(dev);
> > > > >
> > > > >     plat->size = 800 * 480 * 2;
> > > > >     return 0;
> > > > > }
> > > > > ...
> > > > > U_BOOT_DRIVER(rx51_video) = {
> > > > >     .name = "rx51_video",
> > > > >     .id = UCLASS_VIDEO,
> > > > >     .bind = rx51_video_bind,
> > > > >     .probe = rx51_video_probe,
> > > > >     .flags = DM_FLAG_PRE_RELOC,
> > > > > };
> > > >
> > > > Hello! It does not work too. Here is the output:
> > > >
> > > > U-Boot 2022.04-rc2-00002-ga2c1a9878375-dirty (Jan 01 1970 - 00:00:00 +0000)
> > > >
> > > > OMAP35XX-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 600 MHz
> > > > DRAM:  Video frame buffers from 8fe30000 to 8fe30000
> > > > 256 MiB
> > > > Video device 'rx51_video' cannot allocate frame buffer memory -ensure the device is set up before relocation
> > > >
> > > > If "return -ENOSPC;" is not commented then this is the last printed
> > > > line. If it is commented then output continues with:
> > > >
> > > > video_post_bind: Claiming 130000 bytes at 8fd00000 for video device 'rx51_video'
> > > >
> > > > And framebuffer is working fine like without above rx51_video_bind()
> > > > change.
> >
> > It looks like you are hard-coding the address of the video buffers. Is
> > that intentional? If so, you may need to disable U-Boot's automatic
> > allocation.
>
> This is how it works, signed bootloader which loads U-Boot initialize
> and prepare framebuffer.
>
> > One way to do that is to set the frame buffer address and size in your
> > bind() routine (post relocation) and update video_post_bind() to check
> > if the address is non-zero (plat->base I mean) and skip its allocation
> > if so.
>
> Ok, I have tried it and following change makes framebuffer in qemu
> working:
>
> diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
> index 7d499bcec51d..f4d8d395e714 100644
> --- a/drivers/video/video-uclass.c
> +++ b/drivers/video/video-uclass.c
> @@ -78,6 +80,9 @@ static ulong alloc_fb(struct udevice *dev, ulong *addrp)
>         if (!plat->size)
>                 return 0;
>
> +       if (plat->base)
> +               return 0;
> +

Yes let's go with that.

>         align = plat->align ? plat->align : 1 << 20;
>         base = *addrp - plat->size;
>         base &= ~(align - 1);
>
> Is this what you mean?
>
> > > >
> > > > > >
> > > > > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > > > > is enabled in config file. I do not know why too.
> > > > > >
> > > > > > Any idea?
> > > > >
> > > > > Not yet. There were some logo related changes recently, but if I
> > > > > remember correctly, I tested them on wandboard and nitrogen6q
> > > > > targets and with sandbox, and logo drawing worked there.
> >
> > Can you be more specific than 'broken'? What is broken about it?
>
> Does not work, logo is not drown on the screen.

See video_bmp_display()  - I wonder if the particular depth you are
using is not supported? Anyway you should be able to debug it there or
using the bmp command. The file is drivers/video/u_boot_logo.bmp

Regards,
Simon

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH] Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-02-16 20:42 [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO Pali Rohár
  2022-02-17  8:53 ` Anatolij Gustschin
@ 2022-03-06 15:08 ` Pali Rohár
  2022-03-06 18:43   ` Simon Glass
  2022-03-09 19:46 ` [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves Pali Rohár
  2 siblings, 1 reply; 22+ messages in thread
From: Pali Rohár @ 2022-03-06 15:08 UTC (permalink / raw)
  To: Simon Glass, Anatolij Gustschin, Tom Rini; +Cc: u-boot, maemo-leste

Mechanically convert video_hw_init() function to UCLASS_VIDEO probe
callback and replace CONFIG_CFB_CONSOLE by CONFIG_DM_VIDEO.

As framebuffer base address is setup by the bootloader which loads U-Boot,
set it into plat->base. And do not allocate framebuffer in video_post_bind
function when base address is already specified.

This change was tested in qemu n900 machine and is working fine.

What does not work is CONFIG_VIDEO_LOGO, seems to be buggy.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 board/nokia/rx51/rx51.c      | 40 +++++++++++++++++++++---------------
 configs/nokia_rx51_defconfig |  7 +++++--
 drivers/video/video-uclass.c |  3 +++
 include/configs/nokia_rx51.h | 11 ++--------
 4 files changed, 34 insertions(+), 27 deletions(-)

diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c
index a52691509da4..621cff095619 100644
--- a/board/nokia/rx51/rx51.c
+++ b/board/nokia/rx51/rx51.c
@@ -30,7 +30,7 @@
 #include <malloc.h>
 #include <twl4030.h>
 #include <i2c.h>
-#include <video_fb.h>
+#include <video.h>
 #include <keyboard.h>
 #include <asm/global_data.h>
 #include <asm/io.h>
@@ -62,8 +62,6 @@ struct emu_hal_params_rx51 {
 
 DECLARE_GLOBAL_DATA_PTR;
 
-GraphicDevice gdev;
-
 const omap3_sysinfo sysinfo = {
 	DDR_STACKED,
 	"Nokia RX-51",
@@ -342,22 +340,28 @@ void setup_board_tags(struct tag **in_params)
 	*in_params = params;
 }
 
-/*
- * Routine: video_hw_init
- * Description: Set up the GraphicDevice depending on sys_boot.
- */
-void *video_hw_init(void)
+static int rx51_video_probe(struct udevice *dev)
 {
-	/* fill in Graphic Device */
-	gdev.frameAdrs = 0x8f9c0000;
-	gdev.winSizeX = 800;
-	gdev.winSizeY = 480;
-	gdev.gdfBytesPP = 2;
-	gdev.gdfIndex = GDF_16BIT_565RGB;
-	memset((void *)gdev.frameAdrs, 0, 0xbb800);
-	return (void *) &gdev;
+	struct video_uc_plat *uc_plat = dev_get_uclass_plat(dev);
+	struct video_priv *uc_priv = dev_get_uclass_priv(dev);
+
+	uc_plat->base = 0x8f9c0000;
+	uc_plat->size = 800 * 480 * sizeof(u16);
+	uc_priv->xsize = 800;
+	uc_priv->ysize = 480;
+	uc_priv->bpix = VIDEO_BPP16;
+
+	video_set_flush_dcache(dev, true);
+
+	return 0;
 }
 
+U_BOOT_DRIVER(rx51_video) = {
+	.name = "rx51_video",
+	.id = UCLASS_VIDEO,
+	.probe = rx51_video_probe,
+};
+
 /*
  * Routine: twl4030_regulator_set_mode
  * Description: Set twl4030 regulator mode over i2c powerbus.
@@ -777,6 +781,10 @@ U_BOOT_DRVINFOS(rx51_watchdog) = {
 	{ "rx51_watchdog" },
 };
 
+U_BOOT_DRVINFOS(rx51_video) = {
+	{ "rx51_video" },
+};
+
 U_BOOT_DRVINFOS(rx51_kp) = {
 	{ "rx51_kp" },
 };
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig
index 47b7bc3b4f03..1d64981afc46 100644
--- a/configs/nokia_rx51_defconfig
+++ b/configs/nokia_rx51_defconfig
@@ -77,8 +77,11 @@ CONFIG_SPI=y
 CONFIG_USB=y
 CONFIG_USB_MUSB_UDC=y
 CONFIG_USB_OMAP3=y
-CONFIG_CFB_CONSOLE=y
-CONFIG_CFB_CONSOLE_ANSI=y
+CONFIG_DM_VIDEO=y
+CONFIG_VIDEO_LOGO=y
+# CONFIG_VIDEO_BPP8 is not set
+# CONFIG_VIDEO_BPP32 is not set
+CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_SPLASH_SCREEN=y
 CONFIG_WATCHDOG_TIMEOUT_MSECS=31000
 CONFIG_WDT=y
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index 7d499bcec51d..c2f7d97e93e3 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -78,6 +78,9 @@ static ulong alloc_fb(struct udevice *dev, ulong *addrp)
 	if (!plat->size)
 		return 0;
 
+	if (plat->base)
+		return 0;
+
 	align = plat->align ? plat->align : 1 << 20;
 	base = *addrp - plat->size;
 	base &= ~(align - 1);
diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h
index 9be64c3d3f87..e837b12b568f 100644
--- a/include/configs/nokia_rx51.h
+++ b/include/configs/nokia_rx51.h
@@ -70,19 +70,12 @@
 
 #define CONFIG_SYS_ONENAND_BASE		ONENAND_MAP
 
-/*
- * Framebuffer
- */
-/* Video console */
-#define VIDEO_FB_16BPP_PIXEL_SWAP
-#define VIDEO_FB_16BPP_WORD_SWAP
-
 /* Environment information */
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"usbtty=cdc_acm\0" \
 	"stdin=usbtty,serial,keyboard\0" \
-	"stdout=usbtty,serial,vga\0" \
-	"stderr=usbtty,serial,vga\0" \
+	"stdout=usbtty,serial,vidconsole\0" \
+	"stderr=usbtty,serial,vidconsole\0" \
 	"slide=gpio input " __stringify(GPIO_SLIDE) "\0" \
 	"switchmmc=mmc dev ${mmcnum}\0" \
 	"kernaddr=0x82008000\0" \
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-06 14:42           ` Simon Glass
@ 2022-03-06 15:25             ` Pali Rohár
  2022-03-06 18:44               ` Simon Glass
  0 siblings, 1 reply; 22+ messages in thread
From: Pali Rohár @ 2022-03-06 15:25 UTC (permalink / raw)
  To: Simon Glass; +Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List

On Sunday 06 March 2022 07:42:03 Simon Glass wrote:
> Yes let's go with that.

Done, I sent final version of the patch.

> > > > > > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > > > > > is enabled in config file. I do not know why too.
> > > > > > >
> > > > > > > Any idea?
> > > > > >
> > > > > > Not yet. There were some logo related changes recently, but if I
> > > > > > remember correctly, I tested them on wandboard and nitrogen6q
> > > > > > targets and with sandbox, and logo drawing worked there.
> > >
> > > Can you be more specific than 'broken'? What is broken about it?
> >
> > Does not work, logo is not drown on the screen.
> 
> See video_bmp_display()  - I wonder if the particular depth you are
> using is not supported?

Depth is 16bit which should be supported.

> Anyway you should be able to debug it there or
> using the bmp command. The file is drivers/video/u_boot_logo.bmp

CONFIG_CMD_BMP=y is broken too. When I enable it then U-Boot freeze
after the line 'Loading Environment from <NULL>... OK'.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-06 15:08 ` [PATCH] " Pali Rohár
@ 2022-03-06 18:43   ` Simon Glass
  2022-03-09 19:37     ` Pali Rohár
  0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2022-03-06 18:43 UTC (permalink / raw)
  To: Pali Rohár
  Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List, maemo-leste

Hi Pali,


On Sun, 6 Mar 2022 at 08:09, Pali Rohár <pali@kernel.org> wrote:
>
> Mechanically convert video_hw_init() function to UCLASS_VIDEO probe
> callback and replace CONFIG_CFB_CONSOLE by CONFIG_DM_VIDEO.
>
> As framebuffer base address is setup by the bootloader which loads U-Boot,
> set it into plat->base. And do not allocate framebuffer in video_post_bind
> function when base address is already specified.
>
> This change was tested in qemu n900 machine and is working fine.
>
> What does not work is CONFIG_VIDEO_LOGO, seems to be buggy.
>
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
>  board/nokia/rx51/rx51.c      | 40 +++++++++++++++++++++---------------
>  configs/nokia_rx51_defconfig |  7 +++++--
>  drivers/video/video-uclass.c |  3 +++
>  include/configs/nokia_rx51.h | 11 ++--------
>  4 files changed, 34 insertions(+), 27 deletions(-)
>
> diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c
> index a52691509da4..621cff095619 100644
> --- a/board/nokia/rx51/rx51.c
> +++ b/board/nokia/rx51/rx51.c
> @@ -30,7 +30,7 @@
>  #include <malloc.h>
>  #include <twl4030.h>
>  #include <i2c.h>
> -#include <video_fb.h>
> +#include <video.h>
>  #include <keyboard.h>
>  #include <asm/global_data.h>
>  #include <asm/io.h>
> @@ -62,8 +62,6 @@ struct emu_hal_params_rx51 {
>
>  DECLARE_GLOBAL_DATA_PTR;
>
> -GraphicDevice gdev;
> -
>  const omap3_sysinfo sysinfo = {
>         DDR_STACKED,
>         "Nokia RX-51",
> @@ -342,22 +340,28 @@ void setup_board_tags(struct tag **in_params)
>         *in_params = params;
>  }
>
> -/*
> - * Routine: video_hw_init
> - * Description: Set up the GraphicDevice depending on sys_boot.
> - */
> -void *video_hw_init(void)
> +static int rx51_video_probe(struct udevice *dev)
>  {
> -       /* fill in Graphic Device */
> -       gdev.frameAdrs = 0x8f9c0000;
> -       gdev.winSizeX = 800;
> -       gdev.winSizeY = 480;
> -       gdev.gdfBytesPP = 2;
> -       gdev.gdfIndex = GDF_16BIT_565RGB;
> -       memset((void *)gdev.frameAdrs, 0, 0xbb800);
> -       return (void *) &gdev;
> +       struct video_uc_plat *uc_plat = dev_get_uclass_plat(dev);
> +       struct video_priv *uc_priv = dev_get_uclass_priv(dev);
> +
> +       uc_plat->base = 0x8f9c0000;

How is this calculated?

> +       uc_plat->size = 800 * 480 * sizeof(u16);

More correctly this should be in the bind() method, but in fact I
don't think it matters. We can always adjust it later if needed.

> +       uc_priv->xsize = 800;
> +       uc_priv->ysize = 480;
> +       uc_priv->bpix = VIDEO_BPP16;
> +
> +       video_set_flush_dcache(dev, true);
> +
> +       return 0;
>  }
>
> +U_BOOT_DRIVER(rx51_video) = {
> +       .name = "rx51_video",
> +       .id = UCLASS_VIDEO,
> +       .probe = rx51_video_probe,
> +};
> +
>  /*
>   * Routine: twl4030_regulator_set_mode
>   * Description: Set twl4030 regulator mode over i2c powerbus.
> @@ -777,6 +781,10 @@ U_BOOT_DRVINFOS(rx51_watchdog) = {
>         { "rx51_watchdog" },
>  };
>
> +U_BOOT_DRVINFOS(rx51_video) = {
> +       { "rx51_video" },
> +};
> +
>  U_BOOT_DRVINFOS(rx51_kp) = {
>         { "rx51_kp" },
>  };
> diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig
> index 47b7bc3b4f03..1d64981afc46 100644
> --- a/configs/nokia_rx51_defconfig
> +++ b/configs/nokia_rx51_defconfig
> @@ -77,8 +77,11 @@ CONFIG_SPI=y
>  CONFIG_USB=y
>  CONFIG_USB_MUSB_UDC=y
>  CONFIG_USB_OMAP3=y
> -CONFIG_CFB_CONSOLE=y
> -CONFIG_CFB_CONSOLE_ANSI=y
> +CONFIG_DM_VIDEO=y
> +CONFIG_VIDEO_LOGO=y
> +# CONFIG_VIDEO_BPP8 is not set
> +# CONFIG_VIDEO_BPP32 is not set
> +CONFIG_SYS_WHITE_ON_BLACK=y
>  CONFIG_SPLASH_SCREEN=y
>  CONFIG_WATCHDOG_TIMEOUT_MSECS=31000
>  CONFIG_WDT=y
> diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
> index 7d499bcec51d..c2f7d97e93e3 100644
> --- a/drivers/video/video-uclass.c
> +++ b/drivers/video/video-uclass.c
> @@ -78,6 +78,9 @@ static ulong alloc_fb(struct udevice *dev, ulong *addrp)
>         if (!plat->size)
>                 return 0;
>
> +       if (plat->base)
> +               return 0;
> +

How about a comment there like:

/* Allow drivers to allocate the frame buffer themselves */

Please put this change in its own video: patch and update the comment
at the top of video-uclass.c and the comment for @base in video.h so
the next person can figure this out.

>         align = plat->align ? plat->align : 1 << 20;
>         base = *addrp - plat->size;
>         base &= ~(align - 1);
> diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h
> index 9be64c3d3f87..e837b12b568f 100644
> --- a/include/configs/nokia_rx51.h
> +++ b/include/configs/nokia_rx51.h
> @@ -70,19 +70,12 @@
>
>  #define CONFIG_SYS_ONENAND_BASE                ONENAND_MAP
>
> -/*
> - * Framebuffer
> - */
> -/* Video console */
> -#define VIDEO_FB_16BPP_PIXEL_SWAP
> -#define VIDEO_FB_16BPP_WORD_SWAP
> -
>  /* Environment information */
>  #define CONFIG_EXTRA_ENV_SETTINGS \
>         "usbtty=cdc_acm\0" \
>         "stdin=usbtty,serial,keyboard\0" \
> -       "stdout=usbtty,serial,vga\0" \
> -       "stderr=usbtty,serial,vga\0" \
> +       "stdout=usbtty,serial,vidconsole\0" \
> +       "stderr=usbtty,serial,vidconsole\0" \
>         "slide=gpio input " __stringify(GPIO_SLIDE) "\0" \
>         "switchmmc=mmc dev ${mmcnum}\0" \
>         "kernaddr=0x82008000\0" \
> --
> 2.20.1
>

Regards,
Simon

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-06 15:25             ` Pali Rohár
@ 2022-03-06 18:44               ` Simon Glass
  2022-03-09 19:44                 ` Pali Rohár
  0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2022-03-06 18:44 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List

Hi Pali,

On Sun, 6 Mar 2022 at 08:25, Pali Rohár <pali@kernel.org> wrote:
>
> On Sunday 06 March 2022 07:42:03 Simon Glass wrote:
> > Yes let's go with that.
>
> Done, I sent final version of the patch.
>
> > > > > > > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > > > > > > is enabled in config file. I do not know why too.
> > > > > > > >
> > > > > > > > Any idea?
> > > > > > >
> > > > > > > Not yet. There were some logo related changes recently, but if I
> > > > > > > remember correctly, I tested them on wandboard and nitrogen6q
> > > > > > > targets and with sandbox, and logo drawing worked there.
> > > >
> > > > Can you be more specific than 'broken'? What is broken about it?
> > >
> > > Does not work, logo is not drown on the screen.
> >
> > See video_bmp_display()  - I wonder if the particular depth you are
> > using is not supported?
>
> Depth is 16bit which should be supported.

But apparently isn't , at least in this case :-)

>
> > Anyway you should be able to debug it there or
> > using the bmp command. The file is drivers/video/u_boot_logo.bmp
>
> CONFIG_CMD_BMP=y is broken too. When I enable it then U-Boot freeze
> after the line 'Loading Environment from <NULL>... OK'.

OK I'm not sure why, but please investigate if you have time.

Regards,
Simon

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-06 18:43   ` Simon Glass
@ 2022-03-09 19:37     ` Pali Rohár
  0 siblings, 0 replies; 22+ messages in thread
From: Pali Rohár @ 2022-03-09 19:37 UTC (permalink / raw)
  To: Simon Glass
  Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List, maemo-leste

On Sunday 06 March 2022 11:43:21 Simon Glass wrote:
> On Sun, 6 Mar 2022 at 08:09, Pali Rohár <pali@kernel.org> wrote:
> > -/*
> > - * Routine: video_hw_init
> > - * Description: Set up the GraphicDevice depending on sys_boot.
> > - */
> > -void *video_hw_init(void)
> > +static int rx51_video_probe(struct udevice *dev)
> >  {
> > -       /* fill in Graphic Device */
> > -       gdev.frameAdrs = 0x8f9c0000;
> > -       gdev.winSizeX = 800;
> > -       gdev.winSizeY = 480;
> > -       gdev.gdfBytesPP = 2;
> > -       gdev.gdfIndex = GDF_16BIT_565RGB;
> > -       memset((void *)gdev.frameAdrs, 0, 0xbb800);
> > -       return (void *) &gdev;
> > +       struct video_uc_plat *uc_plat = dev_get_uclass_plat(dev);
> > +       struct video_priv *uc_priv = dev_get_uclass_priv(dev);
> > +
> > +       uc_plat->base = 0x8f9c0000;
> 
> How is this calculated?

I do not remember. This seems to be fixed address set by the code which
loads U-Boot. I do not have any notes about this stuff.

> > +       uc_plat->size = 800 * 480 * sizeof(u16);
> 
> More correctly this should be in the bind() method, but in fact I
> don't think it matters. We can always adjust it later if needed.

Ok. I let it in probe, so all initialization is done at one place. If
something is needed to adjust, it can be done later.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-06 18:44               ` Simon Glass
@ 2022-03-09 19:44                 ` Pali Rohár
  2022-03-09 22:20                   ` Anatolij Gustschin
  0 siblings, 1 reply; 22+ messages in thread
From: Pali Rohár @ 2022-03-09 19:44 UTC (permalink / raw)
  To: Simon Glass; +Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List

On Sunday 06 March 2022 11:44:22 Simon Glass wrote:
> Hi Pali,
> 
> On Sun, 6 Mar 2022 at 08:25, Pali Rohár <pali@kernel.org> wrote:
> >
> > On Sunday 06 March 2022 07:42:03 Simon Glass wrote:
> > > Yes let's go with that.
> >
> > Done, I sent final version of the patch.
> >
> > > > > > > > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > > > > > > > is enabled in config file. I do not know why too.
> > > > > > > > >
> > > > > > > > > Any idea?
> > > > > > > >
> > > > > > > > Not yet. There were some logo related changes recently, but if I
> > > > > > > > remember correctly, I tested them on wandboard and nitrogen6q
> > > > > > > > targets and with sandbox, and logo drawing worked there.
> > > > >
> > > > > Can you be more specific than 'broken'? What is broken about it?
> > > >
> > > > Does not work, logo is not drown on the screen.
> > >
> > > See video_bmp_display()  - I wonder if the particular depth you are
> > > using is not supported?
> >
> > Depth is 16bit which should be supported.
> 
> But apparently isn't , at least in this case :-)

Yea, something is broken there.

> >
> > > Anyway you should be able to debug it there or
> > > using the bmp command. The file is drivers/video/u_boot_logo.bmp
> >
> > CONFIG_CMD_BMP=y is broken too. When I enable it then U-Boot freeze
> > after the line 'Loading Environment from <NULL>... OK'.
> 
> OK I'm not sure why, but please investigate if you have time.

I have looked at it and do not know. But probably it is because I
somehow have not caught how this new video code works...

Anyway, I sent documentation update how to run u-boot for n900 in qemu:
https://patchwork.ozlabs.org/project/uboot/patch/20220308175956.4522-1-pali@kernel.org/

So it could help other people to look at issues which do not work
correctly in n900's u-boot without need to have n900 hardware.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves
  2022-02-16 20:42 [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO Pali Rohár
  2022-02-17  8:53 ` Anatolij Gustschin
  2022-03-06 15:08 ` [PATCH] " Pali Rohár
@ 2022-03-09 19:46 ` Pali Rohár
  2022-03-09 19:46   ` [PATCH v2 2/2] Nokia RX-51: Convert to CONFIG_DM_VIDEO Pali Rohár
                     ` (2 more replies)
  2 siblings, 3 replies; 22+ messages in thread
From: Pali Rohár @ 2022-03-09 19:46 UTC (permalink / raw)
  To: Simon Glass, Anatolij Gustschin, Tom Rini; +Cc: u-boot, maemo-leste

When plat->base is set by driver then skip frame buffer reservation and allocation.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 drivers/video/video-uclass.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index 7d499bcec51d..88797d4a21c2 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -33,7 +33,8 @@
  * information represents the requires size and alignment of the frame buffer
  * for the device. The values can be an over-estimate but cannot be too
  * small. The actual values will be suppled (in the same manner) by the bind()
- * method after relocation.
+ * method after relocation. Additionally driver can allocate frame buffer
+ * itself by setting plat->base.
  *
  * This information is then picked up by video_reserve() which works out how
  * much memory is needed for all devices. This is allocated between
@@ -78,6 +79,10 @@ static ulong alloc_fb(struct udevice *dev, ulong *addrp)
 	if (!plat->size)
 		return 0;
 
+	/* Allow drivers to allocate the frame buffer themselves */
+	if (plat->base)
+		return 0;
+
 	align = plat->align ? plat->align : 1 << 20;
 	base = *addrp - plat->size;
 	base &= ~(align - 1);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 2/2] Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-09 19:46 ` [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves Pali Rohár
@ 2022-03-09 19:46   ` Pali Rohár
  2022-03-14 22:42     ` Anatolij Gustschin
  2022-03-12  2:43   ` [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves Simon Glass
  2022-03-14 22:41   ` Anatolij Gustschin
  2 siblings, 1 reply; 22+ messages in thread
From: Pali Rohár @ 2022-03-09 19:46 UTC (permalink / raw)
  To: Simon Glass, Anatolij Gustschin, Tom Rini; +Cc: u-boot, maemo-leste

Mechanically convert video_hw_init() function to UCLASS_VIDEO probe
callback and replace CONFIG_CFB_CONSOLE by CONFIG_DM_VIDEO.

As framebuffer base address is setup by the bootloader which loads U-Boot,
set plat->base to that fixed framebuffer address.

This change was tested in qemu n900 machine and is working fine.

What does not work is CONFIG_VIDEO_LOGO, seems to be buggy.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 board/nokia/rx51/rx51.c      | 40 +++++++++++++++++++++---------------
 configs/nokia_rx51_defconfig |  7 +++++--
 include/configs/nokia_rx51.h | 11 ++--------
 3 files changed, 31 insertions(+), 27 deletions(-)

diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c
index a52691509da4..621cff095619 100644
--- a/board/nokia/rx51/rx51.c
+++ b/board/nokia/rx51/rx51.c
@@ -30,7 +30,7 @@
 #include <malloc.h>
 #include <twl4030.h>
 #include <i2c.h>
-#include <video_fb.h>
+#include <video.h>
 #include <keyboard.h>
 #include <asm/global_data.h>
 #include <asm/io.h>
@@ -62,8 +62,6 @@ struct emu_hal_params_rx51 {
 
 DECLARE_GLOBAL_DATA_PTR;
 
-GraphicDevice gdev;
-
 const omap3_sysinfo sysinfo = {
 	DDR_STACKED,
 	"Nokia RX-51",
@@ -342,22 +340,28 @@ void setup_board_tags(struct tag **in_params)
 	*in_params = params;
 }
 
-/*
- * Routine: video_hw_init
- * Description: Set up the GraphicDevice depending on sys_boot.
- */
-void *video_hw_init(void)
+static int rx51_video_probe(struct udevice *dev)
 {
-	/* fill in Graphic Device */
-	gdev.frameAdrs = 0x8f9c0000;
-	gdev.winSizeX = 800;
-	gdev.winSizeY = 480;
-	gdev.gdfBytesPP = 2;
-	gdev.gdfIndex = GDF_16BIT_565RGB;
-	memset((void *)gdev.frameAdrs, 0, 0xbb800);
-	return (void *) &gdev;
+	struct video_uc_plat *uc_plat = dev_get_uclass_plat(dev);
+	struct video_priv *uc_priv = dev_get_uclass_priv(dev);
+
+	uc_plat->base = 0x8f9c0000;
+	uc_plat->size = 800 * 480 * sizeof(u16);
+	uc_priv->xsize = 800;
+	uc_priv->ysize = 480;
+	uc_priv->bpix = VIDEO_BPP16;
+
+	video_set_flush_dcache(dev, true);
+
+	return 0;
 }
 
+U_BOOT_DRIVER(rx51_video) = {
+	.name = "rx51_video",
+	.id = UCLASS_VIDEO,
+	.probe = rx51_video_probe,
+};
+
 /*
  * Routine: twl4030_regulator_set_mode
  * Description: Set twl4030 regulator mode over i2c powerbus.
@@ -777,6 +781,10 @@ U_BOOT_DRVINFOS(rx51_watchdog) = {
 	{ "rx51_watchdog" },
 };
 
+U_BOOT_DRVINFOS(rx51_video) = {
+	{ "rx51_video" },
+};
+
 U_BOOT_DRVINFOS(rx51_kp) = {
 	{ "rx51_kp" },
 };
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig
index 47b7bc3b4f03..1d64981afc46 100644
--- a/configs/nokia_rx51_defconfig
+++ b/configs/nokia_rx51_defconfig
@@ -77,8 +77,11 @@ CONFIG_SPI=y
 CONFIG_USB=y
 CONFIG_USB_MUSB_UDC=y
 CONFIG_USB_OMAP3=y
-CONFIG_CFB_CONSOLE=y
-CONFIG_CFB_CONSOLE_ANSI=y
+CONFIG_DM_VIDEO=y
+CONFIG_VIDEO_LOGO=y
+# CONFIG_VIDEO_BPP8 is not set
+# CONFIG_VIDEO_BPP32 is not set
+CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_SPLASH_SCREEN=y
 CONFIG_WATCHDOG_TIMEOUT_MSECS=31000
 CONFIG_WDT=y
diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h
index 9be64c3d3f87..e837b12b568f 100644
--- a/include/configs/nokia_rx51.h
+++ b/include/configs/nokia_rx51.h
@@ -70,19 +70,12 @@
 
 #define CONFIG_SYS_ONENAND_BASE		ONENAND_MAP
 
-/*
- * Framebuffer
- */
-/* Video console */
-#define VIDEO_FB_16BPP_PIXEL_SWAP
-#define VIDEO_FB_16BPP_WORD_SWAP
-
 /* Environment information */
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"usbtty=cdc_acm\0" \
 	"stdin=usbtty,serial,keyboard\0" \
-	"stdout=usbtty,serial,vga\0" \
-	"stderr=usbtty,serial,vga\0" \
+	"stdout=usbtty,serial,vidconsole\0" \
+	"stderr=usbtty,serial,vidconsole\0" \
 	"slide=gpio input " __stringify(GPIO_SLIDE) "\0" \
 	"switchmmc=mmc dev ${mmcnum}\0" \
 	"kernaddr=0x82008000\0" \
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-09 19:44                 ` Pali Rohár
@ 2022-03-09 22:20                   ` Anatolij Gustschin
  2022-03-11 18:58                     ` Pali Rohár
  0 siblings, 1 reply; 22+ messages in thread
From: Anatolij Gustschin @ 2022-03-09 22:20 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Simon Glass, Tom Rini, U-Boot Mailing List

Hi Pali,

On Wed, 9 Mar 2022 20:44:50 +0100
Pali Rohár pali@kernel.org wrote:

> On Sunday 06 March 2022 11:44:22 Simon Glass wrote:
> > Hi Pali,
> > 
> > On Sun, 6 Mar 2022 at 08:25, Pali Rohár <pali@kernel.org> wrote:  
> > >
> > > On Sunday 06 March 2022 07:42:03 Simon Glass wrote:  
> > > > Yes let's go with that.  
> > >
> > > Done, I sent final version of the patch.
> > >  
> > > > > > > > > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > > > > > > > > is enabled in config file. I do not know why too.
> > > > > > > > > >
> > > > > > > > > > Any idea?  
> > > > > > > > >
> > > > > > > > > Not yet. There were some logo related changes recently, but if I
> > > > > > > > > remember correctly, I tested them on wandboard and nitrogen6q
> > > > > > > > > targets and with sandbox, and logo drawing worked there.  
> > > > > >
> > > > > > Can you be more specific than 'broken'? What is broken about it?  
> > > > >
> > > > > Does not work, logo is not drown on the screen.  
> > > >
> > > > See video_bmp_display()  - I wonder if the particular depth you are
> > > > using is not supported?  
> > >
> > > Depth is 16bit which should be supported.  
> > 
> > But apparently isn't , at least in this case :-)  
> 
> Yea, something is broken there.
> 
> > >  
> > > > Anyway you should be able to debug it there or
> > > > using the bmp command. The file is drivers/video/u_boot_logo.bmp  
> > >
> > > CONFIG_CMD_BMP=y is broken too. When I enable it then U-Boot freeze
> > > after the line 'Loading Environment from <NULL>... OK'.  
> > 
> > OK I'm not sure why, but please investigate if you have time.  
> 
> I have looked at it and do not know. But probably it is because I
> somehow have not caught how this new video code works...
> 
> Anyway, I sent documentation update how to run u-boot for n900 in qemu:
> https://patchwork.ozlabs.org/project/uboot/patch/20220308175956.4522-1-pali@kernel.org/
> 
> So it could help other people to look at issues which do not work
> correctly in n900's u-boot without need to have n900 hardware.

I've tested your v2 patches, and logo drawing works, but the logo
appears for short time. Then it is later overwritten by boot menu.

--
Anatolij

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-09 22:20                   ` Anatolij Gustschin
@ 2022-03-11 18:58                     ` Pali Rohár
  2022-03-12  5:02                       ` Simon Glass
  0 siblings, 1 reply; 22+ messages in thread
From: Pali Rohár @ 2022-03-11 18:58 UTC (permalink / raw)
  To: Anatolij Gustschin; +Cc: Simon Glass, Tom Rini, U-Boot Mailing List

On Wednesday 09 March 2022 23:20:11 Anatolij Gustschin wrote:
> Hi Pali,
> 
> On Wed, 9 Mar 2022 20:44:50 +0100
> Pali Rohár pali@kernel.org wrote:
> 
> > On Sunday 06 March 2022 11:44:22 Simon Glass wrote:
> > > Hi Pali,
> > > 
> > > On Sun, 6 Mar 2022 at 08:25, Pali Rohár <pali@kernel.org> wrote:  
> > > >
> > > > On Sunday 06 March 2022 07:42:03 Simon Glass wrote:  
> > > > > Yes let's go with that.  
> > > >
> > > > Done, I sent final version of the patch.
> > > >  
> > > > > > > > > > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > > > > > > > > > is enabled in config file. I do not know why too.
> > > > > > > > > > >
> > > > > > > > > > > Any idea?  
> > > > > > > > > >
> > > > > > > > > > Not yet. There were some logo related changes recently, but if I
> > > > > > > > > > remember correctly, I tested them on wandboard and nitrogen6q
> > > > > > > > > > targets and with sandbox, and logo drawing worked there.  
> > > > > > >
> > > > > > > Can you be more specific than 'broken'? What is broken about it?  
> > > > > >
> > > > > > Does not work, logo is not drown on the screen.  
> > > > >
> > > > > See video_bmp_display()  - I wonder if the particular depth you are
> > > > > using is not supported?  
> > > >
> > > > Depth is 16bit which should be supported.  
> > > 
> > > But apparently isn't , at least in this case :-)  
> > 
> > Yea, something is broken there.
> > 
> > > >  
> > > > > Anyway you should be able to debug it there or
> > > > > using the bmp command. The file is drivers/video/u_boot_logo.bmp  
> > > >
> > > > CONFIG_CMD_BMP=y is broken too. When I enable it then U-Boot freeze
> > > > after the line 'Loading Environment from <NULL>... OK'.  
> > > 
> > > OK I'm not sure why, but please investigate if you have time.  
> > 
> > I have looked at it and do not know. But probably it is because I
> > somehow have not caught how this new video code works...
> > 
> > Anyway, I sent documentation update how to run u-boot for n900 in qemu:
> > https://patchwork.ozlabs.org/project/uboot/patch/20220308175956.4522-1-pali@kernel.org/
> > 
> > So it could help other people to look at issues which do not work
> > correctly in n900's u-boot without need to have n900 hardware.
> 
> I've tested your v2 patches, and logo drawing works, but the logo
> appears for short time. Then it is later overwritten by boot menu.
> 
> --
> Anatolij

Hello! Thank you for checking. It is possible that qemu rending is
slower and reason why I did not see any logo.

Anyway, this is now how CONFIG_VIDEO_LOGO worked. In previous U-Boot
version it drew logo on the screen and it was visible also in the boot
menu.

Any idea what was changed? Or is there missing some another config
option to make logo visible?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves
  2022-03-09 19:46 ` [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves Pali Rohár
  2022-03-09 19:46   ` [PATCH v2 2/2] Nokia RX-51: Convert to CONFIG_DM_VIDEO Pali Rohár
@ 2022-03-12  2:43   ` Simon Glass
  2022-03-14 22:41   ` Anatolij Gustschin
  2 siblings, 0 replies; 22+ messages in thread
From: Simon Glass @ 2022-03-12  2:43 UTC (permalink / raw)
  To: Pali Rohár
  Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List, maemo-leste

On Wed, 9 Mar 2022 at 12:46, Pali Rohár <pali@kernel.org> wrote:
>
> When plat->base is set by driver then skip frame buffer reservation and allocation.
>
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
>  drivers/video/video-uclass.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-11 18:58                     ` Pali Rohár
@ 2022-03-12  5:02                       ` Simon Glass
  2022-03-13 11:06                         ` Pali Rohár
  0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2022-03-12  5:02 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List

Hi Pali,

On Fri, 11 Mar 2022 at 11:58, Pali Rohár <pali@kernel.org> wrote:
>
> On Wednesday 09 March 2022 23:20:11 Anatolij Gustschin wrote:
> > Hi Pali,
> >
> > On Wed, 9 Mar 2022 20:44:50 +0100
> > Pali Rohár pali@kernel.org wrote:
> >
> > > On Sunday 06 March 2022 11:44:22 Simon Glass wrote:
> > > > Hi Pali,
> > > >
> > > > On Sun, 6 Mar 2022 at 08:25, Pali Rohár <pali@kernel.org> wrote:
> > > > >
> > > > > On Sunday 06 March 2022 07:42:03 Simon Glass wrote:
> > > > > > Yes let's go with that.
> > > > >
> > > > > Done, I sent final version of the patch.
> > > > >
> > > > > > > > > > > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > > > > > > > > > > is enabled in config file. I do not know why too.
> > > > > > > > > > > >
> > > > > > > > > > > > Any idea?
> > > > > > > > > > >
> > > > > > > > > > > Not yet. There were some logo related changes recently, but if I
> > > > > > > > > > > remember correctly, I tested them on wandboard and nitrogen6q
> > > > > > > > > > > targets and with sandbox, and logo drawing worked there.
> > > > > > > >
> > > > > > > > Can you be more specific than 'broken'? What is broken about it?
> > > > > > >
> > > > > > > Does not work, logo is not drown on the screen.
> > > > > >
> > > > > > See video_bmp_display()  - I wonder if the particular depth you are
> > > > > > using is not supported?
> > > > >
> > > > > Depth is 16bit which should be supported.
> > > >
> > > > But apparently isn't , at least in this case :-)
> > >
> > > Yea, something is broken there.
> > >
> > > > >
> > > > > > Anyway you should be able to debug it there or
> > > > > > using the bmp command. The file is drivers/video/u_boot_logo.bmp
> > > > >
> > > > > CONFIG_CMD_BMP=y is broken too. When I enable it then U-Boot freeze
> > > > > after the line 'Loading Environment from <NULL>... OK'.
> > > >
> > > > OK I'm not sure why, but please investigate if you have time.
> > >
> > > I have looked at it and do not know. But probably it is because I
> > > somehow have not caught how this new video code works...
> > >
> > > Anyway, I sent documentation update how to run u-boot for n900 in qemu:
> > > https://patchwork.ozlabs.org/project/uboot/patch/20220308175956.4522-1-pali@kernel.org/
> > >
> > > So it could help other people to look at issues which do not work
> > > correctly in n900's u-boot without need to have n900 hardware.
> >
> > I've tested your v2 patches, and logo drawing works, but the logo
> > appears for short time. Then it is later overwritten by boot menu.
> >
> > --
> > Anatolij
>
> Hello! Thank you for checking. It is possible that qemu rending is
> slower and reason why I did not see any logo.
>
> Anyway, this is now how CONFIG_VIDEO_LOGO worked. In previous U-Boot
> version it drew logo on the screen and it was visible also in the boot
> menu.
>
> Any idea what was changed? Or is there missing some another config
> option to make logo visible?

I believe the cfb_console code had a way to keep the logo at the top
with the text scrolling underneath. This has not been implemented in
the video/vidconsole uclasses, although I suppose it could be.

Regards,
Simon

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-12  5:02                       ` Simon Glass
@ 2022-03-13 11:06                         ` Pali Rohár
  0 siblings, 0 replies; 22+ messages in thread
From: Pali Rohár @ 2022-03-13 11:06 UTC (permalink / raw)
  To: Simon Glass; +Cc: Anatolij Gustschin, Tom Rini, U-Boot Mailing List

On Friday 11 March 2022 22:02:39 Simon Glass wrote:
> Hi Pali,
> 
> On Fri, 11 Mar 2022 at 11:58, Pali Rohár <pali@kernel.org> wrote:
> >
> > On Wednesday 09 March 2022 23:20:11 Anatolij Gustschin wrote:
> > > Hi Pali,
> > >
> > > On Wed, 9 Mar 2022 20:44:50 +0100
> > > Pali Rohár pali@kernel.org wrote:
> > >
> > > > On Sunday 06 March 2022 11:44:22 Simon Glass wrote:
> > > > > Hi Pali,
> > > > >
> > > > > On Sun, 6 Mar 2022 at 08:25, Pali Rohár <pali@kernel.org> wrote:
> > > > > >
> > > > > > On Sunday 06 March 2022 07:42:03 Simon Glass wrote:
> > > > > > > Yes let's go with that.
> > > > > >
> > > > > > Done, I sent final version of the patch.
> > > > > >
> > > > > > > > > > > > > Second thing is that CONFIG_VIDEO_LOGO is broken and does not work even it
> > > > > > > > > > > > > is enabled in config file. I do not know why too.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Any idea?
> > > > > > > > > > > >
> > > > > > > > > > > > Not yet. There were some logo related changes recently, but if I
> > > > > > > > > > > > remember correctly, I tested them on wandboard and nitrogen6q
> > > > > > > > > > > > targets and with sandbox, and logo drawing worked there.
> > > > > > > > >
> > > > > > > > > Can you be more specific than 'broken'? What is broken about it?
> > > > > > > >
> > > > > > > > Does not work, logo is not drown on the screen.
> > > > > > >
> > > > > > > See video_bmp_display()  - I wonder if the particular depth you are
> > > > > > > using is not supported?
> > > > > >
> > > > > > Depth is 16bit which should be supported.
> > > > >
> > > > > But apparently isn't , at least in this case :-)
> > > >
> > > > Yea, something is broken there.
> > > >
> > > > > >
> > > > > > > Anyway you should be able to debug it there or
> > > > > > > using the bmp command. The file is drivers/video/u_boot_logo.bmp
> > > > > >
> > > > > > CONFIG_CMD_BMP=y is broken too. When I enable it then U-Boot freeze
> > > > > > after the line 'Loading Environment from <NULL>... OK'.
> > > > >
> > > > > OK I'm not sure why, but please investigate if you have time.
> > > >
> > > > I have looked at it and do not know. But probably it is because I
> > > > somehow have not caught how this new video code works...
> > > >
> > > > Anyway, I sent documentation update how to run u-boot for n900 in qemu:
> > > > https://patchwork.ozlabs.org/project/uboot/patch/20220308175956.4522-1-pali@kernel.org/
> > > >
> > > > So it could help other people to look at issues which do not work
> > > > correctly in n900's u-boot without need to have n900 hardware.
> > >
> > > I've tested your v2 patches, and logo drawing works, but the logo
> > > appears for short time. Then it is later overwritten by boot menu.
> > >
> > > --
> > > Anatolij
> >
> > Hello! Thank you for checking. It is possible that qemu rending is
> > slower and reason why I did not see any logo.
> >
> > Anyway, this is now how CONFIG_VIDEO_LOGO worked. In previous U-Boot
> > version it drew logo on the screen and it was visible also in the boot
> > menu.
> >
> > Any idea what was changed? Or is there missing some another config
> > option to make logo visible?
> 
> I believe the cfb_console code had a way to keep the logo at the top
> with the text scrolling underneath. This has not been implemented in
> the video/vidconsole uclasses, although I suppose it could be.
> 
> Regards,
> Simon

Ok!

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves
  2022-03-09 19:46 ` [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves Pali Rohár
  2022-03-09 19:46   ` [PATCH v2 2/2] Nokia RX-51: Convert to CONFIG_DM_VIDEO Pali Rohár
  2022-03-12  2:43   ` [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves Simon Glass
@ 2022-03-14 22:41   ` Anatolij Gustschin
  2 siblings, 0 replies; 22+ messages in thread
From: Anatolij Gustschin @ 2022-03-14 22:41 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Simon Glass, Tom Rini, u-boot, maemo-leste

On Wed,  9 Mar 2022 20:46:00 +0100
Pali Rohár pali@kernel.org wrote:

> When plat->base is set by driver then skip frame buffer reservation and allocation.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
>  drivers/video/video-uclass.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)

applied to u-boot-video/master, thanks!

--
Anatolij

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] Nokia RX-51: Convert to CONFIG_DM_VIDEO
  2022-03-09 19:46   ` [PATCH v2 2/2] Nokia RX-51: Convert to CONFIG_DM_VIDEO Pali Rohár
@ 2022-03-14 22:42     ` Anatolij Gustschin
  0 siblings, 0 replies; 22+ messages in thread
From: Anatolij Gustschin @ 2022-03-14 22:42 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Simon Glass, Tom Rini, u-boot, maemo-leste

On Wed,  9 Mar 2022 20:46:01 +0100
Pali Rohár pali@kernel.org wrote:
...
> ---
>  board/nokia/rx51/rx51.c      | 40 +++++++++++++++++++++---------------
>  configs/nokia_rx51_defconfig |  7 +++++--
>  include/configs/nokia_rx51.h | 11 ++--------
>  3 files changed, 31 insertions(+), 27 deletions(-)

applied to u-boot-video/master, thanks!

--
Anatolij

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2022-03-14 22:42 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-16 20:42 [PATCH] WIP: Nokia RX-51: Convert to CONFIG_DM_VIDEO Pali Rohár
2022-02-17  8:53 ` Anatolij Gustschin
2022-02-17 12:20   ` Pali Rohár
2022-03-06 11:51     ` Pali Rohár
2022-03-06 12:51       ` Simon Glass
2022-03-06 14:17         ` Pali Rohár
2022-03-06 14:42           ` Simon Glass
2022-03-06 15:25             ` Pali Rohár
2022-03-06 18:44               ` Simon Glass
2022-03-09 19:44                 ` Pali Rohár
2022-03-09 22:20                   ` Anatolij Gustschin
2022-03-11 18:58                     ` Pali Rohár
2022-03-12  5:02                       ` Simon Glass
2022-03-13 11:06                         ` Pali Rohár
2022-03-06 15:08 ` [PATCH] " Pali Rohár
2022-03-06 18:43   ` Simon Glass
2022-03-09 19:37     ` Pali Rohár
2022-03-09 19:46 ` [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves Pali Rohár
2022-03-09 19:46   ` [PATCH v2 2/2] Nokia RX-51: Convert to CONFIG_DM_VIDEO Pali Rohár
2022-03-14 22:42     ` Anatolij Gustschin
2022-03-12  2:43   ` [PATCH v2 1/2] video: Allow drivers to allocate the frame buffer themselves Simon Glass
2022-03-14 22:41   ` Anatolij Gustschin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.