public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] common: add board specific hook for os preboot config
@ 2018-08-13  7:30 Gerard Salvatella
  2018-08-16 13:09 ` Stefan Agner
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Gerard Salvatella @ 2018-08-13  7:30 UTC (permalink / raw)
  To: u-boot

Some boards require specific configuration prior to booting the kernel.
For instance, our boards require shutting down the display to avoid
fading transitions before the drivers are reloaded by the kernel. This
could be facilitated by adding an extra hook during the os booting
process.

Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
---
 common/bootm_os.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/common/bootm_os.c b/common/bootm_os.c
index f4bd905909..1e7af56b64 100644
--- a/common/bootm_os.c
+++ b/common/bootm_os.c
@@ -505,9 +505,16 @@ __weak void arch_preboot_os(void)
        /* please define platform specific arch_preboot_os() */
 }

+/* Allow for board specific config before we boot */
+__weak void board_preboot_os(void)
+{
+       /* please define board specific board_preboot_os() */
+}
+
 int boot_selected_os(int argc, char * const argv[], int state,
                     bootm_headers_t *images, boot_os_fn *boot_fn)
 {
+       board_preboot_os();
        arch_preboot_os();
        boot_fn(state, argc, argv, images);

--
2.18.0


[Toradex Logo]<http://toradex.com>      Global Leader in Arm�
Embedded Computer Modules

Choose Us<https://www.toradex.com/how-to-choose-system-computer-on-module-partner> | Products<https://www.toradex.com/products> | Developer Center<http://developer.toradex.com/> | Community<https://www.toradex.com/community> | Careers<https://careers.toradex.com/>
Meet our engineers at<https://www.toradex.com/events>:<https://www.toradex.com/events>
- Linux Developer Conference, Brazil, Aug 25-26, 2018
- NXP Technology Days 2018, United States, Aug 28, 2018
- IoT Latin America, Brazil, Aug 29-30, 2018

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

* [U-Boot] [PATCH] common: add board specific hook for os preboot config
  2018-08-13  7:30 [U-Boot] [PATCH] common: add board specific hook for os preboot config Gerard Salvatella
@ 2018-08-16 13:09 ` Stefan Agner
  2018-09-24 14:43   ` Michael Nazzareno Trimarchi
  2018-08-17 10:54 ` Christian Gmeiner
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Stefan Agner @ 2018-08-16 13:09 UTC (permalink / raw)
  To: u-boot

On 13.08.2018 09:30, Gerard Salvatella wrote:
> Some boards require specific configuration prior to booting the kernel.
> For instance, our boards require shutting down the display to avoid
> fading transitions before the drivers are reloaded by the kernel. This
> could be facilitated by adding an extra hook during the os booting
> process.

Maybe I can extend on what we are trying to achieve here:

We enable display backlight using board code.

The architecture code then shuts down the display controller just before
booting Linux (e.g. on i.MX, by calling
ipuv3_fb_shutdown/lcdif_power_down in arch_preboot_os).

This leads to a display which has backlight enabled, but no data
driven... Depending on display this leads to noisy/fading transitions
between U-Boot and Linux.

So we would like to disable the backlight in board code.

In a first version we used a weak display_shutdown() function, but with
that we would have to add it to every architecture.

This approach uses a generic board specific preeboot_os callback which
can be used for different purpose too.

Does this sound like an approach which is acceptable upstream?

--
Stefan


> 
> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> ---
>  common/bootm_os.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/common/bootm_os.c b/common/bootm_os.c
> index f4bd905909..1e7af56b64 100644
> --- a/common/bootm_os.c
> +++ b/common/bootm_os.c
> @@ -505,9 +505,16 @@ __weak void arch_preboot_os(void)
>         /* please define platform specific arch_preboot_os() */
>  }
> 
> +/* Allow for board specific config before we boot */
> +__weak void board_preboot_os(void)
> +{
> +       /* please define board specific board_preboot_os() */
> +}
> +
>  int boot_selected_os(int argc, char * const argv[], int state,
>                      bootm_headers_t *images, boot_os_fn *boot_fn)
>  {
> +       board_preboot_os();
>         arch_preboot_os();
>         boot_fn(state, argc, argv, images);
> 
> --
> 2.18.0
> 
> 
> [Toradex Logo]<http://toradex.com>      Global Leader in Arm®
> Embedded Computer Modules
> 
> Choose
> Us<https://www.toradex.com/how-to-choose-system-computer-on-module-partner>
> | Products<https://www.toradex.com/products> | Developer
> Center<http://developer.toradex.com/> |
> Community<https://www.toradex.com/community> |
> Careers<https://careers.toradex.com/>
> Meet our engineers
> at<https://www.toradex.com/events>:<https://www.toradex.com/events>
> - Linux Developer Conference, Brazil, Aug 25-26, 2018
> - NXP Technology Days 2018, United States, Aug 28, 2018
> - IoT Latin America, Brazil, Aug 29-30, 2018
> 
> 
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH] common: add board specific hook for os preboot config
  2018-08-13  7:30 [U-Boot] [PATCH] common: add board specific hook for os preboot config Gerard Salvatella
  2018-08-16 13:09 ` Stefan Agner
@ 2018-08-17 10:54 ` Christian Gmeiner
  2018-09-24 14:19 ` Stefan Agner
  2018-11-14 23:00 ` Marcel Ziswiler
  3 siblings, 0 replies; 10+ messages in thread
