All of lore.kernel.org
 help / color / mirror / Atom feed
* [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
@ 2018-09-03 13:23   ` David Herrmann
  0 siblings, 0 replies; 12+ messages in thread
From: David Herrmann @ 2018-09-03 13:23 UTC (permalink / raw)
  To: linux-kernel, linux-fbdev, linux-efi, Hans de Goede,
	Bartlomiej Zolnierkiewicz, dri-devel

Hey

Since this commit:

    34db50e55656 efifb: Copy the ACPI BGRT

the kernel will override boot-splashs unasked. This breaks the
graphical boot-process on our setups. In particular, we have a setup
where an efi-boot-entry draws the early boot-splash on-screen, then
hands-over to the linux-kernel + initrd. The boot-splash daemon in the
initrd then takes over control of possible animations.

With the mentioned commit compiled in, the kernel will redraw the
firmware logo on screen at a random time without any way to intervene.

What is the intention of this commit? Why is the kernel re-drawing the
firmware logo unasked? If someone during the boot-process draws
content on the screen, I would prefer if the kernel does not clear
that on driver load.

Can we either provide an option to disable this feature, or revert the commit?

Thanks
David

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

* [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
@ 2018-09-03 13:23   ` David Herrmann
  0 siblings, 0 replies; 12+ messages in thread
From: David Herrmann @ 2018-09-03 13:23 UTC (permalink / raw)
  To: linux-kernel, linux-fbdev, linux-efi, Hans de Goede,
	Bartlomiej Zolnierkiewicz, dri-devel

Hey

Since this commit:

    34db50e55656 efifb: Copy the ACPI BGRT

the kernel will override boot-splashs unasked. This breaks the
graphical boot-process on our setups. In particular, we have a setup
where an efi-boot-entry draws the early boot-splash on-screen, then
hands-over to the linux-kernel + initrd. The boot-splash daemon in the
initrd then takes over control of possible animations.

With the mentioned commit compiled in, the kernel will redraw the
firmware logo on screen at a random time without any way to intervene.

What is the intention of this commit? Why is the kernel re-drawing the
firmware logo unasked? If someone during the boot-process draws
content on the screen, I would prefer if the kernel does not clear
that on driver load.

Can we either provide an option to disable this feature, or revert the commit?

Thanks
David

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

* Re: [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
  2018-09-03 13:23   ` David Herrmann
@ 2018-09-03 14:16     ` Bartlomiej Zolnierkiewicz
  -1 siblings, 0 replies; 12+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2018-09-03 14:16 UTC (permalink / raw)
  To: David Herrmann
  Cc: linux-kernel, linux-fbdev, linux-efi, Hans de Goede, dri-devel


Hi,

On Monday, September 03, 2018 03:23:38 PM David Herrmann wrote:
> Hey
> 
> Since this commit:
> 
>     34db50e55656 efifb: Copy the ACPI BGRT
> 
> the kernel will override boot-splashs unasked. This breaks the
> graphical boot-process on our setups. In particular, we have a setup
> where an efi-boot-entry draws the early boot-splash on-screen, then
> hands-over to the linux-kernel + initrd. The boot-splash daemon in the
> initrd then takes over control of possible animations.
> 
> With the mentioned commit compiled in, the kernel will redraw the
> firmware logo on screen at a random time without any way to intervene.

You have CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (the deferred
console takeover support introduced in v4,19-rc1). I assume that this
is intended?

> What is the intention of this commit? Why is the kernel re-drawing the
> firmware logo unasked? If someone during the boot-process draws
> content on the screen, I would prefer if the kernel does not clear
> that on driver load.

+/*
+ * If fbcon deffered console takeover is configured, the intent is for the
+ * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
+ * (error) message to display. But the boot graphics may have been destroyed by
+ * e.g. option ROM output, detect this and restore the boot graphics.
+ */
+#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
+    defined CONFIG_ACPI_BGRT
...
+static void efifb_show_boot_graphics(struct fb_info *info)
...
+#else
+static inline void efifb_show_boot_graphics(struct fb_info *info) {}
+#endif

> Can we either provide an option to disable this feature, or revert the commit?

Hans?

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics


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

* Re: [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
@ 2018-09-03 14:16     ` Bartlomiej Zolnierkiewicz
  0 siblings, 0 replies; 12+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2018-09-03 14:16 UTC (permalink / raw)
  To: David Herrmann
  Cc: linux-kernel, linux-fbdev, linux-efi, Hans de Goede, dri-devel


Hi,

On Monday, September 03, 2018 03:23:38 PM David Herrmann wrote:
> Hey
> 
> Since this commit:
> 
>     34db50e55656 efifb: Copy the ACPI BGRT
> 
> the kernel will override boot-splashs unasked. This breaks the
> graphical boot-process on our setups. In particular, we have a setup
> where an efi-boot-entry draws the early boot-splash on-screen, then
> hands-over to the linux-kernel + initrd. The boot-splash daemon in the
> initrd then takes over control of possible animations.
> 
> With the mentioned commit compiled in, the kernel will redraw the
> firmware logo on screen at a random time without any way to intervene.

You have CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (the deferred
console takeover support introduced in v4,19-rc1). I assume that this
is intended?

> What is the intention of this commit? Why is the kernel re-drawing the
> firmware logo unasked? If someone during the boot-process draws
> content on the screen, I would prefer if the kernel does not clear
> that on driver load.

+/*
+ * If fbcon deffered console takeover is configured, the intent is for the
+ * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
+ * (error) message to display. But the boot graphics may have been destroyed by
+ * e.g. option ROM output, detect this and restore the boot graphics.
+ */
+#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
+    defined CONFIG_ACPI_BGRT
...
+static void efifb_show_boot_graphics(struct fb_info *info)
...
+#else
+static inline void efifb_show_boot_graphics(struct fb_info *info) {}
+#endif

> Can we either provide an option to disable this feature, or revert the commit?

Hans?

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

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

* Re: [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
  2018-09-03 14:16     ` Bartlomiej Zolnierkiewicz
@ 2018-09-03 14:47       ` Hans de Goede
  -1 siblings, 0 replies; 12+ messages in thread
From: Hans de Goede @ 2018-09-03 14:47 UTC (permalink / raw)
  To: Bartlomiej Zolnierkiewicz, David Herrmann
  Cc: linux-kernel, linux-fbdev, linux-efi, dri-devel

Hi,

On 03-09-18 16:16, Bartlomiej Zolnierkiewicz wrote:
> 
> Hi,
> 
> On Monday, September 03, 2018 03:23:38 PM David Herrmann wrote:
>> Hey
>>
>> Since this commit:
>>
>>      34db50e55656 efifb: Copy the ACPI BGRT
>>
>> the kernel will override boot-splashs unasked. This breaks the
>> graphical boot-process on our setups. In particular, we have a setup
>> where an efi-boot-entry draws the early boot-splash on-screen, then
>> hands-over to the linux-kernel + initrd. The boot-splash daemon in the
>> initrd then takes over control of possible animations.
>>
>> With the mentioned commit compiled in, the kernel will redraw the
>> firmware logo on screen at a random time without any way to intervene.
> 
> You have CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (the deferred
> console takeover support introduced in v4,19-rc1). I assume that this
> is intended?
> 
>> What is the intention of this commit? Why is the kernel re-drawing the
>> firmware logo unasked? If someone during the boot-process draws
>> content on the screen, I would prefer if the kernel does not clear
>> that on driver load.
> 
> +/*
> + * If fbcon deffered console takeover is configured, the intent is for the
> + * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
> + * (error) message to display. But the boot graphics may have been destroyed by
> + * e.g. option ROM output, detect this and restore the boot graphics.
> + */
> +#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
> +    defined CONFIG_ACPI_BGRT
> ...
> +static void efifb_show_boot_graphics(struct fb_info *info)
> ...
> +#else
> +static inline void efifb_show_boot_graphics(struct fb_info *info) {}
> +#endif
> 
>> Can we either provide an option to disable this feature, or revert the commit?
> 
> Hans?

We use the ACPI bgrt extension to get the logo to draw and then
draw it since some devices rely on the OS to draw it and otherwise we
just end up with a blackscreen when doing silent / flickerfree boot.

Ideally you would be able to get your vendor to put the logo in firmware
in the ACPI bgrt extension, then you also do not need to play any tricks
with an EFI binary drawing your own logo. But I can understand if you don't
have control over this, so you need to do this with the EFI binary trick.

I can also understand that you want to use deferred console takeover
in a setup like yours to avoid fbcon messing up what is on the display
during boot, that is exactly what it is for. So I think a reasonable
approach here is to add a kernel commandline option, say:

video=efifb:nobgrt

David, would that work for you?

Regards,

Hans

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

* Re: [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
@ 2018-09-03 14:47       ` Hans de Goede
  0 siblings, 0 replies; 12+ messages in thread
From: Hans de Goede @ 2018-09-03 14:47 UTC (permalink / raw)
  To: Bartlomiej Zolnierkiewicz, David Herrmann
  Cc: linux-kernel, linux-fbdev, linux-efi, dri-devel

Hi,

On 03-09-18 16:16, Bartlomiej Zolnierkiewicz wrote:
> 
> Hi,
> 
> On Monday, September 03, 2018 03:23:38 PM David Herrmann wrote:
>> Hey
>>
>> Since this commit:
>>
>>      34db50e55656 efifb: Copy the ACPI BGRT
>>
>> the kernel will override boot-splashs unasked. This breaks the
>> graphical boot-process on our setups. In particular, we have a setup
>> where an efi-boot-entry draws the early boot-splash on-screen, then
>> hands-over to the linux-kernel + initrd. The boot-splash daemon in the
>> initrd then takes over control of possible animations.
>>
>> With the mentioned commit compiled in, the kernel will redraw the
>> firmware logo on screen at a random time without any way to intervene.
> 
> You have CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (the deferred
> console takeover support introduced in v4,19-rc1). I assume that this
> is intended?
> 
>> What is the intention of this commit? Why is the kernel re-drawing the
>> firmware logo unasked? If someone during the boot-process draws
>> content on the screen, I would prefer if the kernel does not clear
>> that on driver load.
> 
> +/*
> + * If fbcon deffered console takeover is configured, the intent is for the
> + * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
> + * (error) message to display. But the boot graphics may have been destroyed by
> + * e.g. option ROM output, detect this and restore the boot graphics.
> + */
> +#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
> +    defined CONFIG_ACPI_BGRT
> ...
> +static void efifb_show_boot_graphics(struct fb_info *info)
> ...
> +#else
> +static inline void efifb_show_boot_graphics(struct fb_info *info) {}
> +#endif
> 
>> Can we either provide an option to disable this feature, or revert the commit?
> 
> Hans?

We use the ACPI bgrt extension to get the logo to draw and then
draw it since some devices rely on the OS to draw it and otherwise we
just end up with a blackscreen when doing silent / flickerfree boot.

Ideally you would be able to get your vendor to put the logo in firmware
in the ACPI bgrt extension, then you also do not need to play any tricks
with an EFI binary drawing your own logo. But I can understand if you don't
have control over this, so you need to do this with the EFI binary trick.

I can also understand that you want to use deferred console takeover
in a setup like yours to avoid fbcon messing up what is on the display
during boot, that is exactly what it is for. So I think a reasonable
approach here is to add a kernel commandline option, say:

videoïifb:nobgrt

David, would that work for you?

Regards,

Hans

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

* Re: [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
  2018-09-03 14:47       ` Hans de Goede
  (?)
@ 2018-09-03 15:11         ` David Herrmann
  -1 siblings, 0 replies; 12+ messages in thread
From: David Herrmann @ 2018-09-03 15:11 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Bartlomiej Zolnierkiewicz, linux-kernel, linux-fbdev, linux-efi,
	dri-devel

Hey

On Mon, Sep 3, 2018 at 4:47 PM Hans de Goede <hdegoede@redhat.com> wrote:
>
> Hi,
>
> On 03-09-18 16:16, Bartlomiej Zolnierkiewicz wrote:
> >
> > Hi,
> >
> > On Monday, September 03, 2018 03:23:38 PM David Herrmann wrote:
> >> Hey
> >>
> >> Since this commit:
> >>
> >>      34db50e55656 efifb: Copy the ACPI BGRT
> >>
> >> the kernel will override boot-splashs unasked. This breaks the
> >> graphical boot-process on our setups. In particular, we have a setup
> >> where an efi-boot-entry draws the early boot-splash on-screen, then
> >> hands-over to the linux-kernel + initrd. The boot-splash daemon in the
> >> initrd then takes over control of possible animations.
> >>
> >> With the mentioned commit compiled in, the kernel will redraw the
> >> firmware logo on screen at a random time without any way to intervene.
> >
> > You have CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (the deferred
> > console takeover support introduced in v4,19-rc1). I assume that this
> > is intended?
> >
> >> What is the intention of this commit? Why is the kernel re-drawing the
> >> firmware logo unasked? If someone during the boot-process draws
> >> content on the screen, I would prefer if the kernel does not clear
> >> that on driver load.
> >
> > +/*
> > + * If fbcon deffered console takeover is configured, the intent is for the
> > + * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
> > + * (error) message to display. But the boot graphics may have been destroyed by
> > + * e.g. option ROM output, detect this and restore the boot graphics.
> > + */
> > +#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
> > +    defined CONFIG_ACPI_BGRT
> > ...
> > +static void efifb_show_boot_graphics(struct fb_info *info)
> > ...
> > +#else
> > +static inline void efifb_show_boot_graphics(struct fb_info *info) {}
> > +#endif
> >
> >> Can we either provide an option to disable this feature, or revert the commit?
> >
> > Hans?
>
> We use the ACPI bgrt extension to get the logo to draw and then
> draw it since some devices rely on the OS to draw it and otherwise we
> just end up with a blackscreen when doing silent / flickerfree boot.
>
> Ideally you would be able to get your vendor to put the logo in firmware
> in the ACPI bgrt extension, then you also do not need to play any tricks
> with an EFI binary drawing your own logo. But I can understand if you don't
> have control over this, so you need to do this with the EFI binary trick.
>
> I can also understand that you want to use deferred console takeover
> in a setup like yours to avoid fbcon messing up what is on the display
> during boot, that is exactly what it is for. So I think a reasonable
> approach here is to add a kernel commandline option, say:
>
> video=efifb:nobgrt
>
> David, would that work for you?

That would be perfect!

Thanks
David

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

* Re: [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
@ 2018-09-03 15:11         ` David Herrmann
  0 siblings, 0 replies; 12+ messages in thread
From: David Herrmann @ 2018-09-03 15:11 UTC (permalink / raw)
  To: Hans de Goede
  Cc: linux-fbdev, linux-efi, linux-kernel, dri-devel,
	Bartlomiej Zolnierkiewicz

Hey

On Mon, Sep 3, 2018 at 4:47 PM Hans de Goede <hdegoede@redhat.com> wrote:
>
> Hi,
>
> On 03-09-18 16:16, Bartlomiej Zolnierkiewicz wrote:
> >
> > Hi,
> >
> > On Monday, September 03, 2018 03:23:38 PM David Herrmann wrote:
> >> Hey
> >>
> >> Since this commit:
> >>
> >>      34db50e55656 efifb: Copy the ACPI BGRT
> >>
> >> the kernel will override boot-splashs unasked. This breaks the
> >> graphical boot-process on our setups. In particular, we have a setup
> >> where an efi-boot-entry draws the early boot-splash on-screen, then
> >> hands-over to the linux-kernel + initrd. The boot-splash daemon in the
> >> initrd then takes over control of possible animations.
> >>
> >> With the mentioned commit compiled in, the kernel will redraw the
> >> firmware logo on screen at a random time without any way to intervene.
> >
> > You have CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (the deferred
> > console takeover support introduced in v4,19-rc1). I assume that this
> > is intended?
> >
> >> What is the intention of this commit? Why is the kernel re-drawing the
> >> firmware logo unasked? If someone during the boot-process draws
> >> content on the screen, I would prefer if the kernel does not clear
> >> that on driver load.
> >
> > +/*
> > + * If fbcon deffered console takeover is configured, the intent is for the
> > + * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
> > + * (error) message to display. But the boot graphics may have been destroyed by
> > + * e.g. option ROM output, detect this and restore the boot graphics.
> > + */
> > +#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
> > +    defined CONFIG_ACPI_BGRT
> > ...
> > +static void efifb_show_boot_graphics(struct fb_info *info)
> > ...
> > +#else
> > +static inline void efifb_show_boot_graphics(struct fb_info *info) {}
> > +#endif
> >
> >> Can we either provide an option to disable this feature, or revert the commit?
> >
> > Hans?
>
> We use the ACPI bgrt extension to get the logo to draw and then
> draw it since some devices rely on the OS to draw it and otherwise we
> just end up with a blackscreen when doing silent / flickerfree boot.
>
> Ideally you would be able to get your vendor to put the logo in firmware
> in the ACPI bgrt extension, then you also do not need to play any tricks
> with an EFI binary drawing your own logo. But I can understand if you don't
> have control over this, so you need to do this with the EFI binary trick.
>
> I can also understand that you want to use deferred console takeover
> in a setup like yours to avoid fbcon messing up what is on the display
> during boot, that is exactly what it is for. So I think a reasonable
> approach here is to add a kernel commandline option, say:
>
> video=efifb:nobgrt
>
> David, would that work for you?

That would be perfect!

Thanks
David
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
@ 2018-09-03 15:11         ` David Herrmann
  0 siblings, 0 replies; 12+ messages in thread
From: David Herrmann @ 2018-09-03 15:11 UTC (permalink / raw)
  To: Hans de Goede
  Cc: linux-fbdev, linux-efi, linux-kernel, dri-devel,
	Bartlomiej Zolnierkiewicz

Hey

On Mon, Sep 3, 2018 at 4:47 PM Hans de Goede <hdegoede@redhat.com> wrote:
>
> Hi,
>
> On 03-09-18 16:16, Bartlomiej Zolnierkiewicz wrote:
> >
> > Hi,
> >
> > On Monday, September 03, 2018 03:23:38 PM David Herrmann wrote:
> >> Hey
> >>
> >> Since this commit:
> >>
> >>      34db50e55656 efifb: Copy the ACPI BGRT
> >>
> >> the kernel will override boot-splashs unasked. This breaks the
> >> graphical boot-process on our setups. In particular, we have a setup
> >> where an efi-boot-entry draws the early boot-splash on-screen, then
> >> hands-over to the linux-kernel + initrd. The boot-splash daemon in the
> >> initrd then takes over control of possible animations.
> >>
> >> With the mentioned commit compiled in, the kernel will redraw the
> >> firmware logo on screen at a random time without any way to intervene.
> >
> > You have CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (the deferred
> > console takeover support introduced in v4,19-rc1). I assume that this
> > is intended?
> >
> >> What is the intention of this commit? Why is the kernel re-drawing the
> >> firmware logo unasked? If someone during the boot-process draws
> >> content on the screen, I would prefer if the kernel does not clear
> >> that on driver load.
> >
> > +/*
> > + * If fbcon deffered console takeover is configured, the intent is for the
> > + * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
> > + * (error) message to display. But the boot graphics may have been destroyed by
> > + * e.g. option ROM output, detect this and restore the boot graphics.
> > + */
> > +#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
> > +    defined CONFIG_ACPI_BGRT
> > ...
> > +static void efifb_show_boot_graphics(struct fb_info *info)
> > ...
> > +#else
> > +static inline void efifb_show_boot_graphics(struct fb_info *info) {}
> > +#endif
> >
> >> Can we either provide an option to disable this feature, or revert the commit?
> >
> > Hans?
>
> We use the ACPI bgrt extension to get the logo to draw and then
> draw it since some devices rely on the OS to draw it and otherwise we
> just end up with a blackscreen when doing silent / flickerfree boot.
>
> Ideally you would be able to get your vendor to put the logo in firmware
> in the ACPI bgrt extension, then you also do not need to play any tricks
> with an EFI binary drawing your own logo. But I can understand if you don't
> have control over this, so you need to do this with the EFI binary trick.
>
> I can also understand that you want to use deferred console takeover
> in a setup like yours to avoid fbcon messing up what is on the display
> during boot, that is exactly what it is for. So I think a reasonable
> approach here is to add a kernel commandline option, say:
>
> videoïifb:nobgrt
>
> David, would that work for you?

That would be perfect!

Thanks
David

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

* Re: [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
  2018-09-03 15:11         ` David Herrmann
  (?)
@ 2018-09-12  9:13           ` Hans de Goede
  -1 siblings, 0 replies; 12+ messages in thread
From: Hans de Goede @ 2018-09-12  9:13 UTC (permalink / raw)
  To: David Herrmann
  Cc: Bartlomiej Zolnierkiewicz, linux-kernel, linux-fbdev, linux-efi,
	dri-devel

Hi,

On 03-09-18 17:11, David Herrmann wrote:
> Hey
> 
> On Mon, Sep 3, 2018 at 4:47 PM Hans de Goede <hdegoede@redhat.com> wrote:
>>
>> Hi,
>>
>> On 03-09-18 16:16, Bartlomiej Zolnierkiewicz wrote:
>>>
>>> Hi,
>>>
>>> On Monday, September 03, 2018 03:23:38 PM David Herrmann wrote:
>>>> Hey
>>>>
>>>> Since this commit:
>>>>
>>>>       34db50e55656 efifb: Copy the ACPI BGRT
>>>>
>>>> the kernel will override boot-splashs unasked. This breaks the
>>>> graphical boot-process on our setups. In particular, we have a setup
>>>> where an efi-boot-entry draws the early boot-splash on-screen, then
>>>> hands-over to the linux-kernel + initrd. The boot-splash daemon in the
>>>> initrd then takes over control of possible animations.
>>>>
>>>> With the mentioned commit compiled in, the kernel will redraw the
>>>> firmware logo on screen at a random time without any way to intervene.
>>>
>>> You have CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (the deferred
>>> console takeover support introduced in v4,19-rc1). I assume that this
>>> is intended?
>>>
>>>> What is the intention of this commit? Why is the kernel re-drawing the
>>>> firmware logo unasked? If someone during the boot-process draws
>>>> content on the screen, I would prefer if the kernel does not clear
>>>> that on driver load.
>>>
>>> +/*
>>> + * If fbcon deffered console takeover is configured, the intent is for the
>>> + * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
>>> + * (error) message to display. But the boot graphics may have been destroyed by
>>> + * e.g. option ROM output, detect this and restore the boot graphics.
>>> + */
>>> +#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
>>> +    defined CONFIG_ACPI_BGRT
>>> ...
>>> +static void efifb_show_boot_graphics(struct fb_info *info)
>>> ...
>>> +#else
>>> +static inline void efifb_show_boot_graphics(struct fb_info *info) {}
>>> +#endif
>>>
>>>> Can we either provide an option to disable this feature, or revert the commit?
>>>
>>> Hans?
>>
>> We use the ACPI bgrt extension to get the logo to draw and then
>> draw it since some devices rely on the OS to draw it and otherwise we
>> just end up with a blackscreen when doing silent / flickerfree boot.
>>
>> Ideally you would be able to get your vendor to put the logo in firmware
>> in the ACPI bgrt extension, then you also do not need to play any tricks
>> with an EFI binary drawing your own logo. But I can understand if you don't
>> have control over this, so you need to do this with the EFI binary trick.
>>
>> I can also understand that you want to use deferred console takeover
>> in a setup like yours to avoid fbcon messing up what is on the display
>> during boot, that is exactly what it is for. So I think a reasonable
>> approach here is to add a kernel commandline option, say:
>>
>> video=efifb:nobgrt
>>
>> David, would that work for you?
> 
> That would be perfect!

Ok, I just send out a patch for this with you in the Cc.

Sorry for taking a bit long to write the patch.

Regards,

Hans


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

* Re: [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
@ 2018-09-12  9:13           ` Hans de Goede
  0 siblings, 0 replies; 12+ messages in thread
From: Hans de Goede @ 2018-09-12  9:13 UTC (permalink / raw)
  To: David Herrmann
  Cc: linux-fbdev, linux-efi, linux-kernel, dri-devel,
	Bartlomiej Zolnierkiewicz

Hi,

On 03-09-18 17:11, David Herrmann wrote:
> Hey
> 
> On Mon, Sep 3, 2018 at 4:47 PM Hans de Goede <hdegoede@redhat.com> wrote:
>>
>> Hi,
>>
>> On 03-09-18 16:16, Bartlomiej Zolnierkiewicz wrote:
>>>
>>> Hi,
>>>
>>> On Monday, September 03, 2018 03:23:38 PM David Herrmann wrote:
>>>> Hey
>>>>
>>>> Since this commit:
>>>>
>>>>       34db50e55656 efifb: Copy the ACPI BGRT
>>>>
>>>> the kernel will override boot-splashs unasked. This breaks the
>>>> graphical boot-process on our setups. In particular, we have a setup
>>>> where an efi-boot-entry draws the early boot-splash on-screen, then
>>>> hands-over to the linux-kernel + initrd. The boot-splash daemon in the
>>>> initrd then takes over control of possible animations.
>>>>
>>>> With the mentioned commit compiled in, the kernel will redraw the
>>>> firmware logo on screen at a random time without any way to intervene.
>>>
>>> You have CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (the deferred
>>> console takeover support introduced in v4,19-rc1). I assume that this
>>> is intended?
>>>
>>>> What is the intention of this commit? Why is the kernel re-drawing the
>>>> firmware logo unasked? If someone during the boot-process draws
>>>> content on the screen, I would prefer if the kernel does not clear
>>>> that on driver load.
>>>
>>> +/*
>>> + * If fbcon deffered console takeover is configured, the intent is for the
>>> + * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
>>> + * (error) message to display. But the boot graphics may have been destroyed by
>>> + * e.g. option ROM output, detect this and restore the boot graphics.
>>> + */
>>> +#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
>>> +    defined CONFIG_ACPI_BGRT
>>> ...
>>> +static void efifb_show_boot_graphics(struct fb_info *info)
>>> ...
>>> +#else
>>> +static inline void efifb_show_boot_graphics(struct fb_info *info) {}
>>> +#endif
>>>
>>>> Can we either provide an option to disable this feature, or revert the commit?
>>>
>>> Hans?
>>
>> We use the ACPI bgrt extension to get the logo to draw and then
>> draw it since some devices rely on the OS to draw it and otherwise we
>> just end up with a blackscreen when doing silent / flickerfree boot.
>>
>> Ideally you would be able to get your vendor to put the logo in firmware
>> in the ACPI bgrt extension, then you also do not need to play any tricks
>> with an EFI binary drawing your own logo. But I can understand if you don't
>> have control over this, so you need to do this with the EFI binary trick.
>>
>> I can also understand that you want to use deferred console takeover
>> in a setup like yours to avoid fbcon messing up what is on the display
>> during boot, that is exactly what it is for. So I think a reasonable
>> approach here is to add a kernel commandline option, say:
>>
>> video=efifb:nobgrt
>>
>> David, would that work for you?
> 
> That would be perfect!

Ok, I just send out a patch for this with you in the Cc.

Sorry for taking a bit long to write the patch.

Regards,

Hans

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT"
@ 2018-09-12  9:13           ` Hans de Goede
  0 siblings, 0 replies; 12+ messages in thread
From: Hans de Goede @ 2018-09-12  9:13 UTC (permalink / raw)
  To: David Herrmann
  Cc: linux-fbdev, linux-efi, linux-kernel, dri-devel,
	Bartlomiej Zolnierkiewicz

Hi,

On 03-09-18 17:11, David Herrmann wrote:
> Hey
> 
> On Mon, Sep 3, 2018 at 4:47 PM Hans de Goede <hdegoede@redhat.com> wrote:
>>
>> Hi,
>>
>> On 03-09-18 16:16, Bartlomiej Zolnierkiewicz wrote:
>>>
>>> Hi,
>>>
>>> On Monday, September 03, 2018 03:23:38 PM David Herrmann wrote:
>>>> Hey
>>>>
>>>> Since this commit:
>>>>
>>>>       34db50e55656 efifb: Copy the ACPI BGRT
>>>>
>>>> the kernel will override boot-splashs unasked. This breaks the
>>>> graphical boot-process on our setups. In particular, we have a setup
>>>> where an efi-boot-entry draws the early boot-splash on-screen, then
>>>> hands-over to the linux-kernel + initrd. The boot-splash daemon in the
>>>> initrd then takes over control of possible animations.
>>>>
>>>> With the mentioned commit compiled in, the kernel will redraw the
>>>> firmware logo on screen at a random time without any way to intervene.
>>>
>>> You have CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (the deferred
>>> console takeover support introduced in v4,19-rc1). I assume that this
>>> is intended?
>>>
>>>> What is the intention of this commit? Why is the kernel re-drawing the
>>>> firmware logo unasked? If someone during the boot-process draws
>>>> content on the screen, I would prefer if the kernel does not clear
>>>> that on driver load.
>>>
>>> +/*
>>> + * If fbcon deffered console takeover is configured, the intent is for the
>>> + * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
>>> + * (error) message to display. But the boot graphics may have been destroyed by
>>> + * e.g. option ROM output, detect this and restore the boot graphics.
>>> + */
>>> +#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
>>> +    defined CONFIG_ACPI_BGRT
>>> ...
>>> +static void efifb_show_boot_graphics(struct fb_info *info)
>>> ...
>>> +#else
>>> +static inline void efifb_show_boot_graphics(struct fb_info *info) {}
>>> +#endif
>>>
>>>> Can we either provide an option to disable this feature, or revert the commit?
>>>
>>> Hans?
>>
>> We use the ACPI bgrt extension to get the logo to draw and then
>> draw it since some devices rely on the OS to draw it and otherwise we
>> just end up with a blackscreen when doing silent / flickerfree boot.
>>
>> Ideally you would be able to get your vendor to put the logo in firmware
>> in the ACPI bgrt extension, then you also do not need to play any tricks
>> with an EFI binary drawing your own logo. But I can understand if you don't
>> have control over this, so you need to do this with the EFI binary trick.
>>
>> I can also understand that you want to use deferred console takeover
>> in a setup like yours to avoid fbcon messing up what is on the display
>> during boot, that is exactly what it is for. So I think a reasonable
>> approach here is to add a kernel commandline option, say:
>>
>> videoïifb:nobgrt
>>
>> David, would that work for you?
> 
> That would be perfect!

Ok, I just send out a patch for this with you in the Cc.

Sorry for taking a bit long to write the patch.

Regards,

Hans

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

end of thread, other threads:[~2018-09-12  9:13 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20180903132353epcas4p373e876f1b52dbed6df7bd3acc73fcdf4@epcas4p3.samsung.com>
2018-09-03 13:23 ` [REGRESSION] boot-screen override by "34db50e55656 efifb: Copy the ACPI BGRT" David Herrmann
2018-09-03 13:23   ` David Herrmann
2018-09-03 14:16   ` Bartlomiej Zolnierkiewicz
2018-09-03 14:16     ` Bartlomiej Zolnierkiewicz
2018-09-03 14:47     ` Hans de Goede
2018-09-03 14:47       ` Hans de Goede
2018-09-03 15:11       ` David Herrmann
2018-09-03 15:11         ` David Herrmann
2018-09-03 15:11         ` David Herrmann
2018-09-12  9:13         ` Hans de Goede
2018-09-12  9:13           ` Hans de Goede
2018-09-12  9:13           ` Hans de Goede

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.