Re: [PATCH] of: Overlay manager
From: Frank Rowand
Date: Thu Sep 08 2016 - 19:33:58 EST
On 09/08/16 14:15, Dmitry Shmidt wrote:
> On Thu, Sep 8, 2016 at 2:08 PM, Frank Rowand <frowand.list@xxxxxxxxx> wrote:
>> On 09/08/16 13:35, dimitrysh@xxxxxxxxxx wrote:
>>> From e14eb45fa5a93c1bff8a6dfe7b6756e4ad72c579 Mon Sep 17 00:00:00 2001
>>> From: Dmitry Shmidt <dimitrysh@xxxxxxxxxx>
>>> Date: Wed, 24 Aug 2016 13:25:52 -0700
>>> Subject: [PATCH] of: Overlay manager
>>>
>>> Overlay manager processes DT entries on demand.
>>> It is chosen by CONFIG_OF_OVERLAY_MGR option.
>>> These entries can be chosen from kernel command line:
>>> overlay_mgr.overlay_dt_entry=hardware_cfg_0
>>> DT contains main overlay_mng entry with all possible
>>> HW config setups. And then kernel command line option
>>> will allow to choose between them.
>>>
>>> Kernel DT entry:
>>> overlay_mgr {
>>> compatible = "linux,overlay_manager";
>>> hardware_cfg_0 {
>>> overlay@0 {
>>> fragment@0 {
>>> __overlay__ {
>>> };
>>> };
>>> };
>>> overlay@1 {
>>> fragment@0 {
>>> __overlay__ {
>>> };
>>> };
>>> };
>>> };
>>> };
>>
>> What problem(s) are you trying to solve with this?
>
> Currently the Linux kernel doesn't provide a way for boot time
> selection of different possible board configurations, when the board
> peripherals are specified via Device Tree.
>
> Thus, this patch provides a driver which takes a boot option to
> apply pre-defined device-tree overlay fragments on bootup. This
> allows a single kernel/devicetree to be able to support a number of
> different configurations by only changing a boot argument.
>
>> What is the use case?
>
> It is usually useful for development board when you can use
> different peripherals. For example you want to use special
> LCD panel. Using it will go on account of other stuff like GPIOs,
> so you don't want it all the time. And it is not convenient to
> apply new patches and to recompile the kernel. And this code
> allows to choose LCD panel configuration from command line.
In other words, you want to be able to make configuration choices
at boot time.
The hardware is not different between boots, but you may want to use
it in different ways, with a boot time selection.
Did I get that right?
-Frank
< snip >