From: Christian Gmeiner @ 2018-08-17 10:54 UTC (permalink / raw)
  To: u-boot

HI all

Am Mo., 13. Aug. 2018 um 13:12 Uhr schrieb Gerard Salvatella
<gerard.salvatella@toradex.com>:
>
> Some boards require specific configuration prior to booting the kernel.
> For instance, our boards require shutting down the display to avoid
> fading transitions before the drivers are reloaded by the kernel. This
> could be facilitated by adding an extra hook during the os booting
> process.
>

I really like this idea (as I also need to do some pre-os-boot stuff
for a legacy operating system).

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>

> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> ---
>  common/bootm_os.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/common/bootm_os.c b/common/bootm_os.c
> index f4bd905909..1e7af56b64 100644
> --- a/common/bootm_os.c
> +++ b/common/bootm_os.c
> @@ -505,9 +505,16 @@ __weak void arch_preboot_os(void)
>         /* please define platform specific arch_preboot_os() */
>  }
>
> +/* Allow for board specific config before we boot */
> +__weak void board_preboot_os(void)
> +{
> +       /* please define board specific board_preboot_os() */
> +}
> +
>  int boot_selected_os(int argc, char * const argv[], int state,
>                      bootm_headers_t *images, boot_os_fn *boot_fn)
>  {
> +       board_preboot_os();
>         arch_preboot_os();
>         boot_fn(state, argc, argv, images);
>
> --
> 2.18.0
>
>
> [Toradex Logo]<http://toradex.com>      Global Leader in Arm®
> Embedded Computer Modules
>
> Choose Us<https://www.toradex.com/how-to-choose-system-computer-on-module-partner> | Products<https://www.toradex.com/products> | Developer Center<http://developer.toradex.com/> | Community<https://www.toradex.com/community> | Careers<https://careers.toradex.com/>
> Meet our engineers at<https://www.toradex.com/events>:<https://www.toradex.com/events>
> - Linux Developer Conference, Brazil, Aug 25-26, 2018
> - NXP Technology Days 2018, United States, Aug 28, 2018
> - IoT Latin America, Brazil, Aug 29-30, 2018
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot



-- 
greets
--
Christian Gmeiner, MSc

https://christian-gmeiner.info

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

* [U-Boot] [PATCH] common: add board specific hook for os preboot config
  2018-08-13  7:30 [U-Boot] [PATCH] common: add board specific hook for os preboot config Gerard Salvatella
  2018-08-16 13:09 ` Stefan Agner
  2018-08-17 10:54 ` Christian Gmeiner
@ 2018-09-24 14:19 ` Stefan Agner
  2018-11-14 23:00 ` Marcel Ziswiler
  3 siblings, 0 replies; 10+ messages in thread
From: Stefan Agner @ 2018-09-24 14:19 UTC (permalink / raw)
  To: u-boot

On 13.08.2018 09:30, Gerard Salvatella wrote:
> Some boards require specific configuration prior to booting the kernel.
> For instance, our boards require shutting down the display to avoid
> fading transitions before the drivers are reloaded by the kernel. This
> could be facilitated by adding an extra hook during the os booting
> process.
> 
> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>

Tom, any thoughts on this? I guess it would get merged directly by you?

FWIW, I suggested this approach, and Gerards implementation looks good
to me, so:
Reviewed-by: Stefan Agner <stefan.agner@toradex.com>

--
Stefan

> ---
>  common/bootm_os.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/common/bootm_os.c b/common/bootm_os.c
> index f4bd905909..1e7af56b64 100644
> --- a/common/bootm_os.c
> +++ b/common/bootm_os.c
> @@ -505,9 +505,16 @@ __weak void arch_preboot_os(void)
>         /* please define platform specific arch_preboot_os() */
>  }
> 
> +/* Allow for board specific config before we boot */
> +__weak void board_preboot_os(void)
> +{
> +       /* please define board specific board_preboot_os() */
> +}
> +
>  int boot_selected_os(int argc, char * const argv[], int state,
>                      bootm_headers_t *images, boot_os_fn *boot_fn)
>  {
> +       board_preboot_os();
>         arch_preboot_os();
>         boot_fn(state, argc, argv, images);
> 
> --
> 2.18.0
> 
> 
> [Toradex Logo]<http://toradex.com>      Global Leader in Arm®
> Embedded Computer Modules
> 
> Choose
> Us<https://www.toradex.com/how-to-choose-system-computer-on-module-partner>
> | Products<https://www.toradex.com/products> | Developer
> Center<http://developer.toradex.com/> |
> Community<https://www.toradex.com/community> |
> Careers<https://careers.toradex.com/>
> Meet our engineers
> at<https://www.toradex.com/events>:<https://www.toradex.com/events>
> - Linux Developer Conference, Brazil, Aug 25-26, 2018
> - NXP Technology Days 2018, United States, Aug 28, 2018
> - IoT Latin America, Brazil, Aug 29-30, 2018
> 
> 
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH] common: add board specific hook for os preboot config
  2018-08-16 13:09 ` Stefan Agner
@ 2018-09-24 14:43   ` Michael Nazzareno Trimarchi
  2018-09-24 14:51     ` Stefan Agner
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Nazzareno Trimarchi @ 2018-09-24 14:43 UTC (permalink / raw)
  To: u-boot

Hi



On Thu., 16 Aug. 2018, 3:09 pm Stefan Agner, <stefan@agner.ch> wrote:

> On 13.08.2018 09:30, Gerard Salvatella wrote:
> > Some boards require specific configuration prior to booting the kernel.
> > For instance, our boards require shutting down the display to avoid
> > fading transitions before the drivers are reloaded by the kernel. This
> > could be facilitated by adding an extra hook during the os booting
> > process.
>
> Maybe I can extend on what we are trying to achieve here:
>
> We enable display backlight using board code.
>

You can make it works almost easily.

I enable simple fb, inject allocated display parameters in dts to reserve
area, pass the area to the graphics controller and dismiss it during probing

This is mainline in linux support.

I have couple of patches need to clean up for imx architecture (imx6ull and
imx25)

You can still scripting it using cmd interface

Michael

>
> The architecture code then shuts down the display controller just before
> booting Linux (e.g. on i.MX, by calling
> ipuv3_fb_shutdown/lcdif_power_down in arch_preboot_os).
>
> This leads to a display which has backlight enabled, but no data
> driven... Depending on display this leads to noisy/fading transitions
> between U-Boot and Linux.
>
> So we would like to disable the backlight in board code.
>
> In a first version we used a weak display_shutdown() function, but with
> that we would have to add it to every architecture.
>
> This approach uses a generic board specific preeboot_os callback which
> can be used for different purpose too.
>
> Does this sound like an approach which is acceptable upstream?
>
> --
> Stefan
>
>
> >
> > Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> > ---
> >  common/bootm_os.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> > diff --git a/common/bootm_os.c b/common/bootm_os.c
> > index f4bd905909..1e7af56b64 100644
> > --- a/common/bootm_os.c
> > +++ b/common/bootm_os.c
> > @@ -505,9 +505,16 @@ __weak void arch_preboot_os(void)
> >         /* please define platform specific arch_preboot_os() */
> >  }
> >
> > +/* Allow for board specific config before we boot */
> > +__weak void board_preboot_os(void)
> > +{
> > +       /* please define board specific board_preboot_os() */
> > +}
> > +
> >  int boot_selected_os(int argc, char * const argv[], int state,
> >                      bootm_headers_t *images, boot_os_fn *boot_fn)
> >  {
> > +       board_preboot_os();
> >         arch_preboot_os();
> >         boot_fn(state, argc, argv, images);
> >
> > --
> > 2.18.0
> >
> >
> > [Toradex Logo]<http://toradex.com>      Global Leader in Arm®
> > Embedded Computer Modules
> >
> > Choose
> > Us<
> https://www.toradex.com/how-to-choose-system-computer-on-module-partner>
> > | Products<https://www.toradex.com/products> | Developer
> > Center<http://developer.toradex.com/> |
> > Community<https://www.toradex.com/community> |
> > Careers<https://careers.toradex.com/>
> > Meet our engineers
> > at<https://www.toradex.com/events>:<https://www.toradex.com/events>
> > - Linux Developer Conference, Brazil, Aug 25-26, 2018
> > - NXP Technology Days 2018, United States, Aug 28, 2018
> > - IoT Latin America, Brazil, Aug 29-30, 2018
> >
> >
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
>

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

* [U-Boot] [PATCH] common: add board specific hook for os preboot config
  2018-09-24 14:43   ` Michael Nazzareno Trimarchi
@ 2018-09-24 14:51     ` Stefan Agner
  2018-09-24 14:56       ` Michael Nazzareno Trimarchi
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Agner @ 2018-09-24 14:51 UTC (permalink / raw)
  To: u-boot

On 24.09.2018 16:43, Michael Nazzareno Trimarchi wrote:
> Hi
> 
> On Thu., 16 Aug. 2018, 3:09 pm Stefan Agner, <stefan@agner.ch> wrote:
> 
>> On 13.08.2018 09:30, Gerard Salvatella wrote:
>>> Some boards require specific configuration prior to booting the
>> kernel.
>>> For instance, our boards require shutting down the display to
>> avoid
>>> fading transitions before the drivers are reloaded by the kernel.
>> This
>>> could be facilitated by adding an extra hook during the os booting
>>> process.
>>
>> Maybe I can extend on what we are trying to achieve here:
>>
>> We enable display backlight using board code.
> 
> You can make it works almost easily. 
> 
> I enable simple fb, inject allocated display parameters in dts to
> reserve area, pass the area to the graphics controller and dismiss it
> during probing
> 
> This is mainline in linux support.
> 
> I have couple of patches need to clean up for imx architecture
> (imx6ull and imx25)

Definitely interested in those patches! Of course using this approach
leads to the most seamless booting experience.

But as far as I know it also needs proper (driver specific) Linux
support, is that correct?

So, I think its anyway worth having an option to properly disable the
display and backlight for older kernels/non-Linux OS.

--
Stefan

> 
> You can still scripting it using cmd interface
> 
> Michael
> 
>> The architecture code then shuts down the display controller just
>> before
>> booting Linux (e.g. on i.MX, by calling
>> ipuv3_fb_shutdown/lcdif_power_down in arch_preboot_os).
>>
>> This leads to a display which has backlight enabled, but no data
>> driven... Depending on display this leads to noisy/fading
>> transitions
>> between U-Boot and Linux.
>>
>> So we would like to disable the backlight in board code.
>>
>> In a first version we used a weak display_shutdown() function, but
>> with
>> that we would have to add it to every architecture.
>>
>> This approach uses a generic board specific preeboot_os callback
>> which
>> can be used for different purpose too.
>>
>> Does this sound like an approach which is acceptable upstream?
>>
>> --
>> Stefan
>>
>>>
>>> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
>>> ---
>>> common/bootm_os.c | 7 +++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/common/bootm_os.c b/common/bootm_os.c
>>> index f4bd905909..1e7af56b64 100644
>>> --- a/common/bootm_os.c
>>> +++ b/common/bootm_os.c
>>> @@ -505,9 +505,16 @@ __weak void arch_preboot_os(void)
>>> /* please define platform specific arch_preboot_os() */
>>> }
>>>
>>> +/* Allow for board specific config before we boot */
>>> +__weak void board_preboot_os(void)
>>> +{
>>> +       /* please define board specific board_preboot_os() */
>>> +}
>>> +
>>> int boot_selected_os(int argc, char * const argv[], int state,
>>> bootm_headers_t *images, boot_os_fn *boot_fn)
>>> {
>>> +       board_preboot_os();
>>> arch_preboot_os();
>>> boot_fn(state, argc, argv, images);
>>>
>>> --
>>> 2.18.0
>>>
>>>
>>> [Toradex Logo]<http://toradex.com>      Global Leader in Arm®
>>> Embedded Computer Modules
>>>
>>> Choose
>>>
>>
> Us<https://www.toradex.com/how-to-choose-system-computer-on-module-partner>
>>> | Products<https://www.toradex.com/products> | Developer
>>> Center<http://developer.toradex.com/> |
>>> Community<https://www.toradex.com/community> |
>>> Careers<https://careers.toradex.com/>
>>> Meet our engineers
>>>
>> at<https://www.toradex.com/events>:<https://www.toradex.com/events>
>>> - Linux Developer Conference, Brazil, Aug 25-26, 2018
>>> - NXP Technology Days 2018, United States, Aug 28, 2018
>>> - IoT Latin America, Brazil, Aug 29-30, 2018
>>>
>>>
>>>
>>> _______________________________________________
>>> U-Boot mailing list
>>> U-Boot at lists.denx.de
>>> https://lists.denx.de/listinfo/u-boot
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH] common: add board specific hook for os preboot config
  2018-09-24 14:51     ` Stefan Agner
@ 2018-09-24 14:56       ` Michael Nazzareno Trimarchi
  2018-09-24 15:15         ` Stefan Agner
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Nazzareno Trimarchi @ 2018-09-24 14:56 UTC (permalink / raw)
  To: u-boot

Hi



On Mon., 24 Sep. 2018, 4:51 pm Stefan Agner, <stefan@agner.ch> wrote:

> On 24.09.2018 16:43, Michael Nazzareno Trimarchi wrote:
> > Hi
> >
> > On Thu., 16 Aug. 2018, 3:09 pm Stefan Agner, <stefan@agner.ch> wrote:
> >
> >> On 13.08.2018 09:30, Gerard Salvatella wrote:
> >>> Some boards require specific configuration prior to booting the
> >> kernel.
> >>> For instance, our boards require shutting down the display to
> >> avoid
> >>> fading transitions before the drivers are reloaded by the kernel.
> >> This
> >>> could be facilitated by adding an extra hook during the os booting
> >>> process.
> >>
> >> Maybe I can extend on what we are trying to achieve here:
> >>
> >> We enable display backlight using board code.
> >
> > You can make it works almost easily.
> >
> > I enable simple fb, inject allocated display parameters in dts to
> > reserve area, pass the area to the graphics controller and dismiss it
> > during probing
> >
> > This is mainline in linux support.
> >
> > I have couple of patches need to clean up for imx architecture
> > (imx6ull and imx25)
>
> Definitely interested in those patches! Of course using this approach
> leads to the most seamless booting experience.
>

Yes but there are a lot of reason to have when you deal multi-image update
and so on.


> But as far as I know it also needs proper (driver specific) Linux
> support, is that correct?
>

No that is wrong. imx6ull need a small patches right now I have applied in
kernel in legacy driver and not in drm one.

sunxi already implement everything in their side


> So, I think its anyway worth having an option to properly disable the
> display and backlight for older kernels/non-Linux OS.
>

gpio clear gpio-6 ; bootm ?

Michael

>
> --
> Stefan
>
> >
> > You can still scripting it using cmd interface
> >
> > Michael
> >
> >> The architecture code then shuts down the display controller just
> >> before
> >> booting Linux (e.g. on i.MX, by calling
> >> ipuv3_fb_shutdown/lcdif_power_down in arch_preboot_os).
> >>
> >> This leads to a display which has backlight enabled, but no data
> >> driven... Depending on display this leads to noisy/fading
> >> transitions
> >> between U-Boot and Linux.
> >>
> >> So we would like to disable the backlight in board code.
> >>
> >> In a first version we used a weak display_shutdown() function, but
> >> with
> >> that we would have to add it to every architecture.
> >>
> >> This approach uses a generic board specific preeboot_os callback
> >> which
> >> can be used for different purpose too.
> >>
> >> Does this sound like an approach which is acceptable upstream?
> >>
> >> --
> >> Stefan
> >>
> >>>
> >>> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> >>> ---
> >>> common/bootm_os.c | 7 +++++++
> >>> 1 file changed, 7 insertions(+)
> >>>
> >>> diff --git a/common/bootm_os.c b/common/bootm_os.c
> >>> index f4bd905909..1e7af56b64 100644
> >>> --- a/common/bootm_os.c
> >>> +++ b/common/bootm_os.c
> >>> @@ -505,9 +505,16 @@ __weak void arch_preboot_os(void)
> >>> /* please define platform specific arch_preboot_os() */
> >>> }
> >>>
> >>> +/* Allow for board specific config before we boot */
> >>> +__weak void board_preboot_os(void)
> >>> +{
> >>> +       /* please define board specific board_preboot_os() */
> >>> +}
> >>> +
> >>> int boot_selected_os(int argc, char * const argv[], int state,
> >>> bootm_headers_t *images, boot_os_fn *boot_fn)
> >>> {
> >>> +       board_preboot_os();
> >>> arch_preboot_os();
> >>> boot_fn(state, argc, argv, images);
> >>>
> >>> --
> >>> 2.18.0
> >>>
> >>>
> >>> [Toradex Logo]<http://toradex.com>      Global Leader in Arm®
> >>> Embedded Computer Modules
> >>>
> >>> Choose
> >>>
> >>
> > Us<
> https://www.toradex.com/how-to-choose-system-computer-on-module-partner>
> >>> | Products<https://www.toradex.com/products> | Developer
> >>> Center<http://developer.toradex.com/> |
> >>> Community<https://www.toradex.com/community> |
> >>> Careers<https://careers.toradex.com/>
> >>> Meet our engineers
> >>>
> >> at<https://www.toradex.com/events>:<https://www.toradex.com/events>
> >>> - Linux Developer Conference, Brazil, Aug 25-26, 2018
> >>> - NXP Technology Days 2018, United States, Aug 28, 2018
> >>> - IoT Latin America, Brazil, Aug 29-30, 2018
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> U-Boot mailing list
> >>> U-Boot at lists.denx.de
> >>> https://lists.denx.de/listinfo/u-boot
> >> _______________________________________________
> >> U-Boot mailing list
> >> U-Boot at lists.denx.de
> >> https://lists.denx.de/listinfo/u-boot
>

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

* [U-Boot] [PATCH] common: add board specific hook for os preboot config
  2018-09-24 14:56       ` Michael Nazzareno Trimarchi
@ 2018-09-24 15:15         ` Stefan Agner
  2018-09-24 15:19           ` Michael Nazzareno Trimarchi
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Agner @ 2018-09-24 15:15 UTC (permalink / raw)
  To: u-boot

On 24.09.2018 16:56, Michael Nazzareno Trimarchi wrote:
> Hi
> 
> On Mon., 24 Sep. 2018, 4:51 pm Stefan Agner, <stefan@agner.ch> wrote:
> 
>> On 24.09.2018 16:43, Michael Nazzareno Trimarchi wrote:
>>> Hi
>>>
>>> On Thu., 16 Aug. 2018, 3:09 pm Stefan Agner, <stefan@agner.ch>
>> wrote:
>>>
>>>> On 13.08.2018 09:30, Gerard Salvatella wrote:
>>>>> Some boards require specific configuration prior to booting the
>>>> kernel.
>>>>> For instance, our boards require shutting down the display to
>>>> avoid
>>>>> fading transitions before the drivers are reloaded by the
>> kernel.
>>>> This
>>>>> could be facilitated by adding an extra hook during the os
>> booting
>>>>> process.
>>>>
>>>> Maybe I can extend on what we are trying to achieve here:
>>>>
>>>> We enable display backlight using board code.
>>>
>>> You can make it works almost easily.
>>>
>>> I enable simple fb, inject allocated display parameters in dts to
>>> reserve area, pass the area to the graphics controller and dismiss
>> it
>>> during probing
>>>
>>> This is mainline in linux support.
>>>
>>> I have couple of patches need to clean up for imx architecture
>>> (imx6ull and imx25)
>>
>> Definitely interested in those patches! Of course using this
>> approach
>> leads to the most seamless booting experience.
> 
> Yes but there are a lot of reason to have when you deal multi-image
> update and so on.
> 
>> But as far as I know it also needs proper (driver specific) Linux
>> support, is that correct?
> 
> No that is wrong. imx6ull need a small patches right now I have
> applied in kernel in legacy driver and not in drm one. 
> 

In what way is that different to what I wrote above?

In the end, the OS needs support for this.

> sunxi already implement everything in their side
> 
>> So, I think its anyway worth having an option to properly disable
>> the
>> display and backlight for older kernels/non-Linux OS.
> 
> gpio clear gpio-6 ; bootm ?

That is very board specific scripting required. We enable the backlight
in code, so we should disable it, especially if we disable the
controller (which we do currently).

--
Stefan

> 
> Michael
> 
>> --
>> Stefan
>>
>>>
>>> You can still scripting it using cmd interface
>>>
>>> Michael
>>>
>>>> The architecture code then shuts down the display controller just
>>>> before
>>>> booting Linux (e.g. on i.MX, by calling
>>>> ipuv3_fb_shutdown/lcdif_power_down in arch_preboot_os).
>>>>
>>>> This leads to a display which has backlight enabled, but no data
>>>> driven... Depending on display this leads to noisy/fading
>>>> transitions
>>>> between U-Boot and Linux.
>>>>
>>>> So we would like to disable the backlight in board code.
>>>>
>>>> In a first version we used a weak display_shutdown() function,
>> but
>>>> with
>>>> that we would have to add it to every architecture.
>>>>
>>>> This approach uses a generic board specific preeboot_os callback
>>>> which
>>>> can be used for different purpose too.
>>>>
>>>> Does this sound like an approach which is acceptable upstream?
>>>>
>>>> --
>>>> Stefan
>>>>
>>>>>
>>>>> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
>>>>> ---
>>>>> common/bootm_os.c | 7 +++++++
>>>>> 1 file changed, 7 insertions(+)
>>>>>
>>>>> diff --git a/common/bootm_os.c b/common/bootm_os.c
>>>>> index f4bd905909..1e7af56b64 100644
>>>>> --- a/common/bootm_os.c
>>>>> +++ b/common/bootm_os.c
>>>>> @@ -505,9 +505,16 @@ __weak void arch_preboot_os(void)
>>>>> /* please define platform specific arch_preboot_os() */
>>>>> }
>>>>>
>>>>> +/* Allow for board specific config before we boot */
>>>>> +__weak void board_preboot_os(void)
>>>>> +{
>>>>> +       /* please define board specific board_preboot_os() */
>>>>> +}
>>>>> +
>>>>> int boot_selected_os(int argc, char * const argv[], int state,
>>>>> bootm_headers_t *images, boot_os_fn *boot_fn)
>>>>> {
>>>>> +       board_preboot_os();
>>>>> arch_preboot_os();
>>>>> boot_fn(state, argc, argv, images);
>>>>>
>>>>> --
>>>>> 2.18.0
>>>>>
>>>>>
>>>>> [Toradex Logo]<http://toradex.com>      Global Leader in Arm®
>>>>> Embedded Computer Modules
>>>>>
>>>>> Choose
>>>>>
>>>>
>>>
>>
> Us<https://www.toradex.com/how-to-choose-system-computer-on-module-partner>
>>>>> | Products<https://www.toradex.com/products> | Developer
>>>>> Center<http://developer.toradex.com/> |
>>>>> Community<https://www.toradex.com/community> |
>>>>> Careers<https://careers.toradex.com/>
>>>>> Meet our engineers
>>>>>
>>>>
>> at<https://www.toradex.com/events>:<https://www.toradex.com/events>
>>>>> - Linux Developer Conference, Brazil, Aug 25-26, 2018
>>>>> - NXP Technology Days 2018, United States, Aug 28, 2018
>>>>> - IoT Latin America, Brazil, Aug 29-30, 2018
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> U-Boot mailing list
>>>>> U-Boot at lists.denx.de
>>>>> https://lists.denx.de/listinfo/u-boot
>>>> _______________________________________________
>>>> U-Boot mailing list
>>>> U-Boot at lists.denx.de
>>>> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH] common: add board specific hook for os preboot config
  2018-09-24 15:15         ` Stefan Agner
@ 2018-09-24 15:19           ` Michael Nazzareno Trimarchi
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Nazzareno Trimarchi @ 2018-09-24 15:19 UTC (permalink / raw)
  To: u-boot

Hi


On Mon., 24 Sep. 2018, 5:15 pm Stefan Agner, <stefan@agner.ch> wrote:

> On 24.09.2018 16:56, Michael Nazzareno Trimarchi wrote:
> > Hi
> >
> > On Mon., 24 Sep. 2018, 4:51 pm Stefan Agner, <stefan@agner.ch> wrote:
> >
> >> On 24.09.2018 16:43, Michael Nazzareno Trimarchi wrote:
> >>> Hi
> >>>
> >>> On Thu., 16 Aug. 2018, 3:09 pm Stefan Agner, <stefan@agner.ch>
> >> wrote:
> >>>
> >>>> On 13.08.2018 09:30, Gerard Salvatella wrote:
> >>>>> Some boards require specific configuration prior to booting the
> >>>> kernel.
> >>>>> For instance, our boards require shutting down the display to
> >>>> avoid
> >>>>> fading transitions before the drivers are reloaded by the
> >> kernel.
> >>>> This
> >>>>> could be facilitated by adding an extra hook during the os
> >> booting
> >>>>> process.
> >>>>
> >>>> Maybe I can extend on what we are trying to achieve here:
> >>>>
> >>>> We enable display backlight using board code.
> >>>
> >>> You can make it works almost easily.
> >>>
> >>> I enable simple fb, inject allocated display parameters in dts to
> >>> reserve area, pass the area to the graphics controller and dismiss
> >> it
> >>> during probing
> >>>
> >>> This is mainline in linux support.
> >>>
> >>> I have couple of patches need to clean up for imx architecture
> >>> (imx6ull and imx25)
> >>
> >> Definitely interested in those patches! Of course using this
> >> approach
> >> leads to the most seamless booting experience.
> >
> > Yes but there are a lot of reason to have when you deal multi-image
> > update and so on.
> >
> >> But as far as I know it also needs proper (driver specific) Linux
> >> support, is that correct?
> >
> > No that is wrong. imx6ull need a small patches right now I have
> > applied in kernel in legacy driver and not in drm one.
> >
>
> In what way is that different to what I wrote above?
>
> In the end, the OS needs support for this.
>

I said that Linux support but not all the specic SoC. I don't against the
proposal but on my side I think that create some label and some way to
register them and go through a list instead of continue create weak make
more sense



> > sunxi already implement everything in their side
> >
> >> So, I think its anyway worth having an option to properly disable
> >> the
> >> display and backlight for older kernels/non-Linux OS.
> >
> > gpio clear gpio-6 ; bootm ?
>
> That is very board specific scripting required. We enable the backlight
> in code, so we should disable it, especially if we disable the
> controller (which we do currently).
>

Your function is board specific anyway but ok I understand the asymmetric
situation. I suggest it before migrate to the latest solution

Michael

>
> --
> Stefan
>
> >
> > Michael
> >
> >> --
> >> Stefan
> >>
> >>>
> >>> You can still scripting it using cmd interface
> >>>
> >>> Michael
> >>>
> >>>> The architecture code then shuts down the display controller just
> >>>> before
> >>>> booting Linux (e.g. on i.MX, by calling
> >>>> ipuv3_fb_shutdown/lcdif_power_down in arch_preboot_os).
> >>>>
> >>>> This leads to a display which has backlight enabled, but no data
> >>>> driven... Depending on display this leads to noisy/fading
> >>>> transitions
> >>>> between U-Boot and Linux.
> >>>>
> >>>> So we would like to disable the backlight in board code.
> >>>>
> >>>> In a first version we used a weak display_shutdown() function,
> >> but
> >>>> with
> >>>> that we would have to add it to every architecture.
> >>>>
> >>>> This approach uses a generic board specific preeboot_os callback
> >>>> which
> >>>> can be used for different purpose too.
> >>>>
> >>>> Does this sound like an approach which is acceptable upstream?
> >>>>
> >>>> --
> >>>> Stefan
> >>>>
> >>>>>
> >>>>> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> >>>>> ---
> >>>>> common/bootm_os.c | 7 +++++++
> >>>>> 1 file changed, 7 insertions(+)
> >>>>>
> >>>>> diff --git a/common/bootm_os.c b/common/bootm_os.c
> >>>>> index f4bd905909..1e7af56b64 100644
> >>>>> --- a/common/bootm_os.c
> >>>>> +++ b/common/bootm_os.c
> >>>>> @@ -505,9 +505,16 @@ __weak void arch_preboot_os(void)
> >>>>> /* please define platform specific arch_preboot_os() */
> >>>>> }
> >>>>>
> >>>>> +/* Allow for board specific config before we boot */
> >>>>> +__weak void board_preboot_os(void)
> >>>>> +{
> >>>>> +       /* please define board specific board_preboot_os() */
> >>>>> +}
> >>>>> +
> >>>>> int boot_selected_os(int argc, char * const argv[], int state,
> >>>>> bootm_headers_t *images, boot_os_fn *boot_fn)
> >>>>> {
> >>>>> +       board_preboot_os();
> >>>>> arch_preboot_os();
> >>>>> boot_fn(state, argc, argv, images);
> >>>>>
> >>>>> --
> >>>>> 2.18.0
> >>>>>
> >>>>>
> >>>>> [Toradex Logo]<http://toradex.com>      Global Leader in Arm®
> >>>>> Embedded Computer Modules
> >>>>>
> >>>>> Choose
> >>>>>
> >>>>
> >>>
> >>
> > Us<
> https://www.toradex.com/how-to-choose-system-computer-on-module-partner>
> >>>>> | Products<https://www.toradex.com/products> | Developer
> >>>>> Center<http://developer.toradex.com/> |
> >>>>> Community<https://www.toradex.com/community> |
> >>>>> Careers<https://careers.toradex.com/>
> >>>>> Meet our engineers
> >>>>>
> >>>>
> >> at<https://www.toradex.com/events>:<https://www.toradex.com/events>
> >>>>> - Linux Developer Conference, Brazil, Aug 25-26, 2018
> >>>>> - NXP Technology Days 2018, United States, Aug 28, 2018
> >>>>> - IoT Latin America, Brazil, Aug 29-30, 2018
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> U-Boot mailing list
> >>>>> U-Boot at lists.denx.de
> >>>>> https://lists.denx.de/listinfo/u-boot
> >>>> _______________________________________________
> >>>> U-Boot mailing list
> >>>> U-Boot at lists.denx.de
> >>>> https://lists.denx.de/listinfo/u-boot
>

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

* [U-Boot] [PATCH] common: add board specific hook for os preboot config
  2018-08-13  7:30 [U-Boot] [PATCH] common: add board specific hook for os preboot config Gerard Salvatella
                   ` (2 preceding siblings ...)
  2018-09-24 14:19 ` Stefan Agner
@ 2018-11-14 23:00 ` Marcel Ziswiler
  3 siblings, 0 replies; 10+ messages in thread
From: Marcel Ziswiler @ 2018-11-14 23:00 UTC (permalink / raw)
  To: u-boot

I see this got superseded by fd3d1212a2cb ("bootm: Add board specific
OS preboot hook") which does the exact same thing. Thanks!

On Mon, 2018-08-13 at 09:30 +0200, Gerard Salvatella wrote:
> Some boards require specific configuration prior to booting the
> kernel.
> For instance, our boards require shutting down the display to avoid
> fading transitions before the drivers are reloaded by the kernel.
> This
> could be facilitated by adding an extra hook during the os booting
> process.
> 
> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> ---
>  common/bootm_os.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/common/bootm_os.c b/common/bootm_os.c
> index f4bd905909..1e7af56b64 100644
> --- a/common/bootm_os.c
> +++ b/common/bootm_os.c
> @@ -505,9 +505,16 @@ __weak void arch_preboot_os(void)
>         /* please define platform specific arch_preboot_os() */
>  }
> 
> +/* Allow for board specific config before we boot */
> +__weak void board_preboot_os(void)
> +{
> +       /* please define board specific board_preboot_os() */
> +}
> +
>  int boot_selected_os(int argc, char * const argv[], int state,
>                      bootm_headers_t *images, boot_os_fn *boot_fn)
>  {
> +       board_preboot_os();
>         arch_preboot_os();
>         boot_fn(state, argc, argv, images);
> 
> --
> 2.18.0
> 
> 
> [Toradex Logo]<http://toradex.com>      Global Leader in Arm
> Embedded Computer Modules
> 
> Choose Us<https://www.toradex.com/how-to-choose-system-computer-on-mo
> dule-partner> | Products<https://www.toradex.com/products> |
> Developer Center<http://developer.toradex.com/> | Community<https://w
> ww.toradex.com/community> | Careers<https://careers.toradex.com/>
> Meet our engineers at<https://www.toradex.com/events>:<https://www.to
> radex.com/events>
> - Linux Developer Conference, Brazil, Aug 25-26, 2018
> - NXP Technology Days 2018, United States, Aug 28, 2018
> - IoT Latin America, Brazil, Aug 29-30, 2018
> 
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

end of thread, other threads:[~2018-11-14 23:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-13  7:30 [U-Boot] [PATCH] common: add board specific hook for os preboot config Gerard Salvatella
2018-08-16 13:09 ` Stefan Agner
2018-09-24 14:43   ` Michael Nazzareno Trimarchi
2018-09-24 14:51     ` Stefan Agner
2018-09-24 14:56       ` Michael Nazzareno Trimarchi
2018-09-24 15:15         ` Stefan Agner
2018-09-24 15:19           ` Michael Nazzareno Trimarchi
2018-08-17 10:54 ` Christian Gmeiner
2018-09-24 14:19 ` Stefan Agner
2018-11-14 23:00 ` Marcel Ziswiler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